27.03.2014 Views

SEKE 2012 Proceedings - Knowledge Systems Institute

SEKE 2012 Proceedings - Knowledge Systems Institute

SEKE 2012 Proceedings - Knowledge Systems Institute

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Using FCA-based Change Impact Analysis for Regression Testing ∗<br />

Xiaobing Sun, Bixin Li, Chuanqi Tao, Qiandong Zhang<br />

School of Computer Science and Engineering, Southeast University, Nanjing, China<br />

State Key Laboratory of Computer Science, <strong>Institute</strong> of Software, Chinese Academy of Sciences<br />

{sundomore, bx.li, taocq, zhangqd}@seu.edu.cn<br />

Abstract<br />

Software regression testing is one of the most practical<br />

means to ensure software quality during software evolution.<br />

Test case selection and prioritization are two effective techniques<br />

to maximize the value of the increasing test cases,<br />

and usually studied independently. In this paper, we integrate<br />

these two techniques together, and finish them based<br />

on the impact results predicted by the change impact analysis<br />

(CIA) technique. First, we use formal concept analysis<br />

(FCA) to predict a ranked list of impacted methods from a<br />

set of changed classes. Then, test cases which cover these<br />

impacted methods are included in the new test suite. As<br />

each method predicted by the CIA is assigned with an impact<br />

factor (IF) value corresponding to the probability of<br />

this method to be impacted, test cases are ordered according<br />

to the IF values of the individual methods. Initial empirical<br />

study demonstrates the effectiveness of our regression<br />

testing approach.<br />

1 Introduction<br />

Software change is a fundamental ingredient of software<br />

maintenance. Changes made to software will inevitably<br />

have some unpredicted and undesirable effects on other<br />

parts of the software, thus may induce some faults to the<br />

modified software. And new faults induced during software<br />

maintenance can be identified and isolated by software<br />

change impact analysis and regression testing [2, 12, 15].<br />

Change impact analysis (CIA) is an approach to identify<br />

potential ripple effects caused by changes made to software<br />

[2, 10]. And whether these potential effects inject<br />

∗ This work is supported partially by National Natural Science Foundation<br />

of China under Grant No. 60973149, partially by the Open Funds of<br />

State Key Laboratory of Computer Science of Chinese Academy of Sciences<br />

under Grant No. SYSKF1110, partially by Doctoral Fund of Ministry<br />

of Education of China under Grant No. 20100092110022, partially<br />

by the Scientific Research Foundation of Graduate School of Southeast<br />

University under Grant No. YBJJ1102.<br />

faults into the software is often checked by software regression<br />

testing. Regression testing is one of the most practical<br />

means of ensuring software quality during software evolution.<br />

It is used to provide confidence that: 1) the modified<br />

parts of the program can run consistently with the new<br />

system, and 2) the unmodified parts are not affected by the<br />

modifications and can behave correctly as before. To date,<br />

anumber of different approaches have been studied to regression<br />

testing [15], such as test case selection and test<br />

case prioritization. On the one hand, test case selection is<br />

used to reduce testing cost by selecting a subset of test cases<br />

from original test suite that are necessary to test the modified<br />

software [8, 12]. On the other hand, test case prioritization<br />

is used to identify an ‘ideal’ ordering of test cases to<br />

yield benefits such as earlier feedback to testers and earlier<br />

fault detection [11].<br />

While the research community has made considerable<br />

progress in regression testing areas, one important problem<br />

was overlooked, that is, most current regression testing<br />

techniques are proposed standalone, for example, some focused<br />

on test case selection [13, 8] while some on test case<br />

prioritization [4, 5], and they are usually studied independently.<br />

But in practice, test case selection and prioritization<br />

are performed together to generate a ranked list of test cases<br />

to be directly used. This paper is proposed to address this<br />

lack by combining test case selection and prioritization together.<br />

In our study, we use CIA to support regression testing<br />

activity. The CIA computes a ranked list of impacted<br />

methods from a set of changed classes based on the formal<br />

concept analysis (FCA) technique. And each method in the<br />

impact results is assigned with an impact factor (IF) value,<br />

which corresponds to the probability of this method to be<br />

impacted. On the one hand, test cases are selected based on<br />

the coverage information of these impacted methods; on the<br />

other hand, test cases are ordered based on the probability<br />

of the method to be impacted. And these two procedures are<br />

integrated together and performed through only a round.<br />

This paper is organized as follows: in the next section,<br />

we introduce the FCA-based CIA technique. Section 3<br />

presents our regression testing approach. In Section 4, em-<br />

452

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!