PHALANX: A Graph-Theoretic Framework for Test Case Prioritization

Size: px
Start display at page:

Download "PHALANX: A Graph-Theoretic Framework for Test Case Prioritization"

Transcription

1 PHALANX: A Graph-Theoretic Framework for Test Case Prioritization Murali Krishna Ramanathan Dept. of Computer Science Purdue University rmk@cs.purdue.edu Mehmet Koyuturk Dept. of Electrical Engineering & Computer Science Case Western Reserve University koyuturk@eecs.case.edu Ananth Grama, Suresh Jagannathan Dept. of Computer Science Purdue University {ayg, suresh}@cs.purdue.edu ABSTRACT Test case prioritization for regression testing can be performed using different metrics (e.g., statement coverage, path coverage) depending on the application context. Employing different metrics requires different prioritization schemes (e.g., maximum coverage, dissimilar paths covered). This results in significant algorithmic and implementation complexity in the testing process associated with various metrics and prioritization schemes. In this paper, we present a novel approach to the test case prioritization problem that addresses this limitation. We devise a framework, Phalanx, that identifies two distinct aspects of the problem. The first relates to metrics that define ordering relations among test cases; the second defines mechanisms that implement these metrics on test suites. We abstract the information into a test-case dissimilarity graph a weighted graph in which nodes specify test cases and weighted edges specify userdefined proximity measures between test cases. We argue that a declustered linearization of nodes in the graph results in a desirable prioritization of test cases, since it ensures that dissimilar test cases are applied first. We explore two mechanisms for declustering the test case dissimilarity graph Fiedler (spectral) ordering and a greedy approach. We implement these orderings in Phalanx, a highly flexible and customizable testbed, and demonstrate excellent performance for test-case prioritization. Our experiments on test suites available from the Subject Infrastructure Repository (SIR) show that a variety of user-defined metrics can be easily incorporated in Phalanx. Categories and Subject Descriptors D.. [Software Engineering]: Testing and Debugging Testing tools; D.. [Software Engineering]: Testing and Debugging Tracing; D..9 [Software Engineering]: Management Software quality assurance Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. To copy otherwise, to republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. SAC 8 March 16, 8, Fortaleza, Ceará, Brazil. Copyright 8 ACM /8/3...$.. Keywords regression testing, test prioritization, program analysis 1. INTRODUCTION Regression testing is an important part of the software development cycle [14, 7, 33]. It ensures that software is backward compatible, i.e., desired properties in the newer version of a program are consistent with older versions, or that a change in a program property with respect to the older version is intentional. One of the critical concerns with this process is the time taken to execute all test suites on a newer version [33]. Consequently, techniques to prioritize test cases [8, 3, 33] or eliminate seemingly redundant tests [13, 19, 34] assume significant importance. While eliminating redundant test case can reduce the time taken for regression testing, there remains the possibility that bugs in the newer version can go undetected [34]. Consequently, prioritization remains an attractive, albeit conservative, alternative; its main goal is to detect as many bugs in the shortest time possible, so that bugs can be patched early, rather than eliminating test cases that are redundant with respect to previously encountered tests. The test case prioritization problem is defined as follows by Rothermel et al. [3]: Definition 1. Test Case Prioritization. Let T be a test suite, i.e., a set of test cases. Let Π be the set of permutations of T. Given prioritization function f : Π R, find π Π such that for all π Π, f(π ) f(π). Here, f is a measure of the quality of a permutation of the test cases. A larger value of f(π) corresponds to a more desirable prioritization, characterized by π. The matter of choosing a good f is an important design criterion in test case prioritization. A commonly used class of prioritization functions relates to the coverage of certain program properties. Many coverage based test prioritization approaches have been proposed [8, 13, 3, 33]. In these approaches, a test case is selected first if it provides maximum coverage of some program property. For certain program properties (e.g., path coverage [18, 19, 1]), the notion of maximum coverage may be ill-defined. For example, program behavior with respect to path coverage is characterized by the sequence of actions it performs or the sequence of statements it executes. If test case prioritization is to be performed based on such program properties, it is beneficial to consider the

2 dissimilarity a test case has with other tests in the test suite. By executing dissimilar test cases upfront, different aspects of the program are tested earlier. The underlying theme of our work is that a broad range of program-centric properties can be quickly tested by executing dissimilar tests one after another. Motivated by this observation, we separate issues related to prioritization into two groups. The first one is concerned with metrics that abstract test case functionality based on specific programcentric properties, and which defines an ordering specification based on this abstraction. We conceptualize this specification as a mapping from test cases to points in a metric space where the distance between two points is a measure of their dissimilarity. For example, a possible choice for this metric is one that abstracts test case behavior with respect to the difference in the statements, paths, functions, sequence of functions, branches, faults, etc. that are executed. According to this abstraction, test cases that generate mostly the same elements (e.g., statements, paths, etc.) reside closer in the corresponding metric space, compared to test cases that have less similarity with respect to the generated elements. The second layer is concerned with algorithmic issues necessary to efficiently construct a priority ordering from these points. Contributions The contributions of this paper are three-fold: 1. We present a two-tiered architecture, Phalanx, that separates the issue of a specific user-defined prioritization metric from the algorithmic aspects of identifying dissimilar test cases based on the ordering induced by the metric.. An examination of many user-defined metrics for test case prioritization. For notions of dissimilarity between paths, we employ techniques that compute longest common subsequences [16] (LCS) to obtain an edit distance between paths; this edit distance is then used to define edge weights between test cases. 3. A case study of our approach on a number of real-world benchmarks and test-suites obtained from Subject Infrastructure Repository [7]. Our results indicate that Phalanx is effective for regression testing over a range of different user-defined metrics.. MOTIVATING EXAMPLE Consider the code fragment shown below, which takes two arguments and characterizes the first argument as odd(s) or even(s3) and positive(s) or negative(s6) and simply prints(s4) the second argument after storing(s1) it in a local variable str: void main(int argc, char *argv[]) { /* assume argv[] = "prog" */ int x; char *str = NULL; if(argc > ) { str = (char *)malloc(strlen(argv[])+1); strcpy(str, argv[]); /* s1 */ } x = atoi(argv[1]); if(x%!= ) write(1, "odd input",9); /* s */ else arg1 arg t1 7 abc t 8 abc t3-7 abc t4-8 abc t 8 - Table 1: Arguments for test cases. s1 s s3 s4 s s6 t1 x x x x t x x x x t3 x x x x t4 x x x x t x x x Table : Statement coverage by test cases. write(1, "even input",1); /* s3 */ /* assume in older version write(1,argv[],strlen(argv[])) */ write(1, str, strlen(str)); /* s4 */ if(x > ) write(1, "positive",8); /* s */ else write(1, "negative",8); /* s6 */ } Assume that an older version of the above fragment executes the statement s4 with argv[] instead of str. In the newer version, the above fragment is obviously erroneous (at statement s4), if there is exactly one argument provided. Consider five test inputs on the older version as shown in Table 1. The coverage table using statement coverage as the testing metric is given in Table. The method presented in Rothermel et al. [3] on uncovered statement coverage can be used in the above context. The obtained ordering of test cases is t1, t4, t, t3 and t. This is because test case t1 covers statements s and s4, while test case t4 covers statements s3 and s6 apart from commonly covering s1 and s4. Similar reasoning applies for test cases t and t3. Another potential ordering is t, t3, t1, t4 and t. While other equally valuable orderings are possible, in a majority of such orderings, test case t is placed at the end. Notice that s4 appears in all the tests and therefore it becomes harder to differentiate between test cases. Such application contexts motivate the exploration of different prioritization techniques. In the above case, the correctness of s4 is dependent on whether s1 is executed or not. Therefore, a user-defined metric that uses path information can effectively identify the error. By applying Phalanx with path coverage as the user defined metric, we obtained the ordering as t, t3, t, t1 and t4. For some other application, prioritization based on branch-coverage may outperform prioritization based on paths. In fact, the effectiveness of a prioritization scheme is significantly dependent on the property of the program under consideration, the test suite [8], the required level of efficiency in regression testing, and the time available for constructing an ordering. The focus of this paper is to alleviate the test designer from issues peripheral to the testing process (e.g., algorithm design for prioritization) by designing a framework, which will enumerate a list of prioritized test cases given the quantified dissimilarities among every pair of test cases. 3. PHALANX: THE FRAMEWORK 3.1 Test Case Dissimilarity and Minimum Similarity Ordering

3 For a given test suite, a program, and a user-defined measure of dissimilarity, we compute a dissimilarity function δ P : T T R as follows. For an existing version of a program, each test case is executed. The program is instrumented to obtain the memory operation sequence trace for each test case. A trace is a sequence of <Operation, Value> tuples, where Operation is either a read or write to memory and Value is the value read from or written into memory. The trace is analogous to a string and the tuple is analogous to a letter in an alphabet. Comparing two test cases is equivalent to comparing the corresponding trace sequences. Based on a user-defined cost function, the Levenstein [16] distance between any pair of trace sequences is calculated using dynamic programming [4]. (The Levenstein distance between two strings is defined as the shortest sequence of edit operations that lead from one string to the other.) If the Levenstein distance between the two test cases is zero, then we regard the two test cases as being identical. Once a dissimilarity function is specified, we define an optimization problem with an objective function that associates the dissimilarity between test cases with their temporal proximity in the resulting ordering. This approach is based on the idea that dissimilar test cases should be executed close to each other. Definition. Minimum Similarity Ordering Problem (MSO). Given test suite T, program P, and a test case dissimilarity function δ P, let π = {i 1, i,..., i T } define a permutation of the test cases in T. Among all permutations of T, find a permutation π that minimizes the weighted aggregate distance induced by π, which is defined as (π) = T 1 X j=1 T X k=j+1 δ P (t i, t j) i j i k. (1) Observe that (π) is a prioritization function specified by Definition 1. Therefore, the framework that is characterized by the notion of dissimilarity function and the minimum similarity ordering problem defines a class of test case prioritization problems. The Minimum similarity ordering problem is NP-hard, since the optimal linear arrangement problem, a special case of MSO where δ P is a binary function, is known to be NP-hard [17]. However, these and other related intractable graph problems have been well-studied, and many effective heuristics exist in the literature. To take advantage of this, we propose a graph model for test case prioritization to study the problem in a graph-theoretic framework. 3. Test Case Dissimilarity Graph From the instrumented data, we construct a test case dissimilarity graph defined as follows: Definition 3. Test Case Dissimilarity Graph. Given test suite T and program P, and a test case dissimilarity function δ P, the corresponding test case dissimilarity graph G(V, E, w) is a weighted undirected graph with vertex set V, edge set E, and weight function w : E R, constructed as follows. For all t i T, there exists v i V. For all pair of test cases, t i, t j T, there exists v iv j E, such that w(v iv j) = δ P (t i, t j). This model transforms the minimum similarity ordering problem into a graph optimization problem. The goal is to find an optimal ordering of vertices and the distance between any pair of vertices in the ordering is penalized by a factor that is equal to the weight of the edge between these two vertices. We illustrate the process of generating a test case dissimilarity graph for the example given in Section. By instrumenting the older version of the program (recall that statement s 4 is executed with argv[] instead of str) and executing the test cases t 1, t, t 3, t 4, and t, we obtain the following sequences: t 1 : <W, abc> <W, odd input> <W, prog> <W, positive> t : <W, abc> <W, even input> <W, prog> <W, positive> t 3 : <W, abc> <W, odd input> <W, prog> <W, negative> t 4 : <W, abc> <W, even input> <W, prog> <W, negative> t : <W, even input> <W, prog> <W, positive> As suggested earlier, the dissimilarity between any two test cases is the edit distance corresponding to the trace sequences. For example, the edit distance between test cases t 3 and t is computed as follows: t 3 : <W,abc> <W, odd input> - <W,prog> <W,negative> - t : - - <W, even input> <W,prog> - <W,positive> Counting the number of gaps(-), we find that the edit distance is five. Computing the edit distance between all possible pairs of sequences, we obtain the following adjacency matrix A G of the test case dissimilarity graph G: A G = This metric, which we refer to as Memory Value Sequence (), is one of four metrics that we use in this paper. The other metrics used in the paper are enumerated below: 3 7 () 1. Function Sequence (): Test case differentiation is based on function call sequences.. Branch Sequence (): Test case differentiation is based on branch operation sequences. 3. Memory Statement Sequence (): Differentiation is based on sequence of memory statements without taking the values read or written into consideration. 3.3 Algorithms for Prioritizing Test Cases The test case dissimilarity graph G is used to generate a minimum similarity ordering of the nodes. In this paper, we present two approaches to solve this problem; the first uses a simple greedy algorithm, and the second uses Fiedler ordering Greedy Algorithm The greedy algorithm orders the nodes of G(V, E, w) by growing an ordered list l of nodes and locally minimizing the optimization function at each step by appending the node that is most heavily connected (dissimilar) to the nodes in the list. The output to the algorithm is the ordered list l. 1. Select edge uv E such that has the w(uv) is maximum among all edges. Let l = [u, v]. The test-case that corresponds to u is the head b of list l and v is the tail e.

4 . While not all v V are present in l, do the following: Among all edges ev E, where v / l pick the edge with maximum weight w(ev). Add v to l as the new tail e. 3. List l gives the ordered list of test cases. In the example illustrated above, an execution of the greedy approach orders the test cases as t 3, t, t 1, t and t 4. Upon careful observation, it is evident that this ordering is not necessarily unique when equal edge weights are present in the test case graph. Furthermore, the ordering obtained using such a mechanism is not always globally optimal. In some cases, after choosing the edge with maximum weight in the graph, subsequent edges chosen may have smaller weight than the remaining edges in the graph (discussed in Section 3.3.). Therefore, we apply a better approximation for optimal linear ordering problems [] and evaluate the use of Fiedler vectors for ordering test cases Spectral ordering Algorithm Due to space limitations, we are unable to present a brief overview of spectral graph theory and refer the reader to [17, 1, 1, ]. Once we generate the test case similarity graph G, we use Fiedler(spectral) ordering to find a desirable test case prioritization through the following procedure: 1. Compute Laplacian L G of G.. Compute the second smallest eigenvalue of L G, λ (L G). 3. Extract the eigenvector x that corresponds to λ (L G). 4. Sort the entries of x and reorder the indices (that represent the vertices in G) accordingly.. The order of vertices that correspond to the reordered list of indices forms the desired ordering of test cases. Recall the motivating example in Section. We compute the Fiedler vector for the graph G given in Equation as follows. The eigenvalues of the Laplacian of these graph are,.481,.44,.6774, and The eigenvector corresponding to the second smallest eigenvalue λ =.481 is x = [.38,.7486,.81,.38,.676] T, (3) whose entries are ordered as x () < x (3) < x () < x (1) < x (4). Reordering the test cases accordingly, we obtain the following Fiedler ordering for test case prioritization: {t, t 3, t, t 1, t 4}. Note that although t is scheduled earlier by the greedy algorithm, this need not always be the case. A greedy approach optimizes locally whereas the Fiedler ordering provides an approximation to the global optimum. Also observe that, using the prioritization given by the Fiedler ordering, all possible paths in the program are explored within the first three tests. 4. EXPERIMENTAL RESULTS 4.1 Implementation The implementation consists of three components for performing the following tasks: (i) instrumentation, (ii) generating a test case dissimilarity graph, and (iii) computing the priority of test cases. We use PIN [3], a dynamic binary instrumentation tool, for instrumentation purposes. A test case dissimilarity graph is a connected graph(see Definition 3). The only information that is needed for generating a test case graph corresponds to the edge weights. These edge weights are calculated based on the prioritization metric. Since the prioritization metrics explored in this paper are based on paths, edge weights are given by the edit distance between the corresponding paths. Dynamic programming takes quadratic time in the total length of the sequence and is not scalable to long sequences. To alleviate this scalability problem, we discuss an approach using Rabin fingerprinting [8] on generated sequences. We use existing implementations [9] to compute Rabin fingerprint and the hashes. For computing the priority of test cases, we use MATLAB [4] which provides basic library functions to calculate eigenvalues and eigenvectors. Efficient techniques are available for calculating the second eigenvalue and the corresponding eigenvector based on the sparsity of the matrix. In general, for the application of test case prioritization, the total time taken to construct a prioritization is O(n ), where n is the number of test cases under consideration. The greedy heuristic has identical complexity. We explore four different types of hitherto unexplored path-sensitive prioritization mechanisms that are based on program paths to show the efficacy of Phalanx. We specifically consider four such prioritization metrics differentiation based on (a) function sequences (), (b) branch operation sequences (), (c) sequence of memory statements without values of reads/writes () and (d) sequence of memory statements with values of reads/writes (). 4. Subject Infrastructure Repository (SIR) We perform our experiments on a Linux (Gentoo release r1) system running on a Intel(R) Pentium(R) 4 CPU 3.GHz with 1GB memory. The version of the PIN [3] tool used was a special release 1819 (-1) for Gentoo Linux. The sources were compiled using GCC version For our experiments, we use the benchmarks (subjects) from the Subject Infrastructure Repository (SIR) [7]. The repository provides C programs for use in experimentation with testing and analysis techniques. The C programs vary across a range of parameters: the number of lines of code, the number of versions, the number of faults and the size of the test pool used for testing. Table 3 presents the subjects used. The number of lines of code varies from 1 to 11K. The test pool size varies from 17 to Experimental Results We execute the base version of each program with all the test cases present in the test-suite and collect traces. Subsequently, we apply the techniques specified in earlier sections of the paper to obtain a test case graph. From the test case graph, we obtain two possible orderings of test cases for each of the metrics used. The first ordering is based on the greedy approach and the second ordering is based on Fiedler ordering. Based on the fault matrix available with each subject, we obtain the list of faults and the list of test

5 (a) tcas (b) schedule (c) tot info (d) print tokens (e) print tokens (f) replace (g) gzip (h) grep (i) flex Figure 1: Normalized effectiveness of prioritization under Fiedler ordering compared to a greedy heuristic. cases that are used in detecting each fault. We evaluate the orderings using two different methods: (i) the APFD metric, which measures the weighted average of the percentage of faults detected over the life of the test suite, used in [8], and (ii) the realized difference between the number of faults detected by Phalanx and greedy approaches after executing a specific number of test cases. More specifically, let T be a test suite containing n test cases, F be a set of m faults, T F i be the first test case in ordering T of T that reveals fault i. The APFD is calculated as follows: AP F D = 1 T F T Fm nm + 1 n For a more elaborate description of this metric, we refer the reader to [8]. A larger value of APFD denotes a better ordering of test cases because the first few test cases reveal a significant number of faults. Table 3 presents the APFD values for the subject programs for the four metrics described in Section 3. A majority of the values are greater than 8%, signifying the detection of faults early in the regression testing process. On average, the performances of Fiedler and greedy ordering approach are comparable. However, when worst case behavior is compared, Fiedler ordering performs significantly better. For example, the APFD values for gzip under different metrics is significantly better with Fiedler ordering as compared to the greedy approach. The improved worstcase behavior can be attributed to the optimization function used in Fiedler ordering. For the greedy approach, the disadvantage of using local maximum as a criteria for ordering becomes obvious in benchmarks such as gzip and schedule. We also observe that seems to be a very useful metric as it not only specifies the values written into, or read from memory, but also defines the paths taken by a program, does not incur significantly greater cost and displays better performance compared to the other three metrics. While APFD is a useful metric for measuring the efficacy of an ordering, we observe from our experiments that in some scenarios, a few faults are detected early and the number of faults detected subsequently drops. Interestingly, this may result in a comparable APFD value of another ordering in which cumulatively more faults are detected, albeit after executing a few more test cases than the former. In Figure 1, we present the behavior of various subjects and the corresponding test suites by calculating the difference in the number of faults detected by Fiedler and greedy ordering approaches. Each graph represents the normalized number

6 Fiedler Ordering Greedy ordering tcas schedule tot info print tokens print tokens replace gzip grep flex Table 3: Comparison of APFD (given in percent) obtained with Fiedler and Greedy ordering approaches of faults found using Fiedler ordering with respect to the greedy approach for the four prioritization metrics. For example, whenever the value along the y-axis is greater than zero, it indicates more faults detected by Fiedler ordering. For most of the subjects, a majority of the faults are detected after executing the first % of the test cases present in the test pool, irrespective of the ordering scheme used. Furthermore, we also find it intuitive that for a majority of the subjects (except grep), the difference either decreases or increases quite rapidly. This behavior is easily observable in Fig 1(a), where within execution of a small number of test cases from some point in the ordering, a large number of faults are detected as shown by the spikes. We hypothesize that this behavior is an artifact of placing dissimilar test cases in close proximity. Figures 1(g) and 1(h) present a contrasting study of Fiedler and greedy ordering schemes. In Figure 1(g), a large number of faults are detected quite early in the regression testing process. For this subject, greedy ordering finds a local maxima and some of the faults are not detected until many more test cases are executed. In contrast, Figure 1(h) shows the improved performance of greedy ordering. It becomes clear from the figure that a few faults (detected by exactly one test case in the pool) are detected early using the greedy ordering. The list of faults that are detected later reflect the small APFD values using Fiedler ordering.. RELATED WORK Rothermel et al. [3] present a number of techniques that use test execution information to prioritize test cases for regression testing. These techniques are classified broadly into three categories: (i) order test cases based on total coverage of code components, (ii) order test cases based on coverage of code components previously uncovered, and (iii) order test cases based on estimated ability to reveal faults. The elaborate experiments that accompany this work show that each of the prioritization techniques improved the rate of fault detection. In subsequent work, Elbaum et al. [8] address three important questions: (i) are prioritization techniques more effective when made specific to modified versions?; (ii) does granularity (e.g., statement vs function level) of coverage matter?; and (iii) do inclusion of measures of likelihood of faults provide any improvements? New techniques are presented and detailed experiments suggest that version-specific prioritization improves test case ordering for the specified version; granularity and likelihood of faults do not significantly improve prioritization ordering. Srivastava and Thiagarajan [33] present Echelon, a testprioritization system that runs under a Windows environment. Test cases are prioritized based on the changes made to a program. Echelon uses a binary matching system that can accurately compute the differences at the basic block level between two versions of the program in binary form. Test cases are ordered to maximize coverage of affected regions using a fast, simple and intuitive heuristic. Echelon has been found to be quite effective on large binaries. The framework presented in this paper is complementary to these techniques. Prioritization based on the above metrics can be easily coded into our framework. Furthermore, novel metrics based on program paths have been presented to show the effectiveness of our framework. Harrold et al. [13] present a technique for selecting a representative set of test cases from a test-suite, which provides similar coverage. In other words, the technique is used to eliminate redundant and obsolete test cases. In [9], Rothermel et al. show through experiments that a potential drawback of redundant test elimination techniques is that in minimizing a test suite, the ability of that test suite to reveal faults in the software may be reduced. Jeffrey and Gupta [19] present another technique to minimize this drawback. Apart from the commonly shared goal of improving the process of regression testing, the problem addressed in this paper is orthogonal to the redundant test-case elimination problem. In [6], Dickinson et al. find failures by cluster analysis of execution profiles. For observation-based testing, the hypothesis is that executions that exhibit unusual behaviors are good candidates for testing. Cluster analysis, a multivariate analysis method for finding groups in a population of objects, is performed; subsequently these clusters are filtered by selecting one or more executions from each cluster. This approach is shown to perform better than simple random sampling techniques. The techniques used in [6] and our work are based on the hypothesis that testing a program with dissimilar test inputs is useful. Specifically, we use Fiedler ordering, a declustering technique useful for flowsensitive metrics to place dissimilar test-cases closeby (in a global sense) to quickly detect failures. Bryce and Colbourn [] present a case for test case prioritization for interaction testing, a mechanism for testing systems deployed on a variety of hardware and software configurations. They adapt a greedy method to generate a set of tests to identify all pairwise interactions when the ordered set of test cases is run to completion; otherwise the more important test cases are run if the testing is terminated without

7 completion. Bryce et al. perform a detailed study of greedy algorithms for the construction of software interaction test suites in [3]. We consider regression testing in our paper and present a greedy method to order test cases for flow sensitive metrics. The methods presented in [] can be potentially used for regression testing. We plan to explore the application of pairwise interactions among program objects (instead of software configurations) to prioritize test cases for regression testing. There has been substantial work in the area of impact analysis [1,, 6, 31, 3]. In many of these approaches, functions that follow a modified function in some execution path are added to the impact set. One of the reasons for using dynamic impact analysis is to reduce the parts of program that need to be retested while performing regression testing. For example, in [31], Ren et al. detect a set of changes responsible for a modified test s behavior and the set of tests that are affected by a modification are identified. The information obtained through impact analysis can help in designing new methods for prioritization. As long as these new methods can be specified in terms of a relation between test cases, a test case dissimilarity graph can be built and subsequently our approach for ordering test cases can be applied. Many interesting techniques have been devised for bug detection in software systems [11,, 1, ]. For example, in [1], Godefroid et al. present a technique to automatically generate test cases so that the coverage of the program is increased. Insofar as these efforts aim to generate useful test cases, they serve an important, albeit complementary role to our work. 6. REFERENCES [1] T. Apiwattanapong, A. Orso, and M. Harrold. Efficient and precise dynamic impact analysis using execute-after sequences. In ICSE, pages ,. [] R. Bryce and C. Colbourn. Test prioritization for pairwise interaction coverage. In A-MOST, pages 1 7,. [3] R. Bryce, C. Colbourn, and M. Cohen. A framework of greedy methods for constructing interaction test suites. In ICSE, pages 146 1,. [4] T.H. Cormen, C.E. Leiserson, R.L. Rivest, and C. Stein. Introduction to algorithms. MIT Press and McGraw-Hill Book Company, nd edition, 1. [] C. Csallner and Y. Smaragdakis. Dsd-crasher: a hybrid analysis tool for bug finding. In ISSTA 6, pages 4 4, Portland, Maine, USA, 6. [6] W. Dickinson, D. Leon, and A. Podgurski. Finding failures by cluster analysis of execution profiles. In ICSE 1, pages , Washington, DC, USA, 1. [7] H. Do, S.G. Elbaum, and G. Rothermel. Supporting controlled experimentation with testing techniques: An infrastructure and its potential impact. Empirical Software Engineering: An International Journal, 1(4):4 43,. [8] S. Elbaum, A.G. Malishevsky, and G. Rothermel. Test case prioritization: A family of empirical studies. IEEE Trans. Softw. Eng., 8():19 18,. [9] J. Ostrin G. Rothermel, M.J. Harrold and C. Hong. An empirical study of the effects of minimization on the fault detection capabilities of test suites. In ICSM, [1] A. George and A. Pothen. An analysis of spectral envelope reduction via quadratic assignment problems. Siam J. Matrix Anal. Appl., 18(3):76 73, July [11] P. Godefroid. Compositional dynamic test generation. In POPL 7: Proceedings of the 34th Annual ACM Symposium on Principles of Programming Languages, Jan 7. [1] P. Godefroid, N. Klarslund, and K. Sen. Dart: Directed automated random testing. In Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation, pages 13 3, Chicago, Il,. [13] M.J. Harrold, R. Gupta, and M.L. Soffa. A methodology for controlling the size of a test suite. ACM Trans. Softw. Eng. Methodol., (3):7 8, [14] M.J. Harrold, D. Rosenblum, G. Rothermel, and E. Weyuker. Empirical studies of a prediction model for regression test selection. IEEE Trans. Softw. Eng., 7(3):48 63, 1. [1] Bruce Hendrickson and Robert Leland. An improved spectral graph partitioning algorithm for mapping parallel computations. SIAM J. Sci. Comput., 16():4 469, 199. [16] D. Hirschberg. Algorithms for the longest common subsequence problem. Journal of ACM, 4(4), pages , [17] S. B. Horton. The Optimal Linear Arrangement Problem: Algorithms and Approximation. PhD thesis, Georgia Institute of Technology, [18] M. Hutchins, H. Foster, T. Goradia, and T. Ostrand. Experiments of the effectiveness of dataflow- and controlflow-based test adequacy criteria. In ICSE 94, pages 191, [19] D. Jeffrey and N. Gupta. Test suite reduction with selective redundancy. In ICSM, pages 49 8,. [] J. Law and G. Rothermel. Whole program path-based dynamic impact analysis. In ICSE 3, pages , 3. [1] B. Liblit, M. Naik, A. Zheng, A. Aiken, and M. Jordan. Scalable statistical bug isolation. In PLDI, pages 1 6, Chicago, Illinois,. [] B. Livshits and T. Zimmermann. Dynamine: a framework for finding common bugs by mining software revision histories. In Proceedings of the 13th ACM SIGSOFT Symposium on the Foundations of Software Engineering (ESEC-FSE), Sep,. [3] C. Luk, R. Cohn, R. Muth, H. Patil, A. Klauser, G. Lowney, S. Wallace, V. Reddi, and K. Hazelwood. Pin: building customized program analysis tools with dynamic instrumentation. In PLDI, pages 19,. [4] [] B. Mohar. Laplace eigenvalues of graphs a survey. Disc. Math., 19: , 199. [6] A. Orso, T. Apiwattanapong, and M. Harrold. Leveraging field data for impact analysis and regression testing. In ESEC-FSE, pages , 3. [7] A. Orso, N. Shi, and M.J. Harrold. Scaling regression testing to large software systems. In FSE, pages 41, Newport Beach, CA, USA, November 4. [8] Michael Rabin. Fingerprinting by Random Polynomials. Technical Report TR-1-81, Center for Research in Computing Technology, Harvard University, [9] hakim/software/. [3] M.K. Ramanathan, A. Grama, and S. Jagannathan. Sieve: A tool for automatically detecting variations across program versions. In Proceedings of the 1st IEEE International Conference on Automated Software Engineering (ASE 6), pages 41, Tokyo, Japan, 6. [31] X. Ren, F. Shah, F. Tip, B. Ryder, and O. Chesley. Chianti: A tool for change impact analysis of Java programs. In OOPSLA 4, pages , Vancouver, BC, Canada, 4. [3] G. Rothermel, R.J. Untch, and C. Chu. Prioritizing test cases for regression testing. IEEE Trans. Softw. Eng., 7(1):99 948, 1. [33] A. Srivastava and J. Thiagarajan. Effectively prioritizing tests in development environment. In ISSTA, pages 97 16,. [34] W.E. Wong, J.R. Horgan, S. London, and A.P. Mathur. Effect of test set minimization on fault detection effectiveness. In ICSE 9, pages 41, 199.

Chapter 3. Requirement Based System Test Case Prioritization of New and Regression Test Cases. 3.1 Introduction

Chapter 3. Requirement Based System Test Case Prioritization of New and Regression Test Cases. 3.1 Introduction Chapter 3 Requirement Based System Test Case Prioritization of New and Regression Test Cases 3.1 Introduction In this chapter a new prioritization technique has been proposed with two new prioritization

More information

Sieve: A Tool for Automatically Detecting Variations Across Program Versions

Sieve: A Tool for Automatically Detecting Variations Across Program Versions Sieve: A Tool for Automatically Detecting Variations Across Program Versions Murali Krishna Ramanathan Ananth Grama Suresh Jagannathan {rmk, ayg, suresh}@cs.purdue.edu Department of Computer Science Purdue

More information

Fault Class Prioritization in Boolean Expressions

Fault Class Prioritization in Boolean Expressions Fault Class Prioritization in Boolean Expressions Ziyuan Wang 1,2 Zhenyu Chen 1 Tsong-Yueh Chen 3 Baowen Xu 1,2 1 State Key Laboratory for Novel Software Technology, Nanjing University, Nanjing 210093,

More information

BRANCH COVERAGE BASED TEST CASE PRIORITIZATION

BRANCH COVERAGE BASED TEST CASE PRIORITIZATION BRANCH COVERAGE BASED TEST CASE PRIORITIZATION Arnaldo Marulitua Sinaga Department of Informatics, Faculty of Electronics and Informatics Engineering, Institut Teknologi Del, District Toba Samosir (Tobasa),

More information

Trace-Based Memory Aliasing Across Program Versions

Trace-Based Memory Aliasing Across Program Versions Trace-Based Memory Aliasing Across Program Versions Murali Krishna Ramanathan, Suresh Jagannathan, and Ananth Grama Department of Computer Science, Purdue University, West Lafayette, IN 47907 {rmk, suresh,

More information

Dr. N. Sureshkumar Principal Velammal College of Engineering and Technology Madurai, Tamilnadu, India

Dr. N. Sureshkumar Principal Velammal College of Engineering and Technology Madurai, Tamilnadu, India Test Case Prioritization for Regression Testing based on Severity of Fault R. Kavitha Assistant Professor/CSE Velammal College of Engineering and Technology Madurai, Tamilnadu, India Dr. N. Sureshkumar

More information

Efficient Time-Aware Prioritization with Knapsack Solvers

Efficient Time-Aware Prioritization with Knapsack Solvers Efficient Time-Aware Prioritization with Knapsack Solvers Sara Alspaugh, Kristen R. Walcott, Michael Belanich, Gregory M. Kapfhammer and Mary Lou Soffa Department of Computer Science University of Virginia

More information

Test Suite Reduction with Selective Redundancy

Test Suite Reduction with Selective Redundancy Test Suite Reduction with Selective Redundancy Dennis Jeffrey Department of Computer Science The University of Arizona Tucson, AZ 85721 jeffreyd@cs.arizona.edu Neelam Gupta Department of Computer Science

More information

Effective Test Case Prioritization Technique in Web Application for Regression Test Suite

Effective Test Case Prioritization Technique in Web Application for Regression Test Suite Available Online at www.ijcsmc.com International Journal of Computer Science and Mobile Computing A Monthly Journal of Computer Science and Information Technology IJCSMC, Vol. 3, Issue. 11, November 2014,

More information

Extended Program Invariants: Applications in Testing and Fault Localization

Extended Program Invariants: Applications in Testing and Fault Localization Extended Program Invariants: Applications in Testing and Fault Localization Mohammad Amin Alipour, and Alex Groce School of Electrical Engineering and Computer Science Oregon State University Corvallis,

More information

Accurately Choosing Execution Runs for Software Fault Localization

Accurately Choosing Execution Runs for Software Fault Localization Accurately Choosing Execution Runs for Software Fault Localization Liang Guo, Abhik Roychoudhury, and Tao Wang School of Computing, National University of Singapore, Singapore 117543 {guol, abhik, wangtao}@comp.nus.edu.sg

More information

Scalable Statistical Bug Isolation

Scalable Statistical Bug Isolation Post-Deployment Monitoring Scalable Statistical Bug Isolation Ben Liblit, Mayur Naik, Alice Zheng, Alex Aiken, and Michael Jordan University of Wisconsin, Stanford University, and UC Berkeley Goal: Measure

More information

An Empirical Evaluation of Test Adequacy Criteria for Event-Driven Programs

An Empirical Evaluation of Test Adequacy Criteria for Event-Driven Programs An Empirical Evaluation of Test Adequacy Criteria for Event-Driven Programs Jaymie Strecker Department of Computer Science University of Maryland College Park, MD 20742 November 30, 2006 Abstract In model-based

More information

Automatically Locating software Errors using Interesting Value Mapping Pair (IVMP)

Automatically Locating software Errors using Interesting Value Mapping Pair (IVMP) 71 Automatically Locating software Errors using Interesting Value Mapping Pair (IVMP) Ajai Kumar 1, Anil Kumar 2, Deepti Tak 3, Sonam Pal 4, 1,2 Sr. Lecturer, Krishna Institute of Management & Technology,

More information

Fault Localization Using Value Replacement

Fault Localization Using Value Replacement Fault Localization Using Value Replacement Dennis Jeffrey (1) jeffreyd@cs.ucr.edu Neelam Gupta guptajneelam@gmail.com Rajiv Gupta (1) gupta@cs.ucr.edu (1) Univ. of California at Riverside, CSE Department,

More information

Program Partitioning - A Framework for Combining Static and Dynamic Analysis

Program Partitioning - A Framework for Combining Static and Dynamic Analysis Program Partitioning - A Framework for Combining Static and Dynamic Analysis Pankaj Jalote, Vipindeep V, Taranbir Singh, Prateek Jain Department of Computer Science and Engineering Indian Institute of

More information

Empirical Evaluation of the Tarantula Automatic Fault-Localization Technique

Empirical Evaluation of the Tarantula Automatic Fault-Localization Technique Empirical Evaluation of the Tarantula Automatic Fault-Localization Technique James A. Jones and Mary Jean Harrold College of Computing, Georgia Institute of Technology Atlanta, Georgia, U.S.A. jjones@cc.gatech.edu,

More information

A METRIC BASED EVALUATION OF TEST CASE PRIORITATION TECHNIQUES- HILL CLIMBING, REACTIVE GRASP AND TABUSEARCH

A METRIC BASED EVALUATION OF TEST CASE PRIORITATION TECHNIQUES- HILL CLIMBING, REACTIVE GRASP AND TABUSEARCH A METRIC BASED EVALUATION OF TEST CASE PRIORITATION TECHNIQUES- HILL CLIMBING, REACTIVE GRASP AND TABUSEARCH 1 M.Manjunath, 2 N.Backiavathi 1 PG Scholar, Department of Information Technology,Jayam College

More information

A NOVEL APPROACH FOR TEST SUITE PRIORITIZATION

A NOVEL APPROACH FOR TEST SUITE PRIORITIZATION Journal of Computer Science 10 (1): 138-142, 2014 ISSN: 1549-3636 2014 doi:10.3844/jcssp.2014.138.142 Published Online 10 (1) 2014 (http://www.thescipub.com/jcs.toc) A NOVEL APPROACH FOR TEST SUITE PRIORITIZATION

More information

Bug Signature Minimization and Fusion

Bug Signature Minimization and Fusion 2011 IEEE 1th International Symposium on High-Assurance Systems Engineering Bug Signature Minimization and Fusion David Lo 1, Hong Cheng 2, and Xiaoyin Wang 1 School of Information Systems, Singapore Management

More information

Leveraging Transitive Relations for Crowdsourced Joins*

Leveraging Transitive Relations for Crowdsourced Joins* Leveraging Transitive Relations for Crowdsourced Joins* Jiannan Wang #, Guoliang Li #, Tim Kraska, Michael J. Franklin, Jianhua Feng # # Department of Computer Science, Tsinghua University, Brown University,

More information

Cost-cognizant Test Case Prioritization

Cost-cognizant Test Case Prioritization Technical Report TR-UNL-CSE-2006-0004, Department of Computer Science and Engineering, University of Nebraska Lincoln, Lincoln, Nebraska, U.S.A., 12 March 2006 Cost-cognizant Test Case Prioritization Alexey

More information

A Test Suite Reduction Method based on Test Requirement Partition

A Test Suite Reduction Method based on Test Requirement Partition A Test Suite Reduction Method based on Test Requirement Partition Wan Yongbing 1, Xu Zhongwei 1, Yu Gang 2 and Zhu YuJun 1 1 School of Electronics & Information Engineering, Tongji University, Shanghai,

More information

Lecture 27: Fast Laplacian Solvers

Lecture 27: Fast Laplacian Solvers Lecture 27: Fast Laplacian Solvers Scribed by Eric Lee, Eston Schweickart, Chengrun Yang November 21, 2017 1 How Fast Laplacian Solvers Work We want to solve Lx = b with L being a Laplacian matrix. Recall

More information

Efficient Regression Test Model for Object Oriented Software

Efficient Regression Test Model for Object Oriented Software Efficient Regression Test Model for Object Oriented Software Swarna Lata Pati College of Engg. & Tech, Bhubaneswar Abstract : This paper presents an efficient regression testing model with an integration

More information

An Empirical Study of the Effects of Test-Suite Reduction on Fault Localization

An Empirical Study of the Effects of Test-Suite Reduction on Fault Localization An Empirical Study of the Effects of Test-Suite Reduction on Fault Localization Yanbing Yu yyu@cc.gatech.edu James A. Jones jjones@cc.gatech.edu College of Computing Georgia Institute of Technology Atlanta,

More information

My favorite application using eigenvalues: partitioning and community detection in social networks

My favorite application using eigenvalues: partitioning and community detection in social networks My favorite application using eigenvalues: partitioning and community detection in social networks Will Hobbs February 17, 2013 Abstract Social networks are often organized into families, friendship groups,

More information

An approach to prioritize the regression test cases of object-oriented programs

An approach to prioritize the regression test cases of object-oriented programs CSIT (June 2013) 1(2):159 173 DOI 10.1007/s40012-013-0011-7 ORIGINAL RESEARCH An approach to prioritize the regression test cases of object-oriented programs Chhabi Rani Panigrahi Rajib Mall Received:

More information

Model Based Test Case Prioritization for Testing Component Dependency in CBSD Using UML Sequence Diagram

Model Based Test Case Prioritization for Testing Component Dependency in CBSD Using UML Sequence Diagram Model Based Test Case Prioritization for Testing Component Dependency in CBSD Using UML Sequence Diagram Arup Abhinna Acharya School of Computer Engineering KIIT University Bhubaneswar, India aacharyafcs@kiit.ac.in

More information

Review of Regression Test Case Selection Techniques

Review of Regression Test Case Selection Techniques Review of Regression Test Case Selection Manisha Rani CSE Department, DeenBandhuChhotu Ram University of Science and Technology, Murthal, Haryana, India Ajmer Singh CSE Department, DeenBandhuChhotu Ram

More information

Bug Inducing Analysis to Prevent Fault Prone Bug Fixes

Bug Inducing Analysis to Prevent Fault Prone Bug Fixes Bug Inducing Analysis to Prevent Fault Prone Bug Fixes Haoyu Yang, Chen Wang, Qingkai Shi, Yang Feng, Zhenyu Chen State Key Laboratory for ovel Software Technology, anjing University, anjing, China Corresponding

More information

Test Suite Minimization An Empirical Investigation. Jeffery von Ronne A PROJECT. submitted to. Oregon State University. University Honors College

Test Suite Minimization An Empirical Investigation. Jeffery von Ronne A PROJECT. submitted to. Oregon State University. University Honors College Test Suite Minimization An Empirical Investigation by Jeffery von Ronne A PROJECT submitted to Oregon State University University Honors College in partial fulfillment of the requirements for the degree

More information

Test Suite Prioritization by Interaction Coverage

Test Suite Prioritization by Interaction Coverage Test Suite Prioritization by Interaction Coverage Renée C. Bryce Computer Science University of Nevada at Las Vegas Las Vegas, Nevada 89 reneebryce@cs.unlv.edu Atif M. Memon Computer Science University

More information

A NOVEL APPROACH TO TEST SUITE REDUCTION USING DATA MINING

A NOVEL APPROACH TO TEST SUITE REDUCTION USING DATA MINING A NOVEL APPROACH TO TEST SUITE REDUCTION USING DATA MINING KARTHEEK MUTHYALA Computer Science and Information Systems, Birla Institute of Technology and Science, Pilani, Rajasthan, India, kartheek0274@gmail.com

More information

The Encoding Complexity of Network Coding

The Encoding Complexity of Network Coding The Encoding Complexity of Network Coding Michael Langberg Alexander Sprintson Jehoshua Bruck California Institute of Technology Email: mikel,spalex,bruck @caltech.edu Abstract In the multicast network

More information

PRIORITIZE REGRESSION TEST CASES

PRIORITIZE REGRESSION TEST CASES PRIORITIZE REGRESSION TEST CASES Avinash Gupta, 2 Dharmender Singh Kushwaha,2 MNNIT Allahabad Email: avinashg.mnnit@gmail.com, 2 dsk@mnnit.ac.in Abstract Test suites can be reduced to a smaller suite that

More information

MINTS: A General Framework and Tool for Supporting Test-suite Minimization

MINTS: A General Framework and Tool for Supporting Test-suite Minimization MINTS: A General Framework and Tool for Supporting Test-suite Minimization Hwa-You Hsu and Alessandro Orso College of Computing Georgia Institute of Technology {hsu orso}@cc.gatech.edu ABSTRACT Regression

More information

A Case Study in Database Reliability: Component Types, Usage Profiles, and Testing

A Case Study in Database Reliability: Component Types, Usage Profiles, and Testing A Case Study in Database Reliability: Component Types, Usage Profiles, and Testing C. A. Taylor M. S. Gittens A. V. Miranskyy IBM Canada Ltd. IBM Canada Ltd. Department of Applied Mathematics colint@ca.ibm.com

More information

Test Suite Prioritization by Interaction Coverage

Test Suite Prioritization by Interaction Coverage Test Suite Prioritization by Interaction Coverage Renée C. Bryce Computer Science University of Nevada at Las Vegas Las Vegas, Nevada 891 reneebryce@cs.unlv.edu Atif M. Memon Computer Science University

More information

International Journal of Academic Research in Computer Engineering. Volume 1, Number 2, Pages 25-32, November

International Journal of Academic Research in Computer Engineering. Volume 1, Number 2, Pages 25-32, November International Journal of Academic Research in Computer Engineering Print ISSN:2476-7638 and Online ISSN: 2538-2411 Vol. 1, No. 2, Pages. 25-32, November 2016 International Journal of Academic Research

More information

Empirical Studies of Test Case Prioritization in a JUnit Testing Environment

Empirical Studies of Test Case Prioritization in a JUnit Testing Environment University of Nebraska - Lincoln DigitalCommons@University of Nebraska - Lincoln CSE Conference and Workshop Papers Computer Science and Engineering, Department of 2004 Empirical Studies of Test Case Prioritization

More information

A new edge selection heuristic for computing the Tutte polynomial of an undirected graph.

A new edge selection heuristic for computing the Tutte polynomial of an undirected graph. FPSAC 2012, Nagoya, Japan DMTCS proc. (subm.), by the authors, 1 12 A new edge selection heuristic for computing the Tutte polynomial of an undirected graph. Michael Monagan 1 1 Department of Mathematics,

More information

Test Suite Prioritization by Interaction Coverage

Test Suite Prioritization by Interaction Coverage Test Suite Prioritization by Interaction Coverage Renée C. Bryce Computer Science University of Nevada at Las Vegas Las Vegas, Nevada 89 reneebryce@cs.unlv.edu Atif M. Memon Computer Science University

More information

Introduction to Extended Common Coupling with an Application Study on Linux

Introduction to Extended Common Coupling with an Application Study on Linux Introduction to Extended Common Coupling with an Application Study on Linux Liguo Yu Computer Science and Informatics Indiana University South Bend 1700 Mishawaka Ave. P.O. Box 7111 South Bend, IN 46634,

More information

Mining Social Network Graphs

Mining Social Network Graphs Mining Social Network Graphs Analysis of Large Graphs: Community Detection Rafael Ferreira da Silva rafsilva@isi.edu http://rafaelsilva.com Note to other teachers and users of these slides: We would be

More information

TEST CASE PRIORITIZATION ALGORITHM BASED UPON MODIFIED CODE COVERAGE IN REGRESSION TESTING

TEST CASE PRIORITIZATION ALGORITHM BASED UPON MODIFIED CODE COVERAGE IN REGRESSION TESTING TEST CASE PRIORITIZATION ALGORITHM BASED UPON MODIFIED CODE COVERAGE IN REGRESSION TESTING ABSTRACT Usha Badhera 1, G.N Purohit 2, Debarupa Biswas 3 Computer Science Department, Banasthali University,

More information

Theorem 2.9: nearest addition algorithm

Theorem 2.9: nearest addition algorithm There are severe limits on our ability to compute near-optimal tours It is NP-complete to decide whether a given undirected =(,)has a Hamiltonian cycle An approximation algorithm for the TSP can be used

More information

Similarity-Based Test Case Prioritization Using Ordered Sequences of Program Entities

Similarity-Based Test Case Prioritization Using Ordered Sequences of Program Entities Noname manuscript No. (will be inserted by the editor) Similarity-Based Test Case Prioritization Using Ordered Sequences of Program Entities Chunrong Fang Zhenyu Chen Kun Wu Zhihong Zhao Received: date

More information

Statistical Debugging for Real-World Performance Problems

Statistical Debugging for Real-World Performance Problems Statistical Debugging for Real-World Performance Problems Linhai Song 1 and Shan Lu 2 1 University of Wisconsin-Madison 2 University of Chicago What are Performance Problems? Definition of Performance

More information

On the Use of Mutation Faults in Empirical Assessments of Test Case Prioritization Techniques

On the Use of Mutation Faults in Empirical Assessments of Test Case Prioritization Techniques On the Use of Mutation Faults in Empirical Assessments of Test Case Prioritization Techniques Hyunsook Do, Gregg Rothermel Department of Computer Science and Engineering University of Nebraska - Lincoln

More information

Profile-Guided Program Simplification for Effective Testing and Analysis

Profile-Guided Program Simplification for Effective Testing and Analysis Profile-Guided Program Simplification for Effective Testing and Analysis Lingxiao Jiang Zhendong Su Program Execution Profiles A profile is a set of information about an execution, either succeeded or

More information

Demand fetching is commonly employed to bring the data

Demand fetching is commonly employed to bring the data Proceedings of 2nd Annual Conference on Theoretical and Applied Computer Science, November 2010, Stillwater, OK 14 Markov Prediction Scheme for Cache Prefetching Pranav Pathak, Mehedi Sarwar, Sohum Sohoni

More information

Multivariate Visualization in Observation-Based Testing

Multivariate Visualization in Observation-Based Testing Multivariate Visualization in Observation-Based Testing David Leon, Andy Podgurski, and Lee J. White Electrical Engineering and Computer Science Department Case Western Reserve University Olin Building

More information

Empirical Study on Impact of Developer Collaboration on Source Code

Empirical Study on Impact of Developer Collaboration on Source Code Empirical Study on Impact of Developer Collaboration on Source Code Akshay Chopra University of Waterloo Waterloo, Ontario a22chopr@uwaterloo.ca Parul Verma University of Waterloo Waterloo, Ontario p7verma@uwaterloo.ca

More information

TELCOM2125: Network Science and Analysis

TELCOM2125: Network Science and Analysis School of Information Sciences University of Pittsburgh TELCOM2125: Network Science and Analysis Konstantinos Pelechrinis Spring 2015 2 Part 4: Dividing Networks into Clusters The problem l Graph partitioning

More information

Spectral Clustering X I AO ZE N G + E L HA M TA BA S SI CS E CL A S S P R ESENTATION MA RCH 1 6,

Spectral Clustering X I AO ZE N G + E L HA M TA BA S SI CS E CL A S S P R ESENTATION MA RCH 1 6, Spectral Clustering XIAO ZENG + ELHAM TABASSI CSE 902 CLASS PRESENTATION MARCH 16, 2017 1 Presentation based on 1. Von Luxburg, Ulrike. "A tutorial on spectral clustering." Statistics and computing 17.4

More information

Visual Representations for Machine Learning

Visual Representations for Machine Learning Visual Representations for Machine Learning Spectral Clustering and Channel Representations Lecture 1 Spectral Clustering: introduction and confusion Michael Felsberg Klas Nordberg The Spectral Clustering

More information

PROFILE ANALYSIS TECHNIQUES FOR OBSERVATION-BASED SOFTWARE TESTING DAVID ZAEN LEON CESIN. For the degree of Doctor of Philosophy

PROFILE ANALYSIS TECHNIQUES FOR OBSERVATION-BASED SOFTWARE TESTING DAVID ZAEN LEON CESIN. For the degree of Doctor of Philosophy PROFILE ANALYSIS TECHNIQUES FOR OBSERVATION-BASED SOFTWARE TESTING by DAVID ZAEN LEON CESIN Submitted in partial fulfillment of the requirements For the degree of Doctor of Philosophy Dissertation Adviser:

More information

Using Mutation to Automatically Suggest Fixes for Faulty Programs

Using Mutation to Automatically Suggest Fixes for Faulty Programs 2010 Third International Conference on Software Testing, Verification and Validation Using Mutation to Automatically Suggest Fixes for Faulty Programs Vidroha Debroy and W. Eric Wong Department of Computer

More information

MACHINE LEARNING BASED METHODOLOGY FOR TESTING OBJECT ORIENTED APPLICATIONS

MACHINE LEARNING BASED METHODOLOGY FOR TESTING OBJECT ORIENTED APPLICATIONS MACHINE LEARNING BASED METHODOLOGY FOR TESTING OBJECT ORIENTED APPLICATIONS N. Kannadhasan and B. Uma Maheswari Department of Master of Computer Applications St. Joseph s College of Engineering, Chennai,

More information

Complementary Graph Coloring

Complementary Graph Coloring International Journal of Computer (IJC) ISSN 2307-4523 (Print & Online) Global Society of Scientific Research and Researchers http://ijcjournal.org/ Complementary Graph Coloring Mohamed Al-Ibrahim a*,

More information

Software Testing CS 408. Lecture 6: Dynamic Symbolic Execution and Concolic Testing 1/30/18

Software Testing CS 408. Lecture 6: Dynamic Symbolic Execution and Concolic Testing 1/30/18 Software Testing CS 408 Lecture 6: Dynamic Symbolic Execution and Concolic Testing 1/30/18 Relevant Papers CUTE: A Concolic Unit Testing Engine for C Koushik Sen, Darko Marinov, Gul Agha Department of

More information

Experiments on the Test Case Length in Specification Based Test Case Generation

Experiments on the Test Case Length in Specification Based Test Case Generation Experiments on the Test Case Length in Specification Based Test Case Generation Gordon Fraser Institute for Software Technology Graz University of Technology Inffeldgasse 16b/2 A-8010 Graz, Austria fraser@ist.tugraz.at

More information

SCALABLE STATISTICAL BUG ISOLATION

SCALABLE STATISTICAL BUG ISOLATION SCALABLE STATISTICAL BUG ISOLATION Paper by Ben Liblit, Mayur Naik, Alice X. Zheng, Alex Aiken, Michael I. Jordan Presented by Ben Mishkanian 2/5/2015 Statistical Debugging Idea: Use dynamic statistical

More information

Learning Universal Probabilistic Models for Fault Localization

Learning Universal Probabilistic Models for Fault Localization Learning Universal Probabilistic Models for Fault Localization Min Feng Rajiv Gupta University of California at Riverside, CSE Department, Riverside CA, 92521 {mfeng, gupta}@cs.ucr.edu Abstract Recently

More information

Control Flow Analysis with SAT Solvers

Control Flow Analysis with SAT Solvers Control Flow Analysis with SAT Solvers Steven Lyde, Matthew Might University of Utah, Salt Lake City, Utah, USA Abstract. Control flow analyses statically determine the control flow of programs. This is

More information

INSERTION SORT APPROACH FOR THE CAR SEQUENCING PROBLEM

INSERTION SORT APPROACH FOR THE CAR SEQUENCING PROBLEM 195 The 5 th International Conference on Information & Communication Technology and Systems INSERTION SORT APPROACH FOR THE CAR SEQUENCING PROBLEM Bilqis Amaliah 1, Chastine Fatichah 2 1,2 Informatics

More information

A Genetic Approach for Solving Minimum Routing Cost Spanning Tree Problem

A Genetic Approach for Solving Minimum Routing Cost Spanning Tree Problem A Genetic Approach for Solving Minimum Routing Cost Spanning Tree Problem Quoc Phan Tan Abstract Minimum Routing Cost Spanning Tree (MRCT) is one of spanning tree optimization problems having several applications

More information

TEST CASE EFFECTIVENESS OF HIGHER ORDER MUTATION TESTING

TEST CASE EFFECTIVENESS OF HIGHER ORDER MUTATION TESTING TEST CASE EFFECTIVENESS OF HIGHER ORDER MUTATION TESTING Shalini Kapoor CSE Deptt, GNI, Mullana get_shalini@rediffmail.com Abstract--- Effectiveness means how good a test case is in finding faults. Traditional

More information

Class 17. Discussion. Mutation analysis and testing. Problem Set 7 discuss Readings

Class 17. Discussion. Mutation analysis and testing. Problem Set 7 discuss Readings Class 17 Questions/comments Graders for Problem Set 6 (4); Graders for Problem set 7 (2-3) (solutions for all); will be posted on T-square Regression testing, Instrumentation Final project presentations:

More information

An Efficient Technique to Test Suite Minimization using Hierarchical Clustering Approach

An Efficient Technique to Test Suite Minimization using Hierarchical Clustering Approach An Efficient Technique to Test Suite Minimization using Hierarchical Clustering Approach Fayaz Ahmad Khan, Anil Kumar Gupta, Dibya Jyoti Bora Abstract:- Software testing is a pervasive activity in software

More information

Random projection for non-gaussian mixture models

Random projection for non-gaussian mixture models Random projection for non-gaussian mixture models Győző Gidófalvi Department of Computer Science and Engineering University of California, San Diego La Jolla, CA 92037 gyozo@cs.ucsd.edu Abstract Recently,

More information

QTEP: Quality-Aware Test Case Prioritization

QTEP: Quality-Aware Test Case Prioritization QTEP: Quality-Aware Test Case Prioritization {song.wang,jc.nam,lintan}@uwaterloo.ca Electrical and Computer Engineering, University of Waterloo Waterloo, ON, Canada ABSTRACT Test case prioritization (TCP)

More information

Helping Programmers Debug Code Using Semantic Change Impact Analysis PROLANGS

Helping Programmers Debug Code Using Semantic Change Impact Analysis PROLANGS Helping Programmers Debug Code Using Semantic Change Impact Analysis Dr. Barbara G. Ryder Rutgers University http://www.cs.rutgers.edu/~ryder This research is supported by NSF grants CCR-0204410 & CCR-0331797

More information

On the Relationships between Zero Forcing Numbers and Certain Graph Coverings

On the Relationships between Zero Forcing Numbers and Certain Graph Coverings On the Relationships between Zero Forcing Numbers and Certain Graph Coverings Fatemeh Alinaghipour Taklimi, Shaun Fallat 1,, Karen Meagher 2 Department of Mathematics and Statistics, University of Regina,

More information

An Improvement of an Approach for Representation of Tree Structures in Relational Tables

An Improvement of an Approach for Representation of Tree Structures in Relational Tables An Improvement of an Approach for Representation of Tree Structures in Relational Tables Ivaylo Atanassov Abstract: The paper introduces an improvement of an approach for tree representation in relational

More information

arxiv: v1 [cs.pl] 30 Sep 2013

arxiv: v1 [cs.pl] 30 Sep 2013 Retargeting GCC: Do We Reinvent the Wheel Every Time? Saravana Perumal P Department of CSE, IIT Kanpur saravanan1986@gmail.com Amey Karkare Department of CSE, IIT Kanpur karkare@cse.iitk.ac.in arxiv:1309.7685v1

More information

Double Threshold Based Load Balancing Approach by Using VM Migration for the Cloud Computing Environment

Double Threshold Based Load Balancing Approach by Using VM Migration for the Cloud Computing Environment www.ijecs.in International Journal Of Engineering And Computer Science ISSN:2319-7242 Volume 4 Issue 1 January 2015, Page No. 9966-9970 Double Threshold Based Load Balancing Approach by Using VM Migration

More information

Midterm Wednesday Oct. 27, 7pm, room 142

Midterm Wednesday Oct. 27, 7pm, room 142 Regression Testing Midterm Wednesday Oct. 27, 7pm, room 142 In class, closed book eam Includes all the material covered up (but not including) symbolic eecution Need to understand the concepts, know the

More information

Höllische Programmiersprachen Hauptseminar im Wintersemester 2014/2015 Determinism and reliability in the context of parallel programming

Höllische Programmiersprachen Hauptseminar im Wintersemester 2014/2015 Determinism and reliability in the context of parallel programming Höllische Programmiersprachen Hauptseminar im Wintersemester 2014/2015 Determinism and reliability in the context of parallel programming Raphael Arias Technische Universität München 19.1.2015 Abstract

More information

A Visualization Program for Subset Sum Instances

A Visualization Program for Subset Sum Instances A Visualization Program for Subset Sum Instances Thomas E. O Neil and Abhilasha Bhatia Computer Science Department University of North Dakota Grand Forks, ND 58202 oneil@cs.und.edu abhilasha.bhatia@my.und.edu

More information

International Journal of Scientific & Engineering Research, Volume 4, Issue 9, September ISSN

International Journal of Scientific & Engineering Research, Volume 4, Issue 9, September ISSN International Journal of Scientific & Engineering Research, Volume 4, Issue 9, September-2013 2580 A Dynamic Programming Approach for Fault Optimized Sequence Generation in Regression Testing Monika 1,

More information

Spectral Methods for Network Community Detection and Graph Partitioning

Spectral Methods for Network Community Detection and Graph Partitioning Spectral Methods for Network Community Detection and Graph Partitioning M. E. J. Newman Department of Physics, University of Michigan Presenters: Yunqi Guo Xueyin Yu Yuanqi Li 1 Outline: Community Detection

More information

Lecture 9 - Matrix Multiplication Equivalences and Spectral Graph Theory 1

Lecture 9 - Matrix Multiplication Equivalences and Spectral Graph Theory 1 CME 305: Discrete Mathematics and Algorithms Instructor: Professor Aaron Sidford (sidford@stanfordedu) February 6, 2018 Lecture 9 - Matrix Multiplication Equivalences and Spectral Graph Theory 1 In the

More information

Efficient FM Algorithm for VLSI Circuit Partitioning

Efficient FM Algorithm for VLSI Circuit Partitioning Efficient FM Algorithm for VLSI Circuit Partitioning M.RAJESH #1, R.MANIKANDAN #2 #1 School Of Comuting, Sastra University, Thanjavur-613401. #2 Senior Assistant Professer, School Of Comuting, Sastra University,

More information

An Empirical Study of Lazy Multilabel Classification Algorithms

An Empirical Study of Lazy Multilabel Classification Algorithms An Empirical Study of Lazy Multilabel Classification Algorithms E. Spyromitros and G. Tsoumakas and I. Vlahavas Department of Informatics, Aristotle University of Thessaloniki, 54124 Thessaloniki, Greece

More information

Locating Causes of Program Failures

Locating Causes of Program Failures Locating Causes of Program Failures Holger Cleve Andreas Zeller Saarland University, Saarbrücken, Germany {cleve, zeller}@cs.uni-sb.de Abstract Which is the defect that causes a software failure? By comparing

More information

VISUALIZING NP-COMPLETENESS THROUGH CIRCUIT-BASED WIDGETS

VISUALIZING NP-COMPLETENESS THROUGH CIRCUIT-BASED WIDGETS University of Portland Pilot Scholars Engineering Faculty Publications and Presentations Shiley School of Engineering 2016 VISUALIZING NP-COMPLETENESS THROUGH CIRCUIT-BASED WIDGETS Steven R. Vegdahl University

More information

Clustering. Informal goal. General types of clustering. Applications: Clustering in information search and analysis. Example applications in search

Clustering. Informal goal. General types of clustering. Applications: Clustering in information search and analysis. Example applications in search Informal goal Clustering Given set of objects and measure of similarity between them, group similar objects together What mean by similar? What is good grouping? Computation time / quality tradeoff 1 2

More information

Evolutionary Algorithm for Prioritized Pairwise Test Data Generation

Evolutionary Algorithm for Prioritized Pairwise Test Data Generation Evolutionary Algorithm for Prioritized Pairwise Test Data Generation ABSTRACT Javier Ferrer University of Malaga Malaga, Spain ferrer@lcc.uma.es Francisco Chicano University of Málaga Malaga, Spain chicano@lcc.uma.es

More information

Lecture 21. Regression Testing Path Spectra. EE 382V Spring 2009 Software Evolution - Instructor Miryung Kim

Lecture 21. Regression Testing Path Spectra. EE 382V Spring 2009 Software Evolution - Instructor Miryung Kim Lecture 21 Regression Testing Path Spectra Today s Agenda (1) Regression Test Selection Path Spectra Presentation by David (skeptic) Presentation by Sidd (advocate) Presentation by Srinivas (skeptic) Today

More information

Flexible-Hybrid Sequential Floating Search in Statistical Feature Selection

Flexible-Hybrid Sequential Floating Search in Statistical Feature Selection Flexible-Hybrid Sequential Floating Search in Statistical Feature Selection Petr Somol 1,2, Jana Novovičová 1,2, and Pavel Pudil 2,1 1 Dept. of Pattern Recognition, Institute of Information Theory and

More information

Survey of Dynamic Instrumentation of Operating Systems

Survey of Dynamic Instrumentation of Operating Systems Survey of Dynamic Instrumentation of Operating Systems Harald Röck Department of Computer Sciences University of Salzburg, Austria hroeck@cs.uni-salzburg.at July 13, 2007 1 Introduction Operating systems

More information

Query Likelihood with Negative Query Generation

Query Likelihood with Negative Query Generation Query Likelihood with Negative Query Generation Yuanhua Lv Department of Computer Science University of Illinois at Urbana-Champaign Urbana, IL 61801 ylv2@uiuc.edu ChengXiang Zhai Department of Computer

More information

Daqing Hou Electrical and Computer Engineering Clarkson University, Potsdam, NY

Daqing Hou Electrical and Computer Engineering Clarkson University, Potsdam, NY CReN : A Tool for Tracking Copy-and-Paste Code Clones * and Renaming Identifiers Consistently in the IDE Patricia Jablonski Engineering Science, School of Engineering Clarkson University, Potsdam, NY 13699

More information

From NP to P Musings on a Programming Contest Problem

From NP to P Musings on a Programming Contest Problem From NP to P Musings on a Programming Contest Problem Edward Corwin Antonette Logar Mathematics and CS SDSM&T Rapid City, SD 57701 edward.corwin@sdsmt.edu ABSTRACT A classic analysis of algorithms problem

More information

Lists Revisited: Cache Conscious STL lists

Lists Revisited: Cache Conscious STL lists Lists Revisited: Cache Conscious STL lists Leonor Frias, Jordi Petit, Salvador Roura Departament de Llenguatges i Sistemes Informàtics. Universitat Politècnica de Catalunya. Overview Goal: Improve STL

More information

Clustering Object-Oriented Software Systems using Spectral Graph Partitioning

Clustering Object-Oriented Software Systems using Spectral Graph Partitioning Clustering Object-Oriented Software Systems using Spectral Graph Partitioning Spiros Xanthos University of Illinois at Urbana-Champaign 0 North Goodwin Urbana, IL 680 xanthos@cs.uiuc.edu Abstract In this

More information

Regression Testing in Research And Practice

Regression Testing in Research And Practice Regression Testing in Research And Practice Xuan Lin Computer Science and Engineering Department University of Nebraska, Lincoln 1-402-472-4058 lxuan@cse.unl.edu ABSTRACT Regression testing is a costly

More information

IPOG: A General Strategy for T-Way Software Testing

IPOG: A General Strategy for T-Way Software Testing IPOG: A General Strategy for T-Way Software Testing Yu Lei, Raghu Kacker 2, D. Richard Kuhn 2, Vadim Okun 2, James Lawrence 3 Dept. of Comp. Sci. and Eng. University of Texas at Arlington Arlington, TX

More information