Which of the following statements best describes the role of impact analysis in maintenance testing?

A. Maintenance testing is triggered by changes to the software environment and uses structural testing to ensure the changes function correctly

B. Maintenance testing is triggered by changes to software under development before initial delivery and uses the test plan to determine how much regression testing to do

C. Maintenance testing is triggered by changes to the test environment and uses testing tools to perform regression testing

D. Maintenance testing is triggered by changes to delivered software and uses impact analysis to minimise the amount of regression testing needed

A. Maintenance testing is triggered by changes to the software environment and uses structural testing to ensure the changes function correctly

B. Maintenance testing is triggered by changes to delivered software and uses impact analysis to minimise the amount of regression testing needed

C. Maintenance testing is triggered by changes to the test environment and uses testing tools to perform regression testing

D. Maintenance testing is triggered by changes to software under development before initial delivery and uses the test plan to determine how much regression testing to do

Maintenance Testing

Once deployed to production environments, software and systems need to be maintained. Changes of various sorts are almost inevitable in delivered software and systems, either to fix defects discovered in operational use, to add new functionality, or to delete or alter already-delivered functionality. Maintenance is also needed to preserve or improve non-functional quality characteristics of the component or system over its lifetime, especially performance efficiency, compatibility, reliability, security, , and portability.

When any changes are made as part of maintenance, maintenance testing should be performed, both to evaluate the success with which the changes were made and to check for possible side-effects (e.g., regressions) in parts of the system that remain unchanged (which is usually most of the system). Maintenance can involve planned releases and unplanned releases (hot fixes).

A maintenance release may require maintenance testing at multiple test levels, using various test types, based on its scope. The scope of maintenance testing depends on:

  • The degree of risk of the change, for example, the degree to which the changed area of software
  • communicates with other components or systems
  • The size of the existing system
  • The size of the change

Triggers for Maintenance

There are several reasons why software maintenance, and thus maintenance testing, takes place, both for planned and unplanned changes.

We can classify the triggers for maintenance as follows:

  • Modification, such as planned enhancements (e.g., release-based), corrective and emergency changes, changes of the operational environment (such as planned operating system or database upgrades), upgrades of COTS software, and patches for defects and vulnerabilities
  • Migration, such as from one platform to another, which can require operational tests of the new environment as well as of the changed software, or tests of data conversion when data from another application will be migrated into the system being maintained o
  • Retirement, such as when an application reaches the end of its life. When an application or system is retired, this can require testing of data migration or archiving if long dataretention periods are required.
  • Testing restore/retrieve procedures after archiving for long retention periods may also be needed.
  • Regression testing may be needed to ensure that any functionality that remains in service still works.

For Internet of Things systems, maintenance testing may be triggered by the introduction of completely new or modified things, such as hardware devices and software services, into the overall system. The maintenance testing for such systems places particular emphasis on integration testing at different levels (e.g., network level, application level) and on security aspects, in particular those relating to personal data.

Impact Analysis for Maintenance

Impact analysis evaluates the changes that were made for a maintenance release to identify the intended consequences as well as expected and possible side effects of a change, and to identify the areas in the system that will be affected by the change. Impact analysis can also help to identify the impact of a change on existing tests. The side effects and affected areas in the system need to be tested for regressions, possibly after updating any existing tests affected by the change. Impact analysis may be done before a change is made, to help decide if the change should be made,

based on the potential consequences in other areas of the system.

Impact analysis can be difficult if:

  • Specifications (e.g., business requirements, user stories, architecture) are out of date or missing
  • Test cases are not documented or are out of date
  • Bi-directional traceability between tests and the test basis has not been maintained
  • Tool support is weak or non-existent
  • The people involved do not have domain and/or system knowledge
  • Insufficient attention has been paid to the software’s maintainability during development

Which of the following statement best describes the role of impact analysis in maintenance testing?

Which of the following statements CORRECTLY describes a role of impact analysis in Maintenance Testing? Impact analysis is used when deciding if a fix to a maintained system is worthwhile. Impact analysis is used to identify how data should be migrated into the maintained system.

What is the role of impact analysis in maintenance testing?

Impact Analysis for Maintenance Impact analysis evaluates the changes that were made for a maintenance release to identify the intended consequences as well as expected and possible side effects of a change, and to identify the areas in the system that will be affected by the change.

What is impact analysis in testing?

Test impact analysis (TIA) is defined as “a modern way of speeding up the test automation phase of a build. It works by analyzing the call-graph of the source code to work out which tests should be run after a change to production code,” according to Martin Fowler.

Which of the following best describes how value is added by maintaining traceability between the test basis and test artifacts?

Which of the following BEST describes how value is added by maintaining traceability between the test basis and test artifacts? Maintenance testing can be fully automated based on changes to the initial requirements. It is possible to determine if a new test case has increased coverage of the requirements.