Introduction to software testing

What is software testing ?

Software testing is a process of evaluating or exercising a software by manual or automation to identify the difference between expected results and actual result in order to assure quality of the software.

—– Software testing principles —–

Testing is context dependent
Testing is done differently in different context for example the way you test a windows application is different than the way you test a web based application.

testing-is-context-dependent

Exhaustive testing is not possible
Testing everything is not possible. for example suppose you want to test a text field which takes 4 digit no.its fine you will test it for different inputs but what if you have 5-10 text fields which takes 4 digit number.

exhaustive-testing

Early Testing
Testing activities should be started as early as possible

Defect clustering
A small number of modules contain most of the defects.

Pesticide paradox
If the same tests are repeated over and over again, the same set of test cases will no longer find any new bug.

Testing shows presence of defect
Testing shows the defect is present but cant prove that there is no defect at all.

Absence of error is a fallacy
Finding and fixing the defect does not help if the system build is useless.