Test-Driven Code Selection Module for Repository Reuse

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing software development processes face challenges in efficiently reusing and testing code, particularly in identifying suitable programming implementations from a code repository for inclusion in a project, due to the need for multiple tests and metadata analysis to ensure stability and functionality.

Innovation Solution

A method and system for automatically selecting programming implementations from a code repository using a test-driven development approach, where test cases are applied asynchronously, and metadata is used to filter and prioritize results, allowing for the inclusion of well-tested and mature code in a project.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If multiple tests and metadata analysis are performed to identify suitable programming implementations from a code repository, then the reliability and stability of selected code is improved, but the time and complexity of the code selection process increases

Engineering Contradiction:
Improvecode stabilityVSAvoidselection process time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The system performs preliminary actions by automatically executing multiple test cases and analyzing metadata before code selection. Test suites are prepared and run in advance against candidate implementations, and metadata such as test coverage, bug history, and maintenance status are pre-collected and stored. This preliminary assessment creates a ranked list of suitable code implementations, allowing developers to quickly select from pre-validated options without performing time-consuming manual testing and analysis during the actual code selection process.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If multiple tests and metadata analysis are performed to identify suitable programming implementations from a code repository, then the reliability and stability of selected code is improved, but the complexity of the selection process increases

Engineering Contradiction:
Improvecode stabilityVSAvoidselection process complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The system implements self-service by enabling automated self-testing and self-evaluation of code implementations. When code is added to the repository, the system automatically executes test suites, analyzes metadata, and updates the suitability ranking without requiring manual intervention. This automated self-assessment process manages the complexity internally, presenting developers with a simplified interface where they can directly select from pre-validated code options based on automatically generated recommendations.

Inventive Principle:
Principle #25Self-service

3Productivity

If automated test-driven development is implemented for code selection, then productivity and development speed are improved, but the extent of automation required increases system complexity

Engineering Contradiction:
Improvedevelopment speedVSAvoidautomation level
Core Design Contradiction:
ProductivityVSExtent of automation

Solution Approach 1:

The automated code selection system is segmented into distinct functional modules: a test execution module that runs test suites, a metadata analysis module that evaluates code attributes, a ranking module that prioritizes candidates based on test results and metadata, and a selection interface module that presents options to developers. Each module operates independently with well-defined interfaces, allowing the complex automation process to be managed through modular components. This segmentation enables high productivity through comprehensive automation while making the system's complexity manageable through clear separation of concerns.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS9626164B1Test-driven development module for repository-based development
Publication Date: 2017.04.18 SAP SE
  • US9626164B1 patent drawing
  • US9626164B1 patent drawing
  • US9626164B1 patent drawing

AI summary

A method of selecting reusable programming implementations from a code repository for inclusion in a programming project is disclosed. A test is received at a software development tool installed on a system. The test is communicated to an application executing on an additional system for processing. The processing includes determining a result representing an application of the test by the application to each programming implementation of a first search set of programming implementations of a plurality of programming implementations in a code repository. The result includes a first result set of programming implementations selected from the plurality of programming implementations based on each programming implementation of the first result set satisfying the test. The result is received from the additional system. An option is provided to select a programming implementation from the first result set. The selected programming implementation is automatically included in the programming project.