A Case Study in Risk Based Testing
A Case Study in Risk Based Testing
Introduction
This article presents a case study of a risk-based testing pilot project at CA, the
world's leading independent IT management software company.
The development team chosen for this pilot is responsible for a widely-used
mainframe software product called CA SYSVIEW Performance Management, an
intuitive tool for proactive management and real-time monitoring of z/OS
environments. By analyzing a vast array of performance metrics, CA SYSVIEW can
help organizations identify and resolve problems quickly. Companies are highly
dependent on the reliability of their mainframe systems. If the mainframe doesnt
run, the company stops. Mainframe workloads also are growing considerably as
companies businesses grow and as they continually seek to leverage data and
applications in new ways.
At the same time, these companies are losing their experienced mainframe
workforce, largely to retirement. This makes the quality of their mainframe
management tools even more important to them.
CA piloted risk-based testing as part of our larger effort to ensure the quality of the
solutions we deliver. The pilot consisted of six main activities:
This article addresses each of these areas as well as some of the broader issues
associated with risk-based testing.
What is Risk-Based Testing?
Generally speaking, risk is the possibility of a negative or undesirable outcome or
event. Testing is concerned with two main types of risks:
Product or quality risks, which are problems that can potentially affect the
quality of the product itself, such as a defect that could cause a system to
crash during normal operation.
Project or planning risks, which are problems that can potentially affect
overall project success, such as a staffing shortage that could delay
completion of a deliverable.
Of course, not all risks are equal and there are a number of ways to classify the
different levels of risk. The simplest is to look at two factors:
www.rbcs-us.com
Page 1 of 11
Risk-based testing is guided by the level of risk associated with items identified
during analysis. Although risk can guide testing in various ways, there are three
common ones.
First, during all test activities, test teams allocate effort to each quality risk item
based on the relative level of risk. Test managers and analysts align the rigor and
extensiveness of test techniques with the level of risk. They carry out test activities
in risk order, starting with the most important risks. They also work with the project
team to prioritize resolution of discovered defects based on the level of risk.
Second, test managers implement control steps for all significant identified project
risks. A control step is either a mitigation (something done in advance to reduce the
likelihood and/or impact of a risk) or a contingency (something you are prepared to
do if the risk becomes an event to reduce the impact of the event). The higher the
level of risk, the more thoroughly that project risk is controlled. These project risks
must include risks related to testing itself, since problems during test execution can
reduce test scope and thereby result in quality risks.
Third, test managers and test analysts report test results and project status in terms
of residual risks. Which tests have been run and which havent? Which have passed?
Which have failed? Which defects have not yet been fixed or retested? How do the
tests and defects relate back to the risks?
In other words, with risk-based testing, risk management is an ongoing event. The
above three responses to risk occur throughout the project lifecycle. Quality risks
are mitigated by running tests, and project risks are mitigated by controls. Risks
and risk levels are periodically re-evaluated based on new information, and, if
necessary, priorities, allocation of effort, and project controls are modified.
Why Adopt Risk-Based Testing?
All testing faces two serious challenges. First, the set of possible test cases is
infinite. So, if test coverage is measured by dividing the number of tests run by the
number that could have been run, test coverage is always zero percent (n/ = 0).
In fact, testers always select a relatively small subset of tests from the set of tests
that they could possibly run so they have to be very smart about that selection.
Selection based on risk makes the most sense both in terms of product quality and
project success.
Second, because projects cannot take an infinite amount of time, all testing is timeboxed but the time-box is not a fixed size. Changes in upstream task durations for
the project often compress the time-box for subsequent testing. The risk-based
prioritization of tests directly addresses this challenge. By prioritizing tests according
both to likelihood and impact, testers give themselves the best possible chance of
discovering the worst possible problems. Also, at any given time during the test
execution period, the tests that have been run are more important than the tests
that have not yet been run. This allows test managers to make risk-based test
www.rbcs-us.com
Page 2 of 11
How to perform a quality risk analysis and align testing with risk levels
How to monitor quality risks during test execution and report risk-based test
results
www.rbcs-us.com
Page 3 of 11
Rating
Comments
Very likely
Likely
Somewhat likely
Unlikely
Very unlikely
The participants struggled with the assessment of impact. Initially, we used the
scale shown in Table 2. Serious debates occurred among participants about the
different distinctions, particularly between the must-fix now and the must-fix
schedule impacts. This slowed the process considerably.
Impact
Rating
Comments
Must-fix now
Must-fix schedule
Should fix
Good-to-fix
Dont fix
www.rbcs-us.com
Page 4 of 11
www.rbcs-us.com
Page 5 of 11
Count
Impact
Count
10
52
25
32
39
26
www.rbcs-us.com
Page 6 of 11
Rating
Comments
Must-fix now
Must-fix no
workaround
Must-fix
w/workaround
Good-to-fix
Limited value to
fix
www.rbcs-us.com
Page 7 of 11
www.rbcs-us.com
Page 8 of 11
RPN Range
Extent of
Testing
Comments
1 12
Extensive
13 16
Broad
17 20
Cursory
21 25
Opportunity
www.rbcs-us.com
Page 9 of 11
The ability to find the scary stuff first. Risk-based testing delivered a
lot of value in terms of issue discovery. It enabled the team to pinpoint
potentially serious problems that required remediation early in testing. This
gave developers plenty of time to make changes without adversely affecting
the overall project timeline.
We also learned several important lessons about risk-based testing and risk analysis.
One important lesson was to include business users and, in the future, potentially
even customers in the risk analysis process. Technical staff tend to think about
risk impact primarily in technical terms, such as outages or functional annoyances.
But people from the business side were able to offer better insight into what kinds of
issues would be most problematic for them in terms of personal productivity or
business process failures. This insight is invaluable for accurately assigning risk
priority numbers to testing tasks.
As software developers are called upon to deliver increasingly sophisticated and
complex products within tighter and tighter resource constraints, prioritization of
testing tasks will become increasingly important both for achieving product quality
and for meeting project deadlines. Risk-based testing planning is therefore an
essential discipline and one that testing teams should start adopt as soon as they
can.
www.rbcs-us.com
Page 10 of 11
www.rbcs-us.com
Page 11 of 11