Software Testing. Software Testing. Theory, Practise and Reality IBM Corporation

Similar documents
Introduction To Software Testing. Brian Nielsen. Center of Embedded Software Systems Aalborg University, Denmark CSS

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

(From Glenford Myers: The Art of Software Testing)

Softwaretechnik. Lecture 08: Testing and Debugging Overview. Peter Thiemann SS University of Freiburg, Germany

Softwaretechnik. Lecture 08: Testing and Debugging Overview. Peter Thiemann SS University of Freiburg, Germany

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

Specification-based test design

Quality Assurance in Software Development

Programming in the Real World. Dr. Baldassano Yu s Elite Education

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

Software Testing Lecture 1. Justin Pearson

Types of Software Testing: Different Testing Types with Details

Certified Tester Foundation Level(CTFL)

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

Software Engineering (CSC 4350/6350) Rao Casturi

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

Equivalence Class Partitioning. Equivalence Partitioning. Definition and Example. Example set of classes

Software Engineering Fall 2014

1 Visible deviation from the specification or expected behavior for end-user is called: a) an error b) a fault c) a failure d) a defect e) a mistake

Module 1 : Fundamentals of Testing. Section 1: Manual Testing

Learn Well Technocraft

EECS 4313 Software Engineering Testing. Topic 01: Limits and objectives of software testing Zhen Ming (Jack) Jiang

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

Examination Questions Time allowed: 1 hour 15 minutes

Govt. of Karnataka, Department of Technical Education Diploma in Information Science & Engineering. Sixth Semester

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

Software Quality Assurance. David Janzen

CSE 403: Software Engineering, Fall courses.cs.washington.edu/courses/cse403/16au/ Unit Testing. Emina Torlak

Sample Question Paper. Software Testing (ETIT 414)

Testing: Test design and testing process

Software technology 7. Testing (2) BSc Course Dr. Katalin Balla

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

Software Testing. An Overview

2. You are required to enter a password of up to 100 characters. The characters must be lower ASCII, printing characters.

EECS 4313 Software Engineering Testing. Topic 05: Equivalence Class Testing Zhen Ming (Jack) Jiang

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

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

Programming Embedded Systems

MATH 115: Review for Chapter 1

PES INSTITUTE OF TECHNOLOGY- BANGALORE SOUTH CAMPUS

Greats Bugs in History

18-642: Testing Overview

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

PESIT Bangalore South Campus

Software Testing 1. Introduction

Topics in Software Testing

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

Properties of Triangles

7.0 Test Design Techniques & Dynamic Testing

Classify Triangles. by the Angle Measure &The Side Lengths. Properties a SCALENE Triangle angles 1.Sum of the interior

Theme 2 Program Design and Testing

INTERNATIONAL JOURNAL OF PURE AND APPLIED RESEARCH IN ENGINEERING AND TECHNOLOGY

Software Testing. Software Testing. in the textbook. Chapter 8. Verification and Validation. Verification and Validation: Goals

CPS 101 Introduction to Computational Science

Input Space Partitioning

Verification & Validation of Open Source

CSE 403. Testing, part II (Quality Assurance), bugs, and code reviews, part 2

Mind Q Systems Private Limited

Chapter 9 Quality and Change Management

CODE / CONFIGURATION COVERAGE

Programming Embedded Systems

Pearson Education 2007 Chapter 9 (RASD 3/e)

ASTQB Advance Test Analyst Sample Exam Answer Key and Rationale

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

Introduction to Software Testing Chapter 4 Input Space Partition Testing

5) I want to get this done fast, testing is going to slow me down.

Write perfect C code to solve the three problems below.

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

Who is our rival? Upcoming. Testing. Ariane 5 rocket (1996) Ariane 5 rocket 3/8/18. Real programmers need no testing!

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

People tell me that testing is

Diploma in Software Testing (DST)

Software Testing Tools

Lesson 4. Classifying Triangles

Basic Concepts of System Testing - A Beginners Guide.

Practice Problems. Review, with SOME solutions

SECURE PROGRAMMING A.A. 2018/2019

Darshan Institute of Engineering & Technology Unit : 9

Warm-Up Problem. Let be a set of well-formed Predicate logic formulas. Let be well-formed Predicate logic formulas. Prove or disprove the following.

Basic Training in Software Testing (2 Days)

CSE Verification Plan

Ingegneria del Software Corso di Laurea in Informatica per il Management

Equivalence Class Partitioning and Boundary Value Analysis -Black Box Testing Techniques

Higher-order Testing. Stuart Anderson. Stuart Anderson Higher-order Testing c 2011


Functional Testing (Black Box Testing)

Shift Left and Friends And What They Mean for Testers

Verification and Validation. Verification and validation

Certified Software Quality Engineer Preparation On Demand, Web-Based Course Offered by The Westfall Team

10. Software Testing Fundamental Concepts

The Importance of Test

How Can Testing Teams Play a Key Role in DevOps Adoption?

Therac-25 radiation therapy machine

UNIVERSITY OF MUMBAI T.Y.B.Sc. INFORMATION TECHNOLOGY) (Semester V) (Practical) EXAMINATION OCTOBER 2014 SOFTWARE TESTING Seat No. : Max.

Manual Testing. Software Development Life Cycle. Verification. Mobile Testing

LECTURE 8 TEST DESIGN TECHNIQUES - I

Software Testing: Introduction

Mainline Functional Testing Techniques

WHY TEST SOFTWARE?...

Simulink Verification and Validation

Transcription:

Software Testing Software Testing Theory, Practise and Reality

Who am I? David Vines (dvines@uk.ibm.com) Degree in Computer Science and Operational Research Joined IBM in 1984 Been involved in product development ever since

A test problem Given the following specification: The program reads three integer values. The three values are interpreted as the lengths of the sides of a triangle. The program prints a message stating if the triangle is scalene, isosceles or equilateral. What's the set of test cases to adequately test this program?

Why test? Test Case: 3, 4, 5 Expected output: SCALENE

Why test? If it can go to wrong, it will (and usually at the worst possible time) NASA's Mars Climate Orbiter - $327.6 million space probe burnt up in the Martian Atmosphere First test flight of the Ariane 5 more than $370 million rocket destroyed 37 seconds after launch Northeastern US power blackout 2003 estimated between $6.8 billion and $10.3 billion Test Case: 5, 5, 5 Expected output: EQUILATERAL

What is testing? The science of detecting failure Verifying that a product is fit for purpose Evaluating whether a system meets its requirements Creatively trying to break the system Testing does NOT add quality it can only reveal the existing lack of quality Test Case: 5, 5, 3 Expected output: ISOSCELES

Different types of tests How much of the system is tested Unit test Functional Verification System Verification What is tested Function Non-functional Performance Stress Accessibility Internationalization Installation Security Who's involved Development Team Selected Customers Closed Beta Anyone Open Beta Repeatability Fully Automated Manual Scripted Exploratory Test Case: 5, 3, 5 Expected output: ISOSCELES

Unit Testing Tests of individual units (e.g., classes) of source code Typically written by the author of that source code Verify that the code does what the author intended the code to do Running of the unit tests is fully automated Test Case: 2, 5, 5 Expected output: ISOSCELES

Functional Verification Test (FVT) Black Box Testing Main Aspects are: Coverage: Ensuring all functions are called Variation: Call functions with a variety of arguments Sequencing: test a sequence of steps, not just one Big Problem: Consider the triangle problem Just how many possible testcases are there? Answer: Just considering three positive 31-bit integers, 2 93 10 31 (or, assuming 1nS per test: 313,823,621,387 years (over 20 times the age of the universe!) Test Case: 5, 2, 4 Expected output: SCALENE

Functional Verification Test Selecting a subset of possible testcases: Random Testing Equivalence class partitioning Testing boundary conditions Model-based testing Test Case: 5, 1, 3 Expected output: NOT A TRIANGLE

System Verification Test Tests the complete system Usually checks for more than just is the output correct? Stress/Performance Variations of environment (Hardware/Software) Recovery Security Interoperability Usability Test Case: 5, 1, 0 Expected output: NOT A TRIANGLE

System Verification Test Need to think/act as the customer will Try all those strange things that the customer will try Usually done by someone other than the original developers You want/need the different mindset/viewpoint Common developer response to the defect reports is I didn't expect anyone to do THAT! Use cases can be a good starting point Test Case: 5, 6, -3 Expected output: INVALID INPUT

Testing in Reality Test Case: 0, 0, 0 Expected output: INVALID INPUT

Testing in Reality Need to choose: What to test How to test Typically: Focus on testing new functionality Regression testing of old function Automate as much as possible Unit tests are usually run as part of the build process FVT tests also run as part of the build process SVT tests need to use the real product deliverables but can still be automated Test Case: 1, 2 Expected output: INVALID INPUT

Testing in Reality How much to test? Testing can expand to occupy the time and money available How much to spend? Typically 50% of the resource is spent on testing Don't forget that the defect fixes need testing too... Test Case: 1.5, 2.5, 3.5 Expected output: INVALID INPUT

Test cases for the test problem 1) A test for a valid scalene triangle ü 2) A test for a valid equilateral triangle ü 3) A test for a valid isosceles triangle ü 4) Two more tests for isosceles to cover the other two permutations ü 5) A test in which one side has a value of zero ü 6) A test where at least one side has a negative value ü 7) A test with three positive integers where the sum of two of them equals the third (e.g., 1, 2, 3) X 8) Two other tests similar to 6 that cover the other two permutations X 9) A test with three positive integers that do not make a triangle (e.g. 1, 2, 4) ü 10) Two other tests similar to 9 that cover the other two permutations X 11) A test where all three sides are zero ü 12) A test where at least one side is not an integer ü 13) A test where the wrong number of values ü 14) BONUS: Did you specify the expected output? ü

Bibliography The art of Software testing (1979) Glenford J. Myers ISBN 0 471 04328-1