Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 19

REGRESSION TEST PRIORITIZATION

FOR OBJECT-ORIENTED SOFTWARE


SURYA KANTA CHAWLA
REGISTRATION NUMBER – 12105774
PHD SCHOLAR

COURSE INSTRUCTOR
DR. PRIYANKA CHAWLA

LOVELY PROFESSIONAL UNIVERSITY ,


PHAGWARA, PUNJAB, 144411
JULY 2021
INTRODUCTION
•Software is changed to fix faults or to add/delete requirement and must
be validated and retested to:

assure that changed requirements are implemented


ensure that changed requirements do not affect previous functionalities
test the parts of software that have not been tested earlier.

•Regression testing is retesting of software to make sure that changed or


modified program work properly with test cases used to test original
program.
•Regression testing is part of software testing and software maintenance which is performed when changes are to be made in present
software.

•Purpose of regression testing is to check that changes made do not alter behaviour of current and rest of the part of software.

•Minimisation techniques eliminate and minimises test cases to reduce number of tests to run.

•Selection techniques select tests which are relevant to recent changes.

•Prioritization techniques schedule and order tests to increase effectiveness to achieve performance.

•The main performance goal is fault detection rate.


ESDG MODEL
•System dependence graph SDG
model is used for modelling
procedural programs.

•Afterwards it was extended to


model object-oriented software
and named as extended system
dependency graph – ESDG
model.

•ESDG is directed and connected


graph G = (V, E) having V set of
vertices and E set of edges.
GENETIC ALGORITHM
• Genetic Algorithm (GA) is search and optimization algorithm which is
based on genetics and natural selection.

•Genetic Algorithms is search algorithm that work on principles of natural selection
and genetics.

•It is based on selection of fittest chromosome.


APFD METRIC
• Average percentage of faults detected (APFD) metric is prioritization metric

• It is calculated to measure average rate of fault detection of regression test


suite.

• It is calculated to evaluate effectiveness of regression test prioritization


technique

• It is calculated by taking weighted average of number of detected faults


during execution of program.

• Its value range from 0 to 100 and more value indicate higher rate of detecting
faults.
RESEARCH GAP
Testing of software is performed during development phase of software development life cycle for
detection of bugs or errors in earlier phases and to make sure that changes made in software did not
affect the system. Regression testing is part of software testing that focuses on retesting after changes
are made. It is part of software testing which is done in order to make sure that changes does not affect
present behavior of software. It is used to make sure that bugs are fixed and new functionality
introduced in new version of software don’t adversely affect original functionality of previous version.
It is most complaining activities of software development and maintenance. It has few resources to
allow for re-execution of all test cases. For this the use of test case prioritization is profitable because the
best appropriate test cases are executed first. Test case prioritization orders test cases in a manner that
detection of faults at earlier phases is maximized. Here technique of using ESDG model with genetic
algorithm is proposed to prioritize test cases of object oriented software based on fault detection rate and
its impact. Average Percentage of Faults Detected (APFD) metric is used to calculate effectiveness of
new test case arrangements.
RESEARCH OBJECTIVES
 Objective of study is to formulate technique to prioritize test cases for object oriented
software with use of ESDG model and Genetic Algorithm.
 APFD metric measure effectiveness of test cases generated.
 ESDG model and Genetic Algorithm are used in proposed technique to order test
case.
 ESDG Graph is a graph used for object-oriented software and genetic algorithm is
search algorithm based on genetic principles.
 APFD metric is a prioritization metric used to measure rate of detecting faults of
regression tests and to calculate effectiveness of regression test prioritization
technique and test cases generated.
 
PROPOSED METHODOLOGY
A) Determine Affected Nodes
 
Step 1: ANS NULL
Step 2::For each node
{
Step 3: Find nodes which are data, control or dependent due to inheritance and association on node
}
Step 4: ANS  all nodes which are data, control or dependent due to inheritance and association on node
B) Applying Genetic Algorithm
 
Step 1: Encode selected test cases
Step 2: Generate 2 populations P1 and P2 from T’(Original Population)
Step 3: P1 is set T’, P2 is reverse set of T
Step 4: Calculate fitness function of parent
Step 5: Repeat {
Child=crossover (P1,P2)
Child=mutate (child)
Step 6: Calculate fitness function for child
Step 7: Add child to population
Step 8: Discard worst chromosome from population
Step 9:} Until maximum number of iterations
C) Regression Test Prioritization
 
Step 1: For every node of ANS do
Step 2: For every test case t do
Step 3: Add test case t to T’
Step 4: WTwt
Step 5: End
Step 6: End
Step 7: Sort test cases of T in decreasing order of their weights in WT
Timelines of the Proposed Research Work

Activities July 2021 to Jan 2022 to July 2022 to Jan 2023 to July 2023 to Dec Jan 2024 to July 2024
Dec 2021 June 2022 Dec 2022 July 2023 2023

Literature Review          

SAS          
Paper 1          
ETP 1          
Paper 2          
ETP 2          
Final Thesis          
BUDGET
Sr. No. ITEM AMOUNT
1 Laptop 50,000
2 Softwares 50,000
3 Books 50,000
4 Travel Allowance 1,00,000

Total 2,50,000
LITERATURE REVIEW
• Arvinder Kaur et al. [1] have proposed approach using genetic algorithm to prioritize regression test cases based on
code coverage. Genetic algorithm is automating test case prioritization and effectiveness of approach is represented
with metric known as Average Percentage of Code Covered (APCC) metric.
• Suman et al. [2] have proposed approach using genetic algorithm for prioritization of regression test cases and this
approach is prioritizing test cases dynamically based on complete code coverage. Overall aim is reducing number of
test cases to be run after changes are done in code.
• Chhabi Rani Panigrahi et al. [3] have proposed regression test selection technique on basis of analysis of program
code for object oriented software and UML diagram for changed classes of object-oriented program. First dependency
graph model of original program is constructed for program code. When program is changed constructed model is
also updated to know changes. This model captures control and data dependencies and represents dependencies of
object-relationships. To find affected model elements due to change in program forward slice is constructed and every
changed model element is considered as slicing criterion. The changed methods are determined by analysing models
which are based on modified statements.
• Samaila Musa et al. [4] have presented regression test prioritization technique for object-oriented programs in basis of
dependency graph model and analyze affected program using genetic algorithm. This approach selects test cases based on
optimization from test cases. The goal is to find changes from body of method due to data dependence, control dependence
and dependence due to object relation and orders them based on their fitness with help of genetic algorithm. This approach
provides evidence of feasibility of approach and increase fault detection rate and reduce regression testing effort. The order
is measured using APFD metric to calculate effectiveness of approach.
• Rajib Mall et al. [5] have proposed regression test prioritization technique for object-oriented software. An intermediate
graph model for program from its program code is constructed. When code is modified model is updated to know
modifications. Constructed model represents dependencies and information of different types of object-relationship
dependencies. This approach increases APFD metric value by 25.70 % in comparison with other approach.
• Abu Bakar et al. [6] have presented regression test case prioritization technique for object-oriented programs based on
dependency graph model and analyze affected program using genetic algorithm. This approach selects test cases based on
optimization from test cases. This approach provides evidence of feasibility of approach and increase fault detection rate
and reduce regression testing effort. The order is measured using APFD metric to calculate effectiveness of approach. This
approach is more efficient and effective in regression testing.
• Brian A. Malloy et al.[7] have discussed about representation of the object-oriented programs based on program dependency graph and
includes control flow and data flow information of the code.

• Pradipta Kumar Mishra et al.[8] have proposed test case prioritization technique using genetic algorithm. Their technique separate test case
detected as bad by customer and remaining test cases prioritizes subsequence of original test cases such as new test cases are to be executed
in constraint of time. It has higher fault detection rate when compared with rates of prioritized test cases.

• Praveen Ranjan Srivastava et al.[9] have presented method to optimize software testing efficiency by identifying critical path clusters of
program. This is done by development of variable length genetic algorithm which optimizes and selects path clusters that are weighted with
path criticality. Software testing is possible because it interacts for medium sized software. Parts of program can be tested but they can be
error prone. Identification of critical paths increases the testing efficiency.

• Anil Mor [10] has worked on APFD metric for measuring fault detection rate during prioritization of test cases. APFD is also used in other
forms as APFDc, APFDp, ASFD, WPFD, TSFD, APBC, APDC, APSC, NAPFD, APMC, TPFD, APRC and BPFG. All metrics used are
reviewed to assess fault detection rate for prioritized test cases based on coverage criteria for various prioritization techniques. 
Conclusions
 
• Prioritization techniques schedule and order tests to increase effectiveness to achieve performance.

• The main performance goal is fault detection rate. Test cases should run to increase the possibility of detecting
fault at early stages of testing.
• A prioritization metric known as average percentage of faults detected (APFD) used, calculate effectiveness of new
test cases created.
• Regression test prioritization orders test case which is re-executed in regression testing. ESDG graph identifies
changes and gives coverage information for every test case.
• Modified information identifies changed statements. Selected test case is prioritized with genetic algorithm for
increasing fault detection rate.
• Efficiency of approach is calculated using APFD metric.
 
LIST OF REFERENCES
[1] Arvinder Kaur and Shubhra Goyal, “A Genetic Algorithm for Regression Test Case Prioritization using Code Coverage“, International Journal on Computer Science and Engineering
(IJCSE), Vol.3 No.5 May 2011
[2] Suman and Seema, “A Genetic Algorithm for Regression Test Sequence Optimization“, International Joutnal of Advanced Research in Computer and Communication Engineering, Vol.
1, Issue 7, September 2012
[3] Chhabi Rani Panigrahi and Rajib Mall, "A Hybrid Regression Test Selection Technique for Object-Oriented Programs",International Journal of Software Engineering and Its
Applications, Vol. 6, No. 4, 2012
[4] Samaila Musa,Abu Bakar, Md Sultan,Abdul Azim Bin, Abd Ghani and Salmi Baharom, "A Regression Test Case Selection and Prioritization for Object-Oriented Programs using
Dependency Graph and Genetic Algorithm", Research Inventy: International Journal of Engineering And Science , Vol.4, Issue 7 (July 2014), pp. 54-64
[5] Chhabi Rani Panigrahi and Rajib Mall (2013) "An Approach to Prioritize the Regression Test Cases of Object-Oriented Programs", CSIT, pp. 159–173
[6] Abu Bakar Md Sultan, Abdul Azim Abd Ghani, Salmi Baharom and Samaila Musa (2014) "An Evolutionary Regression Test Case Prioritization Based on Dependence Graph and
Genetic Algorithm for Object-Oriented Programs", 2nd International Conference on Emerging Trends in Engineering and Technology (ICETET'2014), May 30-31, 2014 London (UK)
[7] Brian A. Malloy, John D. McGregor, Anand Medikonda, “An Extensible Representation for Object-Oriented Software“
[8] Pradipta Kumar Mishra, and B.K.S.S. Pattanaik, “Analysis of Test Case Prioritization in Regression Testing using Genetic Algorithm“, International Journal of Computer
Application(0975-8887), Vol. 75, No. 8, August 2013
[9]Praveen Ranjan Srivastava and Tai-hoon Kim “Application of Genetic Algorithm in Software Testing“, International Journal of Software Engineering and its Applications Vol. 3, No. 4,
October 2009
[10] Anil Mor, "Evaluate the Effectiveness of Test Suite Prioritization Techniques Using APFD Metric", IOSR Journal of Computer Engineering (IOSR-JCE) , Vol. 16, Issue 4, Ver. I (Jul-
Aug. 2014), pp. 47-51 
THANK
YOU

You might also like