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.