IP Library Granted Patent US 10,496,524
Granted Patent B2
US 10,496,524 · App. 15/389,454 · Granted Dec 3, 2019

Separating test coverage in software processes using shared memory

Inventors: Jonathan Clark (San Mateo, CA); Darren Kennedy (Calgary, CA); Sylvain François (Berkeley, CA); Marc Rambert (San Francisco, CA); Scott McPeak (San Francisco, CA); Marat Boshernitsan (San Francisco, CA)
Assignee: Synopsys, Inc.
G06F11/3664G06F11/3676G06F11/3684G06F11/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 10,496,524
App. No.
15/389,454
Granted
Dec 3, 2019
Kind
B2
Abstract

A Remote Test Separation (RTS) system comprising an original software product instrumented for testing and a shared memory accessible to the original software product, the shared memory including a plurality of coverage counters. The RTS system further comprising an agent, capable of accessing the shared memory, the agent to read the plurality of coverage counters, the agent to read the plurality of coverage counters at an end of a test, and write coverage data to another memory. The RTS system runs a plurality of tests without interruption, and generates coverage data associated with a plurality of sequential tests and records the associations between lines of code and an associated test.

Claims (52)

1. A Remote Test Separation (RTS) system, comprising:

a shared memory accessible to an original software product instrumented for testing, the shared memory including a plurality of coverage counters;

a tester configured to:

run a plurality of tests without starting and stopping the original software product, and

write coverage data associated with the plurality of tests to the plurality of coverage counters at an end of each test from among the plurality of tests, the coverage data indicating associations between a plurality of software features in the original software product and each test from among the plurality of tests; and

an agent, capable of accessing the shared memory, configured to:

read the plurality of coverage counters at the end of each test, and

write coverage data to another memory at the end of each test.

2. The RTS system of claim 1 , wherein the agent is configured to reset the plurality of coverage counters at the end of the test.

3. The RTS system of claim 1 , wherein each coverage counter from among the plurality of coverage counters is associated with a particular software feature from among a plurality of software features in the original software product.

4. The RTS system of claim 3 , wherein each coverage counter from among the plurality of coverage counters is further configured to store one bit to indicate whether the particular software feature was used in the test.

5. The RTS system of claim 3 , wherein each coverage counter from among the plurality of coverage counters is further configured to store multiple bits to indicate a number of times the particular software feature was used by the test.

6. The RTS system of claim 1 , further comprising:

a control interface configured to provide start and stop commands to the agent.

7. The RTS system of claim 6 , wherein the control interface is further configured to provide a unique identifier associated with the test to the agent along with the start command.

8. The RTS system of claim 7 , wherein the agent is further configured to associate the unique identifier with the coverage data.

9. The RTS system of claim 6 , wherein when no start command is received by the agent, the agent is further configured to associated the coverage data with a default identifier.

10. A method of remote test separation, comprising:

receiving a start test command to perform a first test from among a plurality of tests on an original software product instrumented for testing;

recording a utilization of a plurality of software features in a plurality of coverage counters;

receiving a stop test command;

storing, in response to receiving the stop test command, data from the plurality of coverage counters and associating the data with the first test;

iteratively repeating the receiving the start test command, recording the utilization, receiving the stop test command, and the storing for each remaining test from among the plurality of tests without starting and stopping the original software product to generate coverage data associated with the plurality of tests;

recording a plurality of associations between the plurality of software features and the plurality of tests.

11. The method of claim 10 , further comprising:

resetting the plurality of coverage counters for a second test from among the plurality of tests.

12. The method of claim 10 , further comprising:

associating each coverage counter from among the plurality of coverage counters with a particular software feature from among the plurality software features in the original software product.

13. The method of claim 12 , further comprising:

storing one bit in each coverage counter from among the plurality of coverage counters to indicate whether the particular software feature was used in the plurality of tests.

14. The method of claim 12 , further comprising:

storing multiple bits in each coverage counter from among the plurality of coverage counters to indicate a number of times the particular software was used in the plurality of tests.

15. The method of claim 10 , wherein the receiving the start test command comprises:

receiving the start test command and the stop test command from a control interface.

16. The method of claim 15 , wherein the receiving the start test command comprises:

receiving a unique identifier associated with the first test along with the start command.

17. The method of claim 16 , further comprising:

associating the unique identifier with the coverage data.

18. The method of claim 10 , further comprising:

associating the coverage data with a default identifier in response to not receiving a second start command to perform a second test from among the plurality of tests.

19. A system, comprising:

a shared memory accessible to an original software product instrumented for testing, the shared memory including a plurality of coverage counters;

a tester configured to run a plurality of tests on the original software product without starting and stopping the original software product;

an agent configured to:

receive a stop test indication at an end of a test from among the plurality of tests,

read the coverage data from the plurality of coverage counters at the end of the test,

write the coverage data from the plurality of coverage counters to a second memory, and

reset the plurality of coverage counters,

wherein the coverage data is configured to indicate an association between a plurality of software features and the test.

20. The system of claim 19 , wherein at least one coverage counter from among the plurality of coverage counters comprises:

a one bit counter configured to indicate whether the test used a particular software feature from among the plurality of software features; and

a multi-bit counter configured to indicate a number of times the test used the particular software feature.

Assignments (3)
SECURITY INTEREST Recorded Sep 30, 2024
From: BLACK DUCK SOFTWARE, INC.
To: ARES CAPITAL CORPORATION, AS COLLATERAL AGENT
Reel/Frame 069083/0149 →
CHANGE OF NAME Recorded Jul 30, 2024
From: SOFTWARE INTEGRITY GROUP, INC.
To: BLACK DUCK SOFTWARE, INC.
Reel/Frame 068191/0490 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 23, 2024
From: SYNOPSYS, INC.
To: SOFTWARE INTEGRITY GROUP, INC.
Reel/Frame 066664/0821 →
Continuity (2)
Provisional Application 62274020 · Dec 31, 2015
Related Publication 20170192878A1 · Jul 6, 2017
Cited By (1)
US 12,511,207