IP Library Granted Patent US 10,459,830
Granted Patent B2
US 10,459,830 · App. 15/326,326 · Granted Oct 29, 2019

Executable code abnormality detection

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,459,830
App. No.
15/326,326
Granted
Oct 29, 2019
Kind
B2
Abstract

Executable code abnormality detection can include detecting user-activatable control elements of an executable code to be tested, generating a first test code based on the detected user-activatable control elements, and generating a second test code based on a script for the executable code to be tested, wherein the first and the second test codes containing instructions executable by a test application to test the executable code. Further, executable code abnormality detection can include executing the first test code and the second test code using the test application, and in response to the test application detecting an abnormality, saving instructions from the executed first test code and the executed second test code into a persistent file to allow replay of the abnormality.

Claims (55)

1. A system for executable code abnormality detection, comprising:

a test code engine that:

detects user-activatable control elements of an executable code in an executable file to be tested;

generates a first test code based on the detected user-activatable control elements by employing at least one test rule, wherein the at least one test rule specifies a specific type of action associated with each of the detected user-activatable control elements and the at least one rule includes a priority assigned to each of the detected user-activatable control elements, the priorities being indicative of frequencies of operations of the detected user-activatable control elements;

generates a second test code based on a script for the executable code to be tested, the first and the second test codes containing instructions executable by a test application to test the executable code; and

executes the first test code and the second test code using the test application; and

a reporting engine that saves, in response to the test code engine detecting an abnormality, instructions from the executed first test code and the executed second test code into a persistent file to allow replay of the abnormality.

2. The system of claim 1 , including the test code engine that generates the second test code by:

randomly inserting additional commands into the script, or

disordering commands in the script.

3. The system of claim 1 , wherein the abnormality includes at least one of a globalization defect and an abnormal user interface.

4. The system of claim 1 , including the test code engine that detects an untranslated string in the executable code using a translation string map.

5. The system of claim 1 , wherein the at least one rule additionally specifies an implementation probability for each of the detected user activatable control elements.

6. The system of claim 1 , wherein the frequencies of operations of the user-activatable control elements are expressed as respective implementation probabilities of the user-activatable control elements and the test code engine further:

for each user-activatable control element in a list of the detected user-activatable control elements,

generates a respective random number,

generates a respective test instruction if the random number is less than or equal to a respective implementation probability of the user-activatable control element, and

does not generate the respective test instruction if the respective random number is greater than the respective implementation probability.

7. A non-transitory machine-readable medium storing instructions executable by a processing resource to cause a computer to:

detect user-activatable control elements of an executable code in an executable file to be tested;

generate a first test code using at least one test rule, the first test code based on the detected user-activatable control elements, wherein the at least one test rule specifies a specific type of action associated with each of the detected user-activatable control elements and the at least one rule includes a priority assigned to each of the detected user-activatable control elements, the priorities being indicative of frequencies of operations of the detected user activatable control elements wherein the generation of the first test code includes,

generating a respective random number, and

generating a respective test instruction based at least on the random number;

generate a second test code using a test code engine and based on a script for the executable code to be tested;

execute the first and the second test codes using a test application executed by the test code engine to perform a test of the executable code;

determine additional user-activatable control elements of the executable code, and iterate the generation of the first and the second test codes and the execution of the first and second test codes until a stopping criterion is satisfied; and

in response to the test code engine detecting an abnormality in the executable code, save instructions of the first and the second test codes to allow a replay of the first and the second test codes to identify a cause of the detected abnormality.

8. The non-transitory machine-readable medium of claim 7 , wherein the detected abnormality includes at least one of an application crash, a globalization defect, and an abnormal user interface.

9. The non-transitory machine-readable medium of claim 7 , including instructions executable to execute a translation string map.

10. The non-transitory machine-readable medium of claim 9 , wherein the detected abnormality includes an untranslated string.

11. The non-transitory machine-readable medium of claim 7 , wherein the at least one test rule further includes respective implementation probabilities assigned to the detected user-activatable control elements.

12. The non-transitory machine-readable medium of claim 11 , wherein the instructions for generating a respective test instruction based at least on the random number include further instructions for:

generating the respective test instruction if the random number is less than or equal to a respective implementation probability of the user-activatable control element, and

not generating the respective test instruction if the respective random number is greater than the respective implementation probability.

13. The non-transitory machine-readable medium of claim 7 , wherein executing the first test code causes performance of actions including automatic operation of elements of the executable code.

14. A method for executable code abnormality detection, comprising:

detecting user-activatable control elements of an executable code in an executable file to be tested;

generating, using at least one test rule, a first test code based on the detected user-activatable control elements and at least one test rule, wherein the at least one test rule specifies a specific type of action associated with each of the detected user-activatable control elements and the at least one rule includes a priority assigned to each of the detected user-activatable control elements, the priorities being indicative of respective relative frequencies of operations of the detected user-activatable control elements wherein the generation of the first test code includes:

generating a respective random number, and

generating a respective test instruction based on the random number;

generating, using a test code engine, a second test code based on a script for the executable code to be tested, wherein the script includes an ordered list of commands to be executed by the executable code to be tested, and wherein generating the second test code includes at least one of:

randomly inserting additional commands to the script; and

disordering the ordered list of commands in the script;

executing, using the test code engine, the first test code and the second test code; and

in response to detecting an abnormality in the executable code to be tested, saving instructions from the executed first test code and the executed second test code into a persistent file to allow replay of the abnormality.

15. The method of claim 14 , further comprising:

executing, using the test code engine, a translation string-map to identify untranslated strings in the application, wherein the translation string-map maps a string written in a specific language to a string in a different language.

16. The method of claim 14 , wherein the specific type of action includes an action that is executed in response to activation of the user activatable control element by the user.

17. The method of claim 14 , wherein the at least one rule additionally specifies an implementation probability for each of the detected user activatable control elements.

18. The method of claim 17 , wherein to generate the one or more random numbers the test code engine further:

for each user-activatable control element in a list of the detected user-activatable control elements,

generates a respective random number of the one or more random numbers,

generates a respective test instruction if the random number is less than or equal to a respective implementation probability, and

does not generate the respective test instruction if the respective random number is greater than the respective implementation probability.

19. The method of claim 18 , wherein the random number is between zero and hundred when the implementation probability is multiplied by 100.

Assignments (8)
RELEASE OF SECURITY INTEREST REEL/FRAME 044183/0577 Recorded Feb 2, 2023
From: JPMORGAN CHASE BANK, N.A.
To: MICRO FOCUS LLC (F/K/A ENTIT SOFTWARE LLC)
Reel/Frame 063560/0001 →
RELEASE OF SECURITY INTEREST REEL/FRAME 044183/0718 Recorded Feb 2, 2023
From: JPMORGAN CHASE BANK, N.A.
To: MICRO FOCUS LLC (F/K/A ENTIT SOFTWARE LLC); BORLAND SOFTWARE CORPORATION; MICRO FOCUS (US), INC.; SERENA SOFTWARE, INC; ATTACHMATE CORPORATION; MICRO FOCUS SOFTWARE INC. (F/K/A NOVELL, INC.); NETIQ CORPORATION
Reel/Frame 062746/0399 →
CHANGE OF NAME Recorded Aug 8, 2019
From: ENTIT SOFTWARE LLC
To: MICRO FOCUS LLC
Reel/Frame 050004/0001 →
SECURITY INTEREST Recorded Oct 11, 2017
From: ENTIT SOFTWARE LLC; ATTACHMATE CORPORATION; BORLAND SOFTWARE CORPORATION; NETIQ CORPORATION; MICRO FOCUS (US), INC.; MICRO FOCUS SOFTWARE, INC.; ARCSIGHT, LLC; SERENA SOFTWARE, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 044183/0718 →
SECURITY INTEREST Recorded Oct 11, 2017
From: ENTIT SOFTWARE LLC; ARCSIGHT, LLC
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 044183/0577 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 9, 2017
From: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
To: ENTIT SOFTWARE LLC
Reel/Frame 042746/0130 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 22, 2017
From: REN, YI-QUN; LIU, HAI-YING; WANG, BO
To: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
Reel/Frame 042063/0119 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 22, 2017
From: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
To: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
Reel/Frame 042065/0081 →