Thursday, March 22, 2012

Basics of software Testing

Software testing

Software testing is the process of analysing a software for the purpose of finding defect.
The fundamental objective of testing is to find defects,as early as possible and get them fixed.

Software has bugs because of the following reasons
  • Increased complexity of softwares
  • Unclear Requirement specificatons
  • Programming errors
  • Poor Knowledge transfer
  • Deadlines


Principles of software testing
  1. Testing shows presence of defects :-testing cannot prove that the software is defect free. Even if no defects are found,its not a proof of correctness.Testing only reduces the probability of undiscovered defects in the software
  2. Exhaustive testing is imposible :-Exhaustive testing means executing a program with all possible combination of inputs or values of program variables.Testing everything is not feasible and is impossible.
  3. Early Testing:-Finding defects early will reduce the cost so need to introduce testing in the early stages of SDLC .
  4. Defect Clustering:-A small number of modules usually contains most of the defects discovered during testing.
  5. Pesticide paradox:-If the same tests are executed over and over again ,eventually the same set of test cases will no longer find any new defects.To overcome this,test cases need to be regularly reviewed and revised.
  6. Testing is Context dependent:-Testing is done differently in different context
  7. Absence of Error fallacy:-Finding and fixing defects does not help if the system built is unstable.

No comments:

Post a Comment