Ryan Lekivetz JMP Division of SAS Abstract Covering Arrays

Slides:



Advertisements
Similar presentations
RTL Design Introduction Decoder Encoder Multiplexer Tri-state Buffer
Advertisements

Regression Methodology Einat Ravid. Regression Testing - Definition  The selective retesting of a hardware system that has been modified to ensure that.
Pseudo-Exhaustive Testing for Software Rick Kuhn Vadim Okun National Institute of Standards and Technology Gaithersburg,
Software Testing and Quality Assurance
Rick Kuhn Computer Security Division
Software Testing. “Software and Cathedrals are much the same: First we build them, then we pray!!!” -Sam Redwine, Jr.
PowerPoint: Tables Computer Information Technology Section 5-11 Some text and examples used with permission from: Note: We are.
1 Functional Testing Motivation Example Basic Methods Timing: 30 minutes.
Terms: Test (Case) vs. Test Suite
Software Testing Sudipto Ghosh CS 406 Fall 99 November 9, 1999.
Testing. Definition From the dictionary- the means by which the presence, quality, or genuineness of anything is determined; a means of trial. For software.
Software Testing. Definition To test a program is to try to make it fail.
Automated Combinatorial Testing for Software Rick Kuhn and Raghu Kacker National Institute of Standards and Technology Gaithersburg, MD.
Foundations of Software Testing Chapter 5: Test Selection, Minimization, and Prioritization for Regression Testing Last update: September 3, 2007 These.
The OWASP Foundation OWASP AppSec DC October This is a work of the U.S. Government and is not subject to copyright protection.
Dr. Tom WayCSC Testing and Test-Driven Development CSC 4700 Software Engineering Based on Sommerville slides.
Introduction to Databases Trisha Cummings. What is a database? A database is a tool for collecting and organizing information. Databases can store information.
Introduction to Software Testing. Types of Software Testing Unit Testing Strategies – Equivalence Class Testing – Boundary Value Testing – Output Testing.
Testing Interactions Among Software Components Alan Williams School of Information Technology and Engineering, University of Ottawa
P3 - prepare a computer for installation/upgrade By Ridjauhn Ryan.
Fixing the Defect CEN4072 – Software Testing. From Defect to Failure How a defect becomes a failure: 1. The programmer creates a defect 2. The defect.
Testing and inspecting to ensure high quality An extreme and easily understood kind of failure is an outright crash. However, any violation of requirements.
CHAPTER EIGHT ARRAYS © Prepared By: Razif Razali1.
Testing Constrained Combinations Telerik Software Academy Software Quality Assurance.
Project Planning Defining the project Software specification Development stages Software testing.
A PRELIMINARY EMPIRICAL ASSESSMENT OF SIMILARITY FOR COMBINATORIAL INTERACTION TESTING OF SOFTWARE PRODUCT LINES Stefan Fischer Roberto E. Lopez-Herrejon.
Software Testing and Quality Assurance Practical Considerations (1) 1.
SWE 434 SOFTWARE TESTING AND VALIDATION LAB2 – INTRODUCTION TO JUNIT 1 SWE 434 Lab.
Optimization Problems
Software Testing.
Regression Testing with its types
Testing Tutorial 7.
Black Box Testing PPT Sources: Code Complete, 2nd Ed., Steve McConnell
CompSci 230 Software Construction
Software Testing An Introduction.
External Sorting Chapter 13
Software Fault Interactions and Implications for Software Testing
Software Reliability Definition: The probability of failure-free operation of the software for a specified period of time in a specified environment.
Effective Test Design Using Covering Arrays
Software Testing.
Ryan Lekivetz & Joseph Morgan, JMP
Other Kinds of Arrays Chapter 11
Computational Molecular Biology
White-Box Testing.
Virtual Private Servers – Types of Virtualization platforms Virtual Private ServersVirtual Private Servers, popularly known as VPS is considered one of.
Lecture 14 Reduction of State Tables
White-Box Testing.
A Few Review Questions Dan Fleck Fall 2009.
Testing and Test-Driven Development CSC 4700 Software Engineering
Optimization Problems
A Few Review Questions.
External Sorting Chapter 13
Chapter Nine: Advanced Topics in Regular Languages
Coding Concepts (Basics)
Topic 1: Problem Solving
IPOG: A General Strategy for T-Way Software Testing
CS240: Advanced Programming Concepts
In the Senior Design Center
Introduction to Data Structure
ECE 352 Digital System Fundamentals
ECE 352 Digital System Fundamentals
ECE 352 Digital System Fundamentals
Automatic Test Generation for N-way Combinatorial Testing
Test Cases, Test Suites and Test Case management systems
ECE 352 Digital System Fundamentals
Lab 8: GUI testing Software Testing LTAT
External Sorting Chapter 13
Clustering.
Software Testing.
Presentation transcript:

Covering Arrays: A tool to construct efficient test suites for validating deterministic systems Ryan Lekivetz JMP Division of SAS Abstract Covering Arrays Different than DOE? JMP 12 introduced the first JMP Pro platform for Design of Experiments (DOE) with the Covering Array platform. Covering arrays (CA’s) are a tool used to test deterministic systems by revealing if any level combinations involving up to a certain number of factors induce a failure. Definition: A covering array CA(N; t, (v1*v2…*vk)) is an N x k array such that the i’th column contains vi distinct symbols. If for any t coordinate projection, all combinations of symbols exist, then it is a t-covering array. If N is minimal for fixed t, k, and (v1…vk), it is said to be optimal. Less-wordy definition: For a set of factors, a t-covering array has the property that for any subset of t factors, every possible combination occurs at least once. Fewer Runs Not trying to fit a model Categorical factors, binary (categorical) response No error Why Covering Arrays? Failures more likely induced by small number of factors CA’s make sure we’ve covered t-way combinations (plus more!) Exhaustive testing usually not feasible Using JMP to test JMP Preferences Radio buttons Objective Deterministic system (same input gives same output every time) Identify faults How to test effectively?

Covering Arrays Ryan Lekivetz JMP Division of SAS Factors Disallowed Combinations Enter Categorical factors Continuous factors need to be converted into a discrete number to input as categorical Choose strength Higher strength = ascertain better coverage at cost of more runs Specify combinations that cannot occur Disallowed Combinations Filter creates script that can be used later Unlike rest of DOE, it’s fine if you end up with missing values in the design

Covering Arrays Ryan Lekivetz JMP Division of SAS After “Make Design” After “Make Table” 100% of 2-factor combinations 91% of 3-factor combinations Response column keeps track of pass/fail results If there’s a failure, would like to know the cause Analysis tool provides a set of possible causes by considering the entire set of passes and fails Metrics reveal how well combinations covered in projections of t factors Optimize tries to find a smaller design Optimize disabled if design is known to be smallest

Covering Arrays Ryan Lekivetz JMP Division of SAS Testing Preferences Categorical platform preference set has lots of checkboxes (2-level), as well as a few options with 3 or more choices 712,483,534,798,848 possible combinations to test Covering array starts with a 20-run design for strength 2 In a few seconds, Optimize finds a 16-run design, which is the minimum run size

Covering Arrays Ryan Lekivetz JMP Division of SAS Testing Factors that cannot be run together Level setting of one particular factor implies that other factors are not applicable For example, may have a radio button, each choice having its own set of options that follow Automated Hierarchical Clustering => options for interactive/minimum don’t apply Some workarounds: Create separate design for each choice (wasteful testing) Make combined factors (hard to read/decipher) Instead use disallowed combinations Sensible missing values in the design Analysis still works too

Covering Arrays Ryan Lekivetz JMP Division of SAS Effectiveness of Covering Arrays #factors involved in failure Medical devices Browser Server NASA GSFC 1 66 29 42 68 2 97 76 70 93 3 99 95 89 98 4 100 96 5 6 Cumulative percentage of faults triggered by interactions involving number of factors indicated in leftmost column (Kuhn et al. (2004)). D. Kuhn, D. R. Wallace, & A. M. Gallo, “Software Fault Interactions & Implications for Software Testing,” IEEE TSE, 30(6), 2004, 418-421