Parallel Software Testing With Dynamic Test Case Balancing
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
The inefficiency in software testing due to the exponential increase in test case execution time as the number of test cases grows, particularly in the automotive field with the implementation of ISO26262 functional safety protocols, leads to extremely long testing times.
Innovation Solution
The method involves dividing a test case set into multiple sequences and executing these sequences in parallel across multiple test units, adjusting the number of test cases in each sequence based on real-time progress information to ensure all sequences finish simultaneously.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If test cases are executed serially, then the testing process is simple to manage, but the testing time increases exponentially as the number of test cases grows
Solution Approach 1:
The patent divides the test case set into multiple test sequences, where each sequence is assigned to a different test unit for parallel execution. This segmentation allows the testing process to handle multiple test cases simultaneously, thereby reducing total testing time while maintaining manageable complexity through structured organization of test sequences and units.
Solution Approach 2:
The patent transitions from one-dimensional sequential execution to multi-dimensional parallel execution by introducing multiple test units that operate simultaneously. Each test unit processes its assigned test sequence independently, creating a parallel processing architecture that exponentially reduces testing time compared to traditional serial execution.
2Loss of time
If multiple test units execute test cases in parallel, then testing time is reduced, but resource coordination and load balancing become more complex
Solution Approach 1:
The patent implements a feedback mechanism where the testing system continuously monitors the progress of multiple test sequences and dynamically adjusts the distribution of outstanding test cases. Based on real-time progress information from each test unit, the system redistributes test cases to maintain balanced workloads, thereby managing system complexity through adaptive control while preserving parallel execution benefits.
Solution Approach 2:
The patent introduces dynamic test sequence modification during execution, where the number of test cases in each sequence can be adjusted based on real-time progress. This dynamic approach allows the system to adapt to varying execution speeds of different test units, maintaining optimal resource utilization without requiring complex static scheduling arrangements.
3Ease of manufacture
If test sequences have unequal numbers of test cases, then distribution is simpler, but some test units finish earlier while others continue, reducing resource utilization efficiency
Solution Approach 1:
The patent uses feedback from test progress information to dynamically redistribute outstanding test cases among test sequences. When some test units complete their sequences earlier than others, the system detects this imbalance and reallocates additional test cases from completed sequences to ongoing sequences, ensuring all test units remain actively utilized until all test cases are exhausted.
Solution Approach 2:
The patent modifies the parameters of test sequences during execution by dynamically changing the number of test cases assigned to each sequence based on real-time progress. This parameter adjustment allows the system to transition from static unequal distribution to dynamic balanced distribution, maximizing resource utilization efficiency while maintaining operational simplicity.
Data Source
AI summary
A method, an apparatus and a device for software testing, and a computer-readable storage medium are provided. The method includes: acquiring a first test case set for to-be-tested software, and dividing the first test case set into multiple first test sequences; loading, for each of the multiple first test sequences, a test case from the first test sequence to a test unit corresponding to the first test sequence at the beginning of the software testing, to execute test cases by multiple test units in parallel; and during the software testing, acquiring test progress information of the multiple first test sequences, and distributing outstanding test cases in the multiple first test sequences based on the acquired test progress information to modify the numbers of test cases in the respective first test sequences. The outstanding test case is a test case to be loaded into a corresponding test unit for execution.


