PJSISSTA '001 Black-Box Test Reduction Using Input-Output Analysis ISSTA ‘00 Patrick J. Schroeder, Bogdan Korel Department of Computer Science Illinois.

Slides:



Advertisements
Similar presentations
Testing Relational Database
Advertisements

Dependence Analysis in Reduction of Requirement Based Test Suites Boris Vaysburg Luay Tahat Bogdan Korel Computer Science Department Bell Labs Innovations.
CMSC 345, Version 11/07 SD Vick from S. Mitchell Software Testing.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 23 Slide 1 Software testing.
SE 450 Software Processes & Product Metrics Reliability: An Introduction.
Software Testing. Overview Definition of Software Testing Problems with Testing Benefits of Testing Effective Methods for Testing.
Black-box Testing Lakeisha Dubose November 30, 2006 CSCI 362.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 23 Slide 1 Software testing.
1 Software Testing and Quality Assurance Lecture 30 – Testing Systems.
Software Testing. “Software and Cathedrals are much the same: First we build them, then we pray!!!” -Sam Redwine, Jr.
Chapter 11: Testing The dynamic verification of the behavior of a program on a finite set of test cases, suitable selected from the usually infinite execution.
1 Software Testing Techniques CIS 375 Bruce R. Maxim UM-Dearborn.
What Exactly are the Techniques of Software Verification and Validation A Storehouse of Vast Knowledge on Software Testing.
Test Design Techniques
TEST CASE DESIGN Prepared by: Fatih Kızkun. OUTLINE Introduction –Importance of Test –Essential Test Case Development A Variety of Test Methods –Risk.
Terms: Test (Case) vs. Test Suite
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 23 Slide 1 Software testing.
Software Testing Verification and validation planning Software inspections Software Inspection vs. Testing Automated static analysis Cleanroom software.
System/Software Testing
AMOST Experimental Comparison of Code-Based and Model-Based Test Prioritization Bogdan Korel Computer Science Department Illinois Institute of Technology.
1 Validation & Verification Chapter VALIDATION & VERIFICATION Very Difficult Very Important Conceptually distinct, but performed simultaneously.
Test plans CSCI102 - Systems ITCS905 - Systems MCS Systems.
Objectives Understand the basic concepts and definitions relating to testing, like error, fault, failure, test case, test suite, test harness. Explore.
Class Specification Implementation Graph By: Njume Njinimbam Chi-Chang Sun.
Introduction Telerik Software Academy Software Quality Assurance.
Software Engineering Chapter 23 Software Testing Ku-Yaw Chang Assistant Professor Department of Computer Science and Information.
Testing : A Roadmap Mary Jean Harrold Georgia Institute of Technology Presented by : Navpreet Bawa.
CSC 480 Software Engineering Lecture 14 Oct 16, 2002.
1 Software testing. 2 Testing Objectives Testing is a process of executing a program with the intent of finding an error. A good test case is in that.
Experimentation in Computer Science (Part 1). Outline  Empirical Strategies  Measurement  Experiment Process.
CSE403 Software Engineering Autumn 2001 More Testing Gary Kimura Lecture #10 October 22, 2001.
Black-box Testing.
BLACK BOX TESTING K.KARTHIKEYAN. Black box testing technique Random testing Equivalence and partitioning testing Boundary value analysis State transition.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 22 Slide 1 Software Verification, Validation and Testing.
Today’s Agenda  HW #1  Finish Introduction  Input Space Partitioning Software Testing and Maintenance 1.
Time Series Analysis and Forecasting
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Technology and Science, Osaka University Dependence-Cache.
1 Context-dependent Product Line Practice for Constructing Reliable Embedded Systems Naoyasu UbayashiKyushu University, Japan Shin NakajimaNational Institute.
1 Program Testing (Lecture 14) Prof. R. Mall Dept. of CSE, IIT, Kharagpur.
MODES-650 Advanced System Simulation Presented by Olgun Karademirci VERIFICATION AND VALIDATION OF SIMULATION MODELS.
A Review of Software Testing - P David Coward Reprinted: Information and Software Technology; Vol. 30, No. 3 April 1988 Software Engineering: The Development.
Chapter 10 Verification and Validation of Simulation Models
Software Engineering 2004 Jyrki Nummenmaa 1 BACKGROUND There is no way to generally test programs exhaustively (that is, going through all execution.
Chapter 8 Testing. Principles of Object-Oriented Testing Å Object-oriented systems are built out of two or more interrelated objects Å Determining the.
Software Engineering1  Verification: The software should conform to its specification  Validation: The software should do what the user really requires.
1 1 Slide Simulation Professor Ahmadi. 2 2 Slide Simulation Chapter Outline n Computer Simulation n Simulation Modeling n Random Variables and Pseudo-Random.
Software testing techniques Software testing techniques Input Output Analysis Presentation on the seminar Kaunas University of Technology.
Software Quality Assurance and Testing Fazal Rehman Shamil.
1 Phase Testing. Janice Regan, For each group of units Overview of Implementation phase Create Class Skeletons Define Implementation Plan (+ determine.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 23 Slide 1 Software testing.
VI SEM CSE UNIT IV SOFTWARE ENGINEERING PROJECT MANAGEMENT TESTING STRATEGIES By Mr. Vaibhav V. Bhujade DEPARTMENT OF COMPUTER SCIENCE & ENGINEERING DMIETR,
Testing Overview Software Reliability Techniques Testing Concepts CEN 4010 Class 24 – 11/17.
Lecturer: Eng. Mohamed Adam Isak PH.D Researcher in CS M.Sc. and B.Sc. of Information Technology Engineering, Lecturer in University of Somalia and Mogadishu.
SOFTWARE TESTING LECTURE 9. OBSERVATIONS ABOUT TESTING “ Testing is the process of executing a program with the intention of finding errors. ” – Myers.
1 Software Testing. 2 What is Software Testing ? Testing is a verification and validation activity that is performed by executing program code.
Subject Name: Software Testing Subject Code: 10CS842 Prepared By:
Software Testing.
SOFTWARE TESTING OVERVIEW
Chapter 9, Testing.
Software Engineering (CSI 321)
Software Testing An Introduction.
Chapter 8 – Software Testing
COTS testing Tor Stålhane.
A test technique is a recipe these tasks that will reveal something
Software testing.
CS240: Advanced Programming Concepts
Chapter 10 – Software Testing
Software Verification and Validation
Software Verification and Validation
Software Verification and Validation
Presentation transcript:

PJSISSTA '001 Black-Box Test Reduction Using Input-Output Analysis ISSTA ‘00 Patrick J. Schroeder, Bogdan Korel Department of Computer Science Illinois Institute of Technology Chicago, IL USA

PJSISSTA '002 1) Motivation 2) Black-Box Testing 3) Input-Output Analysis 4) Determining Input-Output Relationships 5) Conclusion Presentation Overview

PJSISSTA '003  Experience in Industry as a black-box tester of large, complex, telecommunications systems  Root cause analysis of customer-found faults often discovered ineffective or redundant black-box tests  Additional information from the software implementation often improves black-box testing (after the initial release!) Motivation for Research

PJSISSTA '004 Black-Box Testing  Black-box testing is testing from a functional or behavioral perspective to ensure a program meets its specification  Testing usually conducted without knowledge of software implementation - system treated as a “black box”  Black-box test design techniques include: equivalence partitioning, boundary value analysis, cause-effect graphing, random testing

PJSISSTA '005 Observations on Black-Box Testing  Testing from the black-box perspective generates a large number of tests (e.g. AT&T Definity PBX > 3 million tests)  All testers are faced with resource limitations; the number of tests must be reduced  Test reduction done randomly or based on “engineering judgement” may lead to ineffective or redundant tests

PJSISSTA '006 Combinatorial Testing  Combinatorial testing: For programs with multiple inputs, one must decide how to test different combinations of selected test data values  The most thorough approach is to test all combinations - this is quite often impossible due to the large number of tests  However, not to consider testing different input combinations could lead to an unacceptable number of undetected software faults

PJSISSTA '007 Combinatorial Explosion If n = 10 and 10 test data values are selected for each variable, the total number of combinatorial test cases is X 1 X 2 X 3... X n Program P

PJSISSTA '008 Current Approaches  Testers may try to identify “important” combinations to test using specifications, historical fault data, and engineering judgement  Orthogonal arrays, or other combinatorial design techniques, may be used to tests pair-wise or n-way combinations of inputs  Difficult to determine impact on fault-detection capability of the test set using these techniques

PJSISSTA '009 Definition of the Problem  In combinatorial testing, black-box testers face the situation where the number of possible test cases far exceeds the time and resources available to execute them  How can we reduce the number of combinatorial tests while maintaining the fault-detection capability of combinatorial testing?

PJSISSTA '0010 Proposed Technique  Observations:  Current techniques do not consider program output variables  For a class of programs, not all program inputs affect all program outputs  We propose the use of Input-Output (IO) Analysis to determine which program inputs affect program outputs  This information can be used to reduce the number of combinatorial tests while “maintaining” the fault-detection capability of the test set

PJSISSTA '0011 Simple Example using IO Analysis Input data selected using equivalence partitioning: A={1, 3} B={N,S,E,W} C={TDC, BDM} W Z Total Number of Combinatorial Tests: 2 * 4 * 2 = 16

PJSISSTA '0012 IO Analysis Applied A={1, 3} B={N,S,E,W} C={TDC, BDM} W Z

PJSISSTA '0013 IO Analysis Applied T(W) (1, N, TDC) (1, N, BDM) (3, N, TDC) (3, N, BDM) T(Z) (1, N, TDC) (1, S, TDC) (1, E, TDC) (1, W, TDC) A={1, 3} B={N,S,E,W} C={TDC, BDM} W Z T(W)  T(Z) (1, N, TDC) (1, N, BDM) (3, N, TDC) (3, N, BDM) (1, S, TDC) (1, E, TDC) (1, W, TDC)

PJSISSTA '0014 Optimization Problem Create the smallest possible test set which covers all data combinations in the individual output test sets Test set optimized using “Don’t Care” (DC) conditions Toptimized (1, N, TDC) (1, S, BDM) (3, E, TDC) (3, W, BDM) T(W) (1, DC, TDC) (1, DC, BDM) (3, DC, TDC) (3, DC, BDM) T(Z) (DC, N, DC) (DC, S, DC) (DC, E, DC) (DC, W, DC)

PJSISSTA '0015 Determining Input-Output Relationships  Information may be gathered in a variety of ways (e.g. from specifications, code)  Manual collection of information difficult and time consuming  Automated collection possible through:  Static Analysis  Dynamic Analysis  Execution-oriented Analysis

PJSISSTA '0016 Automated Analysis Techniques  Static techniques analyze a program’s source code - static program dependencies used to determine IO relationships  Dynamic techniques analyze a program’s execution trace across a set of test data - dynamic dependencies used to determine IO relationships  Execution-oriented techniques manipulate individual inputs across multiple program executions in a test harness to determine IO relationships

PJSISSTA '0017 Technique Advantages/Disadvantages  Static techniques reliably determine the absence of relationships between inputs and outputs; however, they may identify relationships that are not actually present  Dynamic analysis and execution-oriented analysis reliably determine the presence of input-output relationships; however, they cannot guarantee that all relationships will be detected  Dynamic analysis and execution-oriented analysis may be used when static analysis, perhaps in over-estimation, indicates that all program inputs affect all program outputs

PJSISSTA '0018 Experimental Study Results 1) Warehouse Management System Combinatorial Tests: 3,125 Using IO Analysis 40 2) DACS Configuration System Combinatorial Tests22,500 Using IO Analysis 158 3) Liquidity Ratio Spreadsheet Combinatorial Tests 1.95 Million Using IO Analysis 625

PJSISSTA '0019 Conclusion  For the class of program and type of problem defined, input- output analysis can reduce the number of combinatorial tests while “maintaining” the fault-detection capability of the test set  Research continues on identifying program types and testing situations where our approach is applicable  Additional experimentation with execution-oriented analysis to provide program dependencies, and other information useful in black-box testing, is underway