IP Library Granted Patent US 9,032,370
Granted Patent B2
US 9,032,370 · App. 13/719,568 · Granted May 12, 2015

Automated test cycle estimation system and method

Inventors: Soham Sundar Chakraborty (West Bengal, IN); Pavan Kumar Chittimalli (Pune, IN); Vipul Shah (Pune, IN)
Assignee: Tata Consultancy Services Limited
G06F11/3672G06F9/46G06F9/5066
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 9,032,370
App. No.
13/719,568
Granted
May 12, 2015
Kind
B2
Abstract

A system and method is disclosed to estimate both, the time and number of resources required to execute a test suite or a subset of test suite in parallel, with the objective of providing a balanced workload distribution. The present invention partitions test suite for parallelization, given the dependencies that exists between test cases and test execution time.

Claims (41)

1. A method of estimating constraints during execution of a plurality of test cycles, the method having computer executable code tangibly embodied on a non-transitory computer readable storage medium, and the method comprising:

receiving, by a processor, constraints determining execution of the plurality of test cycles, wherein the constraints comprise resources and time, wherein a test cycle of the plurality of test cycles comprises a plurality of test cases, and wherein the test cycle indicates checking a functionality of an application;

selecting, by the processor, a set of test cases from a test cycle;

constructing, by the processor, a dependence graph for the set of test cases selected, wherein the dependence graph is constructed by:

creating a plurality of nodes for the set of test cases; and

creating an edge between two nodes of the plurality of nodes when a test case is executed subsequent to execution of a previous test case in the set of test cases;

assigning, by the processor, a weight to a node of the plurality of nodes;

constructing, by the processor, a dependence sub graph based on the dependence graph for the set of test cases selected, wherein the dependence sub graph is constructed by performing a depth first walk on the dependence graph of the set of test cases selected;

identifying, by the processor, a subset of nodes based on the dependence sub graph, wherein the subset of nodes indicates absence of the edge for the node with previous or subsequent node;

grouping, by the processor, the subset of nodes into a first group and a second group based on the constraints and the dependence sub graph;

calculating, by the processor, a first aggregate weight and a second aggregate weight corresponding to the first group and the second group respectively;

rearranging, by the processor, the nodes in the first group and in the second group to balance the first aggregate weight and the second aggregate weight, wherein the nodes are rearranged to have a minimum difference between the first aggregate weight and the second aggregate weight corresponding to the first group and the second group respectively; and

executing, by the processor, the subset of the nodes in the first group and the second group for the constraints received for estimating the constraints required to execute the test cycle.

2. The method of claim 1 , wherein the weight indicates a time the test case takes to execute a task to check the functionality.

3. The method of claim 1 , wherein the plurality of test cases are selected based on dependency amongst the plurality of test cases for executing the the test cycle and parameters to modify errors during the execution of the test cycle.

4. The method of claim 1 , wherein the dependency sub graph is constructed by traversing through the plurality of test cases in the dependency graph to identify dependencies across the plurality of test cases.

5. The method of claim 1 , wherein the first aggregate weight and the second aggregate weight are calculated by adding the weight of each node in the first group and the second group respectively.

6. The method of claim 1 , wherein the subset of nodes are grouped by changing the resources and the time, wherein the resources are changed when the resources are constraint, and wherein the time is changed when the resources are constraint.

7. The method of claim 1 , wherein the subset of nodes are grouped using a greedy technique with the resource as the constraint.

8. The method of claim 1 , further comprising computing a wait time for the test cycle based on the first aggregate weight and the second aggregate weight with the resource as the constraint.

9. The method of claim 1 , further comprising computing an efficiency based on the estimation of the constraints, wherein the efficiency is computed based on the first aggregate weight and the second aggregate weight and the time for executing the test cycle.

10. The method of claim 1 , wherein the subset of nodes are grouped using a bin packing technique with the time as the constraint.

11. The method of claim 1 , further comprising computing a wait time for the test cycle based on the first aggregate weight and the second aggregate weight with the time as the constraint.

12. A system for estimating constraints during execution of a plurality of test cycles, the system comprising:

a memory; and

a processor coupled to the memory, wherein the processor executes program instructions stored in the memory to;

receive constraints determining execution of the plurality of test cycles, wherein the constraints comprise resources and time, wherein a test cycle of the plurality of test cycles comprises a plurality of test cases, and wherein the test cycle indicates checking a functionality of an application;

select a set of test cases from a test cycle;

construct a dependence graph for the set of test cases selected, wherein the dependence graph is constructed by:

create a plurality of nodes for the set of test cases; and

create an edge between two nodes of the plurality of nodes when a test case is executed subsequent to execution of a previous test case in the set of test cases;

assign a weight to each of the plurality of nodes;

construct a dependence sub graph based on the dependence graph for the set of test cases selected, wherein the dependence sub graph is constructed by performing a depth first walk on the dependence graph of the set of test cases selected;

identify a subset of nodes based on the dependence sub graph, wherein the subset of nodes indicates absence of the edge for the node with previous or subsequent node;

group the subset of nodes into a first group and a second group based on the constraints and the dependence sub graph;

calculate a first aggregate weight and a second aggregate weight corresponding to the first group and the second group respectively;

rearrange the nodes in the first group and in the second group to balance the first aggregate weight and the second aggregate weight, wherein the nodes are rearranged to have minimum difference between the first aggregate weight and the second aggregate weight corresponding to the first group and the second group respectively; and

execute the subset of the nodes in the first group and the second group for the constraints received for estimating the constraints required to execute the test cycle.

13. The system of claim 12 , wherein the processor computes a wait time and an efficiency based on the estimation of the constraints in the test cycle.

14. The system of claim 12 , wherein the subset of nodes are grouped using a greedy technique with resource as the constraint.

15. The system of claim 12 , wherein the subset of nodes are grouped using a bin packing technique with time as the constraint.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 19, 2012
From: SHAH, VIPUL; CHITTIMALLI, PAVAN KUMAR; CHAKRABORTY, SOHAM SUNDAR
To: TATA CONSULTANCY SERVICES LIMITED
Reel/Frame 029499/0428 →
Priority Claims (1)
IN 3698/MUM/2011 · Dec 29, 2011 · national
Continuity (1)
Related Publication 20130174178A1 · Jul 4, 2013