Tuesday, 21 February 2017

Risk Based Testing -Agile projects

RISK BASED TESTING:

Risk-based testing is an approach in which the test efforts are directed toward the highest-risk areas. But Agile is all about being flexible when it comes to requirements and incremental approaches, so this makes one wonder, "How can a risk-based approach work in Agile environments? We would require a definitive requirements specification when finding the highest-risk areas." Well, of course, Agile development does not mean that testing is ad hoc. 

When each sprint is defined and tasks are assigned, testers can start creating a risk-based analysis by using the stories given for that iteration, identifying the high-risk stories that can be tested on that iteration, and prioritizing the user stories depending on their criticality to the business. This will ensure proper regression and integration testing for each sprint. Highest-risk tasks must be placed in the earliest sprints.  

Risk based testing as a proven best practice for test analysis, planning, estimation, design, execution and results reporting in each agile iteration.

RISK TYPES:
Process Risk:  Testing process, Development process, project process
Project Risks:  Late tester involvement,  Mandated tests
Product Risks: Platform, Component, Integration, Infrastructure, Usability
Technical Risk: Risk related to technical components to be tested, may be infrastructure based
Business Risk:  Relate to the impact to the business, customers, partners and share holders

Getting to a Risk based test strategy:
Step 1: Review Product Risks, quality requirements
Step 2: Based on product risks, quality requirements- Identify what to test and how much to test
Step 3: Determine types of test to use and when?
Step 4: Determine test techniques used
A Good Test strategy should be:

Diversified , Risk Focused, Product Specific, Practical-, Based on Maturity

ASSESSING QUALITY RISKS ON AGILE PROJECTS:
Select, allocate and prioritize test conditions to maximize effectiveness
Quality risk analysis supports this process
 Risk- A possible negative outcome
 Level of risk - based on likelihood and impact
 Quality Risks- Potential problems for projects
 Project Risks- potential problems for project success
Agile Quality Risk analysis occurs:
 At high level during the release planning by business stakeholders
In Each iteration tester designs, implements and executes tests for the risks
QUALITY RISKS:
Quality risks include all features and attributes that can effect customer, userm stakeholder satisfaction
 Incorrect calculations (functional risk)
 Slow response time (non-functional performance risk)
 Confusing Interface (non-functional usability risk)
Risk analysis prioritizes tasks and guides the sizing of the taks
 High risk requires extensive testing, come earlier, and involve more user stories
 Low risk requires/receive cursory testing, come later, and involve fewer story points
Risk-based prioritization includes prioritization and includes release and iteration backlog items
PROCESS OF QUALITY RISK ANALYSIS:
Gather agile team
List iteration backlog items
Identify functional, non-functional quality risks for each items
Assess identified risks : categorize each risk and determine each rick level
Build consensus and ensure a good distributions of risk ratings
Use level of risk to choose extent of testing
Risk analysis may detect opportunities for early defect removal (Problems in user stories)

RISK ELEMENTS:
Likely-hood Technical risk of problem'
Impact- business, customer operational risk of problem
Risk Priority - aggregate measure of problem
Tracing- tracing information to requirements, user story, other risk basics
Risk category: a hierarchy of risk categories can help organize the list
ALLOCATION OF TEST EFFORT:
Extensive:  Run large number of tests both broad and deep combine and vary interesting conditions, use all relevant techniques with strong coverage criteria
Broad: run medium number of tests, exercise many different interesting conditions , use most relevant techniques with medium coverage criteria
Cursory: Run small number of tests sample most interesting conditions use different techniques with weak coverage area
Opportunity: Leverage other tests or activities to test 1-2 interesting conditions, investing very little time and effort using reactive techniques especially
Report bugs only: Allocate only a small amount of extra time to report ans manage these accidental bugs
COLLABORATIVE USER STORY CREATION:
Developers, testers and business stakeholders collaborate to capture requirements in user stories
*User stories include:
 Functional and non-functional elements
*Acceptance criteria for each element
Testers bring a unique perspective to this process
 Identify missing elements
 Ask open ended questions
 Identify the quality and project risks
 Suggest tests for the user story
 Confirm the acceptance criteria
Acceptance criteria clarify the feature and establish clear completion measures
CREATING USER STORIES:
*INVEST TECHNIQUE
 Independent
 Negotiable
 Valuable
 Estimable
 Sized appropriately
 Testable
*Collaborations can also brainstorm and mind gap
*3C elements
 Card: Physical description of user story
 Conversation: how the software will be used
 Confirmation: checking of acceptance criteria (possitive and negative by various participants)
* User story documents [concise, sufficient, necessary]
**COMMUNICATING TEST RESULTS"
Test progress can be recorded using automated test results, agile task boards, and burn down charts
Test status can be communicated via wikis, standard test management tools and during stand-ups
Project, product and process metrics can be gathered (Customer satisfaction, test pass/fail, defects found/fixed, test basis coverage, risks mitigated etc)
Automating the gathering and reporting of status and metrics allows test

When to stop Risk Based Testing?
1.       What are the risks of stopping now?
2.       What are the benefits of stopping now?
3.       Have sufficient benefits been delivered?
4.       Are there any critical problems/risks exist?
5.       Do we have the evidence to support a risk based decision?

Benefits of Risk Based Testing

The benefits of Risk Based Testing is given below
  • Improved productivity and cost reduction
  • Improved Market opportunity (Time to market) and On time delivery.
  • Improved service performance
  • Improved quality as all of the critical functions of the application are tested.
  • Gives clear information on test coverage. Using this approach, we know what has/have not been tested.
  • Test effort allocation based on risk assessment is the most efficient and effective way to minimize the residual risk upon release.
  • Test result measurement based on risk analysis enables the organization to identify the residual level of quality risk during test execution, and to make smart release decisions.
  • Optimized testing with highly defined risk evaluation methods.
  • Improved customer satisfaction – Due to customer involvement and good reporting and progress tracking.
  • Early detection of the potential problem areas. Effective preventive measures can be taken to overcome these problems
  • Continuous risk monitoring and assessment throughout the project's entire lifecycle helps in identification and resolution of risks and address the issues that could endanger the achievement of overall project goals and objectives.
Summary:
Risk based testing is the most efficient way to guide the project based on risks.
The testing efforts are effectively organized, and level of priority of each risk item is rated. Each risk is then associated with the appropriate test activities, where a single test having more than one risk item, then the test is assigned as the highest risk.
Tests are executed according to the risk priority order. Risk monitoring process helps in keeping track of the identified risks, and reducing the impacts of residual risks.

No comments:

Post a Comment