IP Library › Granted Patent US 10,248,549
Granted Patent B1
US 10,248,549 · App. 15/801,400 · Granted Apr 2, 2019

Systems and methods for detection of untested code execution

Inventor: Jonathan J. Davies (Cambridge, GB)
Assignee: Citrix Systems, Inc.
G06F11/3676G06F8/30G06F11/3612G06F11/3624G06F11/3664
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,248,549
App. No.
15/801,400
Filed
Nov 2, 2017
Granted
Apr 2, 2019
Kind
B1
Art Unit
2191
USPC
717/124
Abstract

Systems and methods for improving the quality of a first software product. The methods comprise performing operations by a computing device to run the first software product having source code modified based on code coverage data gathered during testing of the first software product. The code coverage data identifies at least one first portion of the source code which was executed at least once during the testing and identifies at least one second portion of the source code which was not executed during the testing. The methods also comprise: automatically detecting when an execution of the second portion is triggered while the first software product is being used by an end user; and automatically performing a notification action in response to said detecting.

Claims (39)

1. A method for improving the quality of a first software product, comprising:

performing operations by a computing device to run the first software product generated by compiling source code modified based on code coverage data gathered during testing of the first software product prior to release on a market, the code coverage data identifying at least one first portion of the source code which was executed at least once during the testing and identifying at least one second portion of the source code which was not executed during the testing;

automatically detecting when an execution of the second portion is triggered while the first software product is being used by an end user subsequent to being released on the market;

automatically performing a notification action in response to said detecting; and

mitigating a risk of defect in the first software product based on the notification action through an end user data-driven triggering of additional testing for untested portions of the source code subsequent to when the first software product has been released.

2. The method according to claim 1 , wherein the first portion and second portion each comprise a code path through a given part of the source code.

3. The method according to claim 1 , wherein the notification action comprises logging a warning message for said detecting.

4. The method according to claim 1 , wherein the notification action comprises sending an electronic communication from the computing device to a remote device of the software product's vendor.

5. The method according to claim 1 , wherein the notification action comprises alerting the end user of the detecting.

6. The method according to claim 1 , wherein the detecting is made at run time of the second portion.

7. The method according to claim 1 , further comprising using the code coverage data to identify which code paths of the source code were tested at least once during the testing and which code paths of the source code were not tested during the testing.

8. The method according to claim 7 , further comprising modifying the source code by inserting a command for taking the notification action at the beginning of each code path found to have been untested.

9. The method according to claim 1 , further comprising:

tracking a number of times the second portion is used by at least the end user;

determining if the number exceeds a threshold value; and

improving the quality of the first software product if a determination is made that the number exceeds the threshold value by

adding a test for the second portion to an additional testing process, and

performing the additional testing process to test the second portion.

10. The method according to claim 9 , further comprising creating a software patch or new version of the software product if the second portion's testing indicates that there is a defect.

11. A system, comprising:

at least one processing element; and

a non-transitory computer-readable storage medium comprising programming instructions that are configured to cause the at least one processing element to implement a method for improving the quality of a first software product, wherein the programming instructions comprise instructions to:

run the first software product generated by compiling source code modified based on code coverage data gathered during testing of the first software product prior to release on a market, the code coverage data identifying at least one first portion of the source code which was executed at least once during the testing and identifying at least one second portion of the source code which was not executed during the testing;

detect when an execution of the second portion is triggered while the first software product is being used by an end user;

perform a notification action in response to said detecting; and

mitigate a risk of defect in the first software product based on the notification action through an end user data-driven triggering of additional testing for untested portions of the source code subsequent to when the first software product has been released.

12. The system according to claim 11 , wherein the first portion and second portion each comprise a code path through a given part of the source code.

13. The system according to claim 11 , wherein the notification action comprises logging a warning message for said detecting.

14. The system according to claim 11 , wherein the notification action comprises sending an electronic communication from the computing device to a remote device of the software product's vendor.

15. The system according to claim 11 , wherein the notification action comprises alerting the end user of the detecting.

16. The system according to claim 11 , wherein the triggering of the second portion's execution is detected at run time of the second portion.

17. The system according to claim 11 , wherein the programming instructions comprise instructions to use the code coverage data to identify which code paths of the source code were tested at least once during the testing and which code paths of the source code were not tested during the testing.

18. The system according to claim 17 , wherein the programming instructions comprise instructions to modify the source code by inserting a command for taking the notification action at the beginning of each code path found to have been untested.

19. The system according to claim 11 , wherein the programming instructions comprise instructions to:

track a number of times the second portion is used by at least the end user; and

determine if the number exceeds a threshold value.

20. The system according to claim 19 , wherein

the second portion is tested if a determination is made that the number exceeds the threshold value, and

a software patch or new version of the software product is created if the second portion's testing indicates that there is a defect.

Assignments (9)
PATENT SECURITY AGREEMENT Recorded Aug 15, 2025
From: CLOUD SOFTWARE GROUP, INC.; CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 072488/0172 →
SECURITY INTEREST Recorded May 24, 2024
From: CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.); CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 067662/0568 →
PATENT SECURITY AGREEMENT Recorded Apr 14, 2023
From: CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.); CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 063340/0164 →
RELEASE AND REASSIGNMENT OF SECURITY INTEREST IN PATENT (REEL/FRAME 062113/0001) Recorded Apr 14, 2023
From: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
To: CITRIX SYSTEMS, INC.; CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.)
Reel/Frame 063339/0525 →
PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 062112/0262 →
PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 062113/0470 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
Reel/Frame 062113/0001 →
SECURITY INTEREST Recorded Sep 30, 2022
From: CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION
Reel/Frame 062079/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 2, 2017
From: DAVIES, JONATHAN J.
To: CITRIX SYSTEMS, INC.
Reel/Frame 044015/0432 →
Cited By (1)
US 12,475,024