Integrating White- and Black-Box Techniques for Class-Level Regression Testing
|
|
- Noah Franklin
- 5 years ago
- Views:
Transcription
1 Integrating White- and Black-Box Techniques for Class-Level Regression Testing Sami Beydeda, Volker Gruhn University of Dortmund Computer Science Department Software Technology Dortmund, Germany fsami.beydeda, Abstract In recent years, several techniques have been proposed for class-level regression testing. Most of these techniques focus either on white- or black-box testing, although an integrated approach can have several benefits. As similar tasks have to be carried out for both white- and black-box testing, an integrated approach can improve efficiency and cost effectiveness. This article explains a new approach for class-level regression testing, integrating existing techniques. Particularly, those of Rothermel et al. and Hong et al. for whitebox regression testing and black-box testing, respectively, have been integrated into a single technique. The benefits of the resulting technique are shown by example. 1 Introduction Testing software to determine whether changes are implemented as intended and that they do not affect other unchanged parts of the software adversely is called regression testing. This article proposes a new technique for regression testing of classes combining two existing techniques. We have integrated the testing techniques of Rothermel et al. [7] and Hong et al. [5]. As the former is a white-box technique and the latter a black-box technique, the resulting technique can be used for simultaneous white- and blackbox testing. Generally, sufficient testing of software requires both white- and black-box techniques. Although both tasks are similar in that they have the same objectives, namely detecting faults within a program, often white- and black-box techniques are applied separately using different tools. The reason is a lack of techniques integrating both strategies. Few approaches have investigated the integration of whiteand black-box testing techniques for object-oriented software [4, 1, 2, 3]. Often, the software is tested independently against the specification and source code using different specialized tools. Using different techniques and tools often leads to inefficient test processes. The tester has to work with two different tools which could require different skills and thus separate training. The tester has to be familiar not only with the two different tools, but also with their different underlying concepts. Additionally, using several tools requires higher maintenance effort. Therefore, we think that integrated white- and black-box testing techniques can substantially improve the testing process with respect to both costs and time. 2 Integration of the techniques 2.1 Building blocks One of the building blocks of the proposed technique is the class regression testing technique proposed by Rothermel et al. [7]. The main idea for their technique is to compare two versions of a class to detect and analyze changes. Based on this analysis, test cases covering changed statements are selected from a given test set originating from previous tests. The comparison of the two class versions is carried out using representations called class control flow graphs (CCFGs). A CCFG is a graphical representation of a class visualizing its methods embedded in an abstract test driver. The comparison is carried out by simultaneously traversing both CCFGs and comparing corresponding nodes of the graphs. The other building is the black-box testing technique of Hong et al. [5]. The main idea of this technique is to identify definitions and uses [6] of each attribute and to associate them to each other according to some data flow criteria. After associating definitions and uses with each other, test cases covering these def-use pairs are generated. To ease
2 test case generation, Hong et al. suggest using a graphical representation of the class, class flow graph (CFG), generated on the basis of a special finite state machine called class state machine (CSM). 2.2 Demonstrative example The example consists of a class, called account, which simulates a bank account. It provides the appropriate methods for making bank account deposits (deposit()) and withdrawals (withdraw()). Furthermore, it provides methods for paying interest (payinterest()) and for printing bank statements (printbankstatement()). An account, as modeled by an account class, can have three different states, namely incredit, overdrawn and blocked determined by its balance. Figure 1 shows the specification of class account in form of a CSM. In this figure each state of class account is represented by a circle, while each transition is depicted through an arrow leading from its source state to its target state. These transitions are formally specified through 5-tuples (source; target; event; guard; action) below this figure. A transition consists besides a source and target state of an event causing the transition, a predicate guard which has to be fulfilled before the transition can occur, and the action defining the operations on the attributes during the transition. There are also two special circles labeled initial and f inal. These two circles represent the state of the object before its creation and after its destruction, respectively. Thus, they represent states in which the attributes and their values are not defined, meaning that these two states are no concrete states of the object. The source code of class account, built according to the specification in figure 1, is given in figure Class specification implementation graph Our method proposed for integrated white- and blackbox testing operates on a graphical representation of the class called class specification implementation graph (CSIG) [3]. The construction of a CSIG consists of three steps: 1. A prototype is constructed for each event type occurring within transitions of the CSM. 2. Then, control flow graphs are generated for each prototype and each method. A CCFG frame is built and the two control flow graphs of each method are inserted into this frame. 3. Def-use pairs for black-box testing are determined on the basis of the CSM and visualized by data flow edges. Each of these steps is described in detail below. initial t 1 overdrawn t 6 t 7 t t t t incredit t 21 t 14 t 19 t 12 t 13 t 18 t 20 blocked t 8 t 9 t 10 t 11 t 15 t 16 t 17 t 22 final t 1 =(initial; incredit; account();true;balance=0.0;); t 2 =(incredit; incredit; deposit(amount); true; balance+=amount;); t 3 =(incredit; incredit; withdraw(amount); balance amount 0; balance-=amount;); t 4 =(incredit; incredit; payinterest();true; balance=ic*balance;); t 5 =(incredit; incredit; printbankstatement(); true; print); t 6 =(incredit; overdrawn; withdraw(amount); limit» balance amount < 0; balance-=amount;); t 7 =(overdrawn; incredit; deposit(amount); balance + amount 0; balance+=amount;); t 8 =(overdrawn; overdrawn; deposit(amount); balance + amount < 0; balance+=amount;); t 9 =(overdrawn; overdrawn; withdraw(amount); limit» balance amount < 0; balance-=amount;); t 10 =(overdrawn; overdrawn; payinterest(); balance + i d1 balance limit; balance+=id1*balance;); t 11 =(overdrawn; overdrawn; printbankstatement(); true; print); t 12 =(overdrawn; blocked; withdraw(amount); balance amount < limit; balance-=amount;); t 13 =(overdrawn; blocked; payinterest(); balance + i d1 balance < limit; balance+=id1*balance;); t 14 =(blocked; overdrawn; deposit(amount); limit» balance + amount < 0; balance+=amount;); t 15 =(blocked; blocked; deposit(amount); balance + amount < limit; balance+=amount;); t 16 =(blocked; blocked; payinterest(); true; balance+=id2*balance;); t 17 =(blocked; blocked; printbankstatement(); true; print); t 18 =(incredit; blocked; withdraw(amount); balance amount < limit; balance-=amount;); t 19 =(blocked; incredit; deposit(amount); balance + amount» 0; balance+=amount;); t 20 =(incredit; final; finalize(); true; ); t 21 =(overdrawn; final; finalize(); true; ); t 22 =(blocked; final; finalize();true;): Figure 1. Specification of class account by a class state machine Constructing a prototype for each event type The construction of a prototype firstly consists of generating a prototype for each transition t = (source; target; event; guard; action) in form of a nested if-then- construct as shown in figure 3. predicate(source) refers to the predicate of the source state applied to attributes defining the occurrence of state source. For instance, predicate(incredit) is balance >= 0.0. After generating these prototypes, those having the same
3 1 package bank; 2 3 class transaction { 4 String desc; 5 double amount; 6 double balanceafter; 7 8 transaction(string desc_, double amount_, 9 double balanceafter_) { 10 desc = desc_; 11 amount = amount_; 12 balanceafter = balanceafter_; 13 } 14 } class account { 17 private double balance; 18 private double limit; 19 private transaction[] t; 20 private int idx; 21 private double ic, id1, id2; public account() { 24 balance = 0.0; 25 limit = ; 26 t = new transaction[20]; 27 idx = 0; 28 ic = 0.05; 29 id1 = 0.1; 30 id2 = 0.2; 31 } public void deposit(double amount) { 34 balance += amount; 35 t[idx++] = new transaction("deposit ", 36 amount, balance); 37 } public void withdraw(double amount) { 40 if (balance >= limit) 41 balance -= amount; 42 t[idx++] = new transaction("withdraw", 43 amount, balance); 44 } public void payinterest() { 47 double amount; 48 if (balance >= 0.0) { 49 amount = ic*balance; 50 balance = amount; 51 } if (balance >= limit) { 54 amount = id1*balance; 55 balance += amount; 56 } 57 { 58 amount = id2*balance; 59 balance += amount; 60 } 61 t[idx++] = new transaction("interest", 62 balance, amount); 63 } public void printbankstatement() { 66 System.out.println("Type\t\tAmount\tBalance"); 67 for (int j = 0; j < idx; j++) 68 System.out.println(t[j].desc + "\t" 69 + t[j].amount + "\t" + t[j].balanceafter); 70 } 71 } Figure 2. Java source code of class account if (predicate(source)) // state if (guard) // guard action; // action Figure 3. Prototype of a transition depositspec(amount) { if (predicate(incredit)) if (true) if (predicate(overdrawn)) if (balance + amount >= 0.0) if (balance + amount < 0) if (predicate(blocked)) if (limit <= balance + amount && balance + amount < 0) if (balance + amount < limit) if (balance + amount <= 0) } Figure 4. Prototype of method deposit() event type are combined. For instance, transitions t 2, t 7, t 8, t 14, t 15 and t 19 share event type deposit(). Their prototypes can be merged to the prototype depicted in figure 4. Having represented each method in this way, the identification of definitions and uses of attributes is obvious due to the simple and pre-defined structure of a prototype. After the identification, test cases covering the identified def-use pairs can be generated. Although the test cases are identified on the basis of prototypes, they are intended for (blackbox) testing of the corresponding class method. Although test cases are generated by structural techniques, usually used for white-box testing, they are black-box test cases as the prototypes have been generated solely on the basis of the specification Generating and inserting control flow graphs into a CCFG frame This step consists of generating control flow graphs of the methods and prototypes, a CCFG frame, and finally linking them together to a CSIG. The CSIG of the account class is shown in figure 5. A CSIG is a directed graph visualizing both control and data flow within a class. Each method is represented by two types of control flow graphs. One of them is a control flow graph of the prototype generated on the basis of the specification, whereas the other is a control flow graph determined using the source code of the method. The control flow graphs are interlinked with each other by control and data flow edges. Three types of control and data flow edges can be distinguished: Intra-method control and data flow edges This type of edges visualizes control and data dependencies within a single control flow graph. For instance, an intra-method data flow edge connects a node representing
4 a 2 g 2 g 7 a 7 a g a 1 account() s 1 g 1 frame entry frame call constructors 28 frame return constructors CCFG frame 29 control flow graph of a prototype frame loop 30 control flow graph of a method frame call deposit() withdraw() payinterest() printbankstatement() s i g i a i intra-method control flow edge inter-method control flow edge inter-method data flow edge specification-implementation edge state i guard i action i change to the state s 2 s 7 g 14 s 14 a 14 a15 g 15 a 3 s 3 g 3 s 9 g 6 g 9 a 6 g 18 a 9 g 12 a18 a12 a 4 s 4 g 4 s 10 g 10 a 10 a13 g 13 a 16 g 16 s 16 s 5 g 5 s 11 a 5 g a 11 g 17 s a 17 g 19 a frame return frame exit Figure 5. Class specification implementation graph of class account
5 an attribute definition with another node representing a use in the same method. Intra-method control flow edges are drawn as thin arrows, whereas intra-method data flow edges have been omitted in figure 5. Inter-method control and data flow edges Edges of this type model control and data flow between control flow graphs of the same type. For instance, an invocation of a method within another is modeled by an intermethod control flow edge leading from the node representing the invoking statement in the first method to the node representing the entry statement of the second method. Similarly, an inter-method control flow edge also models triggering an event within the action part of a transition to cause a second transition. Inter-method control flow edges connect both control flow graphs of methods with each other and control flow graphs of prototypes with each other. Contrary to inter-method control flow edges, inter-method data flow edges only connect nodes within control flow graphs of prototypes. As stated above, the objective of prototypes is to ease identification and association of definitions and uses of attributes. Thus, inter-method data flow edges are not required for method control flow graphs. In figure 5, inter-method edges are drawn by bold arrows. Inter-method control flow edges also connect the frame call node of the CCFG frame with the entry nodes of the various methods. Inter-method data flow edges are shown by gray arrows in figure 5. Note that inter-method data flow edges which do not represent def-use pairs are not required. Specification-implementation edges This type of edges visualize the connection between specification and source code by connecting the two control flow graphs of a method. Thus, a specification-implementation edge leads from the node representing the action within a prototype to the node representing the entry node of the corresponding method. Specification-implementation edges are drawn as dashed arrows in figure Adding data flow edges for black-box testing Definitions and uses of attributes are determined using the CSM of the class according to the ideas of Hong et al. [5]. In our example, the following action parts of transitions contain an assignment to the attribute balance: a 1, a 2, a 3, a 4, a 6, a 7, a 8, a 9, a 10, a 12, a 13, a 14, a 15, a 16, a 18 and a 19. Uses of this attribute are located in the action parts: a 2, a 3, a 4, a 6, a 7, a 8, a 9, a 10, a 12, a 13, a 14, a 15, a 16, a 18 and a 19. Furthermore, uses are also contained in the following guards: g 3, g 6, g 7, g 8, g 9, g 10, g 12, g 13, g 14, g 15, g 18 and g 19. A use of the attribute balance can also be found in predicates defining the states: incredit, overdrawn and blocked. 1 algorithm SelectTests(G; G 0 ;T) 2 input G : Node in the CSIG of initial prototype 3 G 0 : Node in the CSIG of the modified prototype 4 T : Test cases used for testing the initial prototype 5 output T 0 : Test cases selected for testing the modified prototype 6 begin 7 further traversal = true 8 mark G as G 0 -visited 9 compare G and G 0 10 if G 0 is modified 11 // test cases for testing single methods 12 if G 0 respresents a simple assignment 13 for all intra-method data dependent successor N 0 of G 0 do 14 add all test cases covering G and N 0 to T add all test cases covering G to T 0 17 further traversal = false 18 // test cases for testing method interaction 19 for all inter-method data dependent predecessor N 0 of G 0 do 20 add all test cases (t 1;t 2) to T 0, with t 1 covering N 0 and t 2 G 0 21 for all inter-method data dependent successor N 0 of G 0 do 22 add all test cases (t 1;t 2) to T 0, with t 1 covering G 0 and t 2 N 0 23 if further traversal 24 associate control dependent successors of G to successors of G 0 25 for all unassociateable successor N of G 26 add all test cases covering N to T 0 27 for all associateable successor N of G 28 T 0 = T 0 [ SelectTests(N;N 0 ;T) 29 return T 0 30 end Figure 6. Algorithm for test case selection After identification, these definitions and uses are associated with each other according to data flow criteria. Often, the definition and use of a def-use are within two different methods. Therefore, a test cases consists of a sequence of method calls, including the methods which define and use the attribute. Usually, methods cannot be invoked in an arbitrary order, this means associating definitions and uses has to take into account the possible method sequences. After identifying a definition in method A, the corresponding use has to be within a method B which can be invoked immediately after the invocation of method A. Immediately means that the second method has to be invoked before the attribute is redefined by a definition in another method. The possible method sequences are modeled by the CSM of the class. For instance, the all-definitions criterion, which requires testing of each definition of an attribute at least once by a use [6], could be fulfilled by test cases covering the following def-use pairs: (a 1 ;g 3 ), (a 2 ;g 3 ), (a 3 ;a 6 ), (a 4 ;s 5 ), (a 6 ;g 12 ), (a 7 ;a 3 ), (a 8 ;a 8 ), (a 9 ;a 9 ), (a 10 ;s 9 ), (a 12 ;a 15 ), (a 13 ;a 16 ), (a 14 ;s 4 ), (a 15 ;a 15 ), (a 16 ;a 16 ), (a 18 ;a 14 ) and (a 19 ;s 3 ). For instance, note that the definition in action a 6 cannot be associated with use in action a 18, since transition t 6 changes the state of an account object to state overdrawn, whereas transition t 18 requires state incredit. These def-use pairs are inserted in figure 5 as gray drawn arrows leading from the definition of the attribute to the corresponding use.
6 2.4 Using CSIGs for regression testing The CSIG of a class can be used in various ways for testing. Generally, a CSIG can be used to generate test cases which fulfill some coverage criteria including the above identified def-use pairs. Following the ideas of Rothermel et al., CSIGs can also be used to verify changes between two versions of a class. An algorithm implementing this strategy for testing classes is given in figure 6. The algorithm in figure 6 takes as input the root nodes of the CSIGs of the two class versions and a set of test cases which has been used for testing the former version of the class, after having removed obsolete test cases. Based on this input, it selects test cases for safe regression testing of the latter version. The selected test cases can be distinguished in two groups. The first group contains test cases required for white-box testing. Each of these test cases consists of an input for the constructor of the class, if one is required, and an input for the changed method. The second group contains test cases required for black-box testing. These test cases consist of an input for the constructor, an input for the method in which the value of an attribute is set, and an input for the method in which the value of this attribute is used. To ease the notation, test cases for whitebox testing are represented by a single input, whereas test cases for black-box testing are represented by a pair of test inputs, assuming the constructor requires no input. In the following description of the algorithm, nodes in a CSIG are referred by upper-case letters, nodes in the latter version are marked by a prime. Starting with two nodes G and G 0, the algorithm marks as a first step G as G 0 -visited to avoid multiple traversal of the same nodes (line 7). Next, it compares both nodes. A modification of the statement represented by G 0 is handled according to the type of statement represented by this node (line 12). A modification in a simple assignment is handled by adding all test cases covering this simple assignment and data-dependent successors to T 0 (lines 13 14). A modification of a statement which is not a simple assignment is handled by adding all test cases covering this statement to T 0 (line 16). In the latter case, no further traversal of the successor nodes is required, because all test cases which can reach these nodes are already selected (line 17). So far, only test cases for white-box testing were selected. Test cases for black-box testing are selected in the next five lines of the algorithm, which is carried out by testing inter-method data flow. The corresponding edges connect a definition in a method A with a use in another method B. In some cases, A and B are the same method, but invoked twice first to define the value of the attribute and then to use this value. In lines 18 22, test cases are determined by considering first inter-method data dependent predecessors and then inter-method data dependent successors. After having determined test cases for node G 0, its successors are considered if further traversal is necessary (line 23). Its successors are associated to those of node G (line 24) and are distinguished between those which cannot be matched to successors of G (lines 25 26) and those which have corresponding counterparts in the former version of the class (line 27 28). 3 Conclusions In this article, we have presented a new approach for class-level regression testing. The main constituent of this approach is a graphical respresentation called class specification implementation graph (CSIG) which combines information gathered from both the specification and implementation for analysis and testing purposes. Furthermore, testing techniques based on control flow graphs can also be used, with some adaptions, in conjunctions with CSIGs, as CSIGs include control flow graph information. We have shown this by adapting the test case selection algorithm of Rothermel et al. to CSIGs. References [1] S. Beydeda and V. Gruhn. Integrating white- and black-box techniques for class-level testing object-oriented prototypes. In SEA Software Engineering and Applications Conference (Las Vegas, Nevada, November 6 9), pages 23 28, [2] S. Beydeda and V. Gruhn. An integrated testing technique for component-based software (accepted). In AICCSA ACS/IEEE International Conference on Computer Systems and Applications (Beirut, Lebanon, June 26 29), [3] S. Beydeda, V. Gruhn, and M. Stachorski. A graphical representation of classes for integrated black- and white-box testing (accepted). In ICSM International Conference on Software Maintenance (Florence, Italy, November), [4] H. Y. Chen, T. H. Tse, F. T. Chan, and T. Y. Chen. In black and white: an integrated approach to class-level testing of objectoriented programs. ACM Transactions on Software Engineering and Methodology, 7(3): , July [5] H. S. Hong, Y. R. Kwon, and S. D. Cha. Testing of objectoriented programs based on finite state machines. In Proceedings of the Second Asia-Pacific Software Engineering Conference (Brisbane, Australia, December 6 9), pages , [6] S. Rapps and E. J. Weyuker. Selecting software test data using data flow information. IEEE Transactions on Software Engineering, 11(4): , Apr [7] G. Rothermel, M. J. Harrold, and J. Dedhia. Regression test selection for C++ software. Software Testing, Verification & Reliability, 10(2):77 109, June 2000.
A Graphical Class Representation for Integrated Black- and White-Box Testing
A Graphical Class Representation for Integrated Black- and White-Box Testing Sami Beydeda, Volker Gruhn University of Dortmund Computer Science Department Software Technology 44221 Dortmund, Germany fsami.beydeda,
More informationBlack- and White-Box Self-testing COTS Components
Black- and White-Box Self-testing COTS Components Sami Beydeda and Volker Gruhn University of Leipzig Chair of Applied Telematics / e-business Klostergasse 3 04109 Leipzig, Germany {beydeda,gruhn}@ebus.informatik.uni-leipzig.de
More informationTest Data Generation based on Binary Search for Class-level Testing
Test Data Generation based on Binary Search for Class-level Testing Sami Beydeda, Volker Gruhn University of Leipzig Faculty of Mathematics and Computer Science Department of Computer Science Applied Telematics
More informationBINTEST Binary Search-based Test Case Generation
BINTEST Binary Search-based Test Case Generation Sami Beydeda, Volker Gruhn University of Leipzig Department of Computer Science Chair of Applied Telematics / e-business Klostergasse 3 04109 Leipzig, Germany
More informationReview 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 informationSelection of UML Models for Test Case Generation: A Discussion on Techniques to Generate Test Cases
St. Cloud State University therepository at St. Cloud State Culminating Projects in Computer Science and Information Technology Department of Computer Science and Information Technology 6-2018 Selection
More informationTest Case Generation According to the Binary Search Strategy
Test Case Generation According to the Binary Search Strategy Sami Beydeda and Volker Gruhn University of Leipzig Department of Computer Science Chair of Applied Telematics / e-business Klostergasse 3 04109
More informationRegression Test Selection for C++ Software
Technical Report 99-60-01, Computer Science Department, Oregon State University, January 1999 Regression Test Selection for C++ Authors: Gregg Rothermel Mary Jean Harrold Jeinay Dedhia Software Sanjay
More informationUNIT-IV BASIC BEHAVIORAL MODELING-I
UNIT-IV BASIC BEHAVIORAL MODELING-I CONTENTS 1. Interactions Terms and Concepts Modeling Techniques 2. Interaction Diagrams Terms and Concepts Modeling Techniques Interactions: Terms and Concepts: An interaction
More informationAutomated Test Code Generation from UML Protocol State Machines
Automated Test Code Generation from UML Protocol State Machines Dianxiang Xu, Weifeng Xu Department of Computer Science North Dakota State University Fargo, ND 58105, USA {dianxiang.xu, weifeng.xu }@ndsu.edu
More informationDataflow testing of Java programs with DFC
Dataflow testing of Java programs with DFC Ilona Bluemke 1,, Artur Rembiszewski 1 1 Institute of Computer Science, Warsaw University of Technology Nowowiejska 15/19, 00-665 Warsaw, Poland I. Bluemke@ii.pw.edu.pl
More informationFault 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 informationTest Case Generation Based on Sequence Diagrams
Test Case Generation Based on Sequence Diagrams Yao-Cheng Lei Nai-Wei Lin Department of Computer Science and Information Engineering National Chung Cheng University Chiayi, Taiwan 621, R.O.C. {lyc94,naiwei}@cs.ccu.edu.tw
More informationEvaluation of Flow Graph and Dependence Graphs for Program Representation
Evaluation of Flow Graph and Dependence Graphs for Program Representation Vinay Arora Thapar University,Patiala CSED Rajesh Kumar Bhatia DCR Uni. of Sc. Tech, Murthal CSED Maninder Singh Thapar University,
More informationCSE115 Introduction to Computer Science I Coding Exercise #7 Retrospective Fall 2017
This week the main activity was a quiz activity, with a structure similar to our Friday lecture activities. The retrospective for the quiz is in Quiz-07- retrospective.pdf This retrospective explores the
More informationStudy and Analysis of Regression Test Case Selection Techniques
Study and Analysis of Regression Test Case Selection Techniques Sunidhi Puri Department of Computer Science & Engineering Amity University,Noida,U.P Abhishek Singhal Department of Computer Science & Engineering
More informationClass-Component Testability Analysis
Class-Component Testability Analysis SUPAPORN KANSOMKEAT Faculty of Engineering, Chulalongkorn University Bangkok, 10330, THAILAND WANCHAI RIVEPIBOON Faculty of Engineering, Chulalongkorn University Bangkok,
More informationAn 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 informationScienceDirect. An Approach for Generating Minimal Test Cases for Regression Testing
Available online at www.sciencedirect.com ScienceDirect Procedia Computer Science 47 (2015 ) 188 196 An Approach for Generating Minimal Test Cases for Regression Testing Sapna P G, Arunkumar Balakrishnan
More informationCHAPTER 5 GENERATING TEST SCENARIOS AND TEST CASES FROM AN EVENT-FLOW MODEL
CHAPTER 5 GENERATING TEST SCENARIOS AND TEST CASES FROM AN EVENT-FLOW MODEL 5.1 INTRODUCTION The survey presented in Chapter 1 has shown that Model based testing approach for automatic generation of test
More informationAn Integrated Regression Testing Framework to Multi-Threaded Java Programs
An Integrated Regression Testing Framework to Multi-Threaded Java Programs Bixin Li 1,2, Yancheng Wang 1, and LiLi Yang 1 1 School of Computer Science and Engineering, Southeast University No.2 Sipailou
More informationUnit-Level Test Adequacy Criteria for Visual Dataflow Languages and a Testing Methodology
1 Unit-Level Test Adequacy Criteria for Visual Dataflow Languages and a Testing Methodology MARCEL R. KARAM American University of Beirut TREVOR J. SMEDLEY Dalhousie University and SERGIU M. DASCALU University
More informationTesting Component-Based Software
Testing Component-Based Software Jerry Gao, Ph.D. San Jose State University One Washington Square San Jose, CA 95192-0180 Email:gaojerry@email.sjsu.edu 1 Abstract Today component engineering is gaining
More informationIntegration Testing of Object-oriented Components Using FSMS: Theory and Experimental Details
Integration Testing of Object-oriented Components Using FSMS: Theory and Experimental Details GMU Technical Report ISE-TR-04-04, July 2004 Leonard Gallagher Information Technology Laboratory National Institute
More informationPart I: Preliminaries 24
Contents Preface......................................... 15 Acknowledgements................................... 22 Part I: Preliminaries 24 1. Basics of Software Testing 25 1.1. Humans, errors, and testing.............................
More informationInduction and Semantics in Dafny
15-414 Lecture 11 1 Instructor: Matt Fredrikson Induction and Semantics in Dafny TA: Ryan Wagner Encoding the syntax of Imp Recall the abstract syntax of Imp: a AExp ::= n Z x Var a 1 + a 2 b BExp ::=
More informationEfficient 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 informationAn Environment for Training Computer Science Students on Software Testing
An Environment for Training Computer Science Students on Software Testing Jim Collofello and Kalpana Vehathiri Department of Computer Science and Engineering, Arizona State University Tempe, Arizona 85287
More informationIngegneria del Software II academic year: Course Web-site: [www.di.univaq.it/ingegneria2/]
Course: Ingegneria del Software II academic year: 2004-2005 Course Web-site: [www.di.univaq.it/ingegneria2/] 12.Regression Testing Lecturer: Henry Muccini and Vittorio Cortellessa Computer Science Department
More informationTesting Exceptions with Enforcer
Testing Exceptions with Enforcer Cyrille Artho February 23, 2010 National Institute of Advanced Industrial Science and Technology (AIST), Research Center for Information Security (RCIS) Abstract Java library
More informationA Class-Level Unit Testing Tool for Java
A Class-Level Unit Testing Tool for Java Tz-Fan Hu and Nai-Wei Lin Department of Computer Science and Information Engineering National Chung Cheng University Chiayi 621, Taiwan, R.O.C. Email: {htf97m,naiwei}@cs.ccu.edu.tw
More informationEXAMINATIONS 2012 END-OF-YEAR SWEN222. Software Design. Question Topic Marks 1. Design Quality Design Patterns Design by Contract 12
T E W H A R E W Ā N A N G A O T E Ū P O K O O T E I K A A M Ā U I VUW V I C T O R I A UNIVERSITY OF WELLINGTON Student ID:..................... EXAMINATIONS 2012 END-OF-YEAR SWEN222 Software Design Time
More informationChange Impact Analysis for A Class Hierarchy
Change Impact Analysis for A Class Hierarchy Yoon Kyu Jang, Heung Seok Chae, Yong Rae Kwon, and Doo Hwan Bae Department of Computer Science Korea Advanced Institute of Science and Technology 373-1, Kusong-dong,
More informationTest Cases Generation from UML Activity Diagrams
Eighth ACIS International Conference on Software Engineering, Artificial Intelligence, Networking, and Parallel/Distributed Computing Test Cases Generation from UML Activity Diagrams Hyungchoul Kim, Sungwon
More informationTest Design Techniques ISTQB (International Software Testing Qualifications Board)
Test Design Techniques ISTQB (International Software Testing Qualifications Board) Minsoo Ryu Hanyang University Testing Process Planning and Control Analysis and Design Implementation and Execution Evaluating
More informationAutomatic Black-Box Method-Level Test Case Generation Based on Constraint Logic Programming
Automatic Black-Box Method-Level Test Case Generation Based on Constraint Logic Programming i-tin Hu and ai-wei Lin Department of Computer Science and Information Engineering ational Chung Cheng University
More informationTest design techniques
INF3121 : Software Testing 12. 02. 2015 Lecture 4 Test design techniques Lecturer: Raluca Florea INF3121/ 12.02.2015 / Raluca Florea 1 Overview 1. The test development process 2. Categories of test design
More informationJOURNAL OF OBJECT TECHNOLOGY
JOURNAL OF OBJECT TECHNOLOGY Online at http://www.jot.fm. Published by ETH Zurich, Chair of Software Engineering JOT, 2003 Vol. 2, No. 6, November-December 2003 UML 2 Activity and Action Models Part 3:
More informationIntroduction to Software Testing Chapter 2.4 Graph Coverage for Design Elements Paul Ammann & Jeff Offutt
Introduction to Software Testing Chapter 2.4 Graph Coverage for Design Elements Paul Ammann & Jeff Offutt www.introsoftwaretesting.com OO Software and Designs Emphasis on modularity and reuse puts complexity
More informationA Taxonomy of OO Classes to Support the Mapping of Testing Techniques to a Class
Vol. 4, No. 5, July August 2005 A Taxonomy of OO Classes to Support the Mapping of Testing Techniques to a Class Peter J. Clarke, School of Computer Science, Florida International University, Miami, FL
More informationOn Built-in Test Reuse in Object-Oriented Framework Design
On Built-in Test Reuse in Object-Oriented Framework Design ACMCS115 Yingxu Wang 1 Graham King 2 Mohamed Fayad 3 Dilip Patel 1 Ian Court 2 Geoff Staples 2 Margaret Ross 2 1 School of Computing, Information
More informationTesting Methods: White Box Testing II
Testing Methods: White Box Testing II Outline Today we continue our look at white box testing with more code coverage methods, and a data coverage method We ll look at : - code coverage testing - decision
More informationWe turn 10! Performance Testing. The Magazine for Professional Testers. June 2010
10 June 2010 ISSN 1866-5705 www.testingexperience.com free digital version print version 8,00 printed in Germany Performance Testing We turn 10! istockphoto.com/dny59 Antonio Oquias - Fotolia.com The Test
More informationADDICT: A Prototype System for Automated Test Data Generation Using the Integrated Classification-Tree Methodology
To appear in the Proceeedings of the 1st ACIS International Conference on Software Engineering Research and Applications (SERA 2003), International Association for Computer and Information Science Mt.
More informationStructural Testing. White Box Testing & Control Flow Analysis
Structural Testing White Box Testing & Control Flow Analysis Functional vs. Structural Functional Have I built the right product? Tests derived from the program specification Internal Structure ignored
More informationAn approach of security testing for third-party component based on state mutation
SECURITY AND COMMUNICATION NETWORKS Security Comm. Networks 2016; 9:2827 2842 Published online 23 January 2015 in Wiley Online Library (wileyonlinelibrary.com)..1189 SPECIAL ISSUE PAPER An approach of
More informationMeltem Özturan
Meltem Özturan www.mis.boun.edu.tr/ozturan/samd 1 2 Modeling System Requirements Object Oriented Approach to Requirements OOA considers an IS as a set of objects that work together to carry out the function.
More informationSoftware Quality Assurance Dynamic Test
Software Quality Assurance Dynamic Test Contents Properties and goals Structural testing Control flow testing Data flow testing Functional test Diversified test 2 Properties and Goals Properties of dynamic
More informationObject-Oriented and Classical Software Engineering
Slide 16.1 Object-Oriented and Classical Software Engineering Seventh Edition, WCB/McGraw-Hill, 2007 Stephen R. Schach srs@vuse.vanderbilt.edu CHAPTER 16 Slide 16.2 MORE ON UML 1 Chapter Overview Slide
More informationCommands, and Queries, and Features. Syntax of Eiffel: a Brief Overview. Escape Sequences. Naming Conventions
Commands, and Queries, and Features Syntax of Eiffel: a Brief Overview EECS3311 A: Software Design Fall 2018 CHEN-WEI WANG In a Java class: Attributes: Data Mutators: Methods that change attributes without
More informationCOMP-202 Unit 8: Defining Your Own Classes. CONTENTS: Class Definitions Attributes Methods and Constructors Access Modifiers and Encapsulation
COMP-202 Unit 8: Defining Your Own Classes CONTENTS: Class Definitions Attributes Methods and Constructors Access Modifiers and Encapsulation Defining Our Own Classes (1) So far, we have been creating
More informationThe Event-B Modelling Notation
The Event-B Modelling Notation J.-R. Abrial October 2007 Version 1.5 The Event-B Modelling Notation Contents 1 Machines and Contexts 1 2 Events 2 3 Variant 3 4 Actions 3 5 Witnesses 4 6 Syntax of the Event-B
More informationMerging components and testing tools: The Self-Testing COTS Components (STECC) Strategy
Merging components and testing tools: The Self-Testing COTS Components (STECC) Strategy Sami Beydeda, Volker Gruhn University of Leipzig Department of Computer Science Applied Telematics / e-business Klostergasse
More informationStateful Objects. can I withdraw 100 CHF? may vary over the course of the lifetime of the account.
Functions and State Functions and State Until now, our programs have been side-effect free. Therefore, the concept of time wasn t important. For all programs that terminate, any sequence of actions would
More informationTest Case Generation Technique by using Collaboration UML Diagram
Test Case Generation Technique by using Collaboration UML Diagram Urooj *, Anil Pandey Department Of Computer Science and Engineering, Invertis University, Bareilly, India Article Info Article history:
More informationTesting & Continuous Integration. Kenneth M. Anderson University of Colorado, Boulder CSCI 5828 Lecture 20 03/19/2010
esting & Continuous Integration Kenneth M. Anderson University of Colorado, Boulder CSCI 5828 Lecture 20 03/1/20 University of Colorado, 20 1 Goals 2 Review material from Chapter of Pilone & Miles esting
More informationMaster of Science in Embedded and Intelligent Systems MASTER THESIS. Generating Test Adapters for ModelJunit. Ardalan Hashemi Aghdam
Master of Science in Embedded and Intelligent Systems MASTER THESIS Generating Test Adapters for ModelJunit Ardalan Hashemi Aghdam Halmstad University, June 2017 Ardalan Hashemi Aghdam: Generating Test
More informationOverview Graph Coverage Criteria
Overview Graph Coverage Criteria Graph Coverage Four Structures for Modeling Software Graphs Logic Input Space Syntax Applied to Applied to Source FSMs Applied to Specs DNF Source Specs Source Models Design
More informationState-Based Incremental Testing of Aspect-Oriented Programs
State-Based Incremental Testing of Aspect-Oriented Programs Dianxiang Xu Department of Computer Science North Dakota State University Fargo, ND 58105, U.S.A dianxiang.xu@ndsu.edu Weifeng Xu Department
More informationGeneration of Interactive Questionnaires Using YAWL-based Workflow Models
Management Studies, December 2015, Vol. 3, No. 11-12, 273-280 doi: 10.17265/2328-2185/2015.1112.002 D DAVID PUBLISHING Generation of Interactive Questionnaires Using YAWL-based Workflow Models Raimond
More informationUnified Modeling Language (UML)
1.17 Software Engineering Case Study: Introduction to Object Technology and the UML (Required) Object orientation A natural way of thinking about the world and computer programs Unified Modeling Language
More informationDocument Version Publisher s PDF, also known as Version of Record (includes final page, issue and volume numbers)
The link between product data model and process model : the effect of changes in the product data model on the process model Vogelaar, J.J.C.L.; Reijers, H.A. Published: 01/01/2009 Document Version Publisher
More informationGraph Coverage for Source Code. Data Flow Graph Coverage for Source Code
Graph Coverage for Source Code Data Flow Graph Coverage for Source Code 1 Graph Coverage for Design Elements Use of data abstraction and object oriented software has increased importance on modularity
More informationLecture 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 information2.5.1: Reforms in Continuous Internal Evaluation (CIE) System at the Institutional Level
D Y Patil Institute of Engineering and Technology, Ambi, Pune Address:Sr.No.124 & 126, A/p- Ambi, Tal-Maval, MIDC Road, TalegaonDabhade, Pune-410506, Maharashtra, India Tel: 02114306229, E-mail : info@dyptc.edu.in
More informationA Fitness Function to Find Feasible Sequences of Method Calls for Evolutionary Testing of Object-Oriented Programs
A Fitness Function to Find Feasible Sequences of Method Calls for Evolutionary Testing of Object-Oriented Programs Myoung Yee Kim and Yoonsik Cheon TR #7-57 November 7; revised January Keywords: fitness
More informationTaxonomy Dimensions of Complexity Metrics
96 Int'l Conf. Software Eng. Research and Practice SERP'15 Taxonomy Dimensions of Complexity Metrics Bouchaib Falah 1, Kenneth Magel 2 1 Al Akhawayn University, Ifrane, Morocco, 2 North Dakota State University,
More informationA 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 informationNAME CHSM-Java Concurrent, Hierarchical, Finite State Machine specification language for Java
NAME CHSM-Java Concurrent, Hierarchical, Finite State Machine specification language for Java SYNOPSIS declarations description user-code DESCRIPTION The CHSM specification language is a text-based means
More informationTopics in Software Testing
Dependable Software Systems Topics in Software Testing Material drawn from [Beizer, Sommerville] Software Testing Software testing is a critical element of software quality assurance and represents the
More informationLarvaLight User Manual
LarvaLight User Manual LarvaLight is a simple tool enabling the user to succinctly specify monitors which trigger upon events of an underlying Java system, namely method calls and returns. If the events
More informationAn Eclipse Plug-in for Model Checking
An Eclipse Plug-in for Model Checking Dirk Beyer, Thomas A. Henzinger, Ranjit Jhala Electrical Engineering and Computer Sciences University of California, Berkeley, USA Rupak Majumdar Computer Science
More informationTopic: Software Verification, Validation and Testing Software Engineering. Faculty of Computing Universiti Teknologi Malaysia
Topic: Software Verification, Validation and Testing Software Engineering Faculty of Computing Universiti Teknologi Malaysia 2016 Software Engineering 2 Recap on SDLC Phases & Artefacts Domain Analysis
More informationA New Mutation Analysis Method for Testing Java Exception Handling
A New Mutation Analysis Method for Testing Java Exception Handling Authors Affiliations Emails Abstract Java exception mechanism can effectively free a program from abnormal exits and help developers locate
More informationAutomatic Generation of Data Flow Test Paths using a Genetic Algorithm
Automatic Generation of Data Flow Test Paths using a Genetic Algorithm Moheb R. Girgis Department of Computer Science, Faculty of Science, Minia University, Egypt Ahmed S. Ghiduk College of Computers and
More informationMutating Object State and Implementing Equality
Mutating Object State and Implementing Equality 6.1 Mutating Object State Goals Today we touch the void... (sounds creepy right... see the movie, or read the book, to understand how scary the void can
More information! Use of formal notations. ! in software system descriptions. ! for a broad range of effects. ! and varying levels of use. !
What Are Formal Methods? David S. Rosenblum ICS 221 Winter 2001! Use of formal notations! first-order logic, state machines, etc.! in software system descriptions! system models, constraints, specifications,
More informationChapter 10. Object-Oriented Analysis and Modeling Using the UML. McGraw-Hill/Irwin
Chapter 10 Object-Oriented Analysis and Modeling Using the UML McGraw-Hill/Irwin Copyright 2007 by The McGraw-Hill Companies, Inc. All rights reserved. Objectives 10-2 Define object modeling and explain
More information5th World Congress for Software Quality Shanghai, China November 2011
Yoshihiro Kita University of Miyazaki Miyazaki, Japan kita@earth.cs.miyazaki-u.ac.jp Proposal of Execution Paths Indication Method for Integration Testing by Using an Automatic Visualization Tool Avis
More informationFachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn. 4. Testing
4. vs. Model Checking (usually) means checking the correctness of source code Model Checking means verifying the properties of a model given in some formal (not program code) notation Attention: things
More informationProgram Analysis. Program Analysis
Program Analysis Class #4 Program Analysis Dynamic Analysis 1 Static VS Dynamic Analysis Static analysis operates on a model of the SW (without executing it) If successful, produces definitive information
More informationChapter 9. Software Testing
Chapter 9. Software Testing Table of Contents Objectives... 1 Introduction to software testing... 1 The testers... 2 The developers... 2 An independent testing team... 2 The customer... 2 Principles of
More informationWeb Page Fragmentation for Personalized Portal Construction
Web Page Fragmentation for Personalized Portal Construction Bouras Christos Kapoulas Vaggelis Misedakis Ioannis Research Academic Computer Technology Institute, 6 Riga Feraiou Str., 2622 Patras, Greece
More informationSubject Software Testing Structural Testing
Subject Software Testing Structural Testing Objective: 1. Understand Concept of structural testing 2. How structural (code-based or glass-box) testing complements functional (black-box) testing 3. Recognize
More informationSyntax of Eiffel: a Brief Overview
Syntax of Eiffel: a Brief Overview EECS3311 A: Software Design Fall 2018 CHEN-WEI WANG Escape Sequences Escape sequences are special characters to be placed in your program text. In Java, an escape sequence
More informationSTUDENT LESSON A5 Designing and Using Classes
STUDENT LESSON A5 Designing and Using Classes 1 STUDENT LESSON A5 Designing and Using Classes INTRODUCTION: This lesson discusses how to design your own classes. This can be the most challenging part of
More informationUsing models in the integration and testing process
Chapter 8 Using models in the integration and testing process Authors: N.C.W.M. Braspenning, J.M. van de Mortel-Fronczak, D.O. van der Ploeg, J.E. Rooda 8.1 Introduction This chapter, which is based on
More informationRegression Test Selection for Black-box Dynamic Link Library Components
Regression Test Selection for Black-box Dynamic Link Library Components Jiang Zheng 1, Laurie Williams 1, Brian Robinson 2, Karen Smiley 2 1 Department of Computer Science, North Carolina State University,
More informationUNIT 3 ARRAYS, RECURSION, AND COMPLEXITY CHAPTER 11 CLASSES CONTINUED
UNIT 3 ARRAYS, RECURSION, AND COMPLEXITY CHAPTER 11 CLASSES CONTINUED EXERCISE 11.1 1. static public final int DEFAULT_NUM_SCORES = 3; 2. Java allocates a separate set of memory cells in each instance
More informationMidterm Exam. CS169 Fall November 17, 2009 LOGIN: NAME: SID: Problem Max Points Points TOTAL 100
Midterm Exam CS169 Fall 2009 November 17, 2009 Please read all instructions (including these) carefully. Write your name, login, and SID. There are 12 pages in this exam and 6 questions, each with multiple
More informationThe SPL Programming Language Reference Manual
The SPL Programming Language Reference Manual Leonidas Fegaras University of Texas at Arlington Arlington, TX 76019 fegaras@cse.uta.edu February 27, 2018 1 Introduction The SPL language is a Small Programming
More informationSoftware Testing 2. OOD and Testability. White box vs Black box Testing. Software Testing 2 Semester 1, 2006
Software Testing 2 Jens Dietrich OOD and Testability Component based design and component based unit testing. Design that isolates component that are difficult to test (automatically) (such as user interfaces).
More informationIntroduction to Software Testing Chapter 2, Sec#: 2.5 Graph Coverage for Specifications
Introduction to Software Testing Chapter 2, Sec#: 2.5 Graph Coverage for Specifications Paul Ammann & Jeff Offutt http://www.cs.gmu.edu/~offutt/softwa retest/ Design Specifications A design specification
More informationpublic class Account { private int id; private static int nextaccountid = 0; private String name; private double balance;
public class Account { private int id; private static int nextaccountid = 0; private String name; private double balance; public double deposit(double amount) { public double withdraw(double amount) {
More informationExploring Dynamic Compilation Facility in Java
Exploring Dynamic Compilation Facility in Java Dingwei He and Kasi Periyasamy Computer Science Department University of Wisconsin-La Crosse La Crosse, WI 54601 kasi@cs.uwlax.edu Abstract Traditional programming
More informationMidterm 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 informationObject Oriented Modeling
Object Oriented Modeling Object oriented modeling is a method that models the characteristics of real or abstract objects from application domain using classes and objects. Objects Software objects are
More informationClass Analysis for Testing of Polymorphism in Java Software
Class Analysis for Testing of Polymorphism in Java Software Atanas Rountev Ana Milanova Barbara G. Ryder Rutgers University, New Brunswick, NJ 08903, USA {rountev,milanova,ryder@cs.rutgers.edu Abstract
More informationFOUR INDEPENDENT TOOLS TO MANAGE COMPLEXITY INHERENT TO DEVELOPING STATE OF THE ART SYSTEMS. DEVELOPER SPECIFIER TESTER
TELECOM AVIONIC SPACE AUTOMOTIVE SEMICONDUCTOR IOT MEDICAL SPECIFIER DEVELOPER FOUR INDEPENDENT TOOLS TO MANAGE COMPLEXITY INHERENT TO DEVELOPING STATE OF THE ART SYSTEMS. TESTER PragmaDev Studio is a
More informationINCORPORATING ADVANCED PROGRAMMING TECHNIQUES IN THE COMPUTER INFORMATION SYSTEMS CURRICULUM
INCORPORATING ADVANCED PROGRAMMING TECHNIQUES IN THE COMPUTER INFORMATION SYSTEMS CURRICULUM Charles S. Saxon, Eastern Michigan University, charles.saxon@emich.edu ABSTRACT Incorporating advanced programming
More information