Software Engineering Module 1 -Components Teaching unit 3 – Advanced development Ernesto Damiani University of Bozen- Bolzano Lesson 4 – Software Testing.

Slides:



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

Lecture 8: Testing, Verification and Validation
Testing and Quality Assurance
CompSci 230 Software Design and Construction Software Quality 2014S2 Black box testing.
1 Software Engineering Lecture 11 Software Testing.
Exam 1 Review u Scores Min 30 Max 96 Ave 63.9 Std Dev 14.5.
Software Testing and Quality Assurance
SIM5102 Software Evaluation
Chapter 1 Software Engineering. Homework ► Read Section 2.2 (pages 79-98) ► Answer questions: ► 7, 8, 11, 12, & 13 on page 134. ► Answer on paper, hand.
Copyright by Scott GrissomCh 1 Software Development Slide 1 Software Development The process of developing large software projects Different Approaches.
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.
Black Box Software Testing
1 Functional Testing Motivation Example Basic Methods Timing: 30 minutes.
CSCI-6961/ECSE-6780: Software Engineering II Class: Mondays and Thursdays 4-5:20 pm, Carnegie 201 Instructor: Ana Milanova Office:
Software Testing Content Essence Terminology Classification –Unit, System … –BlackBox, WhiteBox Debugging IEEE Standards.
CPIS 357 Software Quality & Testing
Software is:  Computer programs, procedures, and possibly associated documentation and data relates to the operation of a computer system. [IEEE_Std_ ]
Introduction to Software Quality Assurance
Software Testing Testing principles. Testing Testing involves operation of a system or application under controlled conditions & evaluating the results.
CS 430/530 Formal Semantics Paul Hudak Yale University Department of Computer Science Lecture 1 Course Overview September 6, 2007.
Vladimir Misic: Design111:43:34 AM Software design.
Software Development Cycle What is Software? Instructions (computer programs) that when executed provide desired function and performance Data structures.
16 October Reminder Types of Testing: Purpose  Functional testing  Usability testing  Conformance testing  Performance testing  Acceptance.
Safety Critical Systems 5 Testing T Safety Critical Systems.
Software Testing. Software testing is the execution of software with test data from the problem domain. Software testing is the execution of software.
Presented by: Ritesh Jain Date: 16-Jun-05 Software Quality Testing.
1 Introduction to Software Testing. Reading Assignment P. Ammann and J. Offutt “Introduction to Software Testing” ◦ Chapter 1 2.
Software Testing Definition Software Testing Module ( ) Dr. Samer Odeh Hanna.
Testing software Team Software Development Project.
Triangle A polygon with three sides and three angles. A triangle can be names by its’ side lengths and angles. – Side lengths: isosceles, equilateral,
Exam 1 Review u Scores Min 30 Max 96 Ave 63.9 Std Dev 14.5.
Com1040 Systems Design and Testing Part II – Testing (Based on A.J. Cowling’s lecture notes) LN-Test1+2: Introduction to Testing Marian Gheorghe ©University.
CPSC 873 John D. McGregor Session 9 Testing Vocabulary.
Testing. Today’s Topics Why Testing? Basic Definitions Kinds of Testing Test-driven Development Code Reviews (not testing) 1.
CSC 480 Software Engineering Testing - I. Plan project Integrate & test system Analyze requirements Design Maintain Test units Implement Software Engineering.
1 Software Quality Assurance COMP 4004 Notes Adapted from S. Som é, A. Williams.
Forensic Software Engineering: Are Software Failures Symptomatic of Systemic Problems? Chris Johnson, University of Glasgow My name is Elisabeth.
TRIANGLES AND TYPES OF TRIANGLES. A triangle has three sides.
Types of Triangles. Equilateral Triangle All sides are the same length and all the angles are the same length.
Approaches to ---Testing Software Some of us “hope” that our software works as opposed to “ensuring” that our software works? Why? Just foolish Lazy Believe.
CPSC 871 John D. McGregor Module 8 Session 1 Testing.
 Software Testing Software Testing  Characteristics of Testable Software Characteristics of Testable Software  A Testing Life Cycle A Testing Life.
1 test10b Software Testing Necessary to measure and certify quality in software.
HNDIT23082 Lecture 09:Software Testing. Validations and Verification Validation and verification ( V & V ) is the name given to the checking and analysis.
What is a software? Computer Software, or just Software, is the collection of computer programs and related data that provide the instructions telling.
Testing Integral part of the software development process.
1 Advanced Computer Programming Project Management: Basics Copyright © Texas Education Agency, 2013.
CPSC 372 John D. McGregor Module 8 Session 1 Testing.
Thanks to Atif Memon from UMD for disaster examples
Triangles.
Subject Name: Software Testing Subject Code: 10CS842 Prepared By:
Testing Tutorial 7.
Thanks to Atif Memon from UMD for disaster examples
John D. McGregor Session 9 Testing Vocabulary
Approaches to ---Testing Software
Triangles.
Input Space Partition Testing CS 4501 / 6501 Software Testing
Software Testing Testing process, Design of test cases.
Verification and Validation Overview
John D. McGregor Session 9 Testing Vocabulary
Software Quality Engineering
John D. McGregor Session 9 Testing Vocabulary
Thanks to Atif Memon from UMD for disaster examples
Thanks to Atif Memon from UMD for disaster examples
Types of Triangles Thursday, 11 April 2019.
Types of Triangles Thursday, 11 April 2019.
Front of Flipbook Right Triangles Acute Triangles Obtuse Triangles
TYPES OF TESTING.
Equilateral – equal All sides are equal length.
Software Quality Course 1 Introduction.
Presentation transcript:

Software Engineering Module 1 -Components Teaching unit 3 – Advanced development Ernesto Damiani University of Bozen- Bolzano Lesson 4 – Software Testing and Verification

Why test? Examples List of 107 software failures that should have been caught by testing – One vital consideration from Myers’ book “The Art of Software Testing” Mars Climate Orbiter Mars Polar Lander Kangaroos … with missiles

Publicized Software Errors (1) 1.The Mars Climate Orbiter crashed in September 1999 because of a "silly mistake": wrong units in a program. 2.The 1988 shooting down of the Airbus 320 by the USS Vincennes was attributed to the cryptic and misleading output displayed by the tracking software. 3.Death resulted from inadequate testing of the London Ambulance Service software.

Publicized Software Errors (2) 4.Several deaths of cancer patients were due to overdoses of radiation resulting from a race condition between concurrent tasks in the Therac-25 software. 5.Errors in medical software have caused deaths. Details in B.W. Boehm, "Software and its Impact: A Quantitative Assessment," Datamation, 19(5), 48-59(1973). 6.An Airbus A320 crashes at an air show. 7.A China Airlines Airbus Industrie A300 crashes on April 26, 1994 killing 264. Recommendations include software modifications.

Why We Test Testing is a costly activity We want to recover some of that cost We do this by adding value to, or raising the quality of, the program or system we are testing Thus: testing is the process of executing a program with the intent of finding errors.

Mars Orbiter

Mars Polar Lander

A Perspective on Testing (1) Basic Definitions Error: a mistake in design, coding, requirements, even testing Fault: the representation of the error Failure: what happens when the fault “executes” Incident: the user-visible manifestation of the failure

A Perspective on Testing (2) More Definitions Testing: the process of finding errors and of validating the program/system Test Case: a test case has inputs, steps, and outputs, as well as expected results Process: test plan, write test cases, run the test cases, evaluate results

A Perspective on Testing Test Cases “Testing entails establishing the environment, providing the inputs (running the test case), observing outputs, and comparing to expected outputs.” (a paraphrase) What’s missing here (may be the hardest step!)? Test Cases are developed, reviewed, used, managed, and saved, and hopefully reused!

Specified and Programmed Behaviors

Specified, Programmed, and Tested Behaviors

A Perspective on Testing (1) Identifying Test Cases Functional Testing –The program is a function that maps input values to output values –The only information used is the software specification –In our Venn diagram, the Functional Test Cases are a subset of S

A Perspective on Testing (2) Identifying Test Cases Structural Testing –Uses the information inside the “black box” – the actual implementation –In our Venn diagram, the Structural Test Cases are a subset of P. –Main method: Test coverage metrics

A Perspective on Testing (3) Identifying Test Cases Comparing the two (Functional vs Structural) –“If all specified behaviors have not been implemented, structural test cases will never be able to recognize this. –Conversely, if the program implements behaviors that have not been specified, this will never be revealed by functional test cases.”

A Perspective on Testing (4) Levels of Testing Requirements Specification Preliminary Design Detailed Design Coding Unit Testing Integration Testing System Testing

Testing a Program (1) A program that we want to test reads in 3 integer values; these 3 values are interpreted as the lengths of the sides of a triangle. The program prints a message that states whether the triangle is –Equilateral (all 3 sides equal) –Isosceles (exactly 2 of the 3 sides are equal) –Scalene (all 3 sides are of a different length)

Testing a Program (2) On a sheet of paper, write specific sets of test data that you feel would adequately test this program. You don’t have to put your name on the paper. You have 10 minutes maximum. FINE