Testing Overview References:

Slides:



Advertisements
Similar presentations
Object Oriented Analysis And Design-IT0207 iiI Semester
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.
DETAILED DESIGN, IMPLEMENTATIONA AND TESTING Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
1 Integration Testing CS 4311 I. Burnstein. Practical Software Testing, Springer-Verlag, 2003.
Testing and Quality Assurance
Annoucements  Next labs 9 and 10 are paired for everyone. So don’t miss the lab.  There is a review session for the quiz on Monday, November 4, at 8:00.
1 Software Engineering Lecture 11 Software Testing.
Testing in the Small (aka Unit Testing, Class Testing)
Chapter 9 Testing the System, part 2. Testing  Unit testing White (glass) box Code walkthroughs and inspections  Integration testing Bottom-up Top-down.
Software Testing. “Software and Cathedrals are much the same: First we build them, then we pray!!!” -Sam Redwine, Jr.
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.
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.
Types and Techniques of Software Testing
Chapter 13 & 14 Software Testing Strategies and Techniques
Software Quality Assurance Lecture #8 By: Faraz Ahmed.
Testing. Definition From the dictionary- the means by which the presence, quality, or genuineness of anything is determined; a means of trial. For software.
111 Testing Overview CS 4311 Frank Tsui, Orland Karam, and Barbara Bernal, Essential of Software Engineering, 3rd edition, Jones & Bartett Learning. Sections.
CS4311 Spring 2011 Verification & Validation Dr. Guoqiang Hu Department of Computer Science UTEP.
CMSC 345 Fall 2000 Unit Testing. The testing process.
Verification and Validation Overview References: Shach, Object Oriented and Classical Software Engineering Pressman, Software Engineering: a Practitioner’s.
1 ECE 453 – CS 447 – SE 465 Software Testing & Quality Assurance Instructor Kostas Kontogiannis.
Testing Basics of Testing Presented by: Vijay.C.G – Glister Tech.
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e (McGraw-Hill 2009). Slides copyright 2009 by Roger Pressman.1.
Introduction to Software Testing. Types of Software Testing Unit Testing Strategies – Equivalence Class Testing – Boundary Value Testing – Output Testing.
TESTING LEVELS Unit Testing Integration Testing System Testing Acceptance Testing.
Software Engineering Lecture # 1.
Software Engineering1  Verification: The software should conform to its specification  Validation: The software should do what the user really requires.
Software Testing and Quality Assurance 1. What is the objectives of Software Testing?
Software Testing Mehwish Shafiq. Testing Testing is carried out to validate and verify the piece developed in order to give user a confidence to use reliable.
Software Quality Assurance and Testing Fazal Rehman Shamil.
Dynamic Testing.
Testing Overview References: Pressman, Software Engineering: a Practitioner’s Approach, McGraw Hill Pfleeger, Software Engineering, Theory and Practice,
1 Phase Testing. Janice Regan, For each group of units Overview of Implementation phase Create Class Skeletons Define Implementation Plan (+ determine.
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.
System Testing 12/09. Hierarchy of Testing Testing Program Testing Top Down Bottom Up Integration TestingUnit Testing System Testing Big Bang Sandwich.
What is a software? Computer Software, or just Software, is the collection of computer programs and related data that provide the instructions telling.
Testing Overview References: Pressman, Software Engineering: a Practitioner’s Approach, McGraw Hill Pfleeger, Software Engineering, Theory and Practice,
Software Testing CS II: Data Structures & Abstraction
TQS - Teste e Qualidade de Software (Software Testing and Quality) Software Testing Concepts João Pascoal Faria
Software Testing Strategies for building test group
Software Testing.
CompSci 230 Software Construction
Overview Theory of Program Testing Goodenough and Gerhart’s Theory
Software Testing.
John D. McGregor Session 9 Testing Vocabulary
SOFTWARE TESTING OVERVIEW
TQS - Teste e Qualidade de Software (Software Testing and Quality) Introduction To Software Testing Concepts João Pascoal.
Verification and Validation Overview
Software engineering – 1
Chapter 18 Software Testing Strategies
Chapter 13 & 14 Software Testing Strategies and Techniques
John D. McGregor Session 9 Testing Vocabulary
Applied Software Implementation & Testing
UNIT-4 BLACKBOX AND WHITEBOX TESTING
John D. McGregor Session 9 Testing Vocabulary
Software Testing (Lecture 11-a)
Lecture 09:Software Testing
Introduction to Systems Analysis and Design
Static Testing Static testing refers to testing that takes place without Execution - examining and reviewing it. Dynamic Testing Dynamic testing is what.
Informatics 43 – April 28, 2016.
Chapter 10 – Software Testing
Integration Testing CS 4311
Test Case Test case Describes an input Description and an expected output Description. Test case ID Section 1: Before execution Section 2: After execution.
Software Testing “If you can’t test it, you can’t design it”
Software Testing COM /12/2019 Testing/Spring 98.
Chapter 11: Integration- and System Testing
Requirements Engineering
UNIT-4 BLACKBOX AND WHITEBOX TESTING
Software Testing Strategies
Chapter 13 & 14 Software Testing Strategies and Techniques 1 Software Engineering: A Practitioner’s Approach, 6th edition by Roger S. Pressman.
Presentation transcript:

Testing Overview References: Pressman, Software Engineering: a Practitioner’s Approach, McGraw Hill Pfleeger, Software Engineering, Theory and Practice, Prentice Hall J. McGregor and D. Sykes. A Practical Guide to Testing Object-Oriented Software, Addison-Wesley, 2001. I. Burnstein. Practical Software Testing, Springer-Verlag, 2003. 1209

Question How do you know your software works correctly?

Goals of testing: I want to show that my program is correct: it generates the right answer for every input.

How long will it take? Consider X+Y for 32-bit integers.

Example 2 A loop returns to A We want to count the number of paths The maximum number of iterations of the loop is 20 B C

Example 3 Consider testing the following function: The function fn shall take as input an integer value and return the integer part of the one number look ahead divided by 30,000. (The one number look ahead is simply the number one greater than the input.)

Example 4 Consider testing a Java compiler?

Limits of testing:

Goals of testing:

Cost Testing accounts for Microsoft employs one tester for each developer We want to reduce the cost How? Organize!

Levels of Software Testing Unit/Component testing Integration testing System Testing Acceptance Testing Installation Testing

Testing Phases: V-Model Requirements Specification System Specification System Design Detailed Design Acceptance Test Plan System Integration Test Plan Sub-system Integration Test Plan Unit code and Test Acceptance Test System Integration test Sub-system Integration test Service

Hierarchy of Testing Testing Ad hoc Program Testing System Testing Acceptance Testing Unit Testing Integration Testing Function Benchmark Properties Black Box Top Down Pilot Performance Equivalence Bottom Up Boundary Reliability Alpha Big Bang Decision Table Availability Beta Sandwich State Transition Security Use Case Usability Documentation Domain Analysis Portability White Box Capacity Control Flow Data Flow

Definitions-1 Test Case: a particular set of input data and the expected outcome Input d from some domain D where d  D Output r from some range R where r  R Specification: The definition of some function S that maps inputs to outputs: S(d) = r

Definitions-2 Implementation: The function P that some program implements that maps inputs to outputs: P(d) = r Failure: P(d) = r, but S(d)  r

Definitions-3 Test set T Finite set of test cases T is successful if every test in T produces the specified result Significant test case (set): a test case (set) with a high probability of detecting an error

Definitions-4 Test selection criterion C C is consistent if A set of test sets. We specify some condition that each of the test sets in C must satisfy, such as “has at least one positive and one negative number” C is consistent if for any two test sets satisfying C, T1  C and T2  C, T1 is successful if and only if T2 is All the test sets satisfying a criterion expose the same errors.

Definitions-5 Criterion C is complete if C1 is finer than C2 if whenever P is incorrect, some TC exposes the error TC | (t=(r,d)T | S (r,d)  (P(r, d))) C1 is finer than C2 if  T1C1 T2C2  T2  T1 For every test set satisfying C1 there is a smaller (subset) test set satisfying C2 C1 requires more test cases

Exercise C1 is more reliable than C2 if whenever P is incorrect, there is no test set T2 in C2 that causes P to fail but some T1 in C1 does not.

The problem with testing

Who Tests? Professional testers: Organize and run tests Analysts: involved in system requirements definition and specification System designers: understand proposed solution and solution’s constraints Implementers: Understand constraints associated with implementation Configuration management representative: arranges for changes to be made consistently across all artifacts

A good test: Has a reasonable probability of catching an error

Competent Programmer Hypothesis “We assume, as an article of faith, that the programmers are well trained, well supplied with the proper tools, and competent.”

Ad hoc Testing Most popular approach

Ad Hoc Testing Simple example (Kaner): “The program is designed to add two numbers, which you enter. Each number should be one or two digits. The program will echo your entries, then print the sum. Press <Enter> after each number. To start the program, type ADDER.”

Automate testing Do whenever possible. Design it for this. “A century ago the steam locomotive reached it’s peak. Fifty years before that intercity stagecoaches pulled by teams of horses had an outrider on the first horse to stabilize the team. Manual testing to me is like having such a rider at the front of a speeding locomotive.” Beizer.

Advice View testing as part of the development process Buy a tool and use it Testing is the last line of defense: Errors indicate there is a problem with the development process

Closing words “Testing is our last line of defense against bugs, not the first or only line of defense. When a bug is found by testing, it means that earlier phases of our software development process are wanting.” “I don’t see testing actually disappearing because the remaining bugs are always subtler and nastier.” Bezier