Chapter 9: Boundary Testing

Slides:



Advertisements
Similar presentations
Overview Functional Testing Boundary Value Testing (BVT)
Advertisements

Software Testing and QA Theory and Practice (Chapter 6: Domain Testing) © Naik & Tripathy 1 Domain Testing Some examples.
Advanced Topics in Algorithms and Data Structures Lecture 7.2, page 1 Merging two upper hulls Suppose, UH ( S 2 ) has s points given in an array according.
Annoucements  Next labs 9 and 10 are paired for everyone. So don’t miss the lab.  There is a review session for the quiz on Monday, November 4, at 8:00.
Brute-Force Triangulation
Reachability Analysis for AMS Verification using Hybrid Support Function and SMT- based Method Honghuang Lin, Peng Li Dept. of ECE, Texas A&M University.
Testing in the Small (aka Unit Testing, Class Testing)
1 ECE 453 – CS 447 – SE 465 Software Testing & Quality Assurance Instructor Kostas Kontogiannis.
Boundary Value Testing A type of “Black box” functional testing –The program is viewed as a mathematical “function” –The program takes inputs and maps.
1 CODE TESTING Principles and Alternatives. 2 Testing - Basics goal - find errors –focus is the source code (executable system) –test team wants to achieve.
CS485/685 Computer Vision Prof. George Bebis
IMSE Week 18 White Box or Structural Testing Reading:Sommerville (4th edition) ch 22 orPressman (4th edition) ch 16.
Testing an individual module
Programming Fundamentals (750113) Ch1. Problem Solving
DIGITAL ELECTRONICS CIRCUIT P.K.NAYAK P.K.NAYAK ASST. PROFESSOR SYNERGY INSTITUTE OF ENGINEERING & TECHNOLOGY.
CS Subdivision I: The Univariate Setting Peter Schröder.
Software Testing and QA Theory and Practice (Chapter 6: Domain Testing) © Naik & Tripathy 1 Software Testing and Quality Assurance Theory and Practice.
Brute-Force Triangulation
1 Software Testing Techniques CIS 375 Bruce R. Maxim UM-Dearborn.
Path testing Path testing is a “design structural testing” in that it is based on detailed design & the source code of the program to be tested. The methodology.
Equivalence Class Testing
Black Box Software Testing
1 Functional Testing Motivation Example Basic Methods Timing: 30 minutes.
3-dimensional shape cross section. 3-dimensional space.
Software Testing Methodologies (STM) Unit 4 – Domain Testing
Domain testing Tor Stålhane. Domain testing revisited We have earlier looked at domain testing as a simple strategy for selecting test cases. We will.
CMSC 345 Fall 2000 Unit Testing. The testing process.
CS4311 Spring 2011 Unit Testing Dr. Guoqiang Hu Department of Computer Science UTEP.
Chapter 6: Testing Overview Basic idea of testing - execute software and observe its behavior or outcome. If failure is observed, analyze execution record.
Ch 11. Control Flow, Data Dependency, and Interaction Testing  General Types of Interaction in Execution.  Control Flow Testing (CFT)  Data Dependency.
Lecture 7 – Data Reorganization Pattern Data Reorganization Pattern Parallel Computing CIS 410/510 Department of Computer and Information Science.
Why Is It There? Getting Started with Geographic Information Systems Chapter 6.
Digital Image Processing CCS331 Relationships of Pixel 1.
Testing Testing Techniques to Design Tests. Testing:Example Problem: Find a mode and its frequency given an ordered list (array) of with one or more integer.
Black Box Testing Techniques Chapter 7. Black Box Testing Techniques Prepared by: Kris C. Calpotura, CoE, MSME, MIT  Introduction Introduction  Equivalence.
Test Drivers and Stubs More Unit Testing Test Drivers and Stubs CEN 5076 Class 11 – 11/14.
Unit Testing 101 Black Box v. White Box. Definition of V&V Verification - is the product correct Validation - is it the correct product.
Black-box Testing.
Today’s Agenda  Reminder: HW #1 Due next class  Quick Review  Input Space Partitioning Software Testing and Maintenance 1.
Practical Considerations When t , the supp, then there will be a value of t when supp folds, it becomes multi-w-to-one-x mapping.
1 Markov Decision Processes Infinite Horizon Problems Alan Fern * * Based in part on slides by Craig Boutilier and Daniel Weld.
Searching and Sorting Recursion, Merge-sort, Divide & Conquer, Bucket sort, Radix sort Lecture 5.
UNIT 5.  The related activities of sorting, searching and merging are central to many computer applications.  Sorting and merging provide us with a.
Testing Chapter 23 IB103 Week 12 (part 3). Verify that a complex (any) program works correctly, that the program meets specifications The chapter reviews.
Equivalence Class Testing In chapter 5, we saw that all four variations of boundary value testing are vulnerable to –gaps of untested functionality, and.
Test Case Designing UNIT - 2. Topics Test Requirement Analysis (example) Test Case Designing (sample discussion) Test Data Preparation (example) Test.
Theory and Practice of Software Testing
8/14/04 J. Bard and J. W. Barnes Operations Research Models and Methods Copyright All rights reserved Lecture 6 – Integer Programming Models Topics.
Logic Design EE-2121 Manesh T. Digital Systems  Introduction  Binary Quantities and Variables  Logic Gates  Boolean Algebra  Combinational Logic.
1 Software Testing and Quality Assurance Theory and Practice Chapter 6 Domain Testing.
1 Software Testing & Quality Assurance Lecture 5 Created by: Paulo Alencar Modified by: Frank Xu.
Boundary Value Testing 1.A type of “Black box” functional testing –The program is viewed as a mathematical “function” –The program takes inputs and maps.
1 Software Testing. 2 Equivalence Class Testing 3 The use of equivalence class testing has two motivations: –Sense of complete testing –Avoid redundancy.
Domain Testing Overview The domain-testing strategy is simple, and possibly tedious. 1. Domains are defined by their boundaries; therefore, domain testing.
Black Box Unit Testing What is black-box testing? Unit (code, module) seen as a black box No access to the internal or logical structure Determine.
GROUP MEMBERS AYAZ JAVED BITF06A002 SADAF SARFARAZ BITF06A003 SAMIN ATIQA BITF06A028 BILAL KHALID BITF06A042.
UNIT – 3 DOMAIN TESTING Domain: domain is a set of possible values of an independent variable or the variables of a function Domain testing attempts.
Testing Tutorial 7.
CS223: Software Engineering
CS5123 Software Validation and Quality Assurance
Handouts Software Testing and Quality Assurance Theory and Practice Chapter 6 Domain Testing
Structural testing, Path Testing
Overview Functional Testing Boundary Value Testing (BVT)
Autonomous Cyber-Physical Systems: Dynamical Systems
Programming Fundamentals (750113) Ch1. Problem Solving
Process Capability.
Control Structure Testing
Overview Functional Testing Boundary Value Testing (BVT)
Chapter 1: Boundary Value Testing
Overview Functional Testing Boundary Value Testing (BVT)
Presentation transcript:

Chapter 9: Boundary Testing Input Domain Partitioning Simple Domain Analysis and Testing Important Boundary Testing Strategies Extensions and Perspectives

Non-Uniform Partition Testing Extensions to basic partition testing ideas include Non-uniform or Selective or partitioned testing strategies Testing is based on related problems: some sub-domains will be tested more Usage-related problems => Use Musa’s Ops and UBST Sub-domains with complex boundary problems => Use input domain boundary testing (BT).

Boundary Testing: Overview What is it? Test I/O relations. Classifying/partitioning of input space Cover input space and related boundary conditions. Also called (input) domain testing. Characteristics and applications? Functional/black-box view (I/O mapping for multiple sub-domains) Well-defined input data: numerical processing and decisions. Implementation information may be used => then more white box Focus: boundaries and related problems. Output used only in result checking.

I/O Variables and Values Input: Input variables: x1, x2,. . . , xn. Input space: n-dimensional. Input vector: X = [x1, x2, . . . , xn]. Test point: X with specific xi values. Domains and sub-domains: specific types of processing are defined. Focus on input domain partitions. Output (assumed, not the focus) Output variables/vectors/space/range similarly defined. Mapped from input by a function. Output only used as oracle.

Domain Partitioning and Sub-domains Input domain partitioning Divide into sets of sub-domains. “domain", “sub-domain", and “region“ often used interchangeably A sub-domain is typically defined by a set of conditions in the form of: f(x1, x2, ..., xn) < K where “<" can also be substituted by “>", “=", “≠", “<", or “>".

Domain Partitioning and Sub-domains Domain (sub-domain) boundaries: Distinguishes/defines different sub-domains. Each defined by it boundary condition, e.g., f(x1, x2, ., xn) = K Adjacent domains: those share common boundary(ies) Boundary properties and related points: Linear boundary: a1x1 + a2 x2, ., +anxn = K (Otherwise, it is a nonlinear boundary.) Boundary point: point on the boundary. Vertex point: 2+ boundaries intersect. Other properties w.r.t domains later.

Boundary and Domain Properties Boundary properties w.r.t domains: Closed boundary: inclusive (<, > ) Open boundary: exclusive (<, >) Domain properties and related points: Closed domain: all boundaries closed Open domain: all boundaries open Linear/nonlinear domain: all linear boundary conditions? Interior point: in domain and not on boundary. Exterior point: not in domain and not on boundary.

Input Domain Partition Testing General steps: Identify input variable/vector/domain. Partition the input domain into sub-domains. Perform domain/sub-domain analysis. Define test points based on the analysis. Perform test and follow-up activities. Boundary testing: Above with focus on boundaries. Domain analysis: Domain limits in each dimension. Domain boundaries (more meaningful). Closure consistency? Plotting for 1D/2D, algebraic for 3D+.

Problems in Partitioning Domain partitioning problems: Ambiguity: under-defined/incomplete. Contradictions: over-defined/overlap. Most likely to happen at boundaries. Related boundary problems: Closure problem. Boundary shift: f(x1, x2, ., xn) = K+δ Boundary tilt: parameter change(s). Missing boundary. Extra boundary.

Simple Domain Analysis and EPC Simple domain analysis: identify domain limits in each dimension. Extreme point combinations (EPC) Combine with above to derive test points. Each variable: under, min, max, over. Combine variables (× cross-product). Examples: Fig 9.1&9.2 (p.133-134)

Simple Domain Analysis and EPC Problems/shortcomings with EPC: Missing boundary points: 2D example, unless boundaries perfectly aligned. Exponential # test cases: 4n +1. Vertex points appropriate? => Need more effective strategies.

Boundary Testing Ideas Using points to detect boundary problems: A set of points selected on or near a boundary: ON and OFF points. Able to detect boundary movement, tilt, etc. Motivational examples for boundary shift. Є neighborhood and ON/OFF points Region of radius around a point Є = 1/2n for n binary digits after decimal ON point: On the boundary OFF point: opposite to ON processing off boundary, within distance closed boundary, outside

Weak N × 1 Strategy N x 1 strategy N ON points (linearly independent. 1 OFF point: centroid of ON points. Weak: set of tests per boundary instead of per boundary segment. # test points: (n+1) × b+1 Examples: Fig 9.3 & 9.4 (p.137/138). Advantages (esp. 2D) over EPC!

Weak N × 1 Strategy Typical errors detected: Closure bug Boundary shift Boundary tilt: Fig 9.5 (p.138) Extra boundary (sometimes) Missing boundary

Weak 1 × 1 Motivation: # test-points goes down without losing much of the problem detection capability. Characteristics: 1 ON and 1 OFF per condition (sample of n ON points in weak N × 1 form an equivalent class) Key: boundary defined by ON/OFF Typical errors detected: Closure bug Boundary shift Boundary tilt (sometimes!) (Fig 9.7 vs Weak N × 1) Missing boundary Extra boundary (sometimes)

Other BT Strategies Strong vs weak testing strategies: Weak: 1 set of tests for each boundary Strong: 1 set of tests for each segment Why use strong BT strategies? Gap in boundary condition Closure change Coincidental correctness: particularly stepwise implementation Code clues: complex, convoluted Use in safety-critical applications Nonlinear boundaries: Approximate (e.g., piecewise) strategies often useful.

BT Extensions Direct extensions Other extensions Data structure boundaries, e.g. arrays. Capacity testing. Loop boundaries (Ch.11). Other extensions Vertex testing: problem with boundary combinations follow after boundary test (1X1 etc.) test effective concerns Output domain in special cases similar to backward chaining safety analysis, etc. Queuing testing example below.

Queuing testing as Boundary Testing Queuing description: priority, buffer, etc. Priority: time vs other: time: FIFO/FCFS, LIFO/stack, etc. other/explicit: SJF, priority#, etc. purely random: rare Buffer: bounded or unbounded? Other information: Pre-emption allowed? Mixture/combination of queues Batch and synchronization Example: prioritized, w/o pre-emption or batching

Testing a Single Queue Test case design/selection: Conformance to queuing priority. Boundary test Test cases: input + expected output. Combined cases of the above. Testing specific boundary conditions: lower bound: 0(empty), 1, 2 (test insertions) server busy/idle at lower bound – is arrival served immediately? upper bounds: B-1 (new arrival pushed Q to capacity), B (full), and B + 1 (similar to OFF point) Other test cases: Typical case: usage-based testing idea. Q unbounded: some capacity testing.

BT Limitations Simple processing/defect models: Limitations Processing: case-like, general enough? Specification could be ambiguous/contradictory. Boundary: likely defect. Vertex: ad hoc logic. Limitations Processing model: no loops. Coincidental correctness: common. Є-limits, particularly problematic for multi-platform products. OFF point selection for closed domain possible undefined territory, may cause crash or similar problems. Detailed analysis required.