Manual Testing
Manual Testing
New Build
Developer QA
● When dev team gives build to QA, as a tester we should not immediately
start detailed testing
● First we should check if basic things of application are working or not by
doing smoke testing
● If its not working as expected means build is not stable and we should
reject that build
Smoke testing :
New Build
Developer QA
● we verify whether the important features are working and there are no
showstoppers in the build that are under testing.
● Smoke testing shows that the product is ready for testing.
● This helps in determining if the build is flawed to make any further testing a
waste of time and resources.
Smoke testing :
-
Example 1 :
● Consider a web-based e-commerce application.
● A new build of the application has just been deployed, and the QA team needs
to perform smoke testing to ensure it is ready for further testing.
The development team fixed this bug and released a new build.
As part of the sanity testing, login page is validated as well as the profile page to
ensure that the checks are working fine at both the places.
Advantages of Sanity Testing:
● helps to quickly identify defects in the core functionality.
● carried out in lesser time as no documentation is required for sanity testing.
● Verifies a small functionality of the system application whether it is still working or
not even after a small change.
● It helps in the scenario when the time for testing of the product is limited or having
less time to complete the test.
● fast process that provides quick feedback on the overall functionality of a software
build, allowing teams to quickly identify and address any critical issues.
● less time-consuming and less expensive than other types of testing, making it a
cost-effective solution for evaluating new builds.
● Enables developers and testers to focus on more complex testing scenarios,
improving overall productivity and reducing the time required for full regression
testing.
Smoke Vs Sanity Testing
Smoke Testing Sanity Testing
Manual Testing
Tutorial 25 : Regression Testing and Retesting
What is Regression Testing?
2. Partial Regression: Testing only the parts of the application that have been modified and the related
parts.
3. Complete Regression: Testing the entire application from end to end to ensure that changes have
not affected any part of the system.
Unit Regression Testing: Dev made some changes around user login
module and it has no impact on other modules
E commerce web-app
In such situation , we can test those changes
first, and along with that we have to do unit
User login
New user regression testing on that module only.
Register
Rating and
settings
Reviews
Steps in Regression Testing :
1. Understand the changes made in the application, including new features, bug fixes, and
enhancements.
2. Choose relevant test cases from the regression suite that need to be executed based on the
changes made. This selection can be based on impact analysis to determine which areas are most
likely affected by the changes.
3. Prioritize Test Cases: Prioritize test cases based on the criticality and usage of the functionalities.
4. Where possible, automate the test cases to ensure efficiency and consistency in execution.
5. Run the selected test cases to verify that the existing functionality is intact.
6. Analyze the test results to identify any regressions or defects introduced by the changes.
7. Report any defects found, and once they are fixed, repeat the regression testing process to
ensure that the fixes do not introduce new issues.
Regression testing steps
Challenges in Regression Testing
● Maintenance: Keeping the regression test suite up to date with the latest
changes in the application can be challenging.
● Time-Consuming: Comprehensive regression testing can be
time-consuming, especially for large and complex applications.
● Resource Intensive: Requires significant resources for execution, especially
if the tests are not automated.
Retesting :
● While testing issue is found then QA will report and assign that issue to dev
● Once developer fixes the issue , it will be given to qa for retesting
● QA should retest that issue, if it’s working as expected then QA close that
issue
● If after retest that issue is still not working as expected , then QA should
reopen that issue and assign back to developer , and developer will have to
fix that issue and give back to QA for retest.
● Retesting involves re-executing test cases that previously failed to ensure
that the defects or bugs have been fixed.
● This is different from regression testing, which checks if new code changes
have affected existing functionality.
Retesting :
● Purpose: To verify that specific bugs have been fixed.
● Scope: Limited to the failed test cases.No need to test entire module
● Execution: Performed after the defects have been addressed.
● Priority: High, as it confirms the resolution of critical issues.
● Test Cases: Same test cases that originally failed are used.