Introduction to Testing Design Strategies – The Smarter Tester

Slides:



Advertisements
Similar presentations
Testing Relational Database
Advertisements

Software Testing. Quality is Hard to Pin Down Concise, clear definition is elusive Not easily quantifiable Many things to many people You'll know it when.
Testing Coverage Test case
SOFTWARE TESTING. INTRODUCTION  Software Testing is the process of executing a program or system with the intent of finding errors.  It involves any.
Software project management Module 1 -Introduction to process management Teaching unit 1 – Introduction Ernesto Damiani Free University of Bozen-Bolzano.
Software Testing and Quality Assurance
1 Software Testing and Quality Assurance Lecture 15 - Planning for Testing (Chapter 3, A Practical Guide to Testing Object- Oriented Software)
CS 425/625 Software Engineering Software Testing
CS350/550 Software Engineering Lecture 1. Class Work The main part of the class is a practical software engineering project, in teams of 3-5 people There.
1 Software Testing and Quality Assurance Lecture 14 - Planning for Testing (Chapter 3, A Practical Guide to Testing Object- Oriented Software)
Software Testing. “Software and Cathedrals are much the same: First we build them, then we pray!!!” -Sam Redwine, Jr.
Handouts Software Testing and Quality Assurance Theory and Practice Chapter 11 System Test Design
1 Software Testing Techniques CIS 375 Bruce R. Maxim UM-Dearborn.
Introduction to Computer Technology
What Exactly are the Techniques of Software Verification and Validation A Storehouse of Vast Knowledge on Software Testing.
Test Design Techniques
Verification and Validation Yonsei University 2 nd Semester, 2014 Sanghyun Park.
Testing. What is Testing? Definition: exercising a program under controlled conditions and verifying the results Purpose is to detect program defects.
CPIS 357 Software Quality & Testing
Introduction Telerik Software Academy Software Quality Assurance.
CMSC 345 Fall 2000 Unit Testing. The testing process.
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.
TESTING PRINCIPLES BY K.KARTHIKEYAN. PRINCIPLES Principle 1. Testing is the process of exercising a software component using a selected set of test cases,
SOFTWARE REUSABILITY AJAYINDER SINGH CSC What is Software Reuse Software reuse is the process of implementing or updating software systems using.
Testing -- Part II. Testing The role of testing is to: w Locate errors that can then be fixed to produce a more reliable product w Design tests that systematically.
Testing Methods Carl Smith National Certificate Year 2 – Unit 4.
1 Phase Testing. Janice Regan, For each group of units Overview of Implementation phase Create Class Skeletons Define Implementation Plan (+ determine.
Software Development Problem Analysis and Specification Design Implementation (Coding) Testing, Execution and Debugging Maintenance.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
Black Box Testing : The technique of testing without having any knowledge of the interior workings of the application is Black Box testing. The tester.
Copyright © 2009 Pearson Education, Inc. Publishing as Prentice Hall Chapter 3 Managing the Information Systems Project 3.1.
Testing and inspecting to ensure high quality An extreme and easily understood kind of failure is an outright crash. However, any violation of requirements.
1 Phase Testing. Janice Regan, For each group of units Overview of Implementation phase Create Class Skeletons Define Implementation Plan (+ determine.
Verification vs. Validation Verification: "Are we building the product right?" The software should conform to its specification.The software should conform.
Tips for Testing Software Program Under Test - II.
Software Testing. Software Quality Assurance Overarching term Time consuming (40% to 90% of dev effort) Includes –Verification: Building the product right,
Logic Models How to Integrate Data Collection into your Everyday Work.
Software Testing.
Software Testing.
Software Engineering (CSI 321)
Software Testing.
Rekayasa Perangkat Lunak Part-13
John D. McGregor Session 9 Testing Vocabulary
TQS - Teste e Qualidade de Software (Software Testing and Quality) Introduction To Software Testing Concepts João Pascoal.
Software Engineering (CSI 321)
Levels of testing.
Software Testing Testing process, Design of test cases.
Quality Management Perfectqaservices.
IT6004 – SOFTWARE TESTING.
Structural testing, Path Testing
John D. McGregor Session 9 Testing Vocabulary
CHAPTER 4 Test Design Techniques
Software Quality Engineering
Software Engineering (CSI 321)
Unit Test: Functions, Procedures, Classes, and Methods as Units
UNIT-4 BLACKBOX AND WHITEBOX TESTING
John D. McGregor Session 9 Testing Vocabulary
Introduction to Software Testing
Lecture 09:Software Testing
Software testing.
Test Case Test case Describes an input Description and an expected output Description. Test case ID Section 1: Before execution Section 2: After execution.
Teaching slides Chapter 13
Software Testing “If you can’t test it, you can’t design it”
Software Testing.
Whitebox Testing.
TYPES OF TESTING.
Software Development Chapter 1.
UNIT-4 BLACKBOX AND WHITEBOX TESTING
Software Testing.
08120: Programming 2: SoftwareTesting and Debugging
Presentation transcript:

Introduction to Testing Design Strategies – The Smarter Tester

Software components have defects, no matter how well our defect prevention activities are implemented. Developers cannot prevent/eliminate all defects during development. Therefore, software must be tested before it is delivered to users. It is the responsibility of the testers to design tests That reveal defects, and can be used to evaluate software performance, usabilty, and reliability

To achieve these goals, testers must select a finite number of test cases, often from a very large execution domain. Unfortunately, testing is usually performed under budget and time constraints. Testers often are subject to enormous pressures from management and marketing because testing is not well planned, and expectations are unrealistic.

The smart tester must plan for testing, select the test cases, and monitor the process to insure that the resources and time allocated for the job are utilized effectively.

Novice testers, taking their responsibilities seriously, might try to test a module or component using all possible inputs and exercise all possible software structures. Using this approach, they reason, will enable them to detect all defects. However an informed and educated tester knows that is not a realistic or economically feasible goal. Another approach might be for the tester to select test inputs at random, hoping that these tests will reveal critical defects.

TEST CASE DESIGN STRATEGIES The ability to develop effective test cases is important to an organization evolving toward a higher-quality testing process. It has many positive consequences. For example, if test cases are effective there is a greater probability of detecting defects a more efficient use of organizational resources a higher probability for test reuse closer adherence to testing and project schedules and budgets, and, the possibility for delivery of a higher-quality software product. What are the approaches a tester should use to design effective test cases?

There are two basic strategies that can be used to design test cases There are two basic strategies that can be used to design test cases. Black box (sometimes called functional or specification) and White box (sometimes called clear or glass box) test strategies.  

WHITE BOX TESTING The white box approach focuses on the inner structure of the software to be tested. To design test cases using this strategy the tester must have knowledge of that structure. The code, or a suitable pseudo code like representation must be available.

For example, test cases are often designed to exercise all statements or true/false branches that occur in a module or member function. Since designing, executing, and analyzing the results of white of box testing is very time consuming, this strategy is usually applied to smaller-sized pieces of software such as a module or member function.

White box testing methods are especially useful for revealing design and code-based control logic and sequence defects initialization defects, and data flow defects.

Neither approach by itself is guaranteed to reveal all defects Neither approach by itself is guaranteed to reveal all defects. The approaches complement each other; each may be useful for revealing certain types of defects. With a suite of test cases designed using both strategies the tester increases the chances of revealing the many different type of defects in the software under test. The tester will also have an effective set of reusable test cases for regression testing (re-test after changes), and for testing new releases of the software.