Software Quality Gate Enforcement for Parallel Development
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing software development methodologies lack a standardized and automated way to manage quality gates across multiple software parts, especially when dealing with closed-source dependencies, which hinders effective testing and integration of new software parts.
Innovation Solution
A method and apparatus for enforcing quality gates across software parts by executing quality assurance tests, processing result data to extract metrics, and comparing these metrics against configured metric gates, ensuring standardized quality assurance and providing visual feedback on build results.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If multiple software parts are developed in parallel with version control, then development speed and robustness are improved, but quality assurance consistency and standardization across all software parts deteriorates
Solution Approach 1:
The quality assurance process is segmented into distinct quality gates (e.g., code coverage gate, test coverage gate, security gate) that can be independently configured and applied to different software parts. Each quality gate operates as a separate checkpoint that enforces specific metrics, allowing parallel development while maintaining consistent quality standards through modular enforcement.
Solution Approach 2:
The system implements automated feedback mechanisms where quality metrics are collected from each software part, compared against predefined thresholds, and used to determine build success or failure. This feedback loop ensures that quality assurance is not just a manual process but an automated enforcement mechanism that consistently applies standards across all software parts regardless of development parallelism.
2Reliability
If closed-source dependencies are used in software parts, then proprietary technology protection is improved, but testing and integration capability of new software parts deteriorates
Solution Approach 1:
The quality assurance testing process is extracted from the source code itself and applied at the interface level. Instead of requiring access to internal closed-source code for testing, the system extracts and validates only the public interfaces, contracts, and observable behaviors of software parts. This allows thorough testing and integration verification without compromising the proprietary nature of the underlying implementation.
Solution Approach 2:
The system introduces quality gates as intermediary checkpoints that mediate between software parts with closed-source code and the rest of the system. These quality gates act as translators and validators that can assess the quality and compatibility of closed-source dependencies through their interfaces and contracts, enabling integration without direct access to internal implementations.
3Adaptability or versatility
If manual quality assurance processes are used for each software part, then flexibility in evaluation is improved, but automation and standardization across multiple software parts deteriorates
Solution Approach 1:
The quality gate framework provides universal, multi-functional quality assessment capabilities that can be applied across different software parts, languages, and frameworks. The same quality gate infrastructure can enforce code coverage, test coverage, security, and performance metrics uniformly, while still allowing flexible configuration of specific thresholds and parameters for each software part type.
Solution Approach 2:
The system enables flexible quality evaluation by allowing parameter changes in quality gate configurations rather than requiring different processes. Users can adjust metrics, thresholds, and validation criteria dynamically for each software part while maintaining the same automated framework. This parameter-based flexibility achieves both standardization through the common framework and adaptability through configurable parameters.
Data Source
AI summary
Provided are a method, system, and device for verifying quality assurance on a plurality of software parts. The method may include, executing a quality assurance test on each software part of the plurality of software parts to receive result data; processing the result data for each software part to extract metrics; receiving a quality gate configuration for the software part type, wherein the quality gate configuration comprises at least one metric gate; comparing the metrics for each software part based on the at least one metric gate; and based on the comparison and the quality gate configuration, outputting a result of the build and the metrics


