Purpose:
|
To identify the execution path that will stimulate the desired runtime behavior
|
If the observation and analysis of runtime behavior is to provide the desired insight into the behavior of the
software, you will need to give consideration to which execution paths through the application will be of importance to
explore and of those, which will offer the most opportunity in understanding the runtime behavior of the software.
In general, the most useful scenarios to explore tend to reflect all or part of those that the user will typically use.
As such, it is useful wherever possible to identify scenarios by questioning or otherwise consulting with a domain
expert such as a representative user of the software being developed.
Use cases offer a valuable set of artifacts from which useful scenarios can be identified and explored. As a developer,
the most familiar of these will likely be the use-case realizations which you should begin with if available. In the
absence of use-case realizations, identify any available use-case scenarios that offer a textual explanation of the
path the user will navigate through the various flows of events in the use case. Finally, the use-case flows of events
can be consulted to provide information from which likely candidate scenarios can be identified. The success of this
last approach is improved by consultation with a representative for the uses cases actor or other domain expert.
Testers are another useful resource to consult when attempting to identify useful scenarios for runtime analysis.
Testers often have insight into and experience with the domain through their testing efforts that evolves them into
pseudo-domain experts. In many cases, the stimulus for observing the software's runtime behavior will come from the
results of the testing effort itself.
If this task is driven by a reported defect, the main focus will be to reproduce it in a controlled environment. Based
on the information which has been logged when the problem happened, a number of test case have to be identified as
potential candidates for making the defect occur reliably. You might need to tweak some of the tests or write new ones,
but keep in mind that reproducing the defect is an essential step and for the most difficult cases it will take more
time to stabilize the defect than to fix it.
|