Firewall for regression testing Tor Stålhane According to White, Jaber, Robinson and Rajlich.

Slides:



Advertisements
Similar presentations
System Integration and Performance
Advertisements

Introducing Formal Methods, Module 1, Version 1.1, Oct., Formal Specification and Analytical Verification L 5.
White Box and Black Box Testing Tor Stålhane. What is White Box testing White box testing is testing where we use the info available from the code of.
Mahadevan Subramaniam and Bo Guo University of Nebraska at Omaha An Approach for Selecting Tests with Provable Guarantees.
Operating Systems Lecture 10 Issues in Paging and Virtual Memory Adapted from Operating Systems Lecture Notes, Copyright 1997 Martin C. Rinard. Zhiqing.
1 ECE 453 – CS 447 – SE 465 Software Testing & Quality Assurance Instructor Kostas Kontogiannis.
Programming Languages Marjan Sirjani 2 2. Language Design Issues Design to Run efficiently : early languages Easy to write correctly : new languages.
CS 211 Inheritance AAA.
Common Gateway Interface (CGI). CGI is a protocol: CGI is not a programming language CGI is a protocol for the exchange of information between between.
COSC 120 Computer Programming
1 Software Testing and Quality Assurance Lecture 12 - The Testing Perspective (Chapter 2, A Practical Guide to Testing Object-Oriented Software)
Tutorial 6 & 7 Symbol Table
Neural Networks Marco Loog.
PROCESS MODELING Transform Description. A model is a representation of reality. Just as a picture is worth a thousand words, most models are pictorial.
Copyright © 2012 Pearson Education, Inc. Chapter 1: Introduction to Computers and Programming.
Data Flow Analysis Compiler Design Nov. 8, 2005.
Starting Out with C++: Early Objects 5/e © 2006 Pearson Education. All Rights Reserved Starting Out with C++: Early Objects 5 th Edition Chapter 1 Introduction.
Regression testing Tor Stållhane. What is regression testing – 1 Regression testing is testing done to check that a system update does not re- introduce.
C++ fundamentals.
CSCI-383 Object-Oriented Programming & Design Lecture 15.
Copyright 2003 Scott/Jones Publishing Brief Version of Starting Out with C++, 4th Edition Chapter 1 Introduction to Computers and Programming.
Test coverage Tor Stålhane. What is test coverage Let c denote the unit type that is considered – e.g. requirements or statements. We then have C c =
CS102 Introduction to Computer Programming
Copyright © 2012 Pearson Education, Inc. Chapter 1: Introduction to Computers and Programming.
Alternate Version of STARTING OUT WITH C++ 4 th Edition Chapter 1 Introduction to Computers and Programming.
Chapter Introduction to Computers and Programming 1.
CSC 125 Introduction to C++ Programming Chapter 1 Introduction to Computers and Programming.
White Box vs. Black Box Testing Tor Stålhane. What is White Box testing White box testing is testing where we use the info available from the code of.
Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Extended Prelude to Programming Concepts & Design, 3/e by Stewart Venit and.
Extended Prelude to Programming Concepts & Design, 3/e by Stewart Venit and Elizabeth Drake Chapter 8: More About OOP and GUIs.
5. Hierarchical CDFDs and Modules The motivation for building hierarchical CDFDs: It is almost impossible to construct only one level CDFD and module for.
Class Specification Implementation Graph By: Njume Njinimbam Chi-Chang Sun.
Process Flowsheet Generation & Design Through a Group Contribution Approach Lo ï c d ’ Anterroches CAPEC Friday Morning Seminar, Spring 2005.
Copyright © 2012 Pearson Education, Inc. Chapter 1: Introduction to Computers and Programming 1.
Chapter 1: Introduction to Computers and Programming.
Copyright © 2009 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 1: Introduction to Computers and Programming.
Coupling and Cohesion Pfleeger, S., Software Engineering Theory and Practice. Prentice Hall, 2001.
Introduction to Python 2 Dr. Bernard Chen University of Central Arkansas PyArkansas 2011.
© The McGraw-Hill Companies, 2006 Chapter 4 Implementing methods.
Storage Manager Overview L3 Review of SM Software, 28 Oct Storage Manager Functions Event data Filter Farm StorageManager DQM data Event data DQM.
Copyright 1995 by Coherence LTD., all rights reserved (Revised: Oct 97 by Rafi Lohev, Oct 99 by Yair Wiseman, Sep 04 Oren Kapah) IBM י ב מ 10-1 The ALU.
Ch6: Software Verification. 1 Decision table based testing  Applicability:  Spec. is described by a decision table.  Tables describe:  How combinations.
Firewalls for regression testing Spring Use of the word “Firewalls” The way the authors White, Jaber, Robinson and Rajlich use the term “Firewall”
PRIVACY PRESERVING SOCIAL NETWORKING THROUGH DECENTRALIZATION AUTHORS: L.A. CUTILLO, REFIK MOLVA, THORSTEN STRUFE INSTRUCTOR DR. MOHAMMAD ASHIQUR RAHMAN.
CMPS 211 JavaScript Topic 1 JavaScript Syntax. 2Outline Goals and Objectives Goals and Objectives Chapter Headlines Chapter Headlines Introduction Introduction.
Testing and Debugging Version 1.0. All kinds of things can go wrong when you are developing a program. The compiler discovers syntax errors in your code.
SE: CHAPTER 7 Writing The Program
Chapter 13: Regression Testing Omar Meqdadi SE 3860 Lecture 13 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Copyright © 2010 Certification Partners, LLC -- All Rights Reserved Perl Specialist.
An Object-Oriented Approach to Programming Logic and Design Fourth Edition Chapter 6 Using Methods.
Objects & Dynamic Dispatch CSE 413 Autumn Plan We’ve learned a great deal about functional and object-oriented programming Now,  Look at semantics.
OOAD Unit – I OBJECT-ORIENTED ANALYSIS AND DESIGN With applications
Copyright © 2003 ProsoftTraining. All rights reserved. Perl Fundamentals.
White Box and Black Box Testing
Copyright 2003 Scott/Jones Publishing Standard Version of Starting Out with C++, 4th Edition Chapter 1 Introduction to Computers and Programming.
McGraw-Hill©The McGraw-Hill Companies, Inc., 2000 PART III: DATA LINK LAYER ERROR DETECTION AND CORRECTION 7.1 Chapter 10.
 2004 SDU 1 Lecture5-Strongly Connected Components.
Fundamental Programming Fundamental Programming Introduction to Functions.
From logical to physical architecture The following slides uses the example of RT-knobs to study the transition of logical to physical architecture.
Aggregator Stage : Definition : Aggregator classifies data rows from a single input link into groups and calculates totals or other aggregate functions.
TTCN-3 Testing and Test Control Notation Version 3.
Chapter 1: Introduction to Computers and Programming.
Copyright © 2010 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 1: Introduction to Computers and Programming.
SENG521 (Fall SENG 521 Software Reliability & Testing Preparing for Test (Part 6a) Department of Electrical & Computer Engineering,
Chapter 27 Network Management Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
CSCI 383 Object-Oriented Programming & Design Lecture 15 Martin van Bommel.
MARIE: An Introduction to a Simple Computer
Regression testing Tor Stållhane.
IST256 : Applications Programming for Information Systems
Presentation transcript:

Firewall for regression testing Tor Stålhane According to White, Jaber, Robinson and Rajlich

Why fire walls in regression testing Most regression tests are large and time- consuming to run. The concept of a “fire wall” is used to reduce the set of classes – or components – that need to be tested. A fire wall in regression testing separates the classes that depend on the class that is changed from the rest. There are two central concepts – dependency and encoding

Simple fire wall rules Rules for the fire wall in object-oriented systems: 1.Given two successive versions of an OO-system, identify the classes that have changed 2.If a changed class is part of an inheritance hierarchy we must also consider descendants of the changed class as changed 3.For each changed class, identify all classes that send a message to the changed class or receive messages from a changed class and include them inside the fire wall

Simple fire wall example

The extended fire wall The extended fire wall is identified by the three rules for constructing a simple fire wall plus 4.Identify all data paths to and from a modified class 5.Find all external classes in scope of the modified class and include them in the extended fire wall In order to identify an external class, we need some definitions.

Dependency The main concept to understand when we apply the fire wall idea, is the idea of dependency. The main question is: Is the component dealing with the plain values of the input or Must the component account for how those inputs were generated

Definitions – 1 Let C be a component with inputs {I i }, outputs {O j } and post-conditions {Q k } If Q  {Q k } and I  {I i } so that Q depends on I and on a value generated by a component C 1 that is connected to I through a data flow through one or more intermediary component C 2,…C m then I is an encoded input C is an external component in scope of C 2 and visa versa

Definitions – 2 No component C 1 => I is a plain input, i.e. not encoded All inputs of C are plain => C is an I/O component C is external in scope of D and there is no message sent from C to D => there is a hidden dependency between C and D. c c1c1 c c2c2 c1c1 I I I is a plain input I is an encode input cmcm …

Dependency example – 1 Component 1 generates the key k, which is converted to an integer in component 2. Component 3 converts the integer to a hash address A. Component 4 uses the hash address to do a table look-up to generate the value f(k).

Dependency example – 1 The post condition of component 4 depends on k, generated by component 1 => input A is encoded by component 2. Component 4 is an external in scope of component 2 and visa versa. r = f(k) but k is changed by component 2

Hidden dependency A’s post-condition is dependent on the value “colour” that is Generated in class I Encoded as an integer in class A Decoded in class B Thus class B is external in scope of A. The dependency between A and B is hidden since no message is sent between A and B

Global variables Here, the output v 3 from component 3 is used to modify the global variable g which is used as input to component 4. Component 4 is external and dependent on variable v 1 and is activated by a message from component 3 to component 4.

Extended fire wall – example

Simpel and Extended fire wall – 1 In order to test the concepts of Simple and Extended Fire wall, the authors tested several builds of a TelComm system. This system had already been tested by the developers using their standard test suite. Common – found using both TFW and EFW: 8 errors Found only using EFW: 4 errors. Two of these had not been found by the company’s test suite.

Simpel and Extended fire wall – 2

Simpel and Extended fire wall – 3 In the following table, total time for testing is the sum of Analysis time – identifying the fire wall Testing time is time needed for – test setup – test execution – analysis of the test results. EFW testing requires approximately 20 – 30% more tests 40 – 50% more person hours

Simpel and Extended fire wall – 4 TFW: 46 person hours, 8 errors => 5.7 person hours per error found EFW: 58 person hours, 12 errors => 4.8 person hours per error found

Simpel and Extended fire wall – 5 For TFW some testes were reused from the company’s original test suite All extra tests needed for EFW were written from scratch.

Simpel and Extended fire wall – 6 New system – 13 common errors and 3 errors found only by EFW

Simpel and Extended fire wall – 7 TFW: 93 person hours, 13 errors => 7.2 person hours per error found EFW: 120 person hours, 16 errors => 7.5 person hours per error found

Conclusion Extended Fire Wall testing (EFW) finds more errors that Simple Fire Wall (FWT) testing The cost in person hours per error found is approximately the same – 5 to 8 person hours all in all per error Both EFW and FWT – should only be used to test updates and changes – assumes that the initial test suite and the tested software are of a high quality.