Software Testing Introduction CS 4501 / 6501 Software Testing

Slides:



Advertisements
Similar presentations
Test process essentials Riitta Viitamäki,
Advertisements

Lecture 8: Testing, Verification and Validation
Testing and Quality Assurance
Verification and Validation: A Quick Introduction 1-2 Lectures.
Verification and Validation: A Quick Introduction Authors Massood Towhidnejad Massood Towhidnejad Mike Rowe Mike Rowe David Dampier David Dampier Sponsored.
1 Basic Definitions: Testing What is software testing? Running a program In order to find faults a.k.a. defects a.k.a. errors a.k.a. flaws a.k.a. faults.
Introduction to Software Testing (2nd edition) Chapter 1 Why Do We Test Software? Paul Ammann & Jeff Offutt
1 Software Testing and Quality Assurance Lecture 1 Software Verification & Validation.
Chapter 11: Testing The dynamic verification of the behavior of a program on a finite set of test cases, suitable selected from the usually infinite execution.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 23 Slide 1 Software testing.
CS527: (Advanced) Topics in Software Engineering Overview of Software Quality Assurance Tao Xie ©D. Marinov, T. Xie.
Software Quality Assurance & Testing Mistake in coding is called error, Error found by tester is called defect, Defect accepted by development team then.
Extreme Programming Software Development Written by Sanjay Kumar.
Software Metrics - Data Collection What is good data? Are they correct? Are they accurate? Are they appropriately precise? Are they consist? Are they associated.
Software testing basic. Main contents  Why is testing necessary?  What is testing?  Test Design techniques  Test level  Test type  How to write.
Instructor: Peter Clarke
Verification and Validation Overview References: Shach, Object Oriented and Classical Software Engineering Pressman, Software Engineering: a Practitioner’s.
 CS 5380 Software Engineering Chapter 8 Testing.
Testing Basics of Testing Presented by: Vijay.C.G – Glister Tech.
Today’s Agenda  HW #1  Finish Introduction  Input Space Partitioning Software Testing and Maintenance 1.
1 Introduction to Software Testing. Reading Assignment P. Ammann and J. Offutt “Introduction to Software Testing” ◦ Chapter 1 2.
Introduction to Software Testing Paul Ammann & Jeff Offutt Updated 24-August 2010.
Introduction to Software Testing. OUTLINE Introduction to Software Testing (Ch 1) 2 1.Spectacular Software Failures 2.Why Test? 3.What Do We Do When We.
Chapter 1: Fundamental of Testing Systems Testing & Evaluation (MNN1063)
Software Engineering Saeed Akhtar The University of Lahore.
LOGO TESTING Team 8: 1.Nguyễn Hoàng Khánh 2.Dương Quốc Việt 3.Trang Thế Vinh.
Software Testing. System/Software Testing Error detection and removal determine level of reliability well-planned procedure - Test Cases done by independent.
1 Software Testing Strategies: Approaches, Issues, Testing Tools.
Software Quality Assurance and Testing Fazal Rehman Shamil.
Introduction to Software Testing Why Do We Test Software? Dr. Pedro Mejia Alvarez From Book: Introduction to Software Testing, P.Ammann&J.Offutt.
 Software Testing Software Testing  Characteristics of Testable Software Characteristics of Testable Software  A Testing Life Cycle A Testing Life.
Testing Overview Software Reliability Techniques Testing Concepts CEN 4010 Class 24 – 11/17.
What is a software? Computer Software, or just Software, is the collection of computer programs and related data that provide the instructions telling.
Introduction to Software Testing Maili Markvardt.
Cs498dm Software Testing Darko Marinov January 24, 2012.
Syndicate Members: 1. GC Muhammad Uzair 2. GC Umer Naveed Malik.
Laurea Triennale in Informatica – Corso di Ingegneria del Software I – A.A. 2006/2007 Andrea Polini XVII. Verification and Validation.
Testing Your Program: Input Space Partitioning
SOFTWARE TESTING Date: 29-Dec-2016 By: Ram Karthick.
Paul Ammann & Jeff Offutt
Module A Fundamentals of Testing
Introduction Edited by Enas Naffar using the following textbooks: - A concise introduction to Software Engineering - Software Engineering for students-
Testing Tutorial 7.
Software Quality Engineering
Software Verification and Validation
SOFTWARE TESTING OVERVIEW
Software Testing.
TQS - Teste e Qualidade de Software (Software Testing and Quality) Introduction To Software Testing Concepts João Pascoal.
SEVERITY & PRIORITY RELATIONSHIP
Software Quality Engineering
Input Space Partition Testing CS 4501 / 6501 Software Testing
Topic for Presentaion-2
Verification and Testing
Verification and Validation Overview
Quality Management Perfectqaservices.
Faults, Errors, Failures CS 4501 / 6501 Software Testing
BASICS OF SOFTWARE TESTING Chapter 1. Topics to be covered 1. Humans and errors, 2. Testing and Debugging, 3. Software Quality- Correctness Reliability.
Introduction Edited by Enas Naffar using the following textbooks: - A concise introduction to Software Engineering - Software Engineering for students-
Paul Ammann & Jeff Offutt
Introduction to Software Testing
Introduction to Software Testing
CS 1111 Introduction to Programming Fall 2018
Baisc Of Software Testing
(some of) My Research Engineering is about getting technology to do what it does well so humans can do what they do well Jeff Offutt Professor of Software.
CS310 Software Engineering Dr.Doaa Sami Khafaga
Summary.
Test Cases, Test Suites and Test Case management systems
Chapter 7 Software Testing.
Paul Ammann & Jeff Offutt
Presentation transcript:

Software Testing Introduction CS 4501 / 6501 Software Testing

Software is Everywhere

Bug? BUG Bug is used informally. Fault? Error? Or failure? “ ‘Bug’ – as such little faults and difficulties are called – show themselves, and months of anxious watching, study, and labor are requisite before commercial success – or failure – is certainly reached.” [Thomas Edison, 1878] [Did You Know? Edison Coined the Term “Bug”, http://theinstitute.ieee.org/tech-history/technology-history/did-you-know-edison-coined-the-term-bug, IEEE 2013] http://theinstitute.ieee.org/tech-history/technology-history/did-you-know-edison-coined-the-term-bug Bug is used informally. Fault? Error? Or failure? This course will try to use words that have precise, defined, and unambiguous meaning BUG

Fault, Error, and Failure Fault: a static defect in the software’s source code Cause of a problem Error: An incorrect internal state that is the manifestation of some fault Erroneous program state caused by execution of the defect Failure: External, incorrect behavior with respect to the requirements or other descriptions of the expected behavior Propagation of erroneous state to the program outputs We’ll revisit these terms in detail

Software Failures 2016: Nissan recalled 4 millions cars from the market due to software failure in the airbag sensory detectors. 2016: Information lost after clicking the back button while using TurboTax web software 2015: Bloomberg’s trading terminal failures forced the British government to postpone $4.4 billion debt sale 2014: Dropbox’s outage was due to a fault in a maintenance script 2012: Faults in a new Knight Capital’s trading software causes $440 millions 2003: Northeast blackout: The alarm system in the energy management system failed due to a software error and operators were not informed of the power overload in the system – affected 40 million people in 8 US states, 10 million people in Ontario, Canada 1999: NASA’s Mars lander crashed due to a unit integration fault 1997: Ariane 5 explosion: Exception-handling bug forced self-destruct on maiden flight (64-bit to 16-bit conversion), causing $370 millions

How Important is Testing?

Testing in the 21st Century Safety critical, real-time software Embedded software Enterprise applications Security Web Mobile Software testing is getting more important What are we trying to do when we test ? What are our goals ?

What is Software Testing? Testing = process of finding input values to check against a software (focus of this course) Debugging = process of finding a fault given a failure Test case consists of test values and expected results Test values (inputs) Program Actual results Expected results vs Testing is fundamentally about choosing finite sets of values from the input domain of the software being tested Given the test inputs, compare the actual results with the expected results

Validation and Verification (IEEE) Validation : The process of evaluating software at the end of software development to ensure compliance with intended usage Not done by developers, but by experts in the intended usage of the software Verification : The process of determining whether the products of a given phase of the software development process fulfill the requirements established during the previous phase Requires technical background on the software, normally done by developers at the various stages of development IV&V stands for “independent verification and validation”

Testing and SW Development Lifecycle Requirements Analysis Architectural Design Subsystem Detailed Implementation Acceptance Test System Integration Module Unit Validation Test Design Information Verification [AO, p.23]

Quality Checking and Quality Assurance Quality Checking (QC) Focus on defects identification Product-oriented Intend to make sure that results are as expected Quality Assurance (QA) Try to prevent defects Focus on processes that assure the quality is built-in Make sure that correct things are done in the correct way

Testing Goals Based on Test Process Maturity Beizer’s scale for test process maturity Level 0: There is no difference between testing and debugging Level 1: The purpose of testing is to show correctness Level 2: The purpose of testing is to show that the software does not work Level 3: The purpose of testing is not to prove anything specific, but to reduce the risk of using the software Level 4: Testing is a mental discipline that helps all IT professionals develop higher quality software [AO, p.9]

Level 0 – Debug Only? Level 0: Testing is the same as debugging Not distinguish between incorrect behavior and mistakes in the program Not help develop software that is reliable

Levels 1, 2 – Developer vs Tester? Level 1: Purpose is to show correctness (developer-biased view) Correctness is impossible to establish or demonstrate Level 2: Purpose is to show failure (tester-biased view) A negative view puts testers and developers into an adversarial relationship

Levels 3, 4 – “Mature” Testing Level 3: Purpose is to show the presence of failures There are risks when using software Testers and developers cooperate to reduce risk Level 4: Purpose is to increase quality of the software Testing should be an integral part of the development process Testers and developers cooperate to improve the software quality How mature is your testing? Are you at level 0, 1, 2, or 3? We hopes to teach you to become “change agents” (level 4)

Summary Testing is the most time consuming and expensive part of software development Not testing is even more expensive Having too little testing effort early increases the testing cost Planning for testing after develop is prohibitively expensive A tester’s goal is to eliminate faults as early as possible Testing improves software quality, reduce cost, and preserve customer satisfaction

What’s Next? Fault, error, Failure Reachability, Infection, Propagation, and Revealability (RIPR) model