CSCE 431 Lecture 18
« previous | Thursday, March 27, 2014 | next »
Test Quality Measures
is system composed of components denoted is the number of killed mutants after applying 's unit test sequence to . is the total number of mutants of component
Mutation score for and its unit test sequence is given by:
Test quality is defined as .
System test quality is a measure of the quality of the entire test suite for the entire system; given by
Who Tests?
Any significant project should have a separate QA team
- avoids self-delusion (blinders; the programmer will seldom catch his own bugs)
- QA requires a skill-set of its own
Developers typically do their own unit tests
Developers and QA typically perform integration testing
QA Team does system testing
Customer and QA team do acceptance test.
Test Report Classification
Severity
- severity clasess defined in advance
- applied to every reported failure
- analyzes each failure to determine whether it reflects a fault, and if so, how damaging
For example:
- not a fault (feature)
- cosmetic
- minor
- serious
- blocking
Status
- Registered, just reported
- Open and working
- Re-opened (thought it was fixed, but not)
- Corrected
- Integrated
- Delivered
- Closed
- Irreproducible
- Canceled
IEEE 829: Testing Documentation
Issue Tracking Systems
Pick one and use it E.g. Traq, Bugzilla
Full-Employment Theorem for Software Testing Researchers
Pesticide Paradox
Every method you use to prevent or find bugs leaves a residue of subtler bugs against which those methods are ineffectual.
Unlike real bugs, software bugs immune to current testing methodologies do not evolve and multiply themselves.
Instead, killing the "easy bugs" allows software to grow with more features and more complexity, creating new possibilities of these subtle defects to manifest themselves as failures.
Therefore, need for new softwere testing technologies is guaranteed ad infinitum
Boris Beizer, Software Testing Techniques, 2nd edition, 1990
Code Review
- Overview
- Author provides overview of code for reviewers
- Preparation
- Reviewers work alone to scrutinize for errors
- review rate 100–500 lines per hour
- reviewers can be assigned perspectives (API, user's view, etc)
- Inspection meeting
- Reviewer paraphrases code (explains logic)
- Moderator keeps track
- Scribe keeps record
- Post-Meeting discussion
Summary
Having a human read code or use a system detects 80% more faults per (human) hour than testing.
No technique (human or automated) catches more than 75% of bugs; average is around 40%