Page 189 - Software and Systems Requirements Engineering in Practice
P. 189
l
i
a
Q
u
A
t
t
y
p
t
a
C
h
5
:
e
r
r
e
i
q
u
t
s
n
m
e
b
u
i
t
r
R
e
t
e
C h a p t e r 5 : Q u a l i t y A t t r i b u t e R e q u i r e m e n t s 155 155
Partially measuring key ASRs can therefore be accomplished by
selecting indicative quality attributes, internal and/or external, that
can be measured early, and measuring them. When results of these
measurements change significantly, it is time to review them and
decide whether the key ASRs that they indicate are in trouble.
For example, in a recent project, we saw that having adequate
performance of the messaging infrastructure was going to be an
important quality attribute and a difficult challenge. Focusing the
project’s attention on it was particularly difficult because the project was
globally distributed and cross-divisional. Therefore, we set out to create
an early testing strategy for the relevant quality attribute scenarios.
First, we discovered that the QASs were written in terms of
complex functionality that could not be tested until late in the project.
But since we were really interested in the infrastructure performance,
we selected much simpler functionality to test, whose performance
would be indicative of the complex functionality’s eventual
performance. We also limited our attention to just four use case
scenarios. We then defined three independent variables to describe
the space of performance tests, with a choice among a handful of
ordinal values on each dimension (see Table 5.3).
We then defined quality attribute measures for four performance
attributes:
• Real-time database memory consumption
• Message throughput
• Message latency
• Command response time
We specified numerical parameter values for each of the
independent variables and wrote automated testing scripts to execute
each of the functional scenarios under each sensible combination of
traffic load and network sensor size. Finally, we specified plausible
success thresholds for each of the performance parameters under
each combination of independent variables.
As soon as the functional scenarios were implemented, we were
able to begin executing these performance tests. We found two
Independent Variable Values
Traffic load Normal, Peak, Burst, Max
Sensor network size Embedded, Small, Medium, Large
Functional scenario Scenario A, Scenario B, Scenario C,
Scenario D
TABLE 5.3 Independent Variables