Code Coverage Visualization in IDEs via Segmented Testing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing software development tools, such as integrated development environments (IDEs), often require developers to stop coding while testing scripts run, interfering with the simultaneous testing and development process, as they block coding during testing and do not allow continuous visualization of code coverage information.

Innovation Solution

The solution involves separating the functions related to testing from the developer's tool, enabling continuous code coverage information generation and visualization, allowing developers to code without interruption by physically separating the testing functions from the IDE, and using a system where code coverage information is updated and visualized in real-time, such as through color-coding, while coding continues.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If testing scripts are run within the IDE, then code coverage information can be obtained, but the developer is blocked from coding during testing

Engineering Contradiction:
Improvecode coverage informationVSAvoidcoding continuity
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The system separates the testing function into an independent testing tool that operates separately from the IDE. The IDE continues to provide coding functionality while the testing tool independently executes test scripts and collects code coverage information, allowing both activities to proceed simultaneously without mutual interference.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

A communication interface or intermediary mechanism is introduced between the IDE and the testing tool. This intermediary enables the IDE to send code changes to the testing tool and receive code coverage information in real-time, facilitating coordinated operation without direct blocking while maintaining functional independence.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If the IDE blocks coding during testing, then testing can be performed, but continuous visualization of code coverage information is not achieved

Engineering Contradiction:
Improvetesting executionVSAvoidreal-time code coverage feedback
Core Design Contradiction:
ReliabilityVSLoss of information

Solution Approach 1:

The testing tool continuously executes test scripts and updates code coverage information in real-time without interrupting the IDE. The code coverage data is continuously visualized alongside the code being edited, ensuring that useful information flow remains uninterrupted while testing progresses.

Inventive Principle:
Principle #20Continuity of useful action

Solution Approach 2:

The system implements real-time feedback by continuously monitoring code coverage metrics during testing and immediately displaying this information to the developer. This feedback loop allows developers to see the impact of their code changes on test coverage without waiting for testing to complete, maintaining continuous information availability.

Inventive Principle:
Principle #23Feedback

3Productivity

If testing and development are performed simultaneously in the IDE, then productivity improves, but the IDE must manage both functions which increases complexity

Engineering Contradiction:
Improvesimultaneous testing and developmentVSAvoidIDE functionality
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The system architecture is segmented into two independent components: the IDE for development and the testing tool for testing. This segmentation allows each tool to specialize in its function without the complexity of managing multiple functions, while still enabling simultaneous operation through controlled communication between the components.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS10248548B2Code coverage information
Publication Date: 2019.04.02 MICRO FOCUS LLC
  • US10248548B2 patent drawing
  • US10248548B2 patent drawing
  • US10248548B2 patent drawing

AI summary

A technique includes obtaining code coverage information related to lines of code. The code coverage information indicates how the lines of code are covered by a plurality of tests. The technique includes generating a two-way mapping based on the code coverage information. The two-way mapping includes a first mapping that maps a particular test in the plurality of tests to at least one line in the lines of code, which is covered by the particular test; and a second mapping that maps a particular line of code in the lines of code to at least one test in the plurality of tests, which covers the particular line of code.