Impact analysis is one of the key activities in software testing that helps us to find out the most important risks and to improve the software. Impact analysis in software testing is a vital part. It helps the testers to determine changes, defects, and their impact on business and software applications. In this blog, we will discuss the given points:
- What is impact analysis in software testing?
- Impact analysis in software testing with Example.
- Why is Impact Change Analysis is done?
- Questions to be Addressed During Impact Analysis.
- What are Impact Analysis Documents?
- Impact analysis Tools and Techniques.
- Impact Analysis Best Practices.
What is Impact Analysis in Software Testing?
Impact analysis is the step in software testing which deals with examining and analyzing the impact of an internal or external change and its consequences on the rest of the software system and the business goals it supports. The objective of impact analysis is to determine what effects a change will have on other parts of the software, including operations procedures, documentation, quality assurance, training needs, etc.
Impact analysis in software engineering is done at various stages of the software development life cycle:
- During the requirement analysis or gathering phase
- During the test planning stage
- During verification stage
- After testing is complete
In other words, impact analysis is about reducing risk in the project. It is always done up-front before the tests are written. The people who do it are called “risk analysts,” “software engineers,” or sometimes “business analysts.” It is a professional activity that you can learn. Impact analysis starts with a list of “system components,” i.e., things that need to be built or fixed as part of this project.
An impact analysis consists of three parts:
- Esstimating the probability that a defect will cause each of several bad consequences;
- Estimating the severity of each consequence if it does happen;
- Multiplying probabilities by severities to get an overall estimate of the impact on the system if the defect remains in place.
Calculate the severity Index In Impact Analysis
Impact analysis uses three factors to calculate the severity index:
- Business impact, or how much the failure can cost in terms of money, time and reputation.
- Technical impact, or how difficult or easy it is to fix the defect or workaround the defect exists.
- User impact, or what effect does this defect have on the user, who is affected by this defect.
The impact factors are divided into four categories:
- High, Medium, Low and Negligible.
- If a requirement has a high impact factor then it will be given high priority for testing.
- Similarly, a requirement having a low impact factor will be tested last.
- These factors also help in determining the risks involved in each requirement from different perspectives like security risks, performance risks, data integrity risks, etc.
Impact Analysis in Software Testing with Example.
A customer has requested a feature: The software should automatically detect when there is a failure in the server and inform the customer. What are the side effects or Impacts of this change?
The side effect of all changes is that they change the set of possible behaviors. In this case, the new feature will make some previously undetected failures detectable. This is not a bug; it’s a feature! It’s good for customers to know about failures on their servers. But there are side effects, too:
For example, If the customer has hired us to monitor the server for them, we will be detecting failures more often than before and will therefore have more opportunities to bill them. That’s good for us but maybe bad for them.
Or, extra failures may trigger alerts in their monitoring system, which might cause their pager service to send them false alarms or even warn them away from investigating behavior that is actually an error on their part. That’s bad for them and also bad for us: they might not call (to pay) when they actually need help and we would miss opportunities to bill them. We could measure either of these two effects by seeing what happens when we introduce the feature in our own environment.
Why is Impact Change Analysis is done?
Change Impact Analysis is done to better understand the impact of change on Organizational Goals, Values, Processes, Products, and Services that are related to the change. One of the most important aspects of change impact analysis is that it helps you avoid making changes that will actually harm what you are trying to improve. Some people seem to think that if they can show that a change will help, then it is a good idea. That is not true at all.
If the proposed change is not going to hurt anything else, it might be a good idea. But if you do not understand how it will affect other things in your organization and in your industry, and especially in the world outside, then it might do more harm than good, even if it will help something.
The best example of this is making improvements in your product or service or process or business model. It rarely happens that a proposed improvement will actually make things worse—usually, the problem is that it won’t make enough difference to matter. But there are plenty of things you could do that would make things worse, and they often happen when people don’t bother doing impact analysis.
Questions to be Addressed During Impact Analysis
Impact analysis is a stage of software testing that determines the impacts or importance of defects in an application. Impact analysis can be performed both manually and automatically by using impact analysis tools and techniques. The output of this step would be the defect priority and severity, which would help the testers in deciding what to test first.
Questions to be addressed during Impact Analysis are:
- Why did this defect occur?
- How does it impact the application?
- What will be the impact if it is not fixed?
- How much time is required to fix it?
- What will be the cost of fixing this defect?
- How much time is required for manual testing of this defect?
- Will you get any other useful information from this defect which can help you in the future or can be used for regression testing? Which group of testers should handle this defect?
- Is it a major, minor or cosmetic defect?
Altering the priority and severity of defects in software testing based on answers to these questions helps the testers in determining what kind of testing need to be done at that stage and helps them to plan their time effectively.
What is Impact Analysis Document?
The Impact Analysis document is part of the Project Management documents which are used to carry out the project effectively. The document comes under the strategic planning level of management. It also helps to identify the risks associated with the project so that the team can evaluate them and take corrective actions if any negative impacts are noticed.
The importance of the Impact Analysis document is that it helps to assess the value of the project by helping to analyze the factors which are important for its success.
The impact analysis documents should include
- Who will be impacted?
- Where will people be impacted?
- What impact will the project have?
Impact Analysis Methods
Impact analysis has been defined differently by different authors. Here are some of the Impact Analysis methods described below:
- Top-Down Approach – First, define the system’s primary functions and then break them down into subfunctions and so on until each step in the flowchart ends up being something that can be measured.
- Bottom-Up Approach – Start with the smallest user requirement, break it down into components, then into subcomponents, until all steps in the flowchart end up being things that can be measured.
- Cause-Effect Diagram – Draw a diagram showing all possible causes and effects, then prioritize them and pick out those that have a measurable impact on the customer.
- Decision Tree – A decision tree helps in determining a sequence of events causing an impact on customer satisfaction.
Best Practices for Impact Analysis
We have listed a set of best practices for impact analysis on a software product or process.
- Define the purpose and scope of Impact Analysis at the beginning of your project. This will help ensure that someone is responsible for conducting an impact analysis for each test activity and that there is a consistent approach for analyzing impacts across projects and organizations.
- Define the roles, responsibilities, and accountabilities for Quality Assurance (QA) activities such as risk analysis.
- Define, manage and implement Quality Assurance procedures throughout the software development life cycle.
- Analyse requirements, design, and source code to identify risks that may have an impact on quality.
- Perform Impact Analysis at multiple levels:
- For each test activity, document the objectives of that activity in terms of business benefits to be delivered and quality attributes (e.g., functionality, performance, reliability) that are impacted
- For each requirement (or other deliverable) associated with each business benefit, identify the expected value stream(s) that deliver it by listing the critical tasks (e.g., development, testing, operations). Identify any critical tasks that are not currently being tested and assess their impact if they are not tested
- For each critical task associated with an expected value stream and for which testing is planned, evaluate.
- Pick the right metric to measure. and Figure out what is feasible.
- Evaluate the risks identified by applying risk assessment criteria (see below); – Document all risks identified
- Control risks according to defined risk treatment processes
- Monitor progress of mitigation actions
- Remove residual risks through further testing, re-design, or change control process
- Report on residual
- Make trends visible for your team.