Identifying test cases to be run after changes to modules of a software application
First Claim
1. A method of testing an application after changes to any of a plurality of modules forming said application, said method comprising:
- receiving an indication that a set of modules have changed, wherein said set of modules is contained in said plurality of modules;
determining a final set of modules by static analysis of said plurality of modules, said final set of modules including said changed set of modules and a referencing set of modules of said plurality of modules, wherein each module of said referencing set of modules references at least one of said changed set of modules either as immediate reference or multi-level reference through other modules,said final set of modules not including any module by virtue of being referenced by any of said changed set of modules,wherein said application contains a first module which is immediately referenced by one of said changed set of modules,wherein said determining does not include said first module in said referencing set of modules;
identifying a set of test cases to cover testing of all of said final set of modules, wherein said identifying includes a test case in said set of test cases only if the test case operates to test at least one of said final set of modules such that said set of test cases is a minimal set that covers testing of all of said final set of modules; and
running said set of test cases with said changed set of modules merged into said plurality of modules,wherein said determining by said static analysis comprises;
generating a reference data by inspecting the instructions forming said plurality of modules, wherein said reference data specifies for each module a corresponding set of modules contained in said plurality of modules that are referenced by said module;
finding, in response to said receiving, said referencing set of modules by examining said reference data; and
adding said referencing set of modules to said changed set of modules to create said final set of modules.
1 Assignment
0 Petitions
Accused Products
Abstract
An aspect of the present invention facilitates identification of test cases to be run after changes to modules of a software application. In one embodiment, a reference data is generated by inspecting the instructions (static analysis) forming the modules of the software application, with the reference data specifying a corresponding set of modules in the application that are referenced by each of the modules in the application. The reference data is then examined to find a referencing set of modules which reference any of the changed modules either as immediate reference or multi-level reference through other modules. Test cases invoking any of the modules in the referencing set are identified as suitable test cases to be run.
-
Citations
22 Claims
-
1. A method of testing an application after changes to any of a plurality of modules forming said application, said method comprising:
-
receiving an indication that a set of modules have changed, wherein said set of modules is contained in said plurality of modules; determining a final set of modules by static analysis of said plurality of modules, said final set of modules including said changed set of modules and a referencing set of modules of said plurality of modules, wherein each module of said referencing set of modules references at least one of said changed set of modules either as immediate reference or multi-level reference through other modules, said final set of modules not including any module by virtue of being referenced by any of said changed set of modules, wherein said application contains a first module which is immediately referenced by one of said changed set of modules, wherein said determining does not include said first module in said referencing set of modules; identifying a set of test cases to cover testing of all of said final set of modules, wherein said identifying includes a test case in said set of test cases only if the test case operates to test at least one of said final set of modules such that said set of test cases is a minimal set that covers testing of all of said final set of modules; and running said set of test cases with said changed set of modules merged into said plurality of modules, wherein said determining by said static analysis comprises; generating a reference data by inspecting the instructions forming said plurality of modules, wherein said reference data specifies for each module a corresponding set of modules contained in said plurality of modules that are referenced by said module; finding, in response to said receiving, said referencing set of modules by examining said reference data; and adding said referencing set of modules to said changed set of modules to create said final set of modules. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. A system facilitating testing of an application in relation to changes to a set of modules contained in a plurality of modules forming said application, said system comprising:
-
a processor; a random access memory (RAM); and a non-transitory machine readable medium to store a first set of instructions and a second set of instructions, wherein said first set of instructions when retrieved into said RAM and executed by said processor form said application, said second set of instructions when retrieved into said RAM and executed by said processor form a testing tool designed to perform the actions of; determining a final set of modules by static analysis of said plurality of modules, said final set of modules including said changed set of modules and a referencing set of modules of said plurality of modules, wherein each module of said referencing set of modules references at least one of said changed set of modules either as immediate reference or multi-level reference through other modules, said final set of modules not including any module by virtue of being referenced by any of said changed set of modules, wherein said application contains a first module which is immediately referenced by one of said changed set of modules, wherein said determining does not include said first module in said referencing set of modules; identifying a set of test cases to cover testing of said final set of modules, wherein said identifying includes a test case in said set of test cases only if the test case operates to test at least one of said final set of modules such that said set of test cases is a minimal set that covers testing of all of said final set of modules; and running said set of test cases with said changed set of modules merged into said plurality of modules, wherein said determining by said static analysis comprises; generating a reference data by inspecting the instructions forming said plurality of modules, wherein said reference data specifies for each module a corresponding set of modules contained in said plurality of modules that are referenced by said module; finding, in response to said receiving, said referencing set of modules by examining said reference data; and adding said referencing set of modules to said changed set of modules to create said final set of modules. - View Dependent Claims (14, 15, 16, 17, 18)
-
-
19. A non-transitory machine readable medium storing one or more sequences of instructions for causing a system to facilitate identifying of test cases to be run after changes to an application, wherein execution of said one or more sequences of instructions by one or more processors contained in said system causes said system to perform the actions of:
-
receiving a plurality of modules for said application, said plurality of modules including a first set of modules implementing a corresponding functionality of said application, and a second set of modules representing test cases to test to said first set of modules, wherein each of said set of modules is designed to test corresponding one or more modules of the first set of modules by referencing said corresponding one or more modules; generating a reference data by inspecting the instructions forming said plurality of modules, wherein said reference data specifies for each module, including said second set of modules, a corresponding set of modules contained in said plurality of modules that are referenced by said module; receiving an indication that a set of modules have changed, wherein said set of modules is contained in said plurality of modules; finding, based on said reference data and upon said receiving of said indication, a referencing set of modules which reference any of said changed set of modules either as immediate reference or multi-level reference through other modules, wherein said referencing set of modules contains at least one module by said immediate reference and at least one module by said multi-level reference, said referencing set of modules being contained in said plurality of modules, wherein said changed set of modules and said referencing set of modules together form a final set of modules; and determining those modules of said final set of modules that are contained in said second set of modules as a set of test cases to cover testing of said final set of modules, wherein said final set of modules does not include any module by virtue of being referenced by any of said changed set of modules, wherein said application contains a first module which is immediately referenced by one of said changed set of modules, wherein said finding does not include said first module in said referencing set of modules, wherein said set of test cases is a minimal set that covers testing of all of said final set of modules. - View Dependent Claims (20, 21, 22)
-
Specification