The strategy for test design I use in my book -- Use Case Levels of Test -- involves
using a set of use cases associated with a use case diagram – the view of the system to be tested from
30,000 feet -- as a starting point. As such it makes sense to
first begin by asking: Is the use case diagram missing any use cases essential
for adequately testing?
Test
adequacy is typically demonstrated via how well a suite of tests “cover” the
item from which tests are being designed. This is called test coverage. Here’s
how ISTQB defines it:
“Test coverage is the degree ... to which a specified coverage item has been exercised by a test suite”
The C.R.U.D. Matrix; Its Role in Determining the Test Adequacy of a Use Case Diagram
While most of the techniques in the book use the use case as the basis for test coverage – How well do the tests cover some aspect of a use case? – at the use case diagram level where our test design starts, we need some ruler that both measures collections of use cases as a whole, and is separate from the use cases themselves. For this we drop down out of the clouds at the 30,000-foot level (the use case diagram level) down to ground level, to the data that underlies the business domain. And the mechanism we use for analyzing the test adequacy of the use cases in terms of the business domain data is the C.R.U.D. matrix.The C.R.U.D. matrix has been thoroughly covered in the software literature primarily in terms of databases. But it’s also found its way into the use case and testing community, and specific to use case driven testing, Binder[1] has described the use of a C.R.U.D. matrix as a basis for determining test coverage as part of his Extended Use Case Test pattern. As Binder notes
"Test suites developed from individual use cases .. cannot guarantee that all of the problem domain classes in the system under test have been reached. The Covered in C.R.U.D. pattern is a simple technique for identifying such omissions"In a future blog we'll look at going from use case diagram to C.R.U.D. matrix, and how to spot use cases that may be missing for adequate testing of a system.
No comments:
Post a Comment