What is Impact Analysis?
- It is a software testing approach that helps us to define all the risks associated with any kind of changes made to the product under test.
- Impact analysis includes analyzing the impact of changes made to features/modules in the application.
- It can be done in almost all phases of the software development life cycle such as project requirements(Requirement collections), feasibility study, system design, Coding, Testing, etc.
- This Impact analysis document will help QA engineers to detect risks associated with any kind of changes done in the module/feature at the early stage.
- It helps to balance the team effort required to produce changes to the system.
- It also helps to use the prototype so that developers and testers can hear the results in the system.
Why is Impact Analysis conducted?
- It is mainly done to understand the possible outcome of implementing the change;introducing too many functionality changes into software can reduce the overall performance of the product.
- To identify all the files, documents and models that might have to be modified if the team decides to implement the change in product.
- To estimate the overall effort needed to implement the change.
- To identify all tasks required to implement the change.
- To list all dependencies on a specific element of the product.
When to perform Impact Analysis in the software testing process?
- When a customer requests for changes to the product.
- When there are changes in product requirements.
- When there are changes to current modules / features.
- When the new module / features are added to the product which could impact internally to the existing non impacted modules.
What is an Impact Analysis document?
- Impact Analysis documents can be used as a checklist to evaluate the changes before we start working on them.
- This document gives a brief description of an issue.
- It includes the estimate of complexity.
- It gives proper information about which functionality to be tested.
- It will help to list down the new test cases for changes done.
- It will be a reference document for the entire team.
How To Make an Effective Impact Analysis ?
- Prepare a Team: Before making any changes to the modules/features in the product we should have a team and all the access of the product should be given to the entire team and we should make sure that team members are having good knowledge on the changes which were made.
- Inspect High Level Modules: All the team members should analyze the critical modules that are very important from customer business point of view. At this stage, the team members should have a better understanding of the strategy and workflow rules in modules.
- Inspect Low Level Modules: After inspecting high level modules, the team should start on low level modules (sub modules/features) and should identify the impact of the changes in it. The team should prepare an impact analysis document that lists the impact of changes in each module.
- Evaluate Impact: Impact analysis documents prepared by the team will be listing both the positive and the negative impacts of the changes made.Through that document, the team can have a clear understanding of the benefits as well as the issues that may arise due to the changes made.
- Manage Negative effects: At this stage, the team will be aware of all the advantages and disadvantages of the changes made to the product. By analyzing those consequences, the team can accept or deny the changes after discussing them with the product manager.
How is Impact Analysis useful to QA?
- Communication between the developers and QA is very important. Sometimes QA will not receive any update regarding the changes in the requirements so they will continue the testing process without any information about changes made so it will be a waste of time and effort.
- Without the Impact Analysis method new features in the application will remain ‘Not tested’.
- If Impact analysis is done then QA can start on regression testing.
- After the Impact analysis QA will start writing test plans, new test cases and modifying old test cases according to changes in the requirements.
- With the help of Impact Analysis, the QA team can define the TAT (Turn Around Time) to certify the release and share the quality product to the customers.
How Impact Analysis is Helpful in Market Releases and Customer Releases?
- For Market releases i.e.whenever we release a new version of our product to Play Store it will consist of few new features / requirements, some enhancements, few deferred bugs so there will be a lot of impacted modules and developers will give all the impacted modules / features. Based on that in B1 build (first Build provided by developers) QA will validate new features and will test all impacted features. QA will find all blocker and P1 issues in B1 build so that developer will get sufficient time to fix those issues. For any Market releases, testing will be more time consuming (approx. 4 weeks sprint cycle) since QA will be doing feature testing, regression testing and smoke testing. If all the impacted areas get covered in B1(First Build) and subsequent build (BF1) then there will be no critical issues at the end of the sprint. Impact analysis plays a vital role and reduces risk and helps in publishing good quality products to market.
- For customer releases (Hotfix), we need to provide the product to customers within a short span of time. Hotfix build will consist of a few customer issues as well as new requirements given by the customer. The developer will give the build with all fixes by mentioning the impacted areas. In this case, the QA will not be doing full regression testing. The QA will be involved only in feature testing, impacted area testing and smoke testing. Here impacted areas play a major role. Quality of the product entirely depends upon the impacted areas since entire regression testing is not done. During customer release, the impacted areas help the QA to certify a good quality product within a short span of time.
Advantages of Impact Analysis:
- Impact Analysis documents always provide accurate data regarding the changes that are made in modules/features in the software.
- Efficiency in testing will be increased since the document provides clear information about the changes.
- Synchronized Work environment will be maintained as all the team members are responsible for updating the impact analysis document.
- Testing will be more precise.
- Testing time will be reduced since we will be concentrating on impacted areas.
- Test coverage will increase.
- Test results will be more standardized as developers and QA will be using single impact analysis documents.
- Tasks will get prioritized more easily.
- Entire team will get clear knowledge of the product.
- Bug detection will be easier.
Conclusion:
Any project can be done with or without performing impact analysis but we know the difference between the quality of products that have undergone impact analysis and the ones that have not undergone it. Entire testing time will be reduced by conducting impact analysis, and QA need not waste time in testing other features which have not impacted. Moreover, by preparing impact analysis document communication between developers and QA will improve, which will lead to good quality products. Impact Analysis will give a clear idea on what part of the application needs to be tested and it helps to analyze what level of regression testing has to be done for releases. There is no standard procedure for conducting impact analysis and it varies from company to company.
Informative,,
Very informative
Informative