Software Testing


Published on

Published in: Education
  • Be the first to comment

Software Testing

  2. 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. 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. 4. Methods of testing • White box testing • Black box testing • Gray box testing
  5. 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. 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. 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. 8. Levels of testing • Unit testing • Integration testing • System testing • Acceptance testing
  9. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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.