Software Testability
- •
def
- •
the ease with which a system, program, or product can be tested
- •
- •
characteristics
- •
operability — "the better it works, the more efficiently it can be tested"; few bugs block test execution; testing progresses without interruption
- •
observability — "what you see is what you test"; distinct output for each input; system states/variables visible; incorrect output easily identified; internal errors automatically detected and reported
- •
controllability — "the better we can control the software, the more testing can be automated"; hardware and software states can be directly controlled; tests can be conveniently specified, automated, and reproduced
- •
simplicity — "the less there is to test, the more quickly we can test it"; functional simplicity (minimum necessary feature set), structural simplicity (modular architecture), code simplicity (coding standard)
- •
stability — "the fewer the changes, the fewer the disruptions to testing"; software changes are infrequent, controlled, and do not invalidate existing tests
- •
understandability — "the more information we have, the smarter we will test"; dependencies between components are well understood; design changes communicated to testers; technical documentation is accessible and accurate
- •
- •
related