Fundamentals Of Testing Flashcards
Why testing is important
-costly if mistakes weren’t found
-7/10 it projects fail - can be because for poor testing
-testing can represent 40% of costs
-cost,time and quality benefits to software testing
Why is testing under time pressure
As it’s normal one of the last tasks prior to customer delivery, appropriately planned tests are often subject to time pressure
Example of failure in software
Nasa Nara lander, crashed due to a fault, cost over 50mil 1999
Why does testing matter
Inadequate testing costs us 22-59 billion annually
Can cost lives - therac-25 radiation machine 3 dead
Testing shows if our programs are reliable
How is smaller scale testing done
Reported by users and clients. Issues prioritised examined and resolved . Some issues result of defects
Causes of software defects
Human error e.g. in code or system (bug or defect)
Environmental conditions e.g. radiation, pollution can cause faults in firmware
Developer error -> software defect -> software fails
A failure is present…
A failure is present if a user expectation is not fulfilled adequately
E.g. products too hard to use, too slow
What is a failure
Deviation of the software from its expected delivery or surface
Happens when software does the wrong thing
What can a failure also be called
Problem, incident, issue
What is a defect
A manifestation of human error in software
- can be caused by requirements, design or coding errors
How can defects be discovered
Inspecting code or from software failures
What can a defect also be called
Bug or fault
What is an error
Human action producing an incorrect result
When humans make errors they introduce faults to program code
An error is not
Just an accident or mistake
Not necessarily just incompetence
Are errors inevitable
Errors are inevitable in a complex activity
Why is testing important
Reducing risk of problems in operatioanl environment
Contributes to quality
Contractual or legal requirements
Testing provides evidence it complies to standards
Why is complete testing not feasible
Domain of possible inputs too large
Design issues may be too complex to test
Where are bugs normally found
In clusters
Bug fixing and maintenance are error prone and may cause unintended faults
What is testing
Exploration of a system to find defect
Repeated to ensure defect corrections have been effective
What is debugging
Developers identify cause of defects in code and undertake corrections
Debugging is done before testing
Can be used to understand root cause of failures
Name some test objectives
Finding defects
Gaining confidence about level of quality
Preventing defects
What is static testing
Testing without executing the program
E.g. software inspections
What is dynamic testing
Testing by executing program with real inputs
What is maintenance/regression testing
Testing that no new errors have been introduced
Unit testing
Addresses quality of individual units
Integration testing
Checks if individual components operate together
System testing
Checks if system delivers desired functionality
Testing vs debugging
Testing shows failures caused by defects
Debugging identifies cause if defect and repairs code and makes sure it’s fixed