Software Testing

Only available on StudyMode
  • Topic: Bayes' theorem, Probability density function, Conditional probability
  • Pages : 13 (4335 words )
  • Download(s) : 83
  • Published : February 15, 2013
Open Document
Text Preview
A JOURNAL OF LTEX CLASS FILES, VOL. 6, NO. 1, JANUARY 2007

1

Enhancing Performance of Random Testing Through Markov Chain Monte Carlo Methods Bo Zhou, Hiroyuki Okamura, Member, IEEE, and Tadashi Dohi, Member, IEEE Abstract—In this paper, we propose a probabilistic approach to finding failure-causing inputs based on Bayesian estimation. According to our probabilistic insights of software testing, the test case generation algorithms are developed by Markov chain Mote Carlo (MCMC) methods. Dissimilar to existing random testing schemes such as adaptive random testing, our approach can also utilize the prior knowledge on software testing. In experiments, we compare effectiveness of our MCMC-based random testing with both ordinary random testing and adaptive random testing in real program sources. These results indicate that MCMC-based random testing can drastically improve the effectiveness of software testing. Index Terms—Software testing, Random testing, Adaptive random testing, Bayes statistics, Markov chain Monte Carlo.

!

1

I NTRODUCTION

Software testing, defined as the systematic execution of the software system with the aim of revealing failures, is an important phase to validate the correctness of software system. The activities of software testing consists of (i) making test cases and (ii) validating the behavior of software system by executing the test cases. In general, since we cannot validate all of the execution paths, software testing is performed with limited test cases. Thus the quality of test cases directly affects the quality of software products, and one of the quality attributes of test cases is the ability of detecting as-yet-undiscovered failures. A number of different test case generation methods were discussed in the software engineering research field. Random testing (RT) is one of the most classical software testing strategies. Although the RT is quite simple for implementation [1], it is often argued that RT is inefficient, i.e., it needs a large number of test cases, since there is no attempt to make use of any available empirical knowledge known as practices of software testing [2]. For example, the equivalence partitioning enhances the efficiency by executing only one test case for each partitioned input. The concept is based on the practical experience that an equivalence class of inputs shares a program path. Thus the RT has been regarded as inferior to ordinary partition testing. However, as the complexity of software system increases, it is infeasible to properly partition the input domain manually, and thus the testing strategy with randomness like RT receives considerable attentions in automated software • B. Zhou, H. Okamura and T. Dohi are with Department of Information Engineering, Graduate School of Engineering, Hiroshima University, 1-41 Kagamiyama, Higashi-Hiroshima, 7398527 Japan. E-mail: bozhou-dsl@hiroshima-u.ac.jp, {okamu, dohi}@rel.hiroshimau.ac.jp

testing again. Adaptive random testing (ART) [3] was developed to improve the failure-detection effectiveness of RT, which is categorised into the dynamic testing strategy. In RT, test cases are the samples drawn from the input domain with a static probability distribution such as uniform distribution. The dynamic testing strategy changes the probability distribution for making test cases at every time when a test outcome is obtained. Specifically, [4] discussed distance-based ART (DART) and restricted RT (RRT) in the ART framework. Both algorithms can avoid generating a test case that is close to the set of executed test cases. The concept of DART and RRT is based on the practice that evenly spread test cases have a greater chance of finding failures. In fact, [4] examined that DART and RRT had higher failure-detection capabilities than the ordinary RT. Moreover, [5] and [6] described mirror adaptive random testing (MART) and the forgetting technique to improve the computational costeffectiveness of ART. This paper focuses...
tracking img