CSCE 431 Lecture 18

From Notes
Jump to navigation Jump to search

« 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 Face-smile.svg

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%