introduction to software testing

20
SOFTWARE TESTING

Upload: abhishek-saxena

Post on 15-Jul-2015

49 views

Category:

Education


0 download

TRANSCRIPT

Page 1: Introduction to software testing

SOFTWARE TESTING

Page 2: Introduction to 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.

Page 3: Introduction to software testing

Types of Testing

• Static testingStatic testing is a type of testing, In which execution of code is not performed.

Example: Code review, Document review etc.

• Dynamic testingDynamic testing is a type of testing, In which execution of code is done.

Example: White box testing, Black box testing etc.

Page 4: Introduction to software testing

Methods of testing

• White box testing

• Black box testing

• Gray box testing

Page 5: Introduction to software 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.

Page 6: Introduction to software testing

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.

Page 7: Introduction to software testing

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.

Page 8: Introduction to software testing

Levels of testing

• Unit testing

• Integration testing

• System testing

• Acceptance testing

Page 9: Introduction to software 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.

Page 10: Introduction to software 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

• Sandwich approach

• Big bang approach

Page 11: Introduction to software testing

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.

Page 12: Introduction to software 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

Page 13: Introduction to software 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)

Page 14: Introduction to software testing

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.

Page 15: Introduction to software testing

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)

Page 16: Introduction to software testing

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.

Page 17: Introduction to software testing

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.

Page 18: Introduction to software testing

Regression

• Regression is performed 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.

Page 19: Introduction to software testing

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.

Page 20: Introduction to software 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.