| D. Binkley. Using semantic differencing to reduce the cost of regression testing. In Proceedings of the International Conference on Software Maintenance, pages 41--50, 1992. |
....of work on compiler optimization, and adopt this assumption, always erring on the side of spurious differences, but never missing a real difference. For example, techniques to reduce the cost of regression testing by eliminating needless tests or by not retesting unaffected code (such as Binkley s [2] and Bates and Horwitz s [1] can safely find differences where none exist, since this only results in unnecessary test executions, but must never miss differences, which might lead to inadequate testing. When the output of the tool is intended for human consumption, a different kind of accuracy ....
....not completely reliable. For this reason, we have taken the radical step of trying to maximize the accuracy of our tool s output by compromising its soundness. A tool based on the standard approach to comparison regards two versions as identical only when their dependence graphs are isomorphic [1,2]. This demands that the nodes of the graphs match syntactically; the only semantic abstraction is in the relative ordering of statements. As a result, almost any change to the code will be flagged as a difference, including all the common meaning preserving transformations applied frequently by ....
[Article contains additional citation context not shown here]
David Binkley, "Using Semantic Differencing to Reduce the Cost of Regression Testing", Proc. International Conf. on Software Maintenance, 1992.
....case k in T traversed edge (n 1 ; n 2 ) in G. 2. 4 Regression Testing Previous research on regression testing has addressed many topics, including test environments and automation [6, 9, 22, 61] capture playback mechanisms [34] test suite management [16, 21, 34, 51, 59] program size reduction [4], and regression testability [30] Most recent research on regression testing, however, concerns selective retest techniques (e.g. 1, 3, 5, 8, 14, 15, 20, 21, 25, 26, 27, 32, 36, 43, 45, 49, 51, 54, 55, 58, 60] 4 Selective retest techniques reduce the cost of regression testing by reusing ....
D. Binkley. Using semantic differencing to reduce the cost of regression testing. In Proceedings of the Conference on Software Maintenance - 1992, pages 41--50. IEEE Computer Society Press, November 1992.
.... on an interprocedural inlined flow graph (IIFG) An IIFG is the graph, possibly infinite, that results when we inline all procedures at their call sites and construct a control flow graph from the resulting program; as such, an IIFG represents the control flow in a program that has been rolled out [4]. Like the invocation graph [7] and the context graph [1] the IIFG is fully context sensitive: it accounts for the calling sequence that leads to each call. However, unlike the invocation and context graphs, the IIFG is also flow sensitive: it accounts for the control flow of the individual ....
D. Binkley. Using semantic differencing to reduce the cost of regression testing. Proceedings of the 1992 Conference on Software Maintenance, pages 41--50, November 1992.
.... example, control dependence information has been used to select data and determine adequacy[16] and to extend data flow testing techniques[7] Control dependence information has also been used to generate reduced test sets for programs[9] Moreover, several techniques used for regression testing [4, 5, 10] need control dependence information to identify the retesting required after changes are made to a program. Finally, both static and dynamic slicing techniques require control dependencies[1, 2, 17] Thus, a program representation that contains explicit control dependence information is extremely ....
....adequacy criteria directly on the PDG. Control dependence information has also been used for regression testing. Gupta, Harrold and Soffa[10] use both control dependencies and data dependencies to identify those definition use pairs that must be retested after program modifications. Binkley[5] uses interprocedural control dependencies to identify a smaller version of the modified program that must be retested. Bates and Horwitz[4] define PDG based adequacy criteria and propose new techniques based on slicing for regression testing after program modifications. They identify a subset of ....
D. Binkley, "Using semantic differencing to reduce the cost of regression testing," Proceedings of the Conference on Software Maintenance '92, pp. 41-50, November 1992.
....techniques and tools rely on control dependence information. Techniques for selecting test data and determining test set adequacy [14] extending data flow testing approaches [8] generating reduced test sets for programs [11] determining the retesting required after program modifications [2, 4, 5, 10, 15, 16], integrating different versions of programs [13] and performing static and dynamic slicing [1, 3] all use such information. To represent control dependence information, these techniques typically use control dependence graphs. Attempts to scale these techniques to handle large programs are ....
D. Binkley. Using semantic differencing to reduce the cost of regression testing. In Proceedings of the Conference on Software Maintenance - 1992, pages 41--50, November 1992.
.... on an interprocedural inlined flow graph (IIFG) An IIFG is the graph, possibly infinite, that results when we inline all procedures at their call sites and construct a control flow graph from the resulting program; as such, an IIFG represents the control flow in a program that has been rolled out [4]. Like the invocation graph [7] and the context graph [1] the IIFG is fully context sensitive: it accounts for the calling sequence that leads to each call. However, unlike the invocation and context graphs, the IIFG is also flow sensitive: it accounts for the control flow of the individual ....
D. Binkley. Using semantic differencing to reduce the cost of regression testing. In Proceedings of the 1992 Conference on Software Maintenance, pages 41--50, November 1992.
.... on an interprocedural inlined flow graph (IIFG) An IIFG is the graph, possibly infinite, that results when we inline all procedures at their call sites and construct a control flow graph from the resulting program; as such, an IIFG represents the control flow in a program that has been rolled out [Binkley 1992]. Like the invocation graph [Emami et al. 1994] and the context graph [Atkinson and Griswold 1996] the IIFG is fully context sensitive: it accounts for the calling sequence that leads to each call. However, unlike the invocation and context graphs, the IIFG is also flow sensitive: it accounts for ....
Binkley, D. 1992. Using semantic differencing to reduce the cost of regression testing. In Proceedings of the 1992 Conference on Software Maintenance (Nov. 1992), pp. 41--50.
....other changes, cannot possibly exhibit different behavior, so it does not need to be rerun. A first task in selecting tests for retest is to distinguish tests that traverse changed code from those that do not. This statement may seem obvious, yet it has been overlooked in some previous techniques[1, 3]. These techniques suggest selection of all tests that traverse affected statements in P 0 ; affected statements are Test Cases test # input execution history T1 T2 P=1,Q=1 P=0,Q=1 S1,S2,S3,S4 S1,S3,S4 S1. if P = 1 S2. x : 2 S3. if Q = 1 S4. y : x S1. if P = 1 S2. x : 3 S3. if ....
D. Binkley, "Using semantic differencing to reduce the cost of regression testing," Proceedings of the Conference on Software Maintenance, 1992, pp. 41-50, November, 1992.
....KEY WORDS: program analysis, software engineering, CASE, experimental systems INTRODUCTION Many techniques for automating software engineering tasks rely on program analysis information information that is obtained by analyzing software. For example, several regression testing techniques [1, 4, 5, 9, 22, 23] use control and data dependence information to determine the retesting required after a program is modified. Techniques such as data flow testing [8, 14, 18, 20] test case generation [13] and dynamic execution profiling [3] require control flow information. Tools for program understanding and ....
D. Binkley. Using semantic differencing to reduce the cost of regression testing. In Proceedings of the Conference on Software Maintenance - 1992, pages 41--50, November 1992.
....elements that are not necessarily textually contiguous [4, 3, 5, 6, 7, 8] See [9, 10] for surveys on slicing. Slicing, and subsequent manipulation of slices, has applications in many software engineering tools, including tools for program understanding, maintenance [11] debugging [12] testing [13, 14], differencing [15, 16] specialization [17] reuse [18] and merging [15] There are two kinds of slices: a backward slice of a program with respect to a slicing criterion C is the set of all program elements that might affect (either directly or transitively) the values of the variables used at ....
D. Binkley. Using semantic differencing to reduce the cost of regression testing. In Proceedings of the 1992 Conference on Software Maintenance (Orlando, FL, November 9-12, 1992), pages 41--50, 1992.
....consist of elements that are not necessarily textually contiguous [4, 3, 5 8] See [9, 10] for surveys on slicing. Slicing, and subsequent manipulation of slices, has applications in many software engineering tasks, including program understanding, maintenance [11] debugging [12] testing [13, 14], differencing [15, 16] specialization [17] reuse [18] and merging [15] There are two kinds of slices: a backward slice of a program with respect to a slicing criterion C is the set of all program elements that might affect (either directly or transitively) the values of the variables used at ....
D. Binkley. Using semantic differencing to reduce the cost of regression testing. In Proceedings of the 1992 Conference on Software Maintenance (Orlando, FL, November 9-12, 1992), pages 41--50, 1992.
.... data flow equations [1, 2, 3] while others use graph representations of the program [4, 5, 6, 7, 8, 9, 10] A survey is given elsewhere[11] Applications of program slicing are many and varied[11] including debugging[12, 13] program comparison and integration[14] parallelisation[15, 16] testing[17] and maintenance[18, 19] The traditional definition of slicing is concerned with slicing programs written in imperative programming languages. Two assumptions are implicit in this definition: 1. programs contain variables and statements, and 2. slices consist solely of statements. If a programmer ....
D. Binkley, "Using semantic differencing to reduce the cost of regression testing," in Proc. IEEE Conference on Software Maintenance, (Washington, D.C.), pp. 41--50, IEEE Computer Society, Nov. 1992.
....of elements that are not necessarily textually contiguous [4, 3, 5 8] See [9, 10] for surveys on slicing. Slicing, and subsequent manipulation of slices, has applications in many softwareengineering tools, including tools for program understanding, maintenance [11] debugging [12] testing [13, 14], differencing [15, 16] specialization [17] reuse [18] and merging [15] There are two kinds of slices: a backward slice of a program with respect to a slicing criterion C is the set of all program elements that might affect (either directly or transitively) the values of the variables used at ....
D. Binkley. Using semantic differencing to reduce the cost of regression testing. In Proceedings of the 1992 Conference on Software Maintenance (Orlando, FL, November 9-12, 1992), pages 41--50, 1992.
....dependence or data dependence information. Some techniques use control or data dependence information to select test data and determine test set adequacy [31] to extend data flow testing techniques [12] or to generate reduced test sets for programs [15] Several techniques for regression testing [3, 7, 8, 16, 37, 38] use control or data dependence information to determine the retesting required after changes are made to a program. Additionally, techniques that integrate different versions of programs [28] require control and data dependence information. Finally, both static and dynamic slicing techniques ....
D. Binkley, "Using semantic differencing to reduce the cost of regression testing," Proceedings of the Conference on Software Maintenance '92, pp. 41--50, November 1992.
.... and Carter, 1995; Paul and Prakash, 1994a; Hartmann and Robson, 1990 ] Program slicing A survey of program slicing techniques is given in [ Tip, 1995 ] Other references are: Beck and Eichmann, 1993; Ning et al. 1993; Cutillo et al. 1993; Gallagher and Lyle, 1991; Olshefski and Cole, 1993; Binkley, 1992; Hall, 1995; Weiser, 1984; Gupta et al. 1992 ] Reverse engineering of data and databases One the first books on data reverse engineering is [ Aiken, 1995 ] Other references are: Aiken et al. 1993; Premerlani and Blaha, 1993; Hainaut et al. 1993; Ritsch and Sneed, 1993; Brodie and ....
....al. 1992; Johnson and Soloway, 1985; Urschler, 1975; Waters, 1988; Williams and Ossher, 1978; Ward and Bennett, 1993; Ramshaw, 1988; Zuylen, 1993; Choi and Scacchi, 1990 ] Testing After modification of software systems it is necessary to test the new system. Some pointers are [ Kung et al. 1993; Binkley, 1992; Laski and Szemer, 1992; Gupta et al. 1992; Hartmann and Robson, 1990 ] Management Many reverse engineering projects are huge. The management of such projects is not at all trivial and gets attention in: Aiken et al. 1993; Arnold, 1993; Ward and Bennett, 1993; Zuylen, 1993 ] Miscellaneous ....
D. Binkley. Using semantic differencing to reduce the cost of regression testing. In
....exit( statements at the ends of their main function: because these statements cannot affect control dependencies, we did not count them. sites, and construct a control flow graph from the resulting program; as such, an IIFG represents the control flow in a program that has been rolled out [5]. Like the invocation graph [7] and the context graph [2] the IIFG is fully context sensitive: it accounts for the calling sequence that leads to each call. However, unlike the invocation and context graphs, the IIFG is also flow sensitive: it accounts for the control flow of the individual ....
D. Binkley. Using semantic differencing to reduce the cost of regression testing. Proc. of the 1992 Conf. on Softw. Maint., pages 41--50, Nov. 1992.
....graph. In the slice, the starting point for the slice is shown in italics, and the empty boxes indicate where program elements have been removed from the original program. In the dependence graph, the edges shown in boldface are the edges in the slice. maintenance [8, 9] debugging [21] testing [3, 2], differencing [11,13] reuse [24] and merging [11] This paper concerns the use of slicing to perform program specialization, and how slicing based specialization relates to partial evaluation and related operations. The contributions of the paper can be summarized as follows: # We show that ....
Binkley, D., "Using semantic differencing to reduce the cost of regression testing," Proceedings of the 1992 Conference on Software Maintenance (Orlando, FL, November 9-12, 1992), pp. 41-50 (1992).
....significantly reduce the cost of regression testing a modified program. 2 Background Research on regression testing spans a wide variety of topics, including test environments and automation [6, 8, 15, 33] capture playback mechanisms [22] test suite management [11, 22, 29] code size reduction [4], and regression testability [19] Most recent research on regression testing, however, concerns selective retest techniques. Selective retest techniques reduce the cost of regression testing by selectively reusing tests from a program s existing test suite. Selective retest techniques differ from ....
D. Binkley. Using semantic differencing to reduce the cost of regression testing. In Proceedings of the Conference on Software Maintenance - 1992, pages 41--50, November 1992.
....and test history for procedure avg. 2. 2 Regression Testing Research on regression testing spans a wide variety of topics, including test environments and automation [10, 12, 24, 25, 58] capture playback mechanisms [33] test suite management [16, 23, 33, 51, 56] program size reduction [7], and regression testability [29] Most recent research on regression testing, however, concerns selective retest techniques [1, 4, 6, 8, 11, 13, 14, 15, 18, 19, 20, 21, 22, 23, 27, 28, 30, 31, 39, 41, 43, 44, 45, 49, 50, 51, 52, 54, 55, 57] Selective retest techniques reduce the cost of ....
D. Binkley. Using semantic differencing to reduce the cost of regression testing. In Proceedings of the Conference on Software Maintenance - 1992, pages 41--50. IEEE Computer Society Press, November 1992.
.... and data dependence information are used to select test data and determine test set adequacy [3] and to extend data flow testing techniques [10] Control and data dependence information are also used to generate reduced test sets for programs [11] Several techniques for regression testing [5][15] 20] use control and data dependence information to determine the retesting required after changes are made to a program. The PDG has also proven useful for debugging purposes. Both static [7] 2] and dynamic [22] slicing techniques require control and data dependence information. elaborate on ....
D. Binkley. Using semantic differencing to reduce the cost of regression testing. In Proceedings of the Conference on Software Maintenance '92, pages 41--50, 1992.
.... 1 begin 2 Read(X;Y ) 3 T otal : 0:0; 4 5 if X = 1 6 then 7 else begin 8 9 T otal : X Y ; 10 end; 11 12 end Figure 2: A slice of the program in Figure 1 using the criterion (Total,12) cluding debugging[26, 1] program comparisonand integration[14] parallelisation[27, 5] testing[7] and maintenance[22, 12] The traditional definition of slicing is concerned with slicing programs written in imperative programming languages. Two assumptions are implicit in this definition: 1. programs contain variables and statements, and 2. slices consist solely of statements. If a programmer ....
D. Binkley. Using semantic differencing to reduce the cost of regression testing. In Proc. IEEE Conference on Software Maintenance, pages 41--50, Washington, D.C., November 1992. IEEE Computer Society.
....and automation of the regression testing process. Lewis, Beck, and Hartmann[30] investigate automated capture playback mechanisms and test suite management. Hartmann and Robson[20] Taha, Thebaut, and Liu[39] Harrold, Gupta, and Soffa[14] and Wong et al. 43] address test suite management. Binkley[4] presents an algorithm that constructs a reduced size version of the modified program for use in regression testing. Leung and White[26] discuss regression testability metrics. Most recent research on regression testing, however, concerns selective retest techniques. Selective retest techniques ....
D. Binkley. Using semantic differencing to reduce the cost of regression testing. In Proceedings of the Conference on Software Maintenance - 1992, pages 41--50, November 1992.
....that the computational complexity of data flow analysis could make data flow based selective retesting more costly than the naive retest all approach, especially for testing large software systems. Others have tried to avoid the costs of data flow analysis by employing slicing techniques instead [3, 10]. For example, the slicing technique described by Gupta et al. is used in conjunction with data flow testing to identify def use pairs that are affected by program edits, without requiring the computation and maintenance of data flow histories of the program and its test units [10] Finally, while ....
David Binkley. Using semantic differencing to reduce the cost of regression testing. In Proceedings of the Conference on Software Maintenance 1992, pages 41-- 50. IEEE Computer Society, November 1992.
....summary information, program debugging, program dependence graph, program slicing, realizable path 1. INTRODUCTION Program slicing is a fundamental operation for manysoftware engineering tools, including tools for program understanding, debugging, maintenance, testing, and integration [26,13,15,10,6,4]. Slicing wasfirst defined by Mark Weiser, Work performed while visiting the Datalogisk Institut, University of Copenhagen, Universitetsparken 1, DK 2100 Copenhagen East, Denmark. # On leave from IBM Israel, HaifaResearch Laboratory. This work was supported in part by a David and Lucile ....
.... WorkList: set of edges procedure Propagate(e:edge) begin [1] if e PathEdge then insert e into PathEdge; insert e into WorkList fi end begin [2] PathEdge : SummaryEdge : WorkList : 3] for each w FormalOutVertices(G) 4] insert (w w)into PathEdge [5] insert (w w)into WorkList [6] od [7] while WorkList do [8] select and remove anedge v w from WorkList [9] switch v [10] case v ActualOutVertices(G) 11] for each x such that x v (SummaryEdge ControlEdges(G) do [12] Propagate(x w) 13] od [14] end case [15] case v FormalInVertices(G) 16] for each c ....
Binkley, D., "Using semantic differencing to reduce the cost of regression testing," Proceedings of the 1992 Conference on SoftwareMaintenance (Orlando, Flori da), pp. 41-50 (November 9-12, 1992).
....respect to program point p and variable x if x is defined or used at p. 3 Executable slices are useful as they are required in a variety of applications. For example, the software maintenance technique discussed in [7] and algorithm for reducing the cost of regression testing presented in [6], both rely on being able to execute a slice. Executable slices can also be used to provide coarse grain parallelism from sequential programs by running separate slices on different processors. Finally, producing executable programs permits the execution behaviors of a program and its slices to be ....
....in the size of the system and the complexity of producing an executable interprocedural slice from the SDG is linear in the size of the SDG. 4. PROOF OF CORRECTNESS Definitions DEFINITION. VerticesOfSlice) For system S and vertex set V, VerticesOfSlice (S, V) refers to the vertices in V at line [6] of Figure 4. DEFINITION. Induced Graph of G S ) For system S and set of vertices V, InducedGraph(G S , V) is the graph (V, E) where E is the set of edges from G S whose end points are in V. For a def order edge all three points involved must be in V) DEFINITION. roll out) The roll out of ....
Binkley, D. "Using semantic differencing to reduce the cost of regression testing." in Proceedings of the IEEE Conference on Software Maintenance, (Orlando, FL, Nov, 1992), IEEE Computer Society, Washington, DC(1992), 41-50. - 12 -
No context found.
D. Binkley. Using semantic differencing to reduce the cost of regression testing. In Proceedings of the International Conference on Software Maintenance, pages 41--50, 1992.
Online articles have much greater impact More about CiteSeer.IST Add search form to your site Submit documents Feedback
CiteSeer.IST - Copyright Penn State and NEC