IP Library › Granted Patent US 12,061,537
Granted Patent B2
US 12,061,537 · App. 18/075,174 · Granted Aug 13, 2024

Testing software changes and determining a repeatability of software tests

Inventor: Luke Murchison (Belmont, CA)
Assignee: GM Cruise Holdings LLC
G06F11/368G06F11/3664G06F11/3688
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,061,537
App. No.
18/075,174
Granted
Aug 13, 2024
Kind
B2
Abstract

Systems and techniques are provided for testing software changes and determining a repeatability of software tests. An example method can perform software tests at different timepoints, each software test being based on a test scenario comprising a test simulation environment configured to test a software; determine one or more software tests from the software tests having a variation in test scores that exceeds a divergence threshold, the one or more software tests comprising at least one test scenario; rerun a software test a number of times, the software test configured to test changes to a code of the software, the changes to the code being associated with the software test and/or the at least one test scenario; and determine, based on test scores generated by the software test performed the number of times, a repeatability score for the software test on the changes to the code of the software.

Claims (54)

1. A system comprising:

a memory; and

one or more processors coupled to the memory, the one or more processors being configured to:

perform a number of software tests at different timepoints, each software test from the number of software tests being based on a test scenario, the test scenario comprising a test simulation environment configured to test a software;

determine one or more software tests from the number of software tests having one or more variations in test scores that exceed a divergence threshold, the one or more software tests comprising at least one test scenario;

rerun a particular software test from the one or more software tests a configurable number of times, the particular software test being configured to test one or more changes to a code of the software, wherein the one or more changes to the code of the software are associated with at least one of the particular software test from the one or more software tests and the at least one test scenario; and

determine, based on respective test scores generated by rerunning the particular software test the configurable number of times, a repeatability score for the particular software test on the one or more changes to the code of the software.

2. The system of claim 1 , wherein determining the repeatability score for the particular software test on the one or more changes to the code of the software comprises:

determining a percent of the respective test scores that has a respective test score variation value that is at least one of less than the divergence threshold and equal to zero; and

determining the repeatability score based on the percent of the respective tests scores that has the respective test score variation value that is at least one of less than the divergence threshold and equal to zero.

3. The system of claim 1 , wherein determining the repeatability score for the particular software test on the one or more changes to the code of the software comprises:

determining a value indicating a percent of the respective test scores that has a respective test score variation value that is greater than the divergence threshold, wherein the value is within a range of zero to one; and

determining the repeatability score based on a result of one minus the value indicating the percent of the respective test scores that has the respective test score variation value that is greater than the divergence threshold.

4. The system of claim 1 , wherein determining the one or more software tests from the number of software tests having one or more variations in test scores that exceed the divergence threshold comprises:

identifying each software test, from the number of software tests, that has a test score that is less than the divergence threshold;

filtering the number of software tests at different timepoints to exclude each software test that has the test score that is less than the divergence threshold; and

determining the one or more software tests based on the filtering of the number of software tests to exclude each software test that has the test score that is less than the divergence threshold.

5. The system of claim 1 , wherein the software comprises one or more software stacks of an autonomous vehicle (AV) software.

6. The system of claim 1 , wherein the respective test scores comprise one or more metrics associated with an AV, the one or more metrics comprising at least one of a safety metric, a performance metric, a comfort metric, and an accuracy metric.

7. The system of claim 1 , wherein the divergence threshold is determined based on at least one of an estimated change in a behavior of an AV associated with one or more portions of the software including the one or more changes to the code of the software, one or more actions associated with the one or more portions of the software, and a desired sensitivity or resolution of the repeatability score.

8. The system of claim 1 , wherein the one or more processors are configured to:

based on the repeatability score, determine at least one of a repeatability of the particular software test, an error in the one or more changes to the code of the software, and one or more causes of a regression of the repeatability of the particular software test.

9. The system of claim 1 , wherein the system comprises a computer of an autonomous vehicle.

10. A method comprising:

performing, via one or more processors, a number of software tests at different timepoints, each software test from the number of software tests being based on a test scenario, the test scenario comprising a test simulation environment configured to test a software;

determining, via the one or more processors, one or more software tests from the number of software tests having one or more variations in test scores that exceed a divergence threshold, the one or more software tests comprising at least one test scenario;

rerunning, via the one or more processors, a particular software test from the one or more software tests a configurable number of times, the particular software test being configured to test one or more changes to a code of the software, wherein the one or more changes to the code of the software are associated with at least one of the particular software test from the one or more software tests and the at least one test scenario; and

determining, based on respective test scores generated by rerunning the particular software test the configurable number of times, a repeatability score for the particular software test on the one or more changes to the code of the software.

11. The method of claim 10 , wherein determining the repeatability score for the particular software test on the one or more changes to the code of the software comprises:

determining a value indicating a percent of the respective test scores that has a respective test score variation value that is greater than the divergence threshold, wherein the value is within a range of zero to one; and

determining the repeatability score based on a result of one minus the value indicating the percent of the respective test scores that has the respective test score variation value that is greater than the divergence threshold.

12. The method of claim 10 , wherein determining the one or more software tests from the number of software tests having one or more variations in test scores that exceed the divergence threshold comprises:

identifying each software test, from the number of software tests, that has a test score that is less than the divergence threshold;

filtering the number of software tests at different timepoints to exclude each software test that has the test score that is less than the divergence threshold; and

determining the one or more software tests based on the filtering of the number of software tests to exclude each software test that has the test score that is less than the divergence threshold.

13. The method of claim 10 , wherein the software comprises one or more software stacks of an autonomous vehicle (AV) software, and wherein the one or more processors are hosted on a computer of the AV.

14. The method of claim 10 , wherein the respective test scores comprise one or more metrics associated with an AV, the one or more metrics comprising at least one of a safety metric, a performance metric, a comfort metric, and an accuracy metric.

15. The method of claim 10 , wherein the divergence threshold is determined based on at least one of an estimated change in a behavior of an AV associated with one or more portions of the software including the one or more changes to the code of the software, one or more actions associated with the one or more portions of the software, and a desired sensitivity or resolution of the repeatability score.

16. The method of claim 10 , further comprising:

based on the repeatability score, determining at least one of a repeatability of the particular software test, an error in the one or more changes to the code of the software, and one or more causes of a regression of the repeatability of the particular software test.

17. The method of claim 10 , wherein determining the repeatability score for the particular software test on the one or more changes to the code of the software comprises:

determining a percent of the respective test scores that has a respective test score variation value that is at least one of less than the divergence threshold and equal to zero; and

determining the repeatability score based on the percent of the respective tests scores that has the respective test score variation value that is at least one of less than the divergence threshold and equal to zero.

18. A non-transitory computer-readable medium having stored thereon instructions which, when executed by one or more processors, cause the one or more processors to:

perform a number of software tests at different timepoints, each software test from the number of software tests being based on a test scenario, the test scenario comprising a test simulation environment configured to test a software;

determine one or more software tests from the number of software tests having one or more variations in test scores that exceed a divergence threshold, the one or more software tests comprising at least one test scenario;

rerun a particular software test from the one or more software tests a configurable number of times, the particular software test being configured to test one or more changes to a code of the software, wherein the one or more changes to the code of the software are associated with at least one of the particular software test from the one or more software tests and the at least one test scenario; and

determine, based on respective test scores generated by rerunning the particular software test the configurable number of times, a repeatability score for the particular software test on the one or more changes to the code of the software.

19. The non-transitory computer-readable medium of claim 18 , wherein determining the repeatability score for the particular software test on the one or more changes to the code of the software comprises:

determining a percent of the respective test scores that has a respective test score variation value that is at least one of less than the divergence threshold and equal to zero; and

determining the repeatability score based on the percent of the respective tests scores that has the respective test score variation value that is at least one of less than the divergence threshold and equal to zero.

20. The non-transitory computer-readable medium of claim 18 , wherein determining the repeatability score for the particular software test on the one or more changes to the code of the software comprises:

determining a value indicating a percent of the respective test scores that has a respective test score variation value that is greater than the divergence threshold, wherein the value is within a range of zero to one; and

determining the repeatability score based on a result of one minus the value indicating the percent of the respective test scores that has the respective test score variation value that is greater than the divergence threshold.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 5, 2022
From: MURCHISON, LUKE
To: GM CRUISE HOLDINGS LLC
Reel/Frame 061981/0430 →
Continuity (1)
Related Publication 20240184691A1 · Jun 6, 2024