Verification Black-box Testing & Testing in the Large

Similar documents
Verification Overview Testing Theory and Principles Testing in Practice. Verification. Miaoqing Huang University of Arkansas 1 / 80

Verification Various Testing Techniques

Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn. 4. Testing

Testing & Debugging TB-1

Software Testing. Testing: Our Experiences

(See related materials in textbook.) CSE 435: Software Engineering (slides adapted from Ghezzi et al & Stirewalt

Overview. State-of-the-Art. Relative cost of error correction. CS 619 Introduction to OO Design and Development. Testing.

Software Testing part II (white box) Lecturer: Giuseppe Santucci

Facts About Testing. Cost/benefit. Reveal faults. Bottom-up. Testing takes more than 50% of the total cost of software development

Chapter 11, Testing. Using UML, Patterns, and Java. Object-Oriented Software Engineering

Computer Science and Software Engineering University of Wisconsin - Platteville 9-Software Testing, Verification and Validation

Testing: Test design and testing process

Testing Process and Methods. CS 490MT/5555, Spring 2017, Yongjie Zheng

Software Engineering (CSC 4350/6350) Rao Casturi

Chapter 9. Software Testing

Testing. CMSC 433 Programming Language Technologies and Paradigms Spring A Real Testing Example. Example (Black Box)?

Software Engineering Fall 2015 (CSC 4350/6350) TR. 5:30 pm 7:15 pm. Rao Casturi 11/10/2015

Write perfect C code to solve the three problems below.

Software Engineering Fall 2014

Subject Software Testing Structural Testing

Software Testing for Developer Development Testing. Duvan Luong, Ph.D. Operational Excellence Networks

Lecture 26: Testing. Software Engineering ITCS 3155 Fall Dr. Jamie Payton

Why testing and analysis. Software Testing. A framework for software testing. Outline. Software Qualities. Dependability Properties

SE 3S03. Zahra Ali. Week of Feb 22, 2016

Quote by Bruce Sterling, from: A Software Testing Primer, Nick Jenkins

Topic: Software Verification, Validation and Testing Software Engineering. Faculty of Computing Universiti Teknologi Malaysia

Introduction. Easy to get started, based on description of the inputs

Software Quality Engineering Exercises

SOFTWARE ENGINEERING IT 0301 Semester V B.Nithya,G.Lakshmi Priya Asst Professor SRM University, Kattankulathur

SE 3S03 - Tutorial 10. Helen Brown. Week of Mar 23, 2015

Unified Modeling Language (UML) Class Diagram

6. Test-Adequacy. Assessment Using Control Flow and Data Flow. Andrea Polini

QUIZ #5 - Solutions (5pts each)

SFWR ENG 3S03: Software Testing

An Introduction to Systematic Software Testing. Robert France CSU

Testing. Unit, integration, regression, validation, system. OO Testing techniques Application of traditional techniques to OO software

Integration Testing. Conrad Hughes School of Informatics. Slides thanks to Stuart Anderson

CS 4387/5387 SOFTWARE V&V LECTURE 4 BLACK-BOX TESTING

Darshan Institute of Engineering & Technology for Diploma Studies

Software Testing. Minsoo Ryu. Hanyang University. Real-Time Computing and Communications Lab., Hanyang University

Software Testing CS 408

In this Lecture you will Learn: Testing in Software Development Process. What is Software Testing. Static Testing vs.

Relational Database: The Relational Data Model; Operations on Database Relations

CS 520 Theory and Practice of Software Engineering Fall 2018

Software Engineering Principles

Introduction to Dynamic Analysis

Software Testing Strategies. Slides copyright 1996, 2001, 2005, 2009, 2014 by Roger S. Pressman. For non-profit educational use only

Testing Theory. Agenda - What will you learn today? A Software Life-cycle Model Which part will we talk about today? Theory Lecture Plan

Verification and Validation. Assuring that a software system meets a user s needs. Verification vs Validation. The V & V Process

! Is often referred to as verification and validation (V&V).

Topics in Software Testing

Modern Methods in Software Engineering. Testing.

Week 9 Implementation

Software Testing

Software Testing. 1. Testing is the process of demonstrating that errors are not present.

Verification and Validation

Sample Question Paper. Software Testing (ETIT 414)

White-Box Testing Techniques III

Testing Methods: White Box Testing II

CMSC 132: OBJECT-ORIENTED PROGRAMMING II

Software Quality Assurance (SQA) Software Quality Assurance

Integration Testing. Unit Test vs Integration Testing 1. Unit Testing vs Integration Testing 2. Unit testing: isolation, stub/mock objects

Certified Tester Foundation Level(CTFL)

Department of Electrical & Computer Engineering, University of Calgary. B.H. Far

Chapter 14 Testing Tactics

Ingegneria del Software Corso di Laurea in Informatica per il Management

How to Harvest Reusable Components in Existing Software. Nikolai Mansurov Chief Scientist & Architect

Terminology. There are many different types of errors and different ways how we can deal with them.

DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING CS SOFTWARE ENGINEERING

Integration and Testing. Uses slides from Lethbridge & Laganiere, 2001

Exam in Testing. Justin Pearson. Dec Cover Sheet. Problem no. Solution provided Max Your points Total: 59

STRUCTURAL TESTING. AKA White Box Testing. Thanks go to Andreas Zeller for allowing incorporation of his materials. F. Tip and M.

Course Wrap-Up. Software Testing and Verification. Stephen M. Thebaut, Ph.D. Prepared by. University of Florida

Porfirio Tramontana Anna Rita Fasolino. Giuseppe A. Di Lucca. University of Sannio, Benevento, Italy

Software Engineering: Theory and Practice. Verification by Testing. Test Case Design. Tom Verhoeff

MONIKA HEINER.

Test Design Techniques ISTQB (International Software Testing Qualifications Board)

Program Testing and Analysis: Manual Testing Prof. Dr. Michael Pradel Software Lab, TU Darmstadt

Integration Testing Qualidade de Software 2

Outline. iterator review iterator implementation the Java foreach statement testing

Aerospace Software Engineering

Software Testing Fundamentals. Software Testing Techniques. Information Flow in Testing. Testing Objectives

The Fundamental Testing Process in Practical or Company environment

VETRI VINAYAHA COLLEGE OF ENGINEERING AND TECHNOLOGY DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING

Software Quality Assurance. David Janzen

Testing! The material for this lecture is drawn, in part, from! The Practice of Programming (Kernighan & Pike) Chapter 6!

CS159. Nathan Sprague. September 30, 2015

STRUCTURAL TESTING. AKA White Box Testing. Thanks go to Andreas Zeller for allowing incorporation of his materials. F. Tip and M.

Software Engineering Theory. Lena Buffoni (slides by Kristian Sandahl/Mariam Kamkar) Department of Computer and Information Science

CS 5540 Spring 2013 Assignment 3, v1.0 Due: Apr. 24th 11:59PM

[IT6004-SOFTWARE TESTING] UNIT 2

Software Testing and Maintenance 1

Chapter 3: Dynamic Testing Techniques

Verification and Validation. Verification and validation

Testing Tactics. Structural Testing. Why Structural? Why Structural? Functional black box. Structural white box. Functional black box

No Source Code. EEC 521: Software Engineering. Specification-Based Testing. Advantages

F. Tip and M. Weintraub FUNCTIONAL TESTING

CSSE 220 Day 3. Check out UnitTesting and WordGames from SVN

A Catalog of While Loop Specification Patterns

Software Testing. Software Testing

Transcription:

1 / 18 Verification & Miaoqing Huang University of Arkansas Spring 2010

2 / 18 Outline 1 2 Testing Boundary Conditions 3 Module Testing Integration Testing

3 / 18 Outline 1 2 Testing Boundary Conditions 3 Module Testing Integration Testing

Decision table-based testing Example A word processor Three different formats plain text (p) boldface (b) italics (i) Five different commands make text plain (P) make text boldface (B) make text italics (I) emphasize (E) E can be either B or I superemphasize (SE) SE can be B, I or both (B+I) 4 / 18

The decision table Rows represent conditions Columns represent rules (i.e., results) Apply complete-coverage criterion to exercise each column The number of column may go exponentially n conditions may generate 2 n results Need to select a significant subset of all possible input classes 5 / 18

The decision table Rows represent conditions Columns represent rules (i.e., results) Apply complete-coverage criterion to exercise each column The number of column may go exponentially n conditions may generate 2 n results Need to select a significant subset of all possible input classes 6 / 18

Cause-effect graph technique Formally structure complex input-output specification using cause-effect graphs Steps 1 Transform inputs and outputs into Boolean values 2 Build the Boolean functions between inputs and outputs Example Transform inputs to a 10-tuple of Boolean {P, B, I, E, E=B, E=I, SE, SE=B, SE=I, SE=B+I} <false,true,false,false,false,false,false,false,false,false> represents command B Transform outputs of a 3-tuple of Boolean {p, b, i} <false,true,false> denotes a boldface text output 7 / 18

Cause-effect graph technique Formally structure complex input-output specification using cause-effect graphs Steps 1 Transform inputs and outputs into Boolean values 2 Build the Boolean functions between inputs and outputs Example Transform inputs to a 10-tuple of Boolean {P, B, I, E, E=B, E=I, SE, SE=B, SE=I, SE=B+I} <false,true,false,false,false,false,false,false,false,false> represents command B Transform outputs of a 3-tuple of Boolean {p, b, i} <false,true,false> denotes a boldface text output 8 / 18

The cause-effect graph for boldface text output 9 / 18

Put constraints among inputs and outputs Inputs are not independent in many cases, same as outputs The output text can not be both plain and boldface at the same time 10 / 18

The cause-effect graph with constraints m m m m 11 / 18

12 / 18 Outline Testing Boundary Conditions 1 2 Testing Boundary Conditions 3 Module Testing Integration Testing

Test the boundary conditions Testing Boundary Conditions Testing criteria partition input domain in classes, assuming that behavior is similar for all data within a class Some typical programming errors, however, just happen to be at the boundary between different classes After partitioning the input domain D into several classes, test the program using input values not only inside the classes, but also at their boundaries This technique applies to both white-box and black-box testing if x>y then s1; else s2; end if 13 / 18

14 / 18 Outline Module Testing Integration Testing 1 2 Testing Boundary Conditions 3 Module Testing Integration Testing

Testing in the large Module Testing Integration Testing Module testing testing a single module Integration testing integration of modules and subsystems System testing testing the entire system Acceptance testing performed by the customer 15 / 18

Build scaffolding Module Testing Integration Testing STUB Call Module Under Test Call DRIVER Access to nonlocal variables Scaffolding needed to create the environment in which the module should be tested stubs modules used by the module under test driver module activating the module under test How to build the scaffolding Develop simplified calling modules and called modules 16 / 18

Build scaffolding Module Testing Integration Testing STUB Call Module Under Test Call DRIVER Access to nonlocal variables Scaffolding needed to create the environment in which the module should be tested stubs modules used by the module under test driver module activating the module under test How to build the scaffolding Develop simplified calling modules and called modules 17 / 18

Integration testing Module Testing Integration Testing Big-bang approach first test individual modules in isolation then test integrated system Incremental approach modules are progressively integrated and tested can proceed both top-down and bottom-up according to the USES relation 18 / 18