Dynamic Impact Analysis for Software Test Case Synchronization

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current impact analysis methods, relying on static code analysis and dynamic call stack analysis, are insufficient in identifying changes to one function point that may affect disconnected function points due to dynamic calls or shared runtime entities, especially in large and evolving software applications, leading to out-of-sync test cases and loss of knowledge about impacted artifacts.

Innovation Solution

A method and system for dynamic impact analysis that tracks historical changes, generates impact records datasets, classifies changes using a text corpus, and predicts potential impacts on test cases through an impact matrix and probability engine, ensuring accurate identification of affected test cases and components.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If static code analysis and dynamic call stack analysis are used to identify changes, then the analysis process is simple and fast, but the identification accuracy is insufficient for disconnected function points affected by dynamic calls or shared runtime entities

Engineering Contradiction:
Improveidentification accuracyVSAvoidanalysis complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The system transitions from static code analysis to dynamic impact analysis by executing the application with instrumented code that tracks runtime behavior. This allows the system to identify impacted function points based on actual runtime execution paths, dynamic calls, and shared runtime entities rather than relying solely on static syntax and call graph analysis.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

An instrumentation engine is introduced as an intermediary component that instruments the application code to generate execution traces. This intermediary layer captures runtime behavior without fundamentally altering the application logic, enabling accurate identification of impacted function points while maintaining a clear separation between the analysis system and the application being analyzed.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If the application size and functional components increase, then the application becomes more comprehensive and capable, but the impact analysis becomes more difficult and time-consuming

Engineering Contradiction:
Improveanalysis efficiencyVSAvoidanalysis time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The system performs preliminary instrumentation of the application code before execution, embedding tracking mechanisms that automatically capture runtime behavior. This preliminary action enables the system to efficiently identify impacted function points during actual execution without requiring time-consuming post-execution analysis of large codebases, thus scaling well with application size.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system replaces manual or mechanical static analysis methods with automated dynamic analysis through instrumentation. By substituting the mechanical process of manually tracing dependencies in large codebases with automated runtime tracking, the system achieves better scalability and efficiency as application size increases.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

3Reliability

If developers change and applications age, then the application evolves and adapts to new requirements, but test cases may go out-of-sync with functionality and knowledge about impacts is lost

Engineering Contradiction:
Improvetest case synchronizationVSAvoidknowledge loss
Core Design Contradiction:
ReliabilityVSLoss of information

Solution Approach 1:

The system implements feedback by automatically generating and maintaining mappings between functional components and their impacted test cases through runtime execution tracking. This continuous feedback mechanism ensures that as applications evolve and developers change, the system automatically updates the knowledge base about impact relationships, preventing test cases from going out of sync and preserving institutional knowledge.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The system provides self-service by automatically instrumenting the application, executing it, analyzing the runtime behavior, and generating impact analysis results without requiring manual intervention from developers. This self-service capability ensures consistent and accurate impact identification even as applications age and evolve, maintaining test case synchronization automatically.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS10437586B2Method and system for dynamic impact analysis of changes to functional components of computer application
Publication Date: 2019.10.08 INFOSYS LTD
  • US10437586B2 patent drawing
  • US10437586B2 patent drawing
  • US10437586B2 patent drawing

AI summary

A method and system support dynamic impact analysis of at least one change to at least one functional component of a computer application comprising tracking a historical record of the at least one change, grouping a release dataset and a build dataset for matching with at least one requirement from a requirement data file, generating a plurality of impact records datasets (410) and identifying a nature of change. Further, a plurality of build specific data sets (216) can be generated based on a text corpus (416) related to the at least one change and classifying at least one description based on the nature of change. Further an impact matrix (426) is generated for predicting a potential impact to the at least one test case based on the at least one of a probability of change or a probability of failure.