Thursday, December 01, 2011

RISK Testing


Overview
    * Risks are potential problems that might affect the successful completion of a software project. Risks involve uncertainty and potential losses. Risk analysis and management are intended to help a software team understand and manage uncertainty during the development process. The important thing is to remember that things can go wrong and to make plans to minimize their impact when they do. The work product is called a Risk Mitigation, Monitoring, and Management Plan (RMMM).
Risk Strategies
    * Reactive strategies - very common, also known as fire fighting, project team sets resources aside to deal with problems and does nothing until a risk becomes a problem
    * Proactive strategies - risk management begins long before technical work starts, risks are identified and prioritized by importance, then team builds a plan to avoid risks if they can or minimize them if the risks turn into problems
Software Risks
    * Project risks - threaten the project plan
    * Technical risks - threaten product quality and the timeliness of the schedule
    * Business risks - threaten the viability of the software to be built (market risks, strategic risks, management risks, budget risks)
    * Known risks - predictable from careful evaluation of current project plan and those extrapolated from past project experience
    * Unknown risks - some problems simply occur without warning
Risk Identification
    * Product-specific risks - the project plan and software statement of scope are examined to identify any special characteristics of the product that may threaten the project plan
    * Generic risks - are potential threats to every software product (product size, business impact, customer characteristics, process definition, development environment, technology to be built, staff size and experience)
Risk Impact
    * Risk components - performance, cost, support, and schedule
    * Risk impact - negligible, marginal, critical, and catastrophic
    * The risk drivers affecting each risk component are classified according to their impact category and the potential consequences of each undetected software fault or unachieved project outcome are described
Risk Projection (Estimation)
    * Establish a scale that reflects the perceived likelihood of each risk
    * Delineate the consequences of the risk
    * Estimate the impact of the risk on the project and product
    * Note the overall accuracy of the risk projection to avoid misunderstandings
Risk Table Construction
    * List all risks in the first column of the table
    * Classify each risk and enter the category label in column two
    * Determine a probability for each risk and enter it into column three
    * Enter the severity of each risk (negligible, marginal, critical, and catastrophic) in column four
    * Sort the table by probability and impact value
    * Determine the criteria for deciding where the sorted table will be divided into the first priority concerns and the second priority concerns
    * First priority concerns must be managed (a fifth column can be added to contain a pointer into the RMMM)
 Assessing Risk Impact
    * Factors affecting risk consequences - nature (types of problems arising), scope (combines severity with extent of project affected), and timing (when and how long impact is felt)
    * If costs are associated with each risk table entry Halstead's risk exposure metric can be computed (RE = Probability * Cost) and added to the risk table.
 Risk Assessment
    * Define referent levels for each project risk that can cause project termination (performance degradation, cost overrun, support difficulty, schedule slippage).
    * Attempt to develop a relationship between each risk triple (risk, probability, impact) and each of the reference levels.
    * Predict the set of referent points that define a region of termination, bounded by a curve or areas of uncertainty.
    * Try to predict how combinations of risks will affect a referent level.
 Risk Refinement
    * Process of restating the risks as a set of more detailed risks that will be easier to mitigate, monitor, and manage.
    * CTC (condition-transition-consequence) format may be a good representation for the detailed risks (e.g. given that <condition> then there is a concern that (possibly) <consequence>).
 Risk Mitigation, Monitoring, and Management
    * Risk mitigation (proactive planning for risk avoidance)
    * Risk monitoring (assessing whether predicted risks occur or not, ensuring risk aversion steps are being properly applied, collect information for future risk analysis, attempt to determine which risks caused which problems)
    * Risk management and contingency planning (actions to be taken in the event that mitigation steps have failed and the risk has become a live problem)
 Safety Risks and Hazards
    * Risks are also associated with software failures that occur in the field after the development project has ended.
    * Computers control many mission critical applications in modern times (weapons systems, flight control, industrial processes, etc.).
    * Software safety and hazard analysis are quality assurance activities that are of particular concern for these types of applications and are discussed later in the text.
 Risk Information Sheets
    * Alternative to RMMM in which each risk is documented individually.
    * Often risk information sheets (RIS) are maintained using a database system.
    * RIS components - risk id, date, probability, impact, description, refinement, mitigation/monitoring, management/contingency/trigger, status, originator, assigned staff member.


No comments: