Black-box testing TDDD04 Lecture 2

Similar documents
Equivalence Class Testing. Chapter 6

Probability Exercises. Problem 1.

Software Testing Lecture 5. Justin Pearson

Computers also need devices capable of Storing data and information Performing mathematical operations on such data

4.4 The Calendar program

FIT100 Spring 01. Project 2. Astrological Toys

Department of Electrical and Computer Engineering University of Wisconsin Madison. Fall Final Examination

Path Testing and Test Coverage. Chapter 9

Path Testing and Test Coverage. Chapter 9

Frequently Asked Questions

Chapter 10 Retrospective on Unit Testing

5 ProbabilisticAnalysisandRandomized Algorithms

CSCI3390-Assignment 2 Solutions

DAILY QUESTIONS 28 TH JUNE 18 REASONING - CALENDAR

Introduction to Digital Logic

EARTH S REVOLUTION -and- EARTH S ROTATION

Accountability. User Guide

Let s now begin to formalize our analysis of sequential machines Powerful methods for designing machines for System control Pattern recognition Etc.

1 Introduction. 1.1 The Problem Domain. Self-Stablization UC Davis Earl Barr. Lecture 1 Introduction Winter 2007

Process Behavior Analysis Understanding Variation

Introduction and basic definitions

Fibonacci Numbers. November 7, Fibonacci's Task: Figure out how many pairs of rabbits there will be at the end of one year, following rules.

Massachusetts Institute of Technology

A shape which can be divided by a straight line, so that each part is the mirror image of the other has reflective symmetry.

Distributed Systems Principles and Paradigms

Chapter 1: Logic systems

2nd Bay Area Mathematical Olympiad

Business Statistics. Lecture 3: Random Variables and the Normal Distribution

Module 9: Nonparametric Statistics Statistics (OA3102)

Lecture 3: Latin Squares and Groups

Central Algorithmic Techniques. Iterative Algorithms

STEP Support Programme. Hints and Partial Solutions for Assignment 17

Introducing Proof 1. hsn.uk.net. Contents

STEP Support Programme. Hints and Partial Solutions for Assignment 4

Contemporary Logic Design, 2 nd Edition Errata as of 28 September 2005

Georgia Tech High School Math Competition

Graph Theory. Thomas Bloom. February 6, 2015

STAT 516: Basic Probability and its Applications

Digital Circuit Engineering

number. However, unlike , three of the digits of N are 3, 4 and 5, and N is a multiple of 6.

MATH STUDENT BOOK. 12th Grade Unit 9

CMM Uncertainty Budget

Abstractions and Decision Procedures for Effective Software Model Checking

Introduction to Probability. Ariel Yadin. Lecture 1. We begin with an example [this is known as Bertrand s paradox]. *** Nov.

The Cause-Effect Diagram can be used under these Circumstances:

Topic Contents. Factoring Methods. Unit 3: Factoring Methods. Finding the square root of a number

Methods for Accelerating Conway's Doomsday Algorithm (part 1)

Proof assistants as a tool for thought

Proof Techniques (Review of Math 271)

CONNECTING PAIRWISE AND POSITIONAL ELECTION OUTCOMES

MTH Linear Algebra. Study Guide. Dr. Tony Yee Department of Mathematics and Information Technology The Hong Kong Institute of Education

Quadratic Equations Part I

Fault Tolerant Computing CS 530 Software Reliability Growth. Yashwant K. Malaiya Colorado State University

Statistical Process Control (SPC)

Ch 7: Dummy (binary, indicator) variables

Student Book SERIES. Time and Money. Name

AUTUMN BREAK HOLIDAY HOME WORK CLASS XI BUSINESS STUDIES

God doesn t play dice. - Albert Einstein

Logical Time. 1. Introduction 2. Clock and Events 3. Logical (Lamport) Clocks 4. Vector Clocks 5. Efficient Implementation

The University of the State of New York REGENTS HIGH SCHOOL EXAMINATION THREE-YEAR SEQUENCE FOR HIGH SCHOOL MATHEMATICS COURSE II

2011 Pearson Education, Inc

Name Date. Parent comment: Triangles Levels 4-6 (15-20 mins)

Model Building: Selected Case Studies

Shape Perimeter Area. + s 3. + s 2. side 3 (s 3 ) base (b) and side 1 (s 1

How to Make or Plot a Graph or Chart in Excel

Homework (due Wed, Oct 27) Chapter 7: #17, 27, 28 Announcements: Midterm exams keys on web. (For a few hours the answer to MC#1 was incorrect on

Elements of probability theory

Requirements Validation. Content. What the standards say (*) ?? Validation, Verification, Accreditation!! Correctness and completeness

Searching Algorithms. CSE21 Winter 2017, Day 3 (B00), Day 2 (A00) January 13, 2017

STEP Support Programme. Hints and Partial Solutions for Assignment 5

Mathematical Induction

Using Isosceles and Equilateral Triangles

Data byte 0 Data byte 1 Data byte 2 Data byte 3 Data byte 4. 0xA Register Address MSB data byte Data byte Data byte LSB data byte

Medium Term Plans for Mathematics (aligned with the 2014 National Curriculum) - Year Four (Spring Term)

CS 6505, Complexity and Algorithms Week 7: NP Completeness

Distributed Systems Principles and Paradigms. Chapter 06: Synchronization

Low-Degree Polynomial Roots

You have 3 hours to complete the exam. Some questions are harder than others, so don t spend too long on any one question.

The University of the State of New York REGENTS HIGH SCHOOL EXAMINATION THREE-YEAR SEQUENCE FOR HIGH SCHOOL MATHEMATICS COURSE II

Number of People Contacted

(b) [1] (c) [1]

CMSC 451: Lecture 7 Greedy Algorithms for Scheduling Tuesday, Sep 19, 2017

6. Finite State Machines

Parity Checker Example. EECS150 - Digital Design Lecture 9 - Finite State Machines 1. Formal Design Process. Formal Design Process

CSE332: Data Structures & Parallelism Lecture 2: Algorithm Analysis. Ruth Anderson Winter 2019

Introduction to Operations Research Prof. G. Srinivasan Department of Management Studies Indian Institute of Technology, Madras

8 Right Triangle Trigonometry

11 Heavy Hitters Streaming Majority

WAITING-TIME DISTRIBUTION FOR THE r th OCCURRENCE OF A COMPOUND PATTERN IN HIGHER-ORDER MARKOVIAN SEQUENCES

Digital Circuit Engineering

CS 360, Winter Morphology of Proof: An introduction to rigorous proof techniques

STA 431s17 Assignment Eight 1

Latin squares: Equivalents and equivalence

Error Correcting Codes Prof. Dr. P. Vijay Kumar Department of Electrical Communication Engineering Indian Institute of Science, Bangalore

Chapter 5: Forecasting

UAB MATH TALENT SEARCH

TESTING is one of the most important parts of the

Section 4.2 Basic Concepts of Probability

Basic Concepts of Probability. Section 3.1 Basic Concepts of Probability. Probability Experiments. Chapter 3 Probability

Mass Asset Additions. Overview. Effective mm/dd/yy Page 1 of 47 Rev 1. Copyright Oracle, All rights reserved.

Transcription:

Black-box testing TDDD04 Lecture 2 Ola Leifler

Unit testing Different kinds of unit testing Code inspections Code walkthroughs Black-box testing White-box testing Determines what the inputs are Determines how inputs are constructed Input Unit under test (Test object, SUT) Output PASS Oracle FAIL 2 TDDD04 Software Testing

Efficiency of fault detection methods For requirements defects, no empirical evidence exists at all, but the fact that costs for requirements inspections are low compared to implementing incorrect requirements indicates that reviewers should look for requirements defects through inspection. For design specification defects, the case studies and one experiment indicate that inspections are both more efficient and more effective than functional testing. For code, functional or structural testing is ranked more effective or efficient than inspection in most studies. Some studies conclude that testing and inspection find different kinds of defects, so they are complementary. Results differ when studying fault isolation and not just defect detection. P. Runeson, C. Andersson, T. Thelin, A. Andrews, and T. Berling. What do we know about defect detection methods? IEEE Software, 23(3):82 90, May 2006. 3 TDDD04 Software Testing

Black-box Testing 1. Exhaustive testing 2. Equivalence class testing (Equivalence Partitioning) (chapter 3) 3. Boundary value analysis (chapter 4) 4. Decision table testing (chapter 5) 5. Pairwise testing (chapter 6) 6. State-Transition testing (chapter 7) 7. Domain analysis testing (chapter 8) 8. Use case testing (chapter 9) 4

Equivalence class testing Ola Leifler Equivalence Class (EC) testing is a technique used to reduce the number of test cases to a manageable level while still maintaining reasonable test coverage Each EC consists of a set of data that is treated the same by the module or that should produce the same result. Any data value within a class is equivalent, in terms of testing, to any other value Choose one point within each EC to test Discuss: Problems? Weaknesses? 5 TDDD04 Software Testing

Identifying equivalence classes Ola Leifler Look for conditions and tables in the specification that partition the input space. Input ExamplesResult 0-1 Infant 1-12 Child 13-19 Teen 20+ Adult If all three input values are the same, then return EQUILATERAL. If two input values are the same, and the third is different, then return ISOSCELESE. If all three values are different from each other, then return SCALENE. Also look for invalid equivalence classes inputs outside the specification! 6 TDDD04 Software Testing

Ola Leifler Example: NextDate Problem statement: NextDate is a function of three variables: month (M), day (D) and year (Y). It returns the date of the day after the input date. The month, day and year variables have integer values subject to these conditions: C1: 1 <= month <=12; C2: 1<= day <= 31; C3: 1850 <= year <= 2050 Valid ECs: M1 = {month: 1 <= month <= 12} D1 = {day: 1 <= day <= 31} Y1 = {year: 1850 <= year <= 2050} Invalid ECs: M2 = {month: month < 1} M2 = {month: month > 12} D2 = {day: day < 1} What about combinations of M,D & Y? 7 TDDD04 Software Testing

Guidelines Ola Leifler 1. If an input condition specifies a range of values; identify one valid EC and two invalid EC. 2. If an input condition specifies the number (e.g., one through 6 owners can be listed for the automobile); identify one valid EC and two invalid EC (no owners; more than 6 owners). 3. If an input condition specifies a set of input values and there is reason to believe that each is handled differently by the program; identify a valid EC for each and one invalid EC. 4. If an input condition specifies a must be situation (e.g., first character of the identifier must be a letter); identify one valid EC (it is a letter) and one invalid EC (it is not a letter) 5. If there is any reason to believe that elements in an EC are not handled in an identical manner by the program, split the equivalence class into smaller equivalence classes. 8 TDDD04 Software Testing

Applicability and limitations Ola Leifler Most suited to systems in which much of the input data takes on values within ranges or within sets. It makes the assumption that data in the same EC is, in fact, processed in the same way by the system. The simplest way to validate this assumption is to ask the programmer about their implementation. EC testing is equally applicable at the unit, integration, system, and acceptance test levels. All it requires are inputs or outputs that can be partitioned based on the system s requirements. 9 TDDD04 Software Testing

Black-box Testing 1. Exhaustive testing 2. Equivalence class testing (Equivalence Partitioning) (chapter 3) 3. Boundary value analysis (chapter 4) 4. Decision table testing (chapter 5) 5. Pairwise testing (chapter 6) 6. State-Transition testing (chapter 7) 7. Domain analysis testing (chapter 8) 8. Use case testing (chapter 9) 10

Boundary value testing Ola Leifler Boundary value testing focuses on the boundaries between equivalence classes, simply because that is where so many defects hide. The defects can be in the requirements or in the code Method 1. Identify the equivalence classes. 2. Identify the boundaries of each EC. 3. Create test cases for each boundary value by choosing one point on the boundary, one point just below the boundary, and one point just above the boundary. 11 TDDD04 Software Testing

Example Ola Leifler Input Result 0 <= x < 1 Infant 1 <= x < 13 Child 13 <= x < 20 Teen 20 <= x <= 120 Adult Boundary Below On Above 0-0.1 0 0.1 1 0.9 1 1.1 13 12.9 13 13.1 20 19.9 20 20.1 120 119.9 120 120.1 Add to each: Identity Expected value 12 TDDD04 Software Testing

Applicability and limitations Ola Leifler Boundary value testing is equally applicable at the unit, integration, system, and acceptance test levels. All it requires are inputs that can be partitioned and boundaries that can be identified based on the system s requirements. Most suited to systems in which much of the input data takes on values within ranges or within sets. It makes the assumption that the program contains no extra boundaries. These can be found through inspection or white-box texting. Boundary value testing subsumes equivalence class testing 13 TDDD04 Software Testing

Black-box Testing 1. Exhaustive testing 2. Equivalence class testing (Equivalence Partitioning) (chapter 3) 3. Boundary value analysis (chapter 4) 4. Decision table testing (chapter 5) 5. Pairwise testing (chapter 6) 6. State-Transition testing (chapter 7) 7. Domain analysis testing (chapter 8) 8. Use case testing (chapter 9) 14

4. Decision Table Testing Decision tables are an excellent tool to capture certain kinds of system requirements and to document internal system design. They are used to record complex business rules that a system must implement. In addition, they can serve as a guide to creating test cases. 15

Decision tables The general format of a decision table: Condition-1 Rule 1 Rule 2 Rule p Conditions Condition-2 Condition-m Action-1 Actions Action-2 Action-n 16

Example Decisions for bank transactions (totally imaginary): R1 R2 R3 R4 R5 R6 R7 R8 Sufficient funds Y Y Y Y N N N N Conditions Good credit Y Y N N Y Y N N Bank is creditor Y N Y N Y N Y N Execute transaction X X X X X X Actions Charge overdraft X X Send warning X X X Send to collections X 17

Decision tables R1-R4 R5 R6 R7 R8 C1 Y N N N N Conditions C2 - Y Y N N C3 - <= 2 >2, <=3 >3, <=4 >4 A1 X X X Actions A2 X X A3 X X X Limited entries Extended entries Don t-care-entry condition is irrelevant or not applicable; any value is OK Limited entry table conditions are binary only Extended entry table conditions may take on multiple values Decision tables are declarative order between entries does not matter 18

Testing using decision tables Rules become test cases Conditions become inputs Actions become expected results: Condition-1 Test case 1 Test case 2 Test case p Inputs Condition-2 Condition-m Action-1 Expected results Action-2 Action-n 19

Triangle program The program accepts three integers, a, b, and c as input. The three values are interpreted as representing the lengths of sides of a triangle. The integers a, b, and c must satisfy the following conditions: a, b, c forms a triangle, i.e. a < b + c b < a + c c < a + b 20

Decision table for the triangle program R1 R2 R3 R4 R5 R6 R7 R8 R9 a,b,c forms a triangle N Y Y Y Y Y Y Y Y a = b - Y Y Y Y N N N N Conditions a = c - Y Y N N Y Y N N b = c - Y N Y N Y N Y N Not a triangle X Actions Scalene Isosceles Eqiulateral X If it is not a triangle, the other conditions don t matter If one side equals the other two, then the other two must also be the same Some conditions are therefore impossible

Decision table for the triangle program R1 R2 R3 R4 R5 R6 R7 R8 R9 a,b,c forms a triangle N Y Y Y Y Y Y Y Y Co ndi a = b - Y Y Y Y N N N N tio ns a = c - Y Y N N Y Y N N b = c - Y N Y N Y N Y N Not a triangle X Ac X tio Impossible Impossible Impossible ns Isosceles X X X Eqiulateral X

Testing the triangle program 1 2 3 4 5 6 7 8 9 10 11 a b c Exp Conditions Actions a < b + c b < a + c c < a + b a = b a = c b = c Not a triangle Scalene Isosceles Eqiulateral T1 T2 T3 T4 T5 T6 T7 T8 T9 T10 T11

Testing the triangle program Conditions 1 2 3 4 5 6 7 8 9 10 11 a < b + c N b < a + c - c < a + b - a = b - a = c - b = c - a b c Exp T1 4 1 2 NaT T2 T3 T4 T5 T6 Not a triangle X T7 Actions Scalene Isosceles Eqiulateral T8 T9 T10 T11

Testing the triangle program Conditions Actions 1 2 3 4 5 6 7 8 9 10 11 a < b + c F T T T b < a + c - F T T c < a + b - - F T a = b - - - T a = c - - - T b = c - - - T Not a triangle X X X Scalene Isosceles a b c Exp T1 4 1 2 NaT T2 1 4 2 NaT T3 1 2 4 NaT T4 5 5 5 Eq T5 T6 T7 T8 T9 Eqiulateral X T10 T11

Testing the triangle program 1 2 3 4 5 6 7 8 9 10 11 a < b + c F T T T T T T t t t T b < a + c - F T T T T T t t T T Co ndi c < a + b - - F T T T T T T T T tio ns a = b - - - T T T F T F F F a = c - - - T T F F F T T F b = c - - - T F T F F F T T Not a triangle X X X Act ion Scalene X s Isosceles X X X Eqiulateral X a b c Exp T1 4 1 2 NaT T2 1 4 2 NaT T3 1 2 4 NaT T4 1 1 1 Eq T5 T6 T7 3 4 5 Sc T8 3 3 4 Iso T9 3 4 3 Iso T10 T11 4 3 3 Iso

Testing the triangle program 1 2 3 4 5 6 7 8 9 10 11 a < b + c F T T T T T b < a + c - F T T T T Co ndi c < a + b - - F T T T tio ns a = b - - - T T T a = c - - - T T F b = c - - - T F T Not a triangle X X X Act ion Scalene s Isosceles a b c Exp T1 4 1 2 NaT T2 1 4 2 NaT T3 1 2 4 NaT T4 5 5 5 Eq T5 - - - - T6 - - - - T7 T8 T9 Eqiulateral X T10 T11

Testing the triangle program 1 2 3 4 5 6 7 8 9 10 11 a < b + c F T T T T T T T T T T b < a + c - F T T T T T T T T T Co ndi c < a + b - - F T T T T T T T T tio ns a = b - - - T T T T F F F F a = c - - - T T F F T T F F b = c - - - T F T F T F T F Not a triangle X X X a b c Exp T1 4 1 2 NaT T2 1 4 2 NaT T3 1 2 4 NaT T4 5 5 5 Eq T5 - - - - T6 - - - - T7 5 5 3 Iso Act ion Scalene s Isosceles X X X X T8 - - - - T9 5 3 5 Iso Eqiulateral X T10 3 5 5 Iso T11 3 4 5 Sca

How many test cases If there are n conditions, there must be 2 n rules Each don t care makes that rule count double If there are m don t care entries in a rule, that rule counts as 2 m rules 1 2 3 4 a < b + c F T T T b < a + c - F T T Co ndi c < a + b - - F T tio ns a = b - - - T a = c - - - T b = c - - - T Rule count?? 8 1

The NextDate Function Triangle program: relationships between inputs and correct outputs. NextDate function: logical relationships among the input variables. Problem statement: NextDate is a function of three variables: month, day and year. It returns the date of the day after the input date. The month, day and year variables have integer values subject to these conditions: C1: 1 <= month <=12 C2: 1<= day <= 31 C3: 1850 <= year <= 2050 30

Complexity The rule that determines when a year is a leap year: A year is 365.2422 days long. Declaring a leap year every fourth year, a slight error would occur. The Gregorian Calendar (after Pope Gregory) resolves this by adjusting leap years on century years. Thus, a year is a leap year if it is dividable by 4, unless it is a century year. Century years are leap years only if they are multiples of 400 (Inglis, 1961); so 1992, 1996, and 2000 are leap years, while the year 1900 is not a leap years. 31

The NextDate function Conditions Actions 1 2 3 4 month in M30 T - - - month in M31 - T - - month = 2 - - T - month = 12 - - - T 1 <= day <=27 T T - T day = 28 - - T - day = 29 - - - - day = 30 - - - - day = 31 - - - - leap year F F F F Increment year Increment month X Increment day X X X Reset year Reset month Reset day X How about when you generate automated tests based on these entries?

Mutually exclusive conditions 1 2 3 C1 T - - Conditions C2 - T - C3 - - T There should be eight rules total Rule count is 4 for each rule Gives total of 12 rules! Why? A1 X Actions A2 X A3 X Which actions apply to T,F,T A1 or A3 or both? Solution Be explicit to avoid overlaps Include impossible pseudo-action Use extended entries if possible

The NextDate function 1 2 3 4 month in M30 M30 M30 M31 M31 M12 M12 M2 M2 M2 M2 M2 M2 Conditions day in D27 D28 D29 D30 D31 D27 D28 D29 D30 D31 D27 D28 D29 D30 D31 D27 D28 D28 D29 D29 year in - - - - - - - - YL YN YL YN - Increment year Increment month X X X X X D30 D31 Increment day X X X X X Actions Reset year Reset month X Reset day X X X X X Error X X X M31 = { 1,3,5,7,8,10 }; M30 = { 4,6,9,11 }; M2 = { 2 }; M12 = { 12 } D27 = { 1, 2,, 27 }; D28 = { 28 }, D29 = { 29 }, D30 = { 30 }, D31 = { 31 } YN = not a leap year; YL = leap year

Test cases for NextDate Case ID Month Day Year Expected Output 1-3 April 15 2001 April 16, 2001 4 April 30 2001 May 1, 2001 5 April 31 2001 Error 6-9 January 15 2001 January 16, 2001 10 January 31 2001 February 1, 2001 11-14 December 15 2001 December 16, 2001 15 December 31 2001 January 1, 2002 16 February 15 2001 February 16, 2001 17 February 28 2004 February 29, 2004 18 February 28 2001 March 1, 2001 19 February 29 2004 March 1, 2004 20 February 29 2001 Error 21, 22 February 30 2001 Error 35

Applicability and Limitations Decision table testing can be used whenever the system must implement complex business rules when these rules can be represented as a combination of conditions and when these conditions have discrete actions associated with them. 36

Pairwise Testing 1. Exhaustive testing 2. Equivalence class testing (Equivalence Partitioning) (chapter 3) 3. Boundary value analysis (chapter 4) 4. Decision table testing (chapter 5) 5. Pairwise testing (chapter 6) 6. State-Transition testing (chapter 7) 7. Domain analysis testing (chapter 8) 8. Use case testing (chapter 9) 37

Pairwise testing 20 parameters, 10 values each = 10^20 combinations Test pairs only, and ensure each pair of parameter values exists at least once: All-pairs algorithm Latin square Orthogonal array

Black-box Testing 1. Exhaustive testing 2. Equivalence class testing (Equivalence Partitioning) (chapter 3) 3. Boundary value analysis (chapter 4) 4. Decision table testing (chapter 5) 5. Pairwise testing (chapter 6) read on your own 6. State-Transition testing (chapter 7) 7. Domain analysis testing (chapter 8) 8. Use case testing (chapter 9) 39

State-transition testing When a system must remember something about what has happened before or when valid and invalid orders of operations exist. State-Transition diagrams direct testing efforts by identifying the states, events, actions, and transitions that should be tested. 40

State transition diagrams Start giveinfo /startpaytimer Current state Event Action Next state ReservationMade paymoney usercancelled Paid CustomerCancelled Start giveinfo startpaytimer Reservation Made Reservation Made paymoney usercancelled Reservation Made Paid Customer Cancelled............ Ticketed Model-based testing may rely on state transition diagrams Used

Creating test cases Create a set of test cases such that all states are visited at least once. May miss important transitions. Create a set of test cases such that all events are triggered at least once. May miss both states and transitions. Create a set of test cases such that all transitions are exercised at least once. Subsumes (includes) all-states and all-events. Stronger: cover all possible pairs of transitions Even stronger: cover all possible triplets of transitions Create a set of test cases such that all paths are executed at least once. Subsumes all others. Can be infeasible consider loops. 42

Wait For Pin State transition testing pinentered Second pinbad First 1 2 3 4 Events Expected states pinbad pinok Third pinok Cover all states Cover all events Cover all transitions pinbad pinok Eat card Unlock

Applicability and Limitations Excellent to capture certain system requirements. Not applicable when the system has no state Frequently inapplicable if the system does not need to respond to outside events 44

Black-box Testing 1. Exhaustive testing 2. Equivalence class testing (Equivalence Partitioning) (chapter 3) 3. Boundary value analysis (chapter 4) 4. Decision table testing (chapter 5) 5. Pairwise testing (chapter 6) read on your own 6. State-Transition testing (chapter 7) 7. Domain analysis testing (chapter 8) 8. Use case testing (chapter 9) 45

Domain analysis testing Testing of multiple variables simultaneously. It builds on and generalizes equivalence class and boundary value testing. Is usually applied to one input variable or two simple combinations of two variables, based on specifications. 46

Test cases For each relationship (>=, >, <=, or <) choose one on point and one off point. For each strict equality condition (=) choose one on point and two off points, one slightly less than the conditional value and one slightly greater than the value. 47

Applicability and Limitations Applicable when multiple variables should be tested together either for efficiency or because of a logical interaction. Best suited to numeric values. 48

Black-box Testing 1. Exhaustive testing 2. Equivalence class testing (Equivalence Partitioning) (chapter 3) 3. Boundary value analysis (chapter 4) 4. Decision table testing (chapter 5) 5. Pairwise testing (chapter 6) read on your own 6. State-Transition testing (chapter 7) 7. Domain analysis testing (chapter 8) 8. Use case testing (chapter 9) read on your own 49

Black-box Testing 1. Exhaustive testing 2. Equivalence class testing (Equivalence Partitioning) (chapter 3) 3. Boundary value analysis (chapter 4) 4. Decision table testing (chapter 5) 5. Pairwise testing (chapter 6) read on your own 6. State-Transition testing (chapter 7) 7. Domain analysis testing (chapter 8) 8. Use case testing (chapter 9) read on your own

Testing foo: add one and divide by 30000 int foo(int j) { j = j-1; // Error, should be j+1 j = j/30000; return j; } 51 TDDD04 Software Testing