0% found this document useful (0 votes)
6 views

FrugalTesting

Uploaded by

nxxxsir
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
6 views

FrugalTesting

Uploaded by

nxxxsir
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 18

Name : Nasir Ansari

Stream : Computers and Communication Engineering

University : Manipal University Jaipur

SDET ASSIGNMENT FRUGAL TESTING

1. Consent to bond:

I confirm my consent to sign a bond for 20 months, including a 1year internship.

2. Stipend and CTC details:

Yes, I have received the stipend and CTC details. The stipend during the internship
period is 10K/M for 3 months and 15K/M per 9 months, and the CTC postinternship is
800000 per annum.

3. Willingness to relocate:

Yes, I am willing to relocate to Gachibowli, Hyderabad.

4. Motivation for pursuing a career in software testing:

My motivation in software testing comes from my interest in ensuring that quality products are
met and finding ways to improve the user's experience in terms of usability. I find this
interesting because it gives one satisfaction about actual problems found and guarantees that
the final product is as reliable and efficient as possible. I believe there's always a need to test,
ensuring that customers get some highquality software that meets clients' expectations.

5. Why join Frugal Testing:

It is exciting for me to be a part of Frugal Testing considering its great standing in the industry
and innovation in software quality assurance. I believe that the company's commitment to
highquality testing solutions aligns well with my passion for flawless products. What's more, I
believe that much can be learnt from your team; that's why I'm excited to be a part of Frugal
Testing.

SECTION A
Task 2 : OrangeHRM Navigation:
https://drive.google.com/file/d/1Fw1C5NDE86_5spB0cA6j7iJkDorǪo7bB/view?usp=drivesdk

Section B
3.

3.1
In the case study, the key challenge was ensuring the accuracy and reliability of health
data collected from IoT devices like wristbands and blood pressure monitors, along with
overcoming device compatibility and integration issues. Our team addressed this by
creating detailed test scenarios and setting up a robust environment with over 170 test
cases, simulating real-world conditions using both physical devices and virtual
environments. We conducted extensive functional and compatibility testing to ensure
the application worked smoothly across different systems, validating data accuracy and
seamless device interactions. This approach not only improved the user experience but
also boosted the client’s reputation by ensuring reliable health monitoring and accurate
real-time alerts. This method could be applied to other IoT systems, like smart home
automation, by focusing on device interoperability, real-time responsiveness, and
smooth data integration.

3.2
The article highlights the importance of software testing in ensuring that applications
meet user expectations in terms of functionality, reliability, and performance. Here are
the key takeaways:

1. Importance of Software Testing: Testing is critical in catching bugs early, maintaining


code quality, and improving user experience. In today's agile environments, testing
helps ensure the continuous delivery of stable software.

2. Common Testing Types: From unit testing to integration, system, and acceptance
testing, each type addresses different aspects of the software lifecycle. These ensure
thorough validation of an application's functionality and robustness.

3. Strategies for Entry-Level Testers: New testers are encouraged to focus on developing
problem-solving skills, learning debugging methods, and understanding test cases.
Practical knowledge in automation and manual testing is essential to progress in this
field.

4. Collaboration with Developers: A strong tester-developer relationship is emphasized.


Effective communication ensures bugs are fixed early, reducing rework and enhancing
software quality.
5. Hidden Tools of Software Testing: The article covers lesser-known but valuable tools
that can improve test coverage, automate repetitive tasks, and help identify potential
issues before they escalate.

6. Challenges Faced and Overcoming Them: From dealing with ever-evolving


technologies to handling ambiguous requirements, the article gives practical tips like
continual learning, clear communication, and leveraging community support to
overcome common hurdles.

Real-World Application:
In real-world projects, these insights can significantly enhance software quality. For
example:
- Collaboration between testers and developers in agile teams can speed up the
identification and resolution of bugs.
- Advanced techniques like test automation and continuous testing improve efficiency,
reduce manual errors, and ensure frequent releases.
- Hidden tools can streamline testing workflows, allowing for better test case
management, load testing, and regression testing, especially in large-scale
applications.

By integrating these practices, projects can achieve faster delivery cycles with fewer
defects, ultimately leading to a more robust and user-friendly product.

4.

In an application I developed, which I termed an anonymous posting platform, users


had the option to post content either anonymously or with their identity visible.
However, due to legal requirements and the need for developers to know the identity of
the poster (even if hidden from other users), the platform couldn't allow complete
anonymity. This presented a challenge in balancing user privacy with legal compliance.

To address this, we implemented a solution where user identities were stored in a


cryptic format. While users’ identities remained anonymous to the public, developers
could still access the necessary information when needed. We encrypted user details,
ensuring both privacy and legal obligations were met.

Lessons Learned and ProblemSolving Approach:


I learned that it’s possible to meet both privacy expectations and legal constraints with a
wellthoughtout solution. The key challenge was balancing user expectations of
anonymity with the need for legal compliance. To tackle this, I explored encryption
techniques and collaborated closely with the backend team to ensure user data was
securely stored, accessible only to developers when absolutely required.

Another key takeaway was the importance of clear communication with stakeholders,
especially on sensitive issues like user data and compliance. Working closely with legal
teams and other developers ensured that our technical solution adhered to regulations
without compromising functionality.
Developing ProblemSolving Skills as an SDET:
As an SDET (Software Development Engineer in Test), this experience sharpened my
problemsolving skills across multiple areas. I applied critical thinking and testing
strategies to ensure that software features were implemented securely and met privacy
standards. Automated testing and realworld scenario simulations helped identify
potential edge cases early in development. This project taught me to design secure,
scalable solutions focused on performance, reliability, and user experience while
adhering to legal requirements.

Overall, I learned to think beyond technical implementation, considering broader issues


like user trust and compliance—skills crucial for any role in software testing or
development.

5.

1. Problem Identification and Fixing Process for a Bug or Issue:

When an unexpected bug or issue arises during a project, I follow a systematic approach
to identify and resolve it:

Reproducing the Problem: The first step is to replicate the issue in a controlled
environment to confirm its existence and identify the specific conditions under which it
occurs.

Log Analysis: I then examine the application logs, which often provide valuable
information on errors or irregularities that occurred leading up to the bug. This helps
pinpoint the root cause.

Debugging: Using debugging tools, I go through the code line by line, inspecting
variables and the application’s state. This helps isolate the problematic part of the code
and gain a clearer understanding of the issue.

Checking Dependencies: Sometimes, bugs can be triggered by thirdparty libraries or


system configuration changes. I verify that no recent updates or configuration changes
are responsible for the issue.

2. Preventing Future Recurrence of the Problem:

To prevent similar problems from reoccurring, I take several proactive steps:

Root Cause Analysis (RCA): I perform an RCA to fully understand why the bug happened,
ensuring that it won’t reappear by addressing the underlying cause.
Automated Testing: I introduce unit, integration, and regression tests that specifically
target the areas of code related to the bug. This ensures that future changes won’t
inadvertently reintroduce the issue.

Code Review: Regular code reviews help catch potential bugs before they occur. Peer
review promotes quality assurance and helps identify vulnerabilities early in the
development process.

Documentation: If the bug stemmed from misunderstandings or miscommunication, I


update documentation, such as API guidelines or coding standards, to clarify
expectations and ensure consistency among developers.

6.

6.1 In the project using the machine learning library "Prismia" for detecting image
contents, I applied several important skills that contributed to its success. Your
knowledge of machine learning, especially in image recognition, was crucial in building
and training models to identify image contents accurately. You would have also
leveraged your experience with image processing tools, such as OpenCV or PIL, to
preprocess images, improving the model’s accuracy. Strong Python programming skills
allowed you to implement the machine learning models using libraries like TensorFlow,
Keras, or PyTorch, while efficiently handling data pipelines. Your ability to manage large
datasets, clean and label images, and your expertise in model training and evaluation
helped finetune the performance of the system. Additionally, you likely contributed to
solving technical challenges, such as underfitting or overfitting, by adjusting the model
architecture and applying techniques like hyperparameter tuning or data augmentation.
If you integrated the model into an application, your efforts in ensuring smooth
integration and deploying the model for realworld use were pivotal. Overall, your skills in
machine learning, programming, data handling, and problemsolving were key to the
project’s success.

6.2 During my project using the machine learning library "Prismia" to detect image
contents, I encountered several obstacles. One major challenge was handling
datarelated issues, such as sourcing a sufficiently large and diverse dataset and dealing
with imbalanced data, which impacted the accuracy of my model. Additionally, finding
the right model architecture to avoid overfitting or underfitting proved tricky, as
balancing accuracy and generalization is often difficult in machine learning projects. I
also faced limitations in computational resources, making it hard to train complex
models or process large datasets efficiently. Hyperparameter tuning required careful
experimentation to optimize the model’s performance, which was quite timeconsuming.
When it came to integrating the model into the application, I had to ensure smooth
communication between the machine learning component and the frontend, which
presented its own set of technical difficulties. Realtime performance was another issue,
as I needed to balance speed and accuracy while working with large image datasets.
Finally, deploying the model for realworld use and ensuring it could scale effectively
posed challenges, especially since I was still getting familiar with cloud deployment
tools and services.

7. In my work on the image recognition project "Prismia," I collaborated with a team to


develop an application for detecting image contents. We faced several challenges,
including managing an insufficient dataset, which impacted model accuracy. To address
this, I proposed using data augmentation techniques to expand our dataset, ultimately
improving the model's robustness.

Additionally, effective communication was a challenge due to our remote work setup,
leading to occasional misunderstandings about task assignments. To improve
collaboration, I initiated regular standup meetings, which enhanced accountability and
alignment among team members.

We also encountered integration issues between the machine learning model and the
application interface, causing delays. I facilitated troubleshooting sessions with both
frontend and backend developers, helping to identify and resolve discrepancies in data
formats.

As a result of our teamwork, we successfully delivered "Prismia" on schedule, receiving


positive feedback for its accuracy and user interface. This experience reinforced my
understanding of collaboration and problemsolving, skills I believe will be valuable to
your team at Frugal Testing.

8. As a finalyear student with a keen interest in software testing, my motivation stems


from the critical role testing plays in ensuring software quality and reliability. I enjoy the
challenge of uncovering potential issues, ensuring that applications function as
intended, and contributing to delivering a flawless user experience. The analytical
nature of testing, combined with the need for precision and attention to detail, aligns
well with my strengths and interests in problemsolving.

Engaging with my faculty has further deepened my understanding of the various testing
methodologies and best practices. I plan to stay engaged and continuously improve in
this field by keeping up with the latest trends and tools in automation testing,
performance testing, and security testing. I intend to participate in relevant online
communities, attend webinars and conferences, and obtain certifications in testing
frameworks like Selenium and ISTǪB. Additionally, I will continue experimenting with
realworld projects and seek mentorship from industry professionals to refine my skills
and knowledge.

9. The growth of DevOps and cloud computing is transforming software testing by


changing how it is approached, executed, and integrated into the development lifecycle.
One of the key benefits is the promotion of continuous testing, as DevOps facilitates
continuous integration and continuous deployment (CI/CD), enabling faster feedback
and early defect identification. Cloud computing offers scalable resources, allowing
teams to easily manage testing environments without hardware constraints and
improving collaboration among development, operations, and testing teams. However,
implementing these technologies presents challenges, including the complexity of
integrating various tools, addressing security concerns related to sensitive data, and
filling skill gaps as teams adapt to new automation and cloud technologies. Additionally,
managing representative test data and maintaining automated tests in a continuously
evolving environment can increase the workload. Overall, while DevOps and cloud
computing enhance software testing significantly, organizations must carefully navigate
these challenges to maximize their benefits.

10.

LinkedIn : www.linkedin.com/in/nasir-ansari
Resume :
https://drive.google.com/file/d/1t8iDdgBwrIA66XAVIAFPjP9tuDn3Xcdo/view?usp=drives
dk
Project : https://github.com/nxsir/crypto-portfolio-tracker11.

11.
12. How do you use ChatGPT to solve problems in your daily work?
I use ChatGPT as a resource to quickly clarify concepts, debug code, and explore
different problemsolving approaches. For example, when I encounter issues while
writing code or testing software, I can ask specific questions related to the error or the
logic and get suggestions on how to resolve it. ChatGPT also helps me generate test
case scenarios or understand complex documentation, which saves time and boosts
productivity. Additionally, it assists in exploring alternative ways to structure algorithms
or database queries, streamlining the development process.

13. What are the most effective ways to ensure quality in a software project?
Ensuring quality in a software project involves several best practices:
1. Comprehensive Testing: Incorporating unit, integration, system, and acceptance tests
to cover all aspects of the software.
2. Automated Testing: Using automated tests to run regression tests quickly and
consistently across new builds.
3. Code Reviews: Having peer reviews to catch errors and improve code quality before
merging.
4. Continuous Integration/Continuous Delivery (CI/CD): Automating the build, test, and
deployment processes to ensure that each code change is validated and safely
delivered.
5. TestDriven Development (TDD): Writing tests before the actual code to ensure that the
code meets its requirements from the outset.
6. User Acceptance Testing (UAT): Engaging endusers to verify the software in realworld
scenarios before the final release.

14. How can ChatGPT help in improving the testing process?


ChatGPT can enhance the testing process by generating test case ideas, reviewing code
for potential errors, and suggesting testing methodologies. It can help write unit tests,
automate test scripts, or clarify how to implement specific testing tools like Selenium.
ChatGPT can also be used to break down complex errors into simpler explanations,
reducing debugging time. Moreover, it can suggest best practices for structuring the
testing workflow, guiding on automation frameworks, and even creating exploratory
testing scenarios based on different user inputs.

15. What does exploratory testing mean, and how would you explain it using a daily life
example?
Exploratory testing is a handson, unscripted testing approach where the tester actively
explores the application, identifying bugs or issues without predefined test cases. It's
about using creativity, intuition, and experience to find hidden issues that structured
testing might miss.

A daily life example: Imagine you’ve just bought a new phone, and instead of reading the
manual, you start exploring its features. You open different apps, press random buttons,
change settings, and test out functions like the camera, calling, and messaging to see if
everything works as expected. This process of "exploring" the phone, discovering any
potential bugs or quirks on your own, is similar to exploratory testing in software.
16. What is the purpose of a bug report, and how would you explain it to someone who’s
not in tech?
The purpose of a bug report is to document an issue or error in a software application so
that developers can understand and fix it. Think of it like writing a detailed note when
something in your house breaks, for example, a light bulb. You'd explain what went
wrong, where the issue occurred, and any clues that might help fix it, like "the light
flickers when I switch it on." Similarly, a bug report provides all the information needed
to diagnose and resolve a problem in the software.

17. How can ChatGPT or similar AI tools enhance test case generation, bug reporting, or
test result analysis?
ChatGPT can enhance these areas by automating and accelerating tasks:
Test Case Generation: AI can help by generating test cases based on application
requirements or user inputs, suggesting edge cases that testers might overlook.
Bug Reporting: AI tools can assist in drafting bug reports by analyzing error logs,
summarizing issues, and ensuring all critical information is included.
Test Result Analysis: ChatGPT can help analyze test outcomes, detect patterns in test
failures, and offer suggestions for improvements based on historical data or best
practices in the field.

18. How do you decide which test cases to automate and which to leave manual?
Test cases that are repetitive, timeconsuming, and require running across multiple
environments are ideal for automation. Automation is also suitable for regression tests,
performance tests, and tests that need to be run frequently. Manual testing, on the other
hand, is preferred for exploratory tests, complex test cases that require human intuition,
or onetime test cases where automation would be inefficient or costly.

19. How would you explain the importance of regression testing to a nontechnical
person?
Regression testing ensures that when something new is added to or changed in an
application, it doesn’t break existing features. Think of it like renovating a room in your
house—after the renovation, you want to check that the plumbing, wiring, and structure
of the entire house are still working fine. Regression testing is that careful check to make
sure everything still works as it should after changes.

Impact of Al on Software Testing: Opportunities and Challenges

As it comes to the improve the quality of final products, most fields are integrating
Artificial Intelligence, and so happens with software quality assurance testing. New AI
driven tools in the field of testing have created additional chances for automation,
effectiveness, and correctness. Nevertheless, in a Bid to make the most of the
opportunities presented by AI in testing, certain challenges must be met. The following
article analyses the evolution of software testing with the use of AI and the possible
problems regarding the introduction of those technologies by the specialists.

AI contribution in implementation of Software Testing

It is found that a large overall advantage of supporting AI in manufacturing is the


removing the uncomfortable or repetitive tasks. One of the major assumptions about
the use of AI in software testing is the use of these systems to perform monotonous
responsibilities that would take a lot of time and force. AI can automate test case
generation, script writing, test execution, and even bug detection. For instance, the
automated generation of test cases comprises of reusable test scripts, which are clever
enough to know when human external input is needed because of changes in the
software and where new tests should be developed to replace tests that should not be
repositioned. This reduces the level of burden that is placed on the testers and hence
they are now able to centre on the more difficult areas of testing which require less
structure such as exploratory testing.

For example: Testim and Applitools are some of the tools that are able to create tests
automatically based on the interactions of the user with the application using rules of
machine learning and thereby shortening the effort needed for working on the
automation scripts.

1.Test Accuracy has Increased

There is always a chance of human error in manual testing. The use of AI technology
solves that problem by making it possible to run the same tests repeatedly every time.
For example, AI is capable of anticipating visual bugs or pixel mismatches, which are
prevalent in areas that require focus on visual systems such as web/mobile
applications.

Example: Visual AI technologies can accurately capture every visual revision made in
the app, identifying any problems that may go unnoticed by human testers.

2.Bug Prediction Through Predictive Analytics

Using historical data, predictive models can be developed in order to be able to


highlight the most “bug prone” regions in new code. AI can be particularly useful in
determining which areas are likely to generate bugs by looking at the history of
changes in code and problems in the past. This sweetens the test coverage and
enhances the rate of fixing the bugs that are found.

Example: SonarQube Project is a free and open-source application that uses sonar-
analysis to determine code improvements using Softwar security within static inside the
room, which smash with potential bugs.

3.SelfHealing Test Automation

Most often than not, automated testing capabilities or test scripts within the automated
testing fail due to the changes made in the user interface and/or their flows. At this
level, the AI in the process creates selfhealing test automation. This means that there
is a way when the test cases change dynamically as the application changes hence
decreasing the frequency of changing the scripts.

Example: SmartBear TestComplete is one of the AIdriven tools in which automation


scripts are selfhealed as UI elements change and therefore there is no need to update
tests even with slight changes in application.

4.Enhanced Test Coverage

With the help of these tools, execution of tests with unimaginable speed can be carried
out because of the analysis of such a great volume of data that cannot be performed
by a manual tester. This makes it possible to test edge cases and multi environments
over a software product and increase test regressions.

Example: Mabl, an AIdriven testing tool, is capable of performing hundreds of


thousands of test cases on multiple browsers, multiple operating systems, and multiple
devices all at once - achieving vast coverage in a short.
Challenges of AI in Software Testing

1.Initial Cost and Learning Curve

In proportionate to the effectiveness of the AIdriven tools, an organization is not


received easily by classical conditions. Companies may also be required to buy
sophisticated AImage tools and pay people to learn how to efficiently use them. For
example for smaller teams with limited resources, this can be significant barrier.
Besides, people who wish to use AI tools are faced with a steep learning curve. Testers
ought to learn ML algorithms and AI workflows which could be new skills to acquire.

2.Difficulty in Defining AI Model Requirements

Although there are good things that can be derived from AI, setting up AI models for
purposes of testing is a daunting task. All that is needed is proper configuration of the
algorithms and supplying the right data in order for the model to output useful
information. If the models are incorrectly structured they are bound to produce false
negatives or false positives which means the testing even though diverse will not be
effective.

3.The problem of biasing based on input data which is not representative

AI is not more intelligent than the data that it is trained on. Like other machine
learning systems, if the training data provided to the AI models used for prediction are
inadequate, biased or too old, the predictions ultimately suffer. Hence, there is a need
to manage the information effectively so that AI does not make illogical deductions.

4.Anxiety of being Unemployed.

AI will take away the work of many testers is an equally unfortunately wrong
statement. Certainly AI has replaced manual work and shortened the whole testing
lifecycle when it comes most of the tasks; however all the complex testing including
the exploratory testing and the usability testing are still human dependent. Hasty
conclusions and decision making processes borne by the complexity of the scenarios
that even AI technology will not help expedite will still need human testers.

AI Used in Software Testing in Practice

Many top firms have incorporated Artificial Intelligence in the testing processes.
For example: They implement tooling which utilizes AI in their deep regression testing
in the multitude of code they have, on the other hand. AI is implemented to conduct
visual testing for their applications at Facebook, to maintain application usability.

Their AI Tormented Performance Testing guarantees smooth playback in any


streaming service despite the greatest of disturbances.By embracing AI, these
organizations do not only enhance the quality of their software, they also reduce
development time hence faster time to market of the product.

The Future of AI in Software Testing

In future, as developments take place in AI, so will the applications in software testing.
Some of the such advancements may include:
AIDriven Test Oracles: Devices which offer some complex metrics based on which,
they will decide whether a test case has passed or failed without a human being
making the judgement.
NLP will enable automated test generation based on business requirements. Test
creation using technical writers will be a thing of the past.
AI will enhance the way applications will be tested under realistic conditions even
without going through actual load testing.

While there will still be no substituting the human testers, human capabilities are going
to be enhanced to enable them to be faster and smarter

Let's Insight On The Impact Of AI On Software Testing.

• There is no doubt that with time, a greater role will be played by AI in software
testing. Some features are expected to include:

• Intelligent Resist Test Oracles: Assisting tools that, on their own, determine
whether the given test case is passed or failed based on intricate criteria.

• Natural Language Requirements in Test Automation: AI will comprehend the


natural language specifications and create the automated tests, with no manual
effort needed.

• AI Driven Performance Test: The performance of an application will be


modelled by AI under a given set of real world conditions without exhaustive
load testing.

This technology will not substitute manual testers but will augment the skills of manual
testers allowing them to conduct tests creatively and efficiently. The integration of AI
with manual testing will bring in more balance, efficiency and reliability in the software
development life cycle.

Final thoughts:

AI is going to change so many routines in its area by enhancing and automating test
execution processes, deploying more test cases and striving towards greater accuracy.
However, it also has certain drawbacks like high configuration costs, intricacy and bias
when it comes to implementing AI-based tools. Nonetheless, in order to fully take
advantage of AI, the companies have to consider some of the issues when
incorporating it to ensure that AI does not replace human testers. In this regard, as
the architectural structure provides guidance, tools and applications created will have
great input.

You might also like