Integrating White- and Black-Box Techniques for Class-Level Regression Testing

Size: px
Start display at page:

Download "Integrating White- and Black-Box Techniques for Class-Level Regression Testing"

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 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 information

Black- and White-Box Self-testing COTS Components

Black- 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 information

Test Data Generation based on Binary Search for Class-level Testing

Test 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 information

BINTEST Binary Search-based Test Case Generation

BINTEST 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 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

Selection of UML Models for Test Case Generation: A Discussion on Techniques to Generate Test Cases

Selection 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 information

Test Case Generation According to the Binary Search Strategy

Test 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 information

Regression Test Selection for C++ Software

Regression 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 information

UNIT-IV BASIC BEHAVIORAL MODELING-I

UNIT-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 information

Automated Test Code Generation from UML Protocol State Machines

Automated 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 information

Dataflow testing of Java programs with DFC

Dataflow 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 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

Test Case Generation Based on Sequence Diagrams

Test 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 information

Evaluation of Flow Graph and Dependence Graphs for Program Representation

Evaluation 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 information

CSE115 Introduction to Computer Science I Coding Exercise #7 Retrospective Fall 2017

CSE115 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 information

Study and Analysis of Regression Test Case Selection Techniques

Study 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 information

Class-Component Testability Analysis

Class-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 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

ScienceDirect. An Approach for Generating Minimal Test Cases for Regression Testing

ScienceDirect. 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 information

CHAPTER 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 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 information

An Integrated Regression Testing Framework to Multi-Threaded Java Programs

An 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 information

Unit-Level Test Adequacy Criteria for Visual Dataflow Languages and a Testing Methodology

Unit-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 information

Testing Component-Based Software

Testing 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 information

Integration Testing of Object-oriented Components Using FSMS: Theory and Experimental Details

Integration 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 information

Part I: Preliminaries 24

Part 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 information

Induction and Semantics in Dafny

Induction 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 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 Environment for Training Computer Science Students on Software Testing

An 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 information

Ingegneria del Software II academic year: Course Web-site: [www.di.univaq.it/ingegneria2/]

Ingegneria 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 information

Testing Exceptions with Enforcer

Testing 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 information

A Class-Level Unit Testing Tool for Java

A 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 information

EXAMINATIONS 2012 END-OF-YEAR SWEN222. Software Design. Question Topic Marks 1. Design Quality Design Patterns Design by Contract 12

EXAMINATIONS 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 information

Change Impact Analysis for A Class Hierarchy

Change 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 information

Test Cases Generation from UML Activity Diagrams

Test 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 information

Test Design Techniques ISTQB (International Software Testing Qualifications Board)

Test 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 information

Automatic 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 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 information

Test design techniques

Test 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 information

JOURNAL OF OBJECT TECHNOLOGY

JOURNAL 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 information

Introduction 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 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 information

A Taxonomy of OO Classes to Support the Mapping of Testing Techniques to a Class

A 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 information

On Built-in Test Reuse in Object-Oriented Framework Design

On 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 information

Testing Methods: White Box Testing II

Testing 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 information

We turn 10! Performance Testing. The Magazine for Professional Testers. June 2010

We 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 information

ADDICT: A Prototype System for Automated Test Data Generation Using the Integrated Classification-Tree Methodology

ADDICT: 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 information

Structural Testing. White Box Testing & Control Flow Analysis

Structural 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 information

An approach of security testing for third-party component based on state mutation

An 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 information

Meltem Özturan

Meltem Ö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 information

Software Quality Assurance Dynamic Test

Software 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 information

Object-Oriented and Classical Software Engineering

Object-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 information

Commands, 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. 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 information

COMP-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 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 information

The Event-B Modelling Notation

The 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 information

Merging components and testing tools: The Self-Testing COTS Components (STECC) Strategy

Merging 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 information

Stateful Objects. can I withdraw 100 CHF? may vary over the course of the lifetime of the account.

Stateful 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 information

Test Case Generation Technique by using Collaboration UML Diagram

Test 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 information

Testing & Continuous Integration. Kenneth M. Anderson University of Colorado, Boulder CSCI 5828 Lecture 20 03/19/2010

Testing & 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 information

Master 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 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 information

Overview Graph Coverage Criteria

Overview 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 information

State-Based Incremental Testing of Aspect-Oriented Programs

State-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 information

Generation of Interactive Questionnaires Using YAWL-based Workflow Models

Generation 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 information

Unified Modeling Language (UML)

Unified 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 information

Document Version Publisher s PDF, also known as Version of Record (includes final page, issue and volume numbers)

Document 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 information

Graph Coverage for Source Code. Data Flow Graph Coverage for Source Code

Graph 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 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

2.5.1: Reforms in Continuous Internal Evaluation (CIE) System at the Institutional Level

2.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 information

A 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 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 information

Taxonomy Dimensions of Complexity Metrics

Taxonomy 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 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

NAME CHSM-Java Concurrent, Hierarchical, Finite State Machine specification language for Java

NAME 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 information

Topics in Software Testing

Topics 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 information

LarvaLight User Manual

LarvaLight 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 information

An Eclipse Plug-in for Model Checking

An 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 information

Topic: 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 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 information

A New Mutation Analysis Method for Testing Java Exception Handling

A 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 information

Automatic Generation of Data Flow Test Paths using a Genetic Algorithm

Automatic 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 information

Mutating Object State and Implementing Equality

Mutating 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. !

! 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 information

Chapter 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 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 information

5th World Congress for Software Quality Shanghai, China November 2011

5th 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 information

Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn. 4. Testing

Fachgebiet 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 information

Program Analysis. Program Analysis

Program 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 information

Chapter 9. Software Testing

Chapter 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 information

Web Page Fragmentation for Personalized Portal Construction

Web 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 information

Subject Software Testing Structural Testing

Subject 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 information

Syntax of Eiffel: a Brief Overview

Syntax 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 information

STUDENT LESSON A5 Designing and Using Classes

STUDENT 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 information

Using models in the integration and testing process

Using 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 information

Regression Test Selection for Black-box Dynamic Link Library Components

Regression 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 information

UNIT 3 ARRAYS, RECURSION, AND COMPLEXITY CHAPTER 11 CLASSES CONTINUED

UNIT 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 information

Midterm Exam. CS169 Fall November 17, 2009 LOGIN: NAME: SID: Problem Max Points Points TOTAL 100

Midterm 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 information

The SPL Programming Language Reference Manual

The 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 information

Software Testing 2. OOD and Testability. White box vs Black box Testing. Software Testing 2 Semester 1, 2006

Software 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 information

Introduction 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 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 information

public 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 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 information

Exploring Dynamic Compilation Facility in Java

Exploring 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 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

Object Oriented Modeling

Object 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 information

Class Analysis for Testing of Polymorphism in Java Software

Class 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 information

FOUR INDEPENDENT TOOLS TO MANAGE COMPLEXITY INHERENT TO DEVELOPING STATE OF THE ART SYSTEMS. DEVELOPER SPECIFIER TESTER

FOUR 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 information

INCORPORATING ADVANCED PROGRAMMING TECHNIQUES IN THE COMPUTER INFORMATION SYSTEMS CURRICULUM

INCORPORATING 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