Professional Documents
Culture Documents
Test Case Prioritization Using Improved Genetic Algorithm in Regression Testing
Test Case Prioritization Using Improved Genetic Algorithm in Regression Testing
Master of Technology
In
Computer Sciences and Engineering
Submitted By
Ramanjeet Kaur
Under Supervision of
Mrs. Jagpuneet Kaur Bajwa
( Department of Computer Science, Punjabi University, Patiala. )
There are different methods that can be used for software testing:
1. Black-Box Testing
The technique of testing without having any knowledge of the interior
workings of the application is called black-box testing.
The tester is oblivious to the system architecture and does not have
access to the source code.
Typically, while performing a black-box test, a tester will interact with
the system's user interface by providing inputs and examining outputs
without knowing how and where the inputs are worked upon.
2. White-Box Testing
White-box testing is the detailed investigation of internal logic and
structure of the code. White-box testing is also called glass testing or
open-box testing.
In order to perform white-box testing on an application, a tester needs
to know the internal workings of the code. The tester needs to have a
look inside the source code and find out which unit/chunk of the code
is behaving inappropriately.
Regression testing
It is a type of White-box testing.
Whenever a change in a software application is made, it is quite
possible that other areas within the application have been affected by
this change.
Regression testing is performed to verify that affixed bug hasn't resulted
in another functionality or business rule violation.
The intent of regression testing is to ensure that a change, such as a bug
fix should not result in another fault being uncovered in the application.
Regression testing can be a costly and time consuming process. This
may be the case when the test suite required to test the system is large,
there is some manual element in testing or test execution takes up
significant resources. So it becomes essential to reduce the cost and
time expenses involved in regression testing. Various research efforts
have been put together in the past for achieving this objective.
One way to reduce the cost of regression testing is to select a subset
of original test suite such that the selected subset achieves total
code coverage in minimum time.
Such methods that assist in this selection are known as regression
test suite optimization methods.
Common methods include test case prioritization, test case selection
and test suite minimization.
Test case prioritization
It is a method to prioritize and schedule test cases. The technique is
developed in order to run test cases of higher priority in order to
minimize time, cost and effort during software testing phase.
In order to find out the best test case execution sequence in test
case prioritization, all the possible permutations of the original test
suite are considered as candidates.
Genetic Algorithm
Genetic algorithms are the search heuristics which are widely used in test
case prioritization problems.
A genetic algorithm starts with guesses and attempts to improve the guess
by evolution.
The main benefit of using genetic algorithm is that it belongs to a wider
class of evolutionary algorithms which generate solutions to optimization
problems by using the techniques inspired by natural evolution.
A genetic algorithm will typically have five parts:
i. A representation of a guess called a chromosome.
ii. An initial pool of chromosomes.
iii.A fitness function.
iv.A selection function.
v. A crossover operator and a mutation operator.
Literature review
Yue jian Li et al. (1999) [1] in their paper presented a summary of
regression testing in the following areas: types of regression testing,
regression testing of global variables, regression testing of object-
oriented software, and comparison of selective regression
techniques and cost comparisons of the types of regression testing.
S. Yoo et al.(2010) [2] in their paper analyzed the areas of
regression test minimization, selection and prioritization. The
survey revealed an increasing trend in providing support for these
techniques, particularly prioritization. It also described the
challenges of providing an automated support for regression testing
practices in order to promote practical implementation.
Gregg Rothermel et al.(1999) [3] in their paper presented several
techniques for prioritization of test cases and reported empirical
results that measured the effectiveness of these techniques for
improving fault detection rate. The results provided an insight into
the tradeoffs among various techniques for test case prioritization.
Hema Srikanth et al. (2005) [4] in their paper proposed a Prioritization Of
Requirements for Test(PORT) technique which prioritized test cases on the
basis of four factors: requirements volatility, customer priority,
implementation complexity and fault proneness of the requirements. They
also conducted a PORT case study on four student developed projects in
advanced graduate software testing class. Results showed that PORT
prioritization at the system level improved the rate of severe fault detection.
Also, customer priority was found to be one of the most important
prioritization factors contributing to the improved rate of fault detection.
Paolo Tonella et al. (2006) [5] in their paper proposed a TCP approach that
took advantage of user knowledge through a machine learning algorithm,
known as Case Based Ranking (CBR). The proposed approach worked by
integrating user knowledge with multiple prioritization indexes. The results
indicated that CBR overcomed the previous approaches and also provided a
near-to-optimal solution for moderate suite size.
Xiaofang Zhang et al. (2007) [6] in their paper proposed a new TCP
technique and an associated metric based on varying testing requirement
priorities and test case costs. The case study illustrated that the rate of
units-of-testing-requirement-priority-satisfied-per-unit-test-case-cost
could be increased, and then the testing quality and customer satisfaction
can be improved.
Software Requirements:
Platform: Microsoft windows 7 or higher.
JAVA Runtime Environment
JAVA Development Kit
Netbeans Integrated Development Environment
JAVA Object Oriented Programming Language
References
[1]Y. Li,Nancy JWahl: An Overview of Regression Testing.ACM
SIGSOFT Software Engineering Notes, vol. 24, no. 1, (1999)
[9]
Y. Singh,A. Kaur,B. Suri: Test Case Prioritization using Ant Colony
Optimization.ACM SIGSOFT Software Engineering Notes, vol. 35, no. 4,
(2010)
[11]
D. Marijan,A. Gotlieb, S.Sen: Test Case Prioritization for Continuous
Regression Testing: An Industrial Case Study.In: Proceedings of IEEE
International Conference on Software Maintenance, (2013)
THANK YOU