Software Testing Notes
Software Testing Notes
Case:
Test Case ID -> test condition -> pre-requisitries -> Test Procedure Steps ->
expected Result -> Actual Result -> Pass/Fail -> Priority
Traceability matrix: Ensures the requirements are covered by test cases and can
outline any missing test cases which have not been covered
--------------------------------------------------------------------------Software
Testing:
Software Testing is a method to check whether the actual software product matches
expected requirements and to ensure that software product is Defect free
Test suite: is a collection of scenarios (test cases) defining the scope of testing
for a given execution requirement.
--------------------------------------------------------------------------7
Principles of Software Testing:
3. Early Testing:
- Testing should start early in the SDLC so defects in the requirements or design
phase can be captured early as its much cheaper and effective
4. Defect Clustering:
- Small number of modules contain most of the defects detected
5. Pesticide Paradox:
- If the same set of repetitive tests are conducted, the method will be useless for
discovering new defects
- Therefore, to overcome this, Test cases need to be reviewed and adding new,
different test cases top help find more defects
--------------------------------------------------------------------------Test
Types:
Functional -> Black box testing -> All Levels -> Internal -> Key features i.e
button, text-field -> Specification-based
Non-Functional -> Black box testing -> All Levels -> Internal -> Performace, Load -
> Specification-based
Structural -> White box testing -> Component, Integration and accepptance ->
external -> Measures coverage i.e code coverage, design ->Structure-based
Experiance-based Techniques:
-Error guessing -> Use knowledge of systems and testing to anticipate defects
-Exploratory testing
--------------------------------------------------------------------------Static vs
Dynamic:
Review:
Manual examination of documents
Done by humans
Static Testing:
-Performed early in the lifecycle, before software is written
-Analyse code or documents without running software
-Find defects in code or documents directly
-Defects are cheap to fix
-Add quality into software
Dynamic Testing:
-Performed late in the lifecycle, after software is written
-Execute software and analyse results
-Observe failures in system which could identify defects in code
-Defects are expensive to fix
-Check quality of software