Testing the Software with Blinders on

Slides:



Advertisements
Similar presentations
Testing the Software with Blinders on [Reading assignment: Chapter 5, pp ]
Advertisements

Testing and Quality Assurance
SOFTWARE TESTING. INTRODUCTION  Software Testing is the process of executing a program or system with the intent of finding errors.  It involves any.
1 Software Engineering Lecture 11 Software Testing.
CMSC 345, Version 11/07 SD Vick from S. Mitchell Software Testing.
1 Test Cases CSSE 376, Software Quality Assurance Rose-Hulman Institute of Technology March 13, 2007.
1 Functional Testing Motivation Example Basic Methods Timing: 30 minutes.
White-box Testing Black-box Testing Extensions
Black Box Software Testing Domain Testing Assignment Fall 2005 Assignment 2 This assignment is due on September 24, Please use the latest version.
CMSC 345 Fall 2000 Unit Testing. The testing process.
Chapter 8 – Software Testing Lecture 1 1Chapter 8 Software testing The bearing of a child takes nine months, no matter how many women are assigned. Many.
Black Box Testing Techniques Chapter 7. Black Box Testing Techniques Prepared by: Kris C. Calpotura, CoE, MSME, MIT  Introduction Introduction  Equivalence.
Software Testing Input Space Partition Testing. 2 Input Space Coverage Four Structures for Modeling Software Graphs Logic Input Space Syntax Use cases.
Software Engineering1  Verification: The software should conform to its specification  Validation: The software should do what the user really requires.
Theory and Practice of Software Testing
SOFTWARE TESTING. Introduction Software Testing is the process of executing a program or system with the intent of finding errors. It involves any activity.
Software Quality Assurance and Testing Fazal Rehman Shamil.
1. Black Box Testing  Black box testing is also called functional testing  Black box testing ignores the internal mechanism of a system or component.
Dynamic Testing.
Informatics 43 – May 3, Restatement of goals Want to verify software’s correctness  Need to test  Need to decide on test cases  No set of test.
SOFTWARE TESTING LECTURE 9. OBSERVATIONS ABOUT TESTING “ Testing is the process of executing a program with the intention of finding errors. ” – Myers.
Dynamic Black-Box Testing Part 1 What is dynamic black-box testing? How to reduce the number of test cases using: Equivalence partitioning Boundary value.
Functional testing, Equivalence class testing
Chapter # 2 Part 2 Programs And data
Prepared by: Fatih Kızkun
SE-1021 Software Engineering II
Subject Name: Software Testing Subject Code: 10CS842 Prepared By:
Software Testing.
PREPARED BY G.VIJAYA KUMAR ASST.PROFESSOR
Testing Tutorial 7.
Security Testing Methods
Software Testing.
Software Testing.
The Joy of Breaking Code Testing Logic and Case Selection
Black Box Testing PPT Sources: Code Complete, 2nd Ed., Steve McConnell
Software Testing Techniques
IS301 – Software Engineering V:
Black Box Testing (Chapter 4)
Chapter 2 Assignment and Interactive Input
Software engineering – 1
Chapter 13 & 14 Software Testing Strategies and Techniques
Types of Testing Visit to more Learning Resources.
Intro to PHP & Variables
Informatics 43 – May 3, 2016.
UNIT-4 BLACKBOX AND WHITEBOX TESTING
Unit# 9: Computer Program Development
Lecture 09:Software Testing
A Few Review Questions Dan Fleck Fall 2009.
A Few Review Questions.
Pixels.
Static Testing Static testing refers to testing that takes place without Execution - examining and reviewing it. Dynamic Testing Dynamic testing is what.
Software testing.
Conditions and Boolean Expressions
CS240: Advanced Programming Concepts
Test Case Test case Describes an input Description and an expected output Description. Test case ID Section 1: Before execution Section 2: After execution.
CSE403 Software Engineering Autumn 2000 More Testing
Tonga Institute of Higher Education IT 141: Information Systems
Applying Use Cases (Chapters 25,26)
Tonga Institute of Higher Education IT 141: Information Systems
Chapter 1: Boundary Value Testing
Learning Intention I will learn about the different types of programming errors.
A Few Review Questions Dan Fleck Spring 2009.
Chapter 10: Compilers and Language Translation
Chapter 7 Software Testing.
CHAPTER 6 Testing and Debugging.
UNIT-4 BLACKBOX AND WHITEBOX TESTING
Chapter 1: Creating a Program.
08120: Programming 2: SoftwareTesting and Debugging
Chapter 5 JavaScript Numbers and Expressions
Chapter 13 & 14 Software Testing Strategies and Techniques 1 Software Engineering: A Practitioner’s Approach, 6th edition by Roger S. Pressman.
Presentation transcript:

Testing the Software with Blinders on [Reading assignment: Chapter 5, pp. 63-79]

Dynamic black-box testing Dynamic black-box testing is testing without having an insight into the details of the underlying code. Dynamic, because the program is running Black-box, because testing is done without knowledge of how the program is implemented. Sometimes referred to as behavioral testing. Requires an executable program and a specification (or at least a user manual). Test cases are formulated as a set of pairs E.g., (input, expected output)

Test Data and Test Cases Test data: Inputs which have been devised to test the system. Test cases: Inputs to test the system and the predicted(expected) outputs from these inputs if the system operates according to its specification.

Test-to-Pass and Test-to-Fail There are two fundamental approaches to testing software: test-to-pass and test-to-fail. When you test-to-pass, you really assure only that the software minimally works. You don't push its capabilities. You don't see what you can do to break it. You treat it with kid gloves, applying the simplest and most straightforward test cases. You may be thinking that if your goal is to find bugs, why would you test-to-pass? Wouldn't you want to find bugs by any means possible? The answer is no, not initially.

Figure 5.2. Use test-to-pass to reveal bugs before you test-to-fail

Start defining the test cases. Test cases are the specific inputs that you'll try and the procedures that you'll follow when you test the software. Figure 5.1

Data Testing The simplest view of software is to divide its world into two parts: the data (or its domain) and the program. The data is the keyboard input, mouse clicks, disk files, printouts, and so on. The program is the executable flow, transitions, logic, and computations. A common approach to software testing is to divide up the test work along the same lines. When you perform software testing on the data, you're checking that information the user inputs, results that he receives, and any interim results internal to the software are handled correctly.

State Testing So far what you've been testing is the data—the numbers, words, inputs, and outputs of the software. The other side of software testing is to verify the program's logic flow through its various states. A software state is a condition or mode that the software is currently in. Consider Figures 5.3

Fig 5.3

Other Black-Box Test Techniques The remaining categories of black-box test techniques aren't standalone methods as much as they are variations of the data testing and state testing that has already been described. If you've done thorough equivalence partitioning of your program's data, created a detailed state map, and developed test cases from these, you'll find most software bugs that a user would find. What's left are techniques for finding the stragglers, the ones that, if they were real living bugs, might appear to have a mind of their own, going their own way. Finding them might appear a bit subjective and not necessarily based on reason, but if you want to flush out every last bug, you'll have to be a bit creative.

Black-box testing Characteristics of Black-box testing: Program is treated as a black box. Implementation details do not matter. Requires an end-user perspective. Criteria are not precise. Test planning can begin early.

Black-box testing

Equivalence Partitioning Equivalence partitioning is the process of methodically reducing the huge (or infinite) set of possible test cases into a small, but equally effective, set of test cases.

Data Testing If you think of a program as a function, the input of the program is its domain. Examples of program data are: words typed into MS Word numbers entered into Excel picture displayed in Photoshop

Boundary input data Boundary conditions are situations at the edge of the planned operational limits of the software. E.g., negative to zero to positive numbers, exceeding the input field length of a form, etc. Choose input data that lie on the boundary when formulating equivalence partitions. Test the valid data just inside the boundary Test the last possible valid data Test the invalid data just outside the boundary Security flaws such as buffer overflow attacks exploit boundaries of array buffers.

Example of Data Testing: Syntax Testing System inputs must be validated. Internal and external inputs conform to formats: Textual format of data input from users. File formats. Database schemata. Data formats can be mechanically converted into many input data validation tests. Such a conversion is easy when the input is expressed in a formal notation such as BNF (Backus-Naur Form).