Software Testing Introduction

  ·         What is software testing?

Software testing is a part of software development life cycle. It is the process of
running/evaluating an application/program/document for two reasons

§
  To find errors

§
  To ensure the application meets customer’s requirements.

  ·         What is its importance in software development?

 Testing can

   §  avoid errors in a software

   §
   identify errors in a software

·          When to start testing an application?

 Testing should be started as early as possible. Once requirements are clear &   


  the first document is available, you can  start testing phase by verifying the document.

 
·         When to stop testing?

 No application is bug free. So there is always room for testing. But there are  


 different criteria’s based on which  the  testing of a particular release is  

 stopped. We may stop testing at a very early stage in some particular scenarios
 like:

  §
  No proper specification

  §
  No supporting environment

  §
  The functionality of the system does not justify the specification by any means

     Other common reasons to stop testing are:

  §
  Lack of time (could be due to deadlines)

  §
  Budget issues

  §
  Coverage achieved its target

  §
  Bug rate falls below a particular level.

  ·         What are the different levels of testing?
 
Generally we can say there are levels of testing:

  §
  Unit testing

 Each unit of the software is tested separately. The functional & non functional characteristics may be tested. Mostly tools are used to help in unit testing. White Box testing techniques are used here.

  §
  Integration Testing

     The individually tested units now need to be integrated & tested. The interface & interactions between these  units  are tested in integration testing. This may include White Box testing or Black Box testing or a mixture of both called   Gray Box Testing.

  §
  System testing

     When all the units are integrated system as a whole is tested for its functional & non functional attributes. Black Box testing is used in system  testing.

  §  User Acceptance Testing

       This is done by the user of the system. The customer tests the system to ensure that it is fit enough to be released and also the requirements are met. Defect finding is not given much emphasis.
Picture