A PRESENTATION ON SOFTWARE TESTING Presented By:- komal Garg
Project Overview Introduction Good testing process  Principle of software testing Myths of software testing Levels of Testing Black-box testing white-box testing Alpha testing Beta testing
INTRODUCTION “Testing is the process of executing a program with the intention of finding errors.” – Myers “Testing can show the presence of bugs but never their absence.” – Dijkstra
Software testing can be stated as the process of validating and verifying that computer program/application/product: 🞅meets the requirements that guided its design and development, 🞅works as expected, 🞅can be implemented with the same characteristics, 🞅and satisfies the needs of stakeholders.
Good Testing Practices A good test case is one that has a high probability of detecting an undiscovered defect, not one that shows that the program works correctly It is impossible to test your own program A necessary part of every test case is a description of the expected result
Avoid non-reproducible or on-the-fly testing Write test cases for valid as well as invalid input conditions. Thoroughly inspect the results of each test As the number of detected defects in a piece of software increases, the probability of the existence of more undetected defects also increases
Assign your best people to testing Ensure that testability is a key objective in your software design Never alter the program to make testing easier Testing, like almost every other activity, must start with objectives
Principle of software testing: 🞅T esting should be based on use requirements. 🞅Time & resources are limited 🞅Impossible to test everything 🞅Use effective resources to test 🞅T est planning should be done early. 🞅T esting should begin at module 🞅Done by an independent party 🞅Keep s/w static during test 🞅Documents test case and result
Testing Myths  Testing is time consuming.  Testing is too expensive.  Testing cannot be started if the product is not fully developed.  Complete Testing is Possible.  Missed defects are due to Testers.  Testers should be responsible for the quality of a product  Any one can test a Software application.  A tester’s task is only to find bugs.
Levels of Testing
Unit Testing:- Unit Testing is a level of the software testing process where individual units/components of a software/system are tested. The purpose is to validate that each unit of the software performs as designed.
A good unit test is: 🞅 Able to be fully automated 🞅 Has full control over all the pieces running (Use mocks or stubs to achieve this isolation when needed) 🞅 Can be run in any order if part of many other tests 🞅 Runs in memory (no DB or File access, for example) 🞅 Consistently returns the same result (You always run the same test, so no random numbers, for example. save those for integration or range tests) 🞅 Runs fast 🞅 Tests a single logical concept in the system 🞅 Readable 🞅 Maintainable 🞅 Trustworthy (when you see its result, you don’t need to debug the code just to be sure)
Benefits of Unit testing:- Find problems early Facilitates change Simplifies integration Documentation Design
Integration testing:- Integration Testing is a level of the software testing process where individual units are combined and tested as a group. The purpose of this level of testing is to expose faults in the interaction between integrated units.
Types of integration testing:- 1. Big Bang 2. Top down 3. Bottom up
1. Big Bang Big Bang Integration testing approach used to find the bugs when all the developed modules are interacted with each other and create a complete software system then its produced result satisfying with original requirement. 2. Top down In Top down integrated testing approach, all Top level integrated modules are tested first and its sub modules tested from top to down step by step. 3. Bottom up In Bottom up integrated testing approach, all bottom (Sub Modules) level integrated sub modules are tested first and its main modules tested from bottom to up step by step.
Why Integration Testing Is Necessary:- 🞅 One module can have an adverse effect on another 🞅 Sub-functions, when combined, may not produce the desired major function 🞅 Individually acceptable imprecision in calculations may be magnified to unacceptable levels 🞅 Interfacing errors not detected in unit testing may appear 🞅 Timing problems (in real-time systems) are not detectable by unit testing 🞅 Resource contention problems are not detectable by unit testing
System Testing:- with the specified requiremeSystem Testing is a level of the software testing process where a complete, integrated system/software is tested. The purpose of this test is to evaluate the system’s compliance nts
Why system testing is important: 🞅the first level of testing where the System is tested as a whole. 🞅check if system meets functional requirement or not. 🞅validate and verify both the Application Architecture and Business requirements
Acceptance Testing:- Acceptance Testing is a level of the software testing process where a system is tested for acceptability. The purpose of this test is to evaluate the system’s compliance with the business requirements and assess whether it is acceptable for delivery.
Why acceptance testing requires:- In acceptance test, tester goes through the application and verifies its each and every functionality with requirement documents. Acceptance testing is final testing and is performed before the delivery of application or software to end user for use. Its main purpose is to find the bugs but to get the confidence of end users requirements are fulfilled or not. Acceptance test is the last phase of STLC. After that, maintenance testing is performed on software or application if required.
Black-box testing A software testing technique whereby the internal workings of the item being tested are not known by the tester.
Methods of Black box Testing 1. Graph Based Testing Methods 2. Error Guessing 3. Boundary Value Analysis
White-box testing White-box testing (also known as clear box testing, glass box testing, transparent box testing, and structural testing) is a method of testing software that tests internal structures or workings of an application, as opposed to its functionality (i.e. black-box testing).
Three basic steps that white- box testing:- i. Input ii. Processing Unit iii. Output
White-box test design techniques 🞅Control flow testing 🞅Data flow testing 🞅Branch testing 🞅Path testing 🞅Statement coverage 🞅Decision coverage.
Advantages:- I. Side effects of having the knowledge of the source code. II. Optimization of code by revealing hidden errors and being able to remove these possible defects. III.Gives the programmer introspection
Disadvantages:- 🞅White-box testing brings complexity 🞅it is not realistic to be able to test every single existing condition of the application and some conditions will be untested
Alpha testing Testing done when development is nearing completion; minor design changes may still be made as a result of such testing.
Beta Testing Testing when development and testing are essentially completed and final bugs and problems need to be found before release
Thank you…….

softwaretesting-140721025833-phpapp02.pptx

  • 1.
  • 2.
    Project Overview Introduction Good testingprocess  Principle of software testing Myths of software testing Levels of Testing Black-box testing white-box testing Alpha testing Beta testing
  • 3.
    INTRODUCTION “Testing is theprocess of executing a program with the intention of finding errors.” – Myers “Testing can show the presence of bugs but never their absence.” – Dijkstra
  • 4.
    Software testing canbe stated as the process of validating and verifying that computer program/application/product: 🞅meets the requirements that guided its design and development, 🞅works as expected, 🞅can be implemented with the same characteristics, 🞅and satisfies the needs of stakeholders.
  • 5.
    Good Testing Practices A goodtest case is one that has a high probability of detecting an undiscovered defect, not one that shows that the program works correctly It is impossible to test your own program A necessary part of every test case is a description of the expected result
  • 6.
    Avoid non-reproducible oron-the-fly testing Write test cases for valid as well as invalid input conditions. Thoroughly inspect the results of each test As the number of detected defects in a piece of software increases, the probability of the existence of more undetected defects also increases
  • 7.
    Assign your bestpeople to testing Ensure that testability is a key objective in your software design Never alter the program to make testing easier Testing, like almost every other activity, must start with objectives
  • 8.
    Principle of software testing: 🞅T estingshould be based on use requirements. 🞅Time & resources are limited 🞅Impossible to test everything 🞅Use effective resources to test 🞅T est planning should be done early. 🞅T esting should begin at module 🞅Done by an independent party 🞅Keep s/w static during test 🞅Documents test case and result
  • 9.
    Testing Myths  Testingis time consuming.  Testing is too expensive.  Testing cannot be started if the product is not fully developed.  Complete Testing is Possible.  Missed defects are due to Testers.  Testers should be responsible for the quality of a product  Any one can test a Software application.  A tester’s task is only to find bugs.
  • 10.
  • 11.
    Unit Testing:- Unit Testingis a level of the software testing process where individual units/components of a software/system are tested. The purpose is to validate that each unit of the software performs as designed.
  • 12.
    A good unittest is: 🞅 Able to be fully automated 🞅 Has full control over all the pieces running (Use mocks or stubs to achieve this isolation when needed) 🞅 Can be run in any order if part of many other tests 🞅 Runs in memory (no DB or File access, for example) 🞅 Consistently returns the same result (You always run the same test, so no random numbers, for example. save those for integration or range tests) 🞅 Runs fast 🞅 Tests a single logical concept in the system 🞅 Readable 🞅 Maintainable 🞅 Trustworthy (when you see its result, you don’t need to debug the code just to be sure)
  • 13.
    Benefits of Unittesting:- Find problems early Facilitates change Simplifies integration Documentation Design
  • 14.
    Integration testing:- Integration Testingis a level of the software testing process where individual units are combined and tested as a group. The purpose of this level of testing is to expose faults in the interaction between integrated units.
  • 15.
    Types of integration testing:- 1.Big Bang 2. Top down 3. Bottom up
  • 16.
    1. Big Bang BigBang Integration testing approach used to find the bugs when all the developed modules are interacted with each other and create a complete software system then its produced result satisfying with original requirement. 2. Top down In Top down integrated testing approach, all Top level integrated modules are tested first and its sub modules tested from top to down step by step. 3. Bottom up In Bottom up integrated testing approach, all bottom (Sub Modules) level integrated sub modules are tested first and its main modules tested from bottom to up step by step.
  • 17.
    Why Integration TestingIs Necessary:- 🞅 One module can have an adverse effect on another 🞅 Sub-functions, when combined, may not produce the desired major function 🞅 Individually acceptable imprecision in calculations may be magnified to unacceptable levels 🞅 Interfacing errors not detected in unit testing may appear 🞅 Timing problems (in real-time systems) are not detectable by unit testing 🞅 Resource contention problems are not detectable by unit testing
  • 18.
    System Testing:- with thespecified requiremeSystem Testing is a level of the software testing process where a complete, integrated system/software is tested. The purpose of this test is to evaluate the system’s compliance nts
  • 19.
    Why system testing isimportant: 🞅the first level of testing where the System is tested as a whole. 🞅check if system meets functional requirement or not. 🞅validate and verify both the Application Architecture and Business requirements
  • 20.
    Acceptance Testing:- Acceptance Testing isa level of the software testing process where a system is tested for acceptability. The purpose of this test is to evaluate the system’s compliance with the business requirements and assess whether it is acceptable for delivery.
  • 21.
    Why acceptance testing requires:- Inacceptance test, tester goes through the application and verifies its each and every functionality with requirement documents. Acceptance testing is final testing and is performed before the delivery of application or software to end user for use. Its main purpose is to find the bugs but to get the confidence of end users requirements are fulfilled or not. Acceptance test is the last phase of STLC. After that, maintenance testing is performed on software or application if required.
  • 22.
    Black-box testing A software testing technique wherebythe internal workings of the item being tested are not known by the tester.
  • 23.
    Methods of Black boxTesting 1. Graph Based Testing Methods 2. Error Guessing 3. Boundary Value Analysis
  • 24.
    White-box testing White-box testing(also known as clear box testing, glass box testing, transparent box testing, and structural testing) is a method of testing software that tests internal structures or workings of an application, as opposed to its functionality (i.e. black-box testing).
  • 25.
    Three basic stepsthat white- box testing:- i. Input ii. Processing Unit iii. Output
  • 26.
    White-box test design techniques 🞅Controlflow testing 🞅Data flow testing 🞅Branch testing 🞅Path testing 🞅Statement coverage 🞅Decision coverage.
  • 27.
    Advantages:- I. Side effectsof having the knowledge of the source code. II. Optimization of code by revealing hidden errors and being able to remove these possible defects. III.Gives the programmer introspection
  • 28.
    Disadvantages:- 🞅White-box testing bringscomplexity 🞅it is not realistic to be able to test every single existing condition of the application and some conditions will be untested
  • 29.
    Alpha testing Testing donewhen development is nearing completion; minor design changes may still be made as a result of such testing.
  • 30.
    Beta Testing Testing whendevelopment and testing are essentially completed and final bugs and problems need to be found before release
  • 32.