Guide to the Unified Process Featuring UML, Java and Design Patterns

This chapter briefly outlines the test discipline and highlights the relationship between test cases and use cases. As testing and quality assurance are very large subjects in their own right we do not try to produce an exhaustive description here (see Hetzel, 1998). Instead we highlight the structure of this discipline.
The purpose of the test discipline is:
To plan the tests to be performed for each iteration of the system as well as the final deliverable.
To design and implement the test cases by creating executable test cases (which include any test harnesses required).
To systematically perform the tests and analyze the results obtained.
The aim of the test discipline is to ensure that the system provides the required functionality. As the required functionality was originally captured in the form of the use cases in the use case model there is obviously some form of relationship between the two. In fact, the use cases are an ideal place to start looking for potential test cases. That is, the use cases specify what inputs a user will provide to the system, what actions they expect to happen in what order (they even specify what should happen if something goes wrong) and what the end result is expected to be. In some cases non-functional requirements may also have been documented with the uses cases (and may certainly have been identified during the requirements discipline).
Therefore the system as implemented...