Are You Sure What Failures Your Tests Produce? Lee White.

Slides:



Advertisements
Similar presentations
Grey Box testing Tor Stålhane. What is Grey Box testing Grey Box testing is testing done with limited knowledge of the internal of the system. Grey Box.
Advertisements

Computers Software. Computer Layers Hardware BIOS Operating System Applications.
Adobe Flash CS4 – Illustrated Unit E: Optimizing and Publishing a Movie.
Discovering Computers Fundamentals, Third Edition CGS 1000 Introduction to Computers and Technology Fall 2006.
Team Project/Therac-26 Software Engineering [Exaile Music Player] Austin Baker Christoph Samitsch Jaime Miller Joshua Walton.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 23 Slide 1 Software testing.
OS2-1 Chapter 2 Computer System Structures. OS2-2 Outlines Computer System Operation I/O Structure Storage Structure Storage Hierarchy Hardware Protection.
Software Testing. Overview Definition of Software Testing Problems with Testing Benefits of Testing Effective Methods for Testing.
Aho-Corasick String Matching An Efficient String Matching.
The C++ Tracing Tutor: Visualizing Computer Program Behavior for Beginning Programming Courses Rika Yoshii Alastair Milne Computer Science Department California.
EE694v-Verification-Lect5-1- Lecture 5 - Verification Tools Automation improves the efficiency and reliability of the verification process Some tools,
 What is Software Testing  Terminologies used in Software testing  Types of Testing  What is Manual Testing  Types of Manual Testing  Process that.
AJAC Systems Hotel Reservation System
1 Joe Meehean. 2 Testing is the process of executing a program with the intent of finding errors. -Glenford Myers.
Lecture 10 Topics: Sequential circuits Basic concepts Clocks
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 23 Slide 1 Software testing.
Presenter: Shant Mandossian EFFECTIVE TESTING OF HEALTHCARE SIMULATION SOFTWARE.
Operating Systems Operating System
© 2012 The McGraw-Hill Companies, Inc. All rights reserved. 1 Third Edition Chapter 6 Today’s Windows Windows Vista and Windows 7 McGraw-Hill.
Class Specification Implementation Graph By: Njume Njinimbam Chi-Chang Sun.
Software Engineering Chapter 23 Software Testing Ku-Yaw Chang Assistant Professor Department of Computer Science and Information.
What is Software Testing? And Why is it So Hard J. Whittaker paper (IEEE Software – Jan/Feb 2000) Summarized by F. Tsui.
Introduction to Visual Basic. Quick Links Windows Application Programming Event-Driven Application Becoming familiar with VB Control Objects Saving and.
Computer Organization CS345 David Monismith Based upon notes by Dr. Bill Siever and notes from the Patterson and Hennessy Text.
Software Testing. What is Software Testing? Definition: 1.is an investigation conducted to provide stakeholders with information about the quality of.
Design Tradeoffs For Software-Managed TLBs Authers; Nagle, Uhlig, Stanly Sechrest, Mudge & Brown.
1 Principles of Computer Science I Prof. Nadeem Abdul Hamid CSC 120 – Fall 2005 Lecture Unit 10 - Testing.
Firewalls for regression testing Spring Use of the word “Firewalls” The way the authors White, Jaber, Robinson and Rajlich use the term “Firewall”
Software Transition Testing Presented By: Varun Phanda
C H A P T E R T E N Event-Driven Programming Programming Languages – Principles and Paradigms by Allen Tucker, Robert Noonan.
Dr. Tom WayCSC Testing and Test-Driven Development CSC 4700 Software Engineering Based on Sommerville slides.
Functional Verification Figure 1.1 p 6 Detection of errors in the design Before fab for design errors, after fab for physical errors.
DEBUGGING. BUG A software bug is an error, flaw, failure, or fault in a computer program or system that causes it to produce an incorrect or unexpected.
Grey Box testing Tor Stålhane. What is Grey Box testing Grey Box testing is testing done with limited knowledge of the internal of the system. Grey Box.
16 October Reminder Types of Testing: Purpose  Functional testing  Usability testing  Conformance testing  Performance testing  Acceptance.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 20 Slide 1 Critical systems development 3.
Measuring Relative Attack Surfaces Michael Howard, Jon Pincus & Jeannette Wing Presented by Bert Bruce.
Creating Graphical User Interfaces (GUI’s) with MATLAB By Jeffrey A. Webb OSU Gateway Coalition Member.
Conformance Test Experiments for Distributed Real-Time Systems Rachel Cardell-Oliver Complex Systems Group Department of Computer Science & Software Engineering.
CS294, Yelick Consensus revisited, p1 CS Consensus Revisited
Computer Components: Software Computer Technology.
CPSC 873 John D. McGregor Session 9 Testing Vocabulary.
M1G Introduction to Programming 2 5. Completing the program.
Testing in Android. Methods Unit Testing Integration Testing System Testing Regression Testing Compatibility Testing Black Box (Functional) White Box.
CPSC 871 John D. McGregor Module 8 Session 1 Testing.
Software Quality Assurance and Testing Fazal Rehman Shamil.
© 2012 The McGraw-Hill Companies, Inc. All rights reserved. 1 Third Edition Chapter 6 Today’s Windows Windows Vista and Windows 7 McGraw-Hill.
Hands-On Microsoft Windows Server 2008 Chapter 5 Configuring Windows Server 2008 Printing.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 23 Slide 1 Software testing.
“The Role of Experience in Software Testing Practice” A Review of the Article by Armin Beer and Rudolf Ramler By Jason Gero COMP 587 Prof. Lingard Spring.
1.3 Operating system services An operating system provide services to programs and to the users of the program. It provides an environment for the execution.
CPSC 372 John D. McGregor Module 8 Session 1 Testing.
Testing Tutorial 7.
2. OPERATING SYSTEM 2.1 Operating System Function
John D. McGregor Session 9 Testing Vocabulary
Mobile Operating System
Chapter 8 – Software Testing
Verification and Testing
Directions: GO THROUGH THE FOLLWING SLIDES. Make sure you have quizlet cards for all the vocabulary. Study the terms.
John D. McGregor Session 9 Testing Vocabulary
John D. McGregor Session 9 Testing Vocabulary
Directions: GO THROUGH THE FOLLWING SLIDES. Make sure you have quizlet cards for all the vocabulary. Study the terms GCFLearnFree website “Computer Basics”:
Design and Programming
Intro. To Operating Systems
Testing and Test-Driven Development CSC 4700 Software Engineering
Computer Repair & Maintenance
Software System Testing
Digital Literacy 1.00 Computer Basics
Chapter 7 Software Testing.
Think about your view of QA
Presentation transcript:

Are You Sure What Failures Your Tests Produce? Lee White

Results on Testing GUI Systems CIS (Complete Interaction Sequences) approach for testing GUI systems: Applied to four large commercial GUI systems Testing GUI system in different environments: operating system, CPU speed, memory Modified CIS approach applied to regression test two versions of a large commercial GUI system

Three Objectives for this Talk Use of memory tools during GUI testing discovered many more defects; observability problems here In GUI systems, defects manifested themselves as different failures (or not at all) in different environments In GUI systems, many more behaviors reside in the code than designer intended.

Complete Interaction Sequence (CIS) Identify all responsibilities (GUI activity that produces an observable effect on the surrounding user environment). CIS: Operations on a sequence of GUI objects that collectively implement a responsibility. Example: (assume file opened) File_Menu -> Print -> Print_Setup_Selection -> Confirm_Print

FSM for a CIS (Finite State Model) Design a FSM to model a CIS Requires experience to create FSM model To test for all effects in a GUI, all paths within the CIS must be executed Loops may be repeated, but not consecutively

Figure 1 Edit-Cut-Copy-Paste CIS FSM

How to Test a CIS? Design Tests: FSM model based upon the design of the CIS is used to generate tests. Implementation Tests: In the actual GUI, check all CIS object selections, and select all those transitions to another GUI object within the CIS; add these transitions to the FSM model to generate tests, as well as any new inputs or outputs to/from the CIS.

A B D C Figure 2 Design Tests for a Strongly Connected Component [(I1,B,C,D,A,B,C,O1), (I2,A,B,C,D,A,B,C,O1)]

Figure 3 Implementation Tests for a Strongly Connected Component [ (I1,B,C,D,B,C,D,A,B,C,D,A*,B,C,O1), (I1,B,C,D,B,C,D,A,B,C,D,A*,B,C,D,O2), (I2,A,B,C,D,B,C,D,A,B,C,D,A*,B,C,O1), (I2,A,B,C,D,B,C,D,A,B,C,D,A*,B,C,D,O2), (I3,D,A,B,C,D,B,C,D,A*,B,C,O1), (I3,D,A,B,C,D,B,C,D,A*,B,C,D,O2) ]

GUI System GUI Objects Design # Tests # Faults Impl. # Tests # Faults Real Networks Adobe PS Acrobat R Inter WinDVD Multi-Media DB Table 1 Case Study of 4 Systems

Memory Tools Memory tools monitor memory changes, CPU changes and register changes Used to detect failures that would have eluded detection, and account for 34% of faults found in these empirical studies Used two such tools: Memory Doctor and Win Gauge from Hurricane Systems Tool.

Table 2 Hidden Faults Detected by Memory Tools GUI System Hidden Faults All Faults Percent Real Network71937% Adobe PS Acrobat Rd41040% Inter WinDVD1333% Multi-Media DB2922% Total Faults144134%

Failures of GUI Tests on Different Platforms Lee White and Baowei Fei EECS Department Case Western Reserve University

Environment Effects Studied Environment Effects: Operating System, CPU Speed, Memory Changes Same software tested: RealOne Player 950 implementation tests For OS, same computer used, but use of Windows 98 and 2000 investigated

Regression Testing GUI Systems A Case Study to Show the Operations of the GUI Firewall for Regression Testing

GUI Features Feature: A set of closely related CISs with related responsibilities New Features: Features in a new version not in previous versions Totally Modified Features: Features that are so drastically changed in a new version that this change cannot be modeled by an incremental change; simple firewall cannot be used.

Software Under Test Two versions of Real Player (RP) and RealJukeBox (RJB): RP7/RJB1, RP8/RJB2 13 features; RP7: 208 obj, 67 CIS, 67 des. tests, 137 impl. tests; RJB1: 117 obj, 30 CIS, 31 des. tests, 79 impl. tests 16 features; RP8: 246 obj, 80 CIS, 92 des. tests, 176 impl. tests; RJB2: 182 obj, 66 CIS, 127 des. tests, 310 impl. tests.

RP7/RJB1 RP8/RJB2 8 Features 17 Faults 21 Faults 0 Faults 5 Totally Modified Features Firewall 3 New Features 53 Faults in Original System 59 Faults 16 Features Tested from Scratch by T2 Tested by T1 Figure 4 Distribution of Faults Obtained by Testers T1 and T2

Failures Identified in Version1, Version2 We could identify identical failures in Version1 and Version2. This resulted in 9 failures in Version2, and 7 failures in Version1 not matched. The challenge here was to show which pair of failures might be due to the same fault.

Different Failures in Versions V1, V2 for the Same Fault V1: View track in RJB, freezes if album cover included V2: View track in RJB, loses album cover Env. Problem: Graphical settings needed from V2 for testing V1

Different Failures (cont) V1: Add/Remove channels in RP does not work when RJB is also running V2: Add/Remove channels lose previous items Env. Problem: Personal browser used in V1, but V2 uses a special RJB browser

Different Failures (cont) V1: No failure present V2: In RP, Pressing forward crashes system before playing stream file Env. Problem: Forward button can only be pressed during play in V1, but in V2, Forward botton can be selected at any time; regression now finds this fault

Conclusions for Issue #1 The use of memory tools illustrated extensive observability problems in testing GUI systems: In testing four commercial GUI systems: 34% were missed without use of this tool. In regression testing, 85% & 90% missed. Implication: GUI testing can miss defects or surprises (or produce minor failures).

Conclusions for Issue #2 Defects manifested as different failures (or not at all) in different environments: Discussed in regression testing study Also observed in testing case studies, as well as for testing in different HW/SW environments.

Implication for Issue #2 When testing, you think you understand what failures will occur for certain tests & defects for the same software. But you don’t know what failures (if any) will be seen by the user in another environment.

Conclusions for Issue #3 Difference between design and implementation tests are due to non- design transitions in actual FSMs for each GUI CIS: Observed in both case studies Implication: Faults are commonly associated with these unknown FSM transitions, and are not due to the design.

Question for the Audience Are these same three effects valid to this extent for software other than just GUI systems? If so, then why haven’t we seen lots of reports and papers in the software literature reporting this fact?