Session 4.5 - Designing for Usability & Testability
Chapter 7: Designing with Teams | Duration: 1 hr
Learning Objectives
By the end of this session, you will be able to:
- Use scenarios and prototypes to improve usability
- Design to minimize special test code and maximize test coverage
- Apply black-box vs. white-box testing concepts to design
- Plan integration/system tests early to reveal design defects
Introduction
Usability and testability are design concerns, not afterthoughts. Chapter 7 urges teams to prototype user interfaces and plan tests during design, often finding more defects during test planning than during execution.
Designing for Usability
- Create scenarios for every key user function (normal and error paths).
- Prototype UIs; validate with representative users when possible.
- Review scenarios with application experts to confirm flows.
Designing for Testability
Thorough unit testing may require significant test code; good design minimizes special drivers and harnesses. Plan integration tests while defining interfaces.
Design Moves
- Develop components in an order that reduces need for test drivers.
- Define clean interfaces for easier isolation and testing.
- Use scenarios to build integration/system test plans early.
Black-Box & White-Box Testing
| Type | Description | Design Implications |
|---|---|---|
| Black-box | Validate external specs; user-like usage. | Need interface drivers for components; leverage system-level scenarios. |
| White-box | Validate internal logic/paths. | Provide access hooks or tools; ensure structure is testable. |
Summary
- Use scenarios and prototypes to drive usability decisions early.
- Design to reduce special test code; plan integration tests while defining interfaces.
- Apply both black-box and white-box testing; design supports each.
- Test planning during design often reveals defects faster than execution.