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.

Slides:



Advertisements
Similar presentations
Object Oriented Analysis And Design-IT0207 iiI Semester
Advertisements

Testing Relational Database
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.
Lecture 8: Testing, Verification and Validation
1 Integration Testing CS 4311 I. Burnstein. Practical Software Testing, Springer-Verlag, 2003.
SOFTWARE TESTING. INTRODUCTION  Software Testing is the process of executing a program or system with the intent of finding errors.  It involves any.
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.
System/Software Testing Error detection and removal determine level of reliability well-planned procedure - Test Cases done by independent quality assurance.
Software Quality Assurance Plan
Software Quality Assurance Inspection by Ross Simmerman Software developers follow a method of software quality assurance and try to eliminate bugs prior.
Testing Important to guarantee quality of software
CS351 © 2003 Ray S. Babcock Software Testing What is it?
Unit 251 Implementation and Integration Implementation Unit Testing Integration Integration Approaches.
Illinois Institute of Technology
Testing an individual module
Software Testing. “Software and Cathedrals are much the same: First we build them, then we pray!!!” -Sam Redwine, Jr.
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.
Types and Techniques of Software Testing
Software Testing & Strategies
Issues on Software Testing for Safety-Critical Real-Time Automation Systems Shahdat Hossain Troy Mockenhaupt.
BY RAJESWARI S SOFTWARE TESTING. INTRODUCTION Software testing is the process of testing the software product. Effective software testing will contribute.
Chapter 13 & 14 Software Testing Strategies and Techniques
Software Testing Verification and validation planning Software inspections Software Inspection vs. Testing Automated static analysis Cleanroom software.
System/Software Testing
Programinės Įrangos Testavimo Strategijos
CCSB223/SAD/CHAPTER141 Chapter 14 Implementing and Maintaining the System.
Software Testing. Recap Software testing – Why do we do testing? – When it is done? – Who does it? Software testing process / phases in software testing.
Testing. Definition From the dictionary- the means by which the presence, quality, or genuineness of anything is determined; a means of trial. For software.
Chapter 1: Introduction to Software Testing Software Testing
TESTING.
SOFTWARE TESTING STRATEGIES CIS518001VA : ADVANCED SOFTWARE ENGINEERING TERM PAPER.
CS 501: Software Engineering Fall 1999 Lecture 16 Verification and Validation.
CMSC 345 Fall 2000 Unit Testing. The testing process.
Software Testing Testing principles. Testing Testing involves operation of a system or application under controlled conditions & evaluating the results.
Lecture 11 Testing and Debugging SFDV Principles of Information Systems.
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.
 CS 5380 Software Engineering Chapter 8 Testing.
Testing Basics of Testing Presented by: Vijay.C.G – Glister Tech.
Software Testing Testing types Testing strategy Testing principles.
Dr. Tom WayCSC Testing and Test-Driven Development CSC 4700 Software Engineering Based on Sommerville slides.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 22 Slide 1 Software Verification, Validation and Testing.
Historical Aspects Origin of software engineering –NATO study group coined the term in 1967 Software crisis –Low quality, schedule delay, and cost overrun.
Sylnovie Merchant, Ph.D. MIS 161 Spring 2005 MIS 161 Systems Development Life Cycle II Lecture 5: Testing User Documentation.
TESTING LEVELS Unit Testing Integration Testing System Testing Acceptance Testing.
Topics Covered: Software testing Software testing Levels of testing Levels of testing  Unit testing Unit testing Unit testing  Integration testing Integration.
Software Engineering 2004 Jyrki Nummenmaa 1 BACKGROUND There is no way to generally test programs exhaustively (that is, going through all execution.
PRESENTER PRIYANKA GUPTA.  Testing the complete system with respect to requirements.  In System testing, the functionalities of the system are tested.
Software Engineering1  Verification: The software should conform to its specification  Validation: The software should do what the user really requires.
Software Engineering Saeed Akhtar The University of Lahore.
CSC 480 Software Engineering Test Planning. Test Cases and Test Plans A test case is an explicit set of instructions designed to detect a particular class.
1 Software Testing Strategies: Approaches, Issues, Testing Tools.
SOFTWARE TESTING. Introduction Software Testing is the process of executing a program or system with the intent of finding errors. It involves any activity.
Software Quality Assurance and Testing Fazal Rehman Shamil.
1 Object-Oriented Analysis and Design with the Unified Process Figure 13-1 Implementation discipline activities.
 Software Testing Software Testing  Characteristics of Testable Software Characteristics of Testable Software  A Testing Life Cycle A Testing Life.
HNDIT23082 Lecture 09:Software Testing. Validations and Verification Validation and verification ( V & V ) is the name given to the checking and analysis.
1 Phase Testing. Janice Regan, For each group of units Overview of Implementation phase Create Class Skeletons Define Implementation Plan (+ determine.
CMSC 2021 Software Development. CMSC 2022 Software Development Life Cycle Five phases: –Analysis –Design –Implementation –Testing –Maintenance.
SOFTWARE TESTING LECTURE 9. OBSERVATIONS ABOUT TESTING “ Testing is the process of executing a program with the intention of finding errors. ” – Myers.
Verification vs. Validation Verification: "Are we building the product right?" The software should conform to its specification.The software should conform.
Software Testing. SE, Testing, Hans van Vliet, © Nasty question  Suppose you are being asked to lead the team to test the software that controls.
Testing Tutorial 7.
Software Testing.
Verification and Testing
Lecture 09:Software Testing
Static Testing Static testing refers to testing that takes place without Execution - examining and reviewing it. Dynamic Testing Dynamic testing is what.
Software Engineering Lecture #14.
Test Case Test case Describes an input Description and an expected output Description. Test case ID Section 1: Before execution Section 2: After execution.
Presented by KARRI GOVINDA RAO ,
Presentation transcript:

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 uncover different classes of errors

The purpose of testing is to: Remove as many errors as possible from the product < protecting the user from loss of time, effort, and money < protecting the reputation of the software developer in the marketplace

Testing Recall < Testing cannot show the absence of errors; it can only show that errors are present! < As much as 50% of the development effort will be expended in testing

Purpose of testing phase w to affirm the quality of the product and indirectly the process w to find and eliminate errors w to validate that the software solves the original problem w to demonstrate that all specified functions are performed by the product w to estimate the operational reliability of the system

Testing In general testing is "bottom-up" But- Programming is "top-down"

Testing 1. Test small units in all possible ways to detect any errors 2. Combine them into units, testing both their detailed structure and their function 3. Concentrate on how software responds to the typical kind of operations that the user will require.

Phases of Testing 1. Unit testing 2. Integration testing 3. System testing 4. Regression testing

Testing: Error categories a) Those that merit immediate attention (they crash the system). b) Errors that need to be corrected before testing is complete but can be ignored during the immediate testing schedule. c) there may be errors that may be acceptable to the user when compared to the cost of correcting them at the moment--errors put off until future releases. d) errors that are non-reproducible

Testing = Error Location The importance of removing an error is proportional to its severity, the frequency with which it will occur, and the degree to which the customer will be aware of it.

Regression testing w Testing that occurs after software modifications are made. w When "corrections" are made the software must subjected to all of the tests it has passed to this point. WHY??

Regression testing can be very painful! Why?

Basic testing strategies w Structural testing – focuses on a UNIT of code. (Unit testing) w Functional testing – focuses on the interaction/interface between code components. (Integration testing) w Pragmatic testing – System testing Mimics the real world Tests the system as a whole.

Structural testing w Idea is to check all logical paths through a module w Commonly used during unit tests w View the software in terms of its detailed design and attempt to test it so that we certify the correct behavior of every statement, every decision or every path through the code

Testing Every statement, every decision or every path --- EVERY! ???

Structural Testing is - Very detail focused - Program-based testing - Tests for conformity to the detailed design - Microscopic view

Structural Testing: Test cases (data) are needed that test: w all logical conditions for both true and false values w loops should be executed over their entire range of values

Structural Testing: Test cases (data) are needed that test: w validity of internal data structures must be verified w everything should be checked at the boundaries w loops need to be tested at every execution, especially if there is a local variable that affects anything inside the loop

Structural Testing is never perfect! Structural testing cannot test all possible paths for all combinations of logic, because even a simple procedure there are too many paths -- still each paths should be executed at least one

Functional testing Focus is on INTERFACE between the units w Observe properties of a software until it conforms to specifications w Determine whether the overall purpose has been satisfied w Utilized during the integration tests

Functional testing w Macroscopic view w Focuses on functions specified for the product. Are functions implemented satisfactorily? w Specification-based testing w Tests the product for conformity at the specification level.

Functional testing How is this done? A set of inputs is supplied and the outputs are to be verified against the results expected under the terms of the specification

Pragmatic testing w Commonly used during systems testing w Attempts to model the actual usage that the software will encounter after it is released t the customer w Focuses on usability and reliability rather than universal correctness

General Goals of testing w Detection and elimination of errors w Prevention of additional errors during software modification w Validation of the product (Are we building the right product?) w Release of product on the scheduled date

Goals may be in conflict a) if we resolve to correct every error that testing uncovers, minor errors may lead to contract penalties or a lost market opportunity b) bowing to the schedule and hurrying testing to the point that we fail to detect and correct serious errors may incur other contract penalties or loss of reputation.

We need predetermined goals for the product being tested: How dependable must the product be? w medical software w word processing software w scheduling software

We need predetermined goals for the product being tested: How important is it to meet the schedule?

Testing w Software must be tested in a realistic setting w Software must be carefully and extensively tested in the same way that users are expected to use it

Alpha testing w Alpha testing occurs when the software has been written for a specific "client." w These systems are usually "revised" or "adapted" as part of the testing process until the client agrees that the system is an acceptable implementation of the system requirements.

Beta Testing: Broad Market Appeal Beta Testing involves delivering a system to a number of potential customers who agree to use the system. AND Report problems to developers After exposing the system to real-time real-use operation.

Beta Testing The System is then "adapted" and either beta tested again or put out for general sale.