What Is Impact Analysis In Software Testing?

This Tutorial Explains what is Impact Analysis, it Advantages, how to Conduct it, and how to Prepare Impact Analysis Document:

As we know, technology has both positive and negative impacts on society. Every simple change can cause 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.

Impact Analysis in Software Testing

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 in relation to many other modules. So, if we rename the ‘Item’ module, it will inevitably affect other modules.

the ER diagram
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 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 in the system.

How To Conduct An Effective Impact Analysis?

Given below are the steps performed in conducting the analysis for a project:

  1. Prepare a team.
  2. Inspect High-level Modules.
  3. Inspect Low-level Modules.
  4. Evaluate Impact.
  5. 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. But after the implementation of 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 get affected by the proposed changes. At this point in time, 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 in it. Team members can prepare a document that lists the impact of changes in each module. They can either use an excel sheet or 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 about the benefit which 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 about the pros and cons of the changes. As a result, they can either accept or deny the changes, after discussing it with the team members and stakeholders.

Testers can perform regression testing. Regression testing helps to recognize the issues among the modules, which has arisen due to the impact of changes in them.

How Is Impact Analysis Method Useful To Developers?

In a project, sometimes the requirement put forward by the client may change, even after starting the development processes. 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 commit 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 doing 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?

The 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 changes. This is a wastage 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 in 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 priorities 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 the 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 Impact Analysis Document. A project may contain many modules, functionalities, and features.

Consider a small project having 5 features:

  1. Login
  2. Profile
  3. Mailbox
  4. Add to favorites
  5. Logout

Given below (Table No.02) is the corresponding Impact Analysis table of this particular project.

Here, the columns represent the modules/features which have changed and 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.

FeaturesLogin Profile MailboxAdd 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.

ColorsDescription
RedHigh influence
YellowModerate Influence
GreenWeek 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

FeaturesLogin Profile MailboxAdd 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. Logout feature (Level of influence: 01) is given the lowest priority.

Level Of InfluenceDescription
3. RedStrong influence
2. YellowMedium
1. GreenLow

Table No.05

FeaturesLogin Profile MailboxAdd 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 influenceDescription
5Very Strong
4Strong
3Medium
2Weak
1Very 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.

ModuleModule1Sub-Module1Sub-Module2Sub-Module3........Module2Sub-Module1Sub-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 columns represent sub-features.

 Sub-Module1Sub-Module2Sub-Module3Sub-Module4Sub-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 ChangesComments by DeveloperPriorityFuture Plans
Module1Chrome browserTest 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 developersIt is one of the most important information needed for the testers while performing testing
PriorityTesters can easily prioritize the testing task with the help of color codes or numbers in the document
Future PlansTesters 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 each and 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. But 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 change.

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 got a clear understanding of Impact Analysis in Testing. Feel Free to share your comments.