This Tutorial Explains what is Impact Analysis, its Advantages, how to conduct it, and how to Prepare an Impact Analysis Document:
As we know, technology has both positive and negative impacts on society. Every simple change can have an impact on that system. Even a very small change can have a huge impact on the system.
In this tutorial, we will understand the impact analysis in detail and will also see some steps to prepare impact analysis documents.
Let us understand the importance of this analysis with the help of an ER (Entity Relationship) Diagram.
Table of Contents:
Importance Of Impact Analysis
Consider the ER diagram of the Department Shop Management System. We want to edit this data model diagram by renaming the ‘Item’ module to the ‘Product’ module. From Fig: No. 01, we can see that the ‘Item’ module is to many other modules. So, if we rename the ‘Item’ module, it will inevitably affect other modules.
Fig: No. 01: Department Shop Management System
So, before making such changes, we need to analyze well about the data model and the impact of the changes. In cases where the concerned people don’t think carefully about the consequences of changes they are going to commit in the modules, it can affect the proper working of the application itself. This is why impact analysis is very important.
Note: This analysis will show the unexpected behaviors and all the side effects of the application.
What Is Impact Analysis?
It involves analyzing the impact of changes made in features/modules in the application. It can be done on almost all stages of the software development lifecycle like Project Requirements, System Design, Coding, Testing, etc.
- Analyzing modules with the help of impact analysis documents. It will find the risks associated with any kind of changes in a module/product.
- It helps in the estimation of the team effort needed to produce changes in the system.
- It also helps to implement a prototype for the developers and testers to experience the effects of the system.
How To Conduct An Effective Impact Analysis?
Given below are the steps performed in analyzing a project:
- Prepare a team.
- Inspect High-level Modules.
- Inspect Low-level Modules.
- Evaluate Impact.
- Manage Negative Consequences.
Step #1 Prepare a team
Before making any changes to the modules in the application, we need to have a team. Team members should have access to all modules in the application and must possess thorough knowledge about the proposed changes.
Some team members will be unaware of all the modules. However, after the implementation of the impact analysis, all the members will have a thorough knowledge of the system.
Step #2 Inspect High-level Modules
Team members will first analyze the high-level modules in the application, which may be affected by the proposed changes. At this point, they must have better knowledge about the strategy and workflow rules in the modules.
Step #3 Inspect Low-level Modules
After inspecting the high-level modules, team members will inspect the low-level modules and identify the impact of the changes it. Team members can prepare a document that lists the impact of changes in each module. They can either use an Excel sheet or a Word document.
Step #4 Evaluate Impact
The document prepared by the team members will reveal the list of both positive and negative impacts of the changes made. With the help of the document, the team members will have a clear idea of the benefits that may arise due to the change and the issues they will face due to the change.
Step #5 Manage Negative Consequences
Right now, the team members will have a precise idea of the pros and cons of the changes. As a result, they can either accept or deny the changes, after discussing them with the team members and stakeholders.
Testers can perform regression testing. Regression testing helps to recognize the issues among the modules, which have arisen due to the impact of changes in them.
How Is the Impact Analysis Method Useful To Developers?
In a project, sometimes the requirements put forward by the client may change, even after starting the development process. Developers might have done some coding. Later, due to the changes in the requirement, they need to alter their codes. So, developers edit the codes according to the requirements and commit the changes.
There may be more than one developer involved in the development process. In some situations, it is extremely difficult to track the impact of changes in different modules, since more than one developer commits the codes.
Developer ‘A’ may be unaware of the workflow in another module, which is handled by Developer ‘B’. So even if testing is conducted by developers, some modules and features will remain ‘Not Tested’. Developers also needed a good tracking of shared resources.
In such situations, we can conduct software impact analysis meetings before making any changes to the modules. After the meeting, the team members will prepare the Impact Analysis document. It must reflect the latest changes and all risk-based information.
After the meeting, the developers will be aware of all the modules in the application. In such meetings, the opinions of each team member are taken into consideration.
Developers will consider the whole application/final product before making any changes. Testing done by developers will be better. So, the risk of getting errors in the final stage of development will be reduced.
Note: The Impact Analysis document should be kept up to date.
How Is The Impact Analysis Method Useful To Testers?
Communication between the developers and testers is very important. Sometimes, testers will not receive notifications about the changes in the requirement, and they will continue the testing process without any information about the changes. This is a waste of time and resources.
Without the Impact Analysis method, the new features in the application will remain ‘not tested’. If the testers know about the new features that are added to the application, they can start regression testing.
After the analysis, the testers will start creating or modifying the test cases according to the changes in the requirement or new features added to the system.
Note: This analysis will help the testers to decide the areas to focus on testing, and they can prioritize the test cases. Thus, efficiency in testing can be improved.
How To Prepare Impact Analysis Document?
All participants in the impact meeting will contribute to the creation of an impact analysis document. Generally, it is an Excel file. It can also be a Word document.
The template of this document is like a matrix. It is very easy to understand. It has high readability. Please refer to Table No.02 for more details.
Let’s learn to prepare an Impact Analysis Document. A project may contain many modules, functionalities, and features.
Consider a small project having 5 features:
- Login
- Profile
- Mailbox
- Add to favorites
- Logout
Given below (Table No.02) is the corresponding Impact Analysis table of this particular project.
Here, the columns represent the modules/features that have changed and the rows of the matrix represent the modules/features which have been influenced by the changes. The developers will make a mark (\) in the table when a change in Feature ‘A’ influences Feature ‘B’; before this document is given to testers.
Features | Login | Profile | Mailbox | Add to Favorites | Logout |
---|---|---|---|---|---|
Login | \ | ||||
Profile | \ | ||||
Mailbox | \ | ||||
Add to Favorites | \ | ||||
Logout | \ |
Table No.02
To show strong influence, we have used the RED color. The YELLOW color is used to show moderate influence, GREEN color shows a weak influence. Please refer to Table No.03 for more details.
In doing so, testers can easily understand the changes in the modules by looking at the different color codes in the document. The document acts as a checklist for the developers and they can verify if he has missed any module and the dependencies.
Colors | Description |
---|---|
Red | High influence |
Yellow | Moderate Influence |
Green | Week Influence |
Table No.03
If there is a change in the Login feature, it will mostly influence the ‘Login’ feature itself. The changes in the Login feature can influence the ‘Profile’ feature and ‘Logout’ features slightly. This is marked in the Impact Analysis document using color codes. So, the document will look like Table No.04
Features | Login | Profile | Mailbox | Add to Favorites | Logout |
---|---|---|---|---|---|
Login | |||||
Profile | |||||
Mailbox | |||||
Add to Favorites | |||||
Logout |
Table No.04
We can use numbers to indicate the level of influence just shown in Table No.05. So, Table No.04 can be redrawn like Table No. 06.
In Table No.06, the Login feature (Level of influence: 03) is given the highest priority. Profile feature (Level of influence: 02) is given moderate priority. The logout feature (Level of influence: 01) is given the lowest priority.
Level Of Influence | Description |
---|---|
3. Red | Strong influence |
2. Yellow | Medium |
1. Green | Low |
Table No.05
Features | Login | Profile | Mailbox | Add to Favorites | Logout |
---|---|---|---|---|---|
Login | 3. Red | 1. Green | 2. Yellow | ||
Profile | |||||
Mailbox | |||||
Add to Favorites | |||||
Logout |
Table No.06
Note:
- The numbers shown in the table are very helpful to the QA team. They can prioritize the test cases based on the numbers easily.
- Some big projects will have more levels of influence. It’s specified in the below table. (Please check Table No.07 for your reference.)
Level Of influence | Description |
---|---|
5 | Very Strong |
4 | Strong |
3 | Medium |
2 | Weak |
1 | Very Weak |
Table No.07
How to prepare the Impact Analysis document for a project having many features and sub-features?
Consider a project having 20 features and every main feature of that project has 5 sub-features each. The matrix representing the Impact Analysis document is very big and will be difficult to maintain. The corresponding table will look like Table No.08.
Module | Module1 | Sub-Module1 | Sub-Module2 | Sub-Module3 | ........ | Module2 | Sub-Module1 | Sub-Module2 | .............. |
Module1 | |||||||||
Sub-Module1 | |||||||||
Sub-Module2 | |||||||||
............. | |||||||||
Module2 | |||||||||
Sub-Module1 | |||||||||
............. |
Table No.08
So, to overcome this issue, we can use a special table for representing the modules and sub-modules in the impact analysis document. Please refer to Table No.09, the rows represent the main features, and the columns represent sub-features.
Sub-Module1 | Sub-Module2 | Sub-Module3 | Sub-Module4 | Sub-Module5 | |
---|---|---|---|---|---|
Module1 | \ | \ | \ | ||
Module2 | |||||
Module3 | |||||
Module4 | |||||
Module5 |
Table No.09
By using this document for huge projects, the developers can easily mark the sub-features that have an impact due to the change in the main feature. The readability of this document is better when compared to Table No.09.
Note: All sub-features will not have an impact due to changes in the main feature.
Now, consider another project having 50 main modules. The project has a group of developers. Different developers are working on different tasks on the project (adding new features, bug-fixing, refactoring, etc.).
We can show the changes in a project using an Impact Analysis document. The developer will write the information about the corresponding change in the table. Please refer to Table No.10 and Table No.11
Configuration Changes | Comments by Developer | Priority | Future Plans |
|
---|---|---|---|---|
Module1 | Chrome browser | Test using Chrome browser. | Bug Report #001 | |
Module2 | ||||
Module3 | ||||
Module4 | ||||
Module5 | ||||
Module6 | ||||
Module7 |
Table No.10
Items | Description |
---|---|
Configuration Changes | Changes in some modules/features in a project will depend upon devices/ environment used. Developers need to specify the configuration changes in the document so that it will be easy for the testers to understand the changes better. |
Comments by developers | It is one of the most important information needed for the testers while performing testing |
Priority | Testers can easily prioritize the testing task with the help of color codes or numbers in the document |
Future Plans | Testers must be aware of the future plans of developers. If the developers plan to change the codes after few weeks, the testers need not have to test the functionality and waste time. Testers can wait until the developers complete the coding process. |
Table No. 11
Advantages Of Impact Analysis In Testing
- Accurate: This document will always provide accurate data regarding the changes in modules/features in the application.
- Increased Efficiency in testing: With the help of this document the testers can plan test cases more efficiently, as the document provides clear information about the changes in the modules.
- Synchronized Work: All team members are responsible for updating the Impact Analysis document. This document has to be up-to-date.
- Precise: Since the document is easily readable, testers will have a clear idea about the changes in an application by looking at the document.
- Decreased Testing Time: Apart from testing the whole system, the testers can perform testing in the modules and sub-modules that have changed. Testers can prioritize and plan test cases. Thereby they can reduce the testing time.
- Coverage Increased: Using this document, testers will make sure that they have checked the sub-modules that are influenced by the changes in the modules. By doing so, the test coverage for the project will increase.
- Standardization of Test Result: Developers and testers will be using a common Impact Analysis document, which represents every change in the module.
- The responsibility of Team Increases: Team members need to keep this document up-to-date. Every team member is responsible for updating the information about the changes he has made to the system.
- Prioritize the task early and easily: Since the document provides a clear picture of the changes, the testers can prioritize testing according to it.
- Clear knowledge about the product: With the help of this document, both developers and testers will have an idea about all the modules present in the system.
- Easy bug detection: Bug detection is much improved. An impact analysis document is helpful for integration testing.
Conclusion
A project can be done with or without Impact Analysis. However, we have seen the benefits of the Impact Analysis document from the above article. Testing time is highly reduced with the introduction of this document. Testers need not have to waste time by testing the features that don’t have changed.
With the introduction of this document, the communication between the developers and testers is much improved and this leads to efficiency in testing. Testers will have a better idea of the whole system.
We hope you have a clear understanding of Impact Analysis in Testing. Feel Free to share your comments.