SlideShare a Scribd company logo
SOFTWARE TESTING
WHAT IS TESTING?
•
Testing is a process to detect defect in any
application in order to reduce various risks
associated with the application and improve
the quality of the application.
Types of Testing
•
Static testing
Static testing is a type of testing, In which execution of code is
not performed.
Example: Code review, Document review etc.
•
Dynamic testing
Dynamic testing is a type of testing, In which execution of code
is done.
Example: White box testing, Black box testing etc.
Methods of testing
•
White box testing
•
Black box testing
•
Gray box testing
White box testing
White box testing is a method in which tester
can view the internal structure and flow of code.
That’s why it’s also called glass box testing.
Example: Statement coverage, branch coverage,
path coverage.
Black box testing
•
Black box testing is a method in which tester
can’t view the internal structure and flow of
code. In this method tester provide input and
gets the output and compare the actual
output with expected output.
Gray box testing
•
Gray box testing is a method in which tester
can view some part of the internal structure
and flow of code and rest of the code or
functionalities are tested using black box
testing method.
•
Example: API testing, Database testing etc.
Levels of testing
•
Unit testing
•
Integration testing
•
System testing
•
Acceptance testing
Unit Testing
•
Unit testing often refers to the testing of
smallest piece of code i.e. class, function or
procedure. It is mostly automated and done
by developers. Unit testing is also called
component testing.
Integration Testing
•
Integration testing is performed to test the
interface between two or more modules.
Scope of integration testing is only to verify
the proper integration of two or more
modules, not the complete testing of these
modules.
•
Integration testing is further divided in for
types:
•
Top down approach
•
Bottom up approach
System Testing
•
System testing is performed to test the
behavior of completely integrated system, in
order to verify that system’s actual behavior
matches with the expected behavior.
•
Both functional and non-functional testing are
the part of system level testing.
Acceptance Testing
•
Acceptance testing is formally known as UAT
(User acceptance testing.)
•
Acceptance testing is further categorize in two
categories:
1. Alpha testing
2. Beta testing
Alpha Testing
•
Alpha testing is done at acceptance level by
testing team for the application at
development site.
•
Alpha testing may also be performed by
isolated member’s team at development site.
(Neither by testing team nor by development
team)
Beta testing
•
Beta testing is done at acceptance level by
potential end users for the application in real
environment
•
Beta testing may be performed by client,
stakeholders or his team in real environment/
client’s side, if there are no other end users
exist.
Functional Testing
•
Functional Testing is performed to ensure that
actual functional behavior of particular
module/ system is as per expected behavior.
E.g. Testing of individual Sign Up/Login/Check
out module OR a Testing of a complete flow of
e-commerce application (Signup – Login –
Product details – Add to cart – Billing &
shipping info – Check out & Payment)
Non Functional Testing
•
Non functional testing emphasis on testing of
non functional aspects for the application. Eg.
UI testing, Localization testing, Security
testing, Load/stress/performance testing etc.
Retesting
•
Retesting is performed when developer fix the
earlier reported bugs and tester need to verify
that the bugs are fixed properly and any other
bug is not appearing due to current bug fixing
in relevant sections/ functionalities. E.g. Bug
Verification for registration section.
Regression
Regression is performed in two scenarios:
1. when any changes/ enhancements are implemented
by developers. Scope of regression is to ensure that
newly introduced changes are not impacting the
current desired functionality of not only that specific
module but also relevant module/functionalities. E.g.
‘Forgot password’ functionality is introduced on sign in
screen. In this case ‘Login, Sign Up/my account –
change password’ sections will be tested also.
2. After completion of retesting, to ensure that there
are no adverse effect of bug fixing are reflected on that
particular AND other relevant module/functionalities.
Smoke Testing
•
Smoke testing some times also known as
‘Build acceptance/ verification testing’. Scope
of smoke testing is to ensure that most critical
functionalities of the application are working
properly.
•
Smoke testing ensures that build/ application
is ready for thorough testing or not.
•
Positive testing approach is used for smoke
testing.
Sanity Testing
•
Sanity testing focus on particular module or
functionality. Sanity testing is used to verify
that smaller section/functionalities are
working properly.
•
Sanity testing is mostly done in ‘deep’ and
‘narrow’ way to cover detailed business
requirements.
•
Sanity testing may include negative testing
approach also.

More Related Content

Software Testing

  • 2. WHAT IS TESTING? • Testing is a process to detect defect in any application in order to reduce various risks associated with the application and improve the quality of the application.
  • 3. Types of Testing • Static testing Static testing is a type of testing, In which execution of code is not performed. Example: Code review, Document review etc. • Dynamic testing Dynamic testing is a type of testing, In which execution of code is done. Example: White box testing, Black box testing etc.
  • 4. Methods of testing • White box testing • Black box testing • Gray box testing
  • 5. White box testing White box testing is a method in which tester can view the internal structure and flow of code. That’s why it’s also called glass box testing. Example: Statement coverage, branch coverage, path coverage.
  • 6. Black box testing • Black box testing is a method in which tester can’t view the internal structure and flow of code. In this method tester provide input and gets the output and compare the actual output with expected output.
  • 7. Gray box testing • Gray box testing is a method in which tester can view some part of the internal structure and flow of code and rest of the code or functionalities are tested using black box testing method. • Example: API testing, Database testing etc.
  • 8. Levels of testing • Unit testing • Integration testing • System testing • Acceptance testing
  • 9. Unit Testing • Unit testing often refers to the testing of smallest piece of code i.e. class, function or procedure. It is mostly automated and done by developers. Unit testing is also called component testing.
  • 10. Integration Testing • Integration testing is performed to test the interface between two or more modules. Scope of integration testing is only to verify the proper integration of two or more modules, not the complete testing of these modules. • Integration testing is further divided in for types: • Top down approach • Bottom up approach
  • 11. System Testing • System testing is performed to test the behavior of completely integrated system, in order to verify that system’s actual behavior matches with the expected behavior. • Both functional and non-functional testing are the part of system level testing.
  • 12. Acceptance Testing • Acceptance testing is formally known as UAT (User acceptance testing.) • Acceptance testing is further categorize in two categories: 1. Alpha testing 2. Beta testing
  • 13. Alpha Testing • Alpha testing is done at acceptance level by testing team for the application at development site. • Alpha testing may also be performed by isolated member’s team at development site. (Neither by testing team nor by development team)
  • 14. Beta testing • Beta testing is done at acceptance level by potential end users for the application in real environment • Beta testing may be performed by client, stakeholders or his team in real environment/ client’s side, if there are no other end users exist.
  • 15. Functional Testing • Functional Testing is performed to ensure that actual functional behavior of particular module/ system is as per expected behavior. E.g. Testing of individual Sign Up/Login/Check out module OR a Testing of a complete flow of e-commerce application (Signup – Login – Product details – Add to cart – Billing & shipping info – Check out & Payment)
  • 16. Non Functional Testing • Non functional testing emphasis on testing of non functional aspects for the application. Eg. UI testing, Localization testing, Security testing, Load/stress/performance testing etc.
  • 17. Retesting • Retesting is performed when developer fix the earlier reported bugs and tester need to verify that the bugs are fixed properly and any other bug is not appearing due to current bug fixing in relevant sections/ functionalities. E.g. Bug Verification for registration section.
  • 18. Regression Regression is performed in two scenarios: 1. when any changes/ enhancements are implemented by developers. Scope of regression is to ensure that newly introduced changes are not impacting the current desired functionality of not only that specific module but also relevant module/functionalities. E.g. ‘Forgot password’ functionality is introduced on sign in screen. In this case ‘Login, Sign Up/my account – change password’ sections will be tested also. 2. After completion of retesting, to ensure that there are no adverse effect of bug fixing are reflected on that particular AND other relevant module/functionalities.
  • 19. Smoke Testing • Smoke testing some times also known as ‘Build acceptance/ verification testing’. Scope of smoke testing is to ensure that most critical functionalities of the application are working properly. • Smoke testing ensures that build/ application is ready for thorough testing or not. • Positive testing approach is used for smoke testing.
  • 20. Sanity Testing • Sanity testing focus on particular module or functionality. Sanity testing is used to verify that smaller section/functionalities are working properly. • Sanity testing is mostly done in ‘deep’ and ‘narrow’ way to cover detailed business requirements. • Sanity testing may include negative testing approach also.