Dynamic testing based on automated impact analysis

US10417119B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10417119-B2
Application numberUS-201615141477-A
CountryUS
Kind codeB2
Filing dateApr 28, 2016
Priority dateMar 11, 2016
Publication dateSep 17, 2019
Grant dateSep 17, 2019

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

A method for automated software testing may include mapping test cases to lines in files in a codebase. Each test case covers one or more lines in one or more files and has corresponding test results. The method may further include obtaining a change list including one or more changes. Each change specifies a changed line in a changed file. The method may further include determining impacted test cases, based on the mapping and the change list, prioritizing the impacted test cases based, in part, on test results corresponding to each impacted test case, executing, based on the prioritization, one or more impacted test cases to obtain executed test cases, and obtaining, for each executed test case, new test results.

First claim

Opening claim text (preview).

What is claimed is: 1. A method for automated software testing, comprising: instrumenting a codebase to extract a plurality of lines in a plurality files that are executed when executing the codebase; in response to executing the codebase, mapping a plurality of test cases to the plurality of lines, wherein each test case of the plurality of test cases covers one or more lines in the plurality of lines and has a corresponding plurality of test results; obtaining a change list comprising one or more changes, each change specifying a changed line in a changed file of the plurality of files; determining, based on the mapping and the change list, a plurality of impacted test cases of the plurality of test cases by: attempting to identify, for each change of the change list, one of the plurality of test cases that covers the changed line specified by the change; failing to identify a test case that covers the changed line specified by a first change of the change list; and identifying one of the plurality of test cases that covers an unchanged line in the changed file specified by the first change and fails to cover the changed line; prioritizing the plurality of impacted test cases to favor frequently failing test cases based, in part, on a plurality of test results corresponding to each impacted test case of the plurality of impacted test cases, wherein the plurality of test results comprises a failure count and a measure of the utilization of a resource of a computer system during execution of the corresponding impacted test case, and wherein the prioritization is further based on a first pre-determined weighting factor of the measure of the utilization and a second pre-determined weighting factor of the failure count; executing, based on the prioritization, one or more impacted test cases of the plurality of impacted test cases to obtain a plurality of executed test cases; and obtaining, for each executed test case of the plurality of executed test cases, a new plurality of test results. 2. The method of claim 1 , further comprising: storing, in a database, the mapping and a plurality of test results corresponding to each test case of the plurality of test cases; and updating, for each executed test case, the database with the new plurality of test results. 3. The method of claim 1 , wherein each test result of the plurality of test results comprises an execution time, and wherein the prioritization is further based on a third pre-determined weighting factor of the execution time. 4. The method of claim 1 , wherein the determination is further based on a precision of coverage, relative to a change in the change list, of an impacted test case of the plurality of impacted test cases. 5. The method of claim 1 , wherein the prioritization is further based on a precision of coverage, relative to a change in the change list, of an impacted test case of the plurality of impacted test cases. 6. The method of claim 1 , further comprising: issuing an alert identifying one or more lines in one or more files of the plurality of files based on one or more test results corresponding to a test case of the plurality of test cases. 7. A system for automated software testing, comprising: mapper circuitry configured for: in response to executing a codebase, mapping a plurality of test cases to a plurality of lines in a plurality files in the codebase, wherein each test case of the plurality of test cases covers one or more lines in the plurality of lines and has a corresponding plurality of test results; change list analyzer circuitry configured for: obtaining a change list comprising one or more changes, each change specifying a changed line in a changed file of the plurality of files, and determining, based on the mapping and the change list, a plurality of impacted test cases of the plurality of test cases by: attempting to identify, for each change of the change list, one of the plurality of test cases that covers the changed line specified by the change failing to identify a test case that covers the changed line specified by a first change of the change list; and identifying one of the plurality of test cases that covers an unchanged line in the changed file specified by the first change and fails to cover the changed line; test sequencer circuitry configured for: prioritizing the plurality of impacted test cases to favor frequently failing test cases based, in part, on a plurality of test results corresponding to each impacted test case of the plurality of impacted test cases, wherein the plurality of test results comprises a failure count and a measure of the utilization of a resource of a computer system during execution of the corresponding impacted test case, and wherein the prioritization is further based on a first pre-determined weighting factor of the measure of the utilization and a second pre-determined weighting factor of the failure count; test executive circuitry configured for: instrumenting the codebase to extract the plurality of lines in the plurality files that are executed when executing the codebase; executing, based on the prioritization, one or more impacted test cases of the plurality of impacted test cases to obtain a plurality of executed test cases, and obtaining, for each executed test case of the plurality of executed test cases, a new plurality of test results; and repository circuitry configured for storing at least the codebase and the plurality of test cases. 8. The system of claim 7 , wherein the repository circuitry further comprises a database storing the mapping and a plurality of test results corresponding to each test case of the plurality of test cases, and wherein the test executive circuitry further comprises updating, for each executed test case, the database with each new plurality of test results. 9. The system of claim 7 , wherein each test result of the plurality of test results comprises a failure count and an execution time, and wherein the prioritization is further based on a third pre-determined weighting factor of the execution time. 10. The system of claim 7 , wherein the determination is further based on a precision of coverage, relative to a change in the change list, of an impacted test case of the plurality of impacted test cases. 11. The system of claim 7 , wherein the prioritization is further based on a precision of coverage, relative to a change in the change list, of an impacted test case of the plurality of impacted test cases. 12. The system of claim 7 , further comprising: failure analyzer circuitry configured for issuing an alert identifying one or more lines in one or more files of the plurality of files based on one or more test results corresponding to a test case of the plurality of test cases. 13. A non-transitory computer readable medium comprising instructions that, when executed by a hardware processor, perform a method for automated software testing, the method comprising: instrumenting a codebase to extract a plurality of lines in a plurality files that are executed when executing the codebase; in response to executing the codebase, mapping a plurality of test cases to the plurality of lines, wherein each test case of the plurality of test cases covers one or more lines in the plurality of lines and has a corresponding plurality of test results; obtaining a change list comprising one or more changes, each change specifying a changed line in a changed file of the plurality of files; determining, based on the mapping and the change list, a plurality of impacted test cases of the plurality of test cases by: attempting to identif

Assignees

Inventors

Classifications

  • Test management · CPC title

  • for test results analysis · CPC title

  • for test version control, e.g. updating test cases to a new software version · CPC title

  • for test execution, e.g. scheduling of test suites · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US10417119B2 cover?
A method for automated software testing may include mapping test cases to lines in files in a codebase. Each test case covers one or more lines in one or more files and has corresponding test results. The method may further include obtaining a change list including one or more changes. Each change specifies a changed line in a changed file. The method may further include determining impacted te…
Who is the assignee on this patent?
Francis Sachin, Gupta Divya, Datta Ayush, and 2 more
What technology area does this patent fall under?
Primary CPC classification G06F11/3672. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Sep 17 2019 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 1 related publication on this page (citations in our corpus or others sharing the same primary CPC).