Static Analysis for Software Testing Priority

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing software testing tools lack efficiency in determining which units to test first, especially when there are many units with complex relationships, leading to subjective and time-consuming user selection processes.

Innovation Solution

A method and apparatus that utilize static analysis to extract unit-based code indices and evaluate testing effort using formulas, objectively determining which units to test first based on calculated scores.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If static analysis and code index extraction are used to objectively determine testing priority, then test productivity and software quality are improved, but device complexity and processing time increase

Engineering Contradiction:
Improvetest productivityVSAvoidsystem complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The system segments the software testing process into distinct modules: static analysis module that extracts source code information, code index extraction module that generates unit-based metrics, and scoring module that calculates testing effort scores. This segmentation allows each module to handle specific tasks independently, improving overall testing efficiency while managing system complexity through modular design.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system performs preliminary static analysis and code index extraction before actual testing begins. By pre-calculating unit-based code indices and testing effort scores, the system prepares testing priorities in advance, enabling more efficient test execution and improving productivity without adding complexity during the actual testing phase.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If static analysis and code index extraction are used to objectively determine testing priority, then software quality is improved, but processing time increases

Engineering Contradiction:
Improvesoftware qualityVSAvoidprocessing time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The system performs preliminary static analysis and code index extraction before actual testing begins. By pre-calculating unit-based code indices and testing effort scores, the system prepares testing priorities in advance, enabling more efficient test execution and improving productivity without adding complexity during the actual testing phase.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system creates simplified representations of the source code through code indices and metrics rather than analyzing the entire codebase repeatedly. These copied metrics (cyclomatic complexity, number of parameters, number of statements) serve as proxies for detailed code analysis, enabling quick scoring and priority determination without re-processing the original source code.

Inventive Principle:
Principle #26Copying

3Measurement precision

If unit-based code indices are extracted from source code information, then testing effort evaluation becomes more accurate, but measurement precision requirements increase

Engineering Contradiction:
Improvetesting effort evaluation accuracyVSAvoidcode analysis complexity
Core Design Contradiction:
Measurement precisionVSDifficulty of detecting and measuring

Solution Approach 1:

The system extracts specific, measurable attributes from the source code such as cyclomatic complexity, number of parameters, and number of statements. By taking out these discrete code indices from the complex source code structure, the system transforms difficult-to-measure software characteristics into quantifiable metrics that can be easily scored and compared for testing priority determination.

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentUS10621073B2Method and apparatus for testing software by using static analysis results and computer readable recording medium having program for performing the same
Publication Date: 2020.04.14 SURESOFT TECH
  • US10621073B2 patent drawing
  • US10621073B2 patent drawing
  • US10621073B2 patent drawing

AI summary

The present disclosure relates to a method and apparatus for testing software and a computer readable recording medium having a program for performing the same, and more particularly to a method for quickly testing software by using static analysis results and for quickly achieving a desired quality objective and a computer readable recording medium having a program for performing the same. The method for testing software in accordance with the embodiment of the present invention includes a step of statically analyzing a source code of software and extracting pieces of source code information; a step of extracting a unit-based code index from the extracted pieces of source code information; and a step of evaluating testing effort of each unit on the basis of the extracted unit-based code index.