Firewalls for regression testing Spring 2013. Use of the word “Firewalls” The way the authors White, Jaber, Robinson and Rajlich use the term “Firewall”

Slides:



Advertisements
Similar presentations
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.
Advertisements

NETWORK LAYER (1) T.Najah AlSubaie Kingdom of Saudi Arabia Prince Norah bint Abdul Rahman University College of Computer Since and Information System NET331.
Mahadevan Subramaniam and Bo Guo University of Nebraska at Omaha An Approach for Selecting Tests with Provable Guarantees.
Chapter 3: Modules, Hierarchy Charts, and Documentation
Operating Systems Lecture 10 Issues in Paging and Virtual Memory Adapted from Operating Systems Lecture Notes, Copyright 1997 Martin C. Rinard. Zhiqing.
1/1/ / faculty of Electrical Engineering eindhoven university of technology Introduction Part 3: Input/output and co-processors dr.ir. A.C. Verschueren.
 Caesar used to encrypt his messages using a very simple algorithm, which could be easily decrypted if you know the key.  He would take each letter.
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)
Co-operative Private Equality Test(CPET) Ronghua Li and Chuan-Kun Wu (received June 21, 2005; revised and accepted July 4, 2005) International Journal.
Program Commenting CS-212 Dick Steflik. Commentary Commentary are pieces of information included in a program’s source files to provide additional information.
Are You Sure What Failures Your Tests Produce? Lee White.
Color Aware Switch algorithm implementation The Computer Communication Lab (236340) Spring 2008.
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.
C++ fundamentals.
Welcome to CMPE003 Personal Computer Concepts: Hardware and Software Winter 2003 UC Santa Cruz Instructor: Guy Cox.
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 =
Network Security (Firewall) Instructor: Professor Morteza Anvari Student: Xiuxian Chen ID: Term: Spring 2001.
University of Toronto Department of Computer Science © 2001, Steve Easterbrook CSC444 Lec22 1 Lecture 22: Software Measurement Basics of software measurement.
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.
Class Specification Implementation Graph By: Njume Njinimbam Chi-Chang Sun.
Copyright © 2012 Pearson Education, Inc. Chapter 1: Introduction to Computers and Programming 1.
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.
Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Starting Out with C++ Early Objects Seventh Edition by Tony Gaddis, Judy.
Lessons 7.1 Students learn about a function through trying to un-code a message ◦ They will notice that unambiguous encoding requires a function.
Storage Manager Overview L3 Review of SM Software, 28 Oct Storage Manager Functions Event data Filter Farm StorageManager DQM data Event data DQM.
Testing Basics of Testing Presented by: Vijay.C.G – Glister Tech.
Ch6: Software Verification. 1 Decision table based testing  Applicability:  Spec. is described by a decision table.  Tables describe:  How combinations.
Regression Testing. 2  So far  Unit testing  System testing  Test coverage  All of these are about the first round of testing  Testing is performed.
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.
Chapter 13: Regression Testing Omar Meqdadi SE 3860 Lecture 13 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Copyright 2003 Scott/Jones Publishing Standard Version of Starting Out with C++, 4th Edition Chapter 13 Introduction to Classes.
CE Operating Systems Lecture 3 Overview of OS functions and structure.
August, (c) 2005 Opentecnology 1 Synnet:Automatic.NET generator for Advantage/2E History.
Objects & Dynamic Dispatch CSE 413 Autumn Plan We’ve learned a great deal about functional and object-oriented programming Now,  Look at semantics.
1 CS457 Object-Oriented Databases Chapters as reference.
1. 2 Preface In the time since the 1986 edition of this book, the world of compiler design has changed significantly 3.
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.
Inter-company Documents Module Extension Module Webinar 29 th of October 2009.
Firewall for regression testing Tor Stålhane According to White, Jaber, Robinson and Rajlich.
McGraw-Hill©The McGraw-Hill Companies, Inc., 2000 PART III: DATA LINK LAYER ERROR DETECTION AND CORRECTION 7.1 Chapter 10.
1 More on Readln:numerical values Note: ENTER key counts sends a carriage return and a line feed to the computer definition: “white space”: space, tab,
Error Explanation with Distance Metrics Authors: Alex Groce, Sagar Chaki, Daniel Kroening, and Ofer Strichman International Journal on Software Tools for.
Fundamental Programming Fundamental Programming Introduction to Functions.
Software testing techniques Software testing techniques REGRESSION TESTING Presentation on the seminar Kaunas University of Technology.
1 CSC160 Chapter 1: Introduction to JavaScript Chapter 2: Placing JavaScript in an HTML File.
Chapter 1: Introduction to Computers and Programming.
START Application Spencer Johnson Jonathan Barella Cohner Marker.
CPIT Program Execution. Today, general-purpose computers use a set of instructions called a program to process data. A computer executes the.
INTRODUCTION TO PROGRAMING System Development Mansoura October 2015.
REGRESSION TESTING Audrius Čėsna IFM-0/2. Regression testing is any type of software testing that seeks to uncover new errors, or regressions, in existing.
Software Troubleshooting Eliminate possible programming and timing errors by stopping all programs ( and ). Use the Executive program terminal and send.
Coupling and Cohesion Schach, S, R. Object-Oriented and Classical Software Engineering. McGraw-Hill, 2002.
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.
Phil Tayco Slide version 1.0 Created Nov. 26, 2017
Software Engineering Lecture #5.
Regression testing Tor Stållhane.
Regression Testing.
Presentation transcript:

Firewalls for regression testing Spring 2013

Use of the word “Firewalls” The way the authors White, Jaber, Robinson and Rajlich use the term “Firewall” in this work is special for their work on regression testing and must not be mixed with the common use of the term “firewall” which is part of networks and security.

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

Dependency The main concept to understand when we apply the firewall idea is 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 } 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 such 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 encoded 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). If component 2 or 3 is changed, the result r may change.

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

Example of 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 (0 is red, 1 is yellow etc.) – Decoded in class B (receives colour code, decodes and paints the screen) 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 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 which has no data associated with it Activation path: 1, 2, 3, 4 Messages path: 1, 2, 3, g, 4

Simple firewall example: a TFW TFW does not examine dependencies further away than one level from changed component

Process for determining TFW in OO systems 1.Given two successive versions of an oo-system, find the difference of the two versions and identify those classes that have changed 2.If any of the changed classes are in an inheritance hierarchy, also consider descendants of the changed class as changed 3.For each changed class, identify all the classes that send messages to the changed class or receive messages from the changed class and include them in the TFW See previous slide for a graph

Extended Testing Firewall - ETW EFW extends the TFW by taking into account the data flows, external components and hidden dependencies (see previous slides) EFW is obtained by following the process: – First apply steps 1-3 in order to obtain TFW 4.Identify all data paths from and to a modified class 5.Find all external classes in scope of the modified class (E in the example on next slide). Include all such classes in EFW

Extended firewall – example

Difference between TFW and EFW

Empirical Study 1: TFW vs. EFW In order to compare the concepts of Simple (TFW) and Extended Firewall (EFW), the authors tested several builds of a TelComm system. – 66 classes, lines of code, C++ 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.

TelComm system- results

TelComm system: Severity of faults All faults in previous slide were of severity 3 except for the EFW fault in build 1.1 which is of severity 2 No faults of severity 1 or 4

TelComm system: Extent of extra effort In the table on next slide, total time for testing is the sum of – Analysis time – identifying the firewall – Testing time is the time needed for test setup test execution analysis of test results. – EFW testing requires approximately 20 – 30% more tests 40 – 50% more person hours

TelComm system: Extent of extra effort 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

TelComm system: Reused vs. new tests For TFW some testes were reused from the company’s original test suite All extra tests needed for EFW were written from scratch.

Empirical Study 2 TFW vs. ETF An empirical study was also performed on a very large system – more than 1 mill lines of code – thousands of classes – C++ code – Real time system – Windows environment

Real time system: TFW vs. EFW 13 common faults and 3 faults found only by EFW Version 1: Common faults: 3 at sev. level 4, 1 at level 3, 1 at level 2 (EFW) Version 2: Common faults 8 (6 at lev. 4, 2 at lev. 2), EFW faults, one at level 3 one at level 2

Real time system: number of tests and effort 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 Firewall testing (EFW) finds more faults than Simple Fire Wall (TFW) testing – 50% in the first study, 23 % in the second study The cost in person hours per fault found is approximately the same: person hours per fault EFW and TFW – should only be used to test updates and changes – assumes that the initial test suite exists and has a high quality

Reference Most of the information on these slides are from the paper (available from It’s learning) “Extended firewall for regression testing: an experience report” By: Lee White, Khaled Jaber, Brian Robinson and Václac Rajlich From: Journal of Software Maintenance and Evolution: Research and Practice, 2008, 20: