Lecture 8: Testing, Verification and Validation

Slides:



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

Testing Relational Database
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 20 Slide 1 Chapter 20 Software Testing.
By Rick Clements Software Testing 101 By Rick Clements
Making the System Operational
Software Engineering COMP 201
Configuration management
1 Dr. Ashraf El-Farghly SECC. 2 Level 3 focus on the organization - Best practices are gathered across the organization. - Processes are tailored depending.
Software Testing Techniques
Chapter 14 Software Testing Techniques - Testing fundamentals - White-box testing - Black-box testing - Object-oriented testing methods (Source: Pressman,
Software Testing Technique. Introduction Software Testing is the process of executing a program or system with the intent of finding errors. It involves.
Software Engineering COMP 201
Software Testing Strategies
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.
Software testing.
Software Testing and Analysis. Ultimate goal for software testing Quality Assurance.
Defect testing Objectives
Testing Workflow Purpose
การทดสอบโปรแกรม กระบวนการในการทดสอบ
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software processes 2.
Lecture 6: Software Design (Part I)
Lecture 7: Software Design (Part II)
Lecture 5: Requirements Engineering
Chapter 10 Software Testing
SOFTWARE TESTING. Software Testing Principles Types of software tests Test planning Test Development Test Execution and Reporting Test tools and Methods.
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.
Testing Important to guarantee quality of software
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 23 Slide 1 Software testing.
Testing an individual module
Software Testing Verification and validation planning Software inspections Software Inspection vs. Testing Automated static analysis Cleanroom software.
Software Testing Content Essence Terminology Classification –Unit, System … –BlackBox, WhiteBox Debugging IEEE Standards.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 22 Slide 1 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.
Testing Basics of Testing Presented by: Vijay.C.G – Glister Tech.
Dr. Tom WayCSC Testing and Test-Driven Development CSC 4700 Software Engineering Based on Sommerville slides.
Black Box Testing Focuses in the functional requirements of the program It is not an alternative to white-box techniques It is a complementary approach.
INTRUDUCTION TO SOFTWARE TESTING TECHNIQUES BY PRADEEP I.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 22 Slide 1 Software Verification, Validation and Testing.
This chapter is extracted from Sommerville’s slides. Textbook chapter
Chapter 8 Lecture 1 Software Testing. Program testing Testing is intended to show that a program does what it is intended to do and to discover program.
Software Engineering 2004 Jyrki Nummenmaa 1 BACKGROUND There is no way to generally test programs exhaustively (that is, going through all execution.
Software Engineering1  Verification: The software should conform to its specification  Validation: The software should do what the user really requires.
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 Testing Software Testing  Characteristics of Testable Software Characteristics of Testable Software  A Testing Life Cycle A Testing Life.
Dynamic Testing.
HNDIT23082 Lecture 09:Software Testing. Validations and Verification Validation and verification ( V & V ) is the name given to the checking and analysis.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 23 Slide 1 Software testing.
This chapter is extracted from Sommerville’s slides. Textbook chapter 22 1 Chapter 8 Validation and Verification 1.
Testing and Evolution CSCI 201L Jeffrey Miller, Ph.D. HTTP :// WWW - SCF. USC. EDU /~ CSCI 201 USC CSCI 201L.
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.
1 Software Testing. 2 What is Software Testing ? Testing is a verification and validation activity that is performed by executing program code.
Testing Integral part of the software development process.
Software Testing.
Software Testing.
Software Testing.
Lecture on Black Box Testing
Verification & Validation
Software Testing (Lecture 11-a)
Lecture 09:Software Testing
Verification and Validation Unit Testing
Testing and Test-Driven Development CSC 4700 Software Engineering
Static Testing Static testing refers to testing that takes place without Execution - examining and reviewing it. Dynamic Testing Dynamic testing is what.
Software testing.
Chapter 10 – Software Testing
Test Case Test case Describes an input Description and an expected output Description. Test case ID Section 1: Before execution Section 2: After execution.
Presentation transcript:

Lecture 8: Testing, Verification and Validation Dr Valentina Plekhanova University of Sunderland, UK

Software Testing Fundamentals: Some Testing Terminology Faults - a mistake in the code that causes the software to not behave as expected (causes). Failures - the act of a product not behaving as expected - the manifestation of a fault (symptoms). Lecture 8 Valentina Plekhanova

Some Testing Terminology Validation - establishing the fitness of a software product for its use - "are we building the right product?" Verification - establishing the correspondence between the software and its specification - "are we building the product right?" Lecture 8 Valentina Plekhanova

Some Testing Terminology Test case - the collection of inputs, predicted results and execution conditions for a single test. Pass/fail criteria - decision rules used to determine whether a product passes or fails a given test. Test suite - a collection of test cases necessary to "adequately" test a product. Lecture 8 Valentina Plekhanova

Some Testing Terminology Test plan - a document describing the scope, approach, resources and schedule of intended testing activity - identifies features to be tested, the testing tasks, who will do each task, and any risks requiring contingency planning. Lecture 8 Valentina Plekhanova

Some Testing Terminology Bug report - a method of transmitting the occurrence of a discrepancy between actual and expected output to someone who cares for "follow-up" - also known as discrepancy report, defect report, problem report, etc. Lecture 8 Valentina Plekhanova

What is Software Testing? Process of executing a computer program and comparing the actual behaviour with the expected behaviour. The comparison is intended to detect deviations (if any) between the actual behaviour and the expected behaviour. Testing serves as a barrier to allowing low quality products from reaching the customer. Lecture 8 Valentina Plekhanova

Testing Objectives Testing is a process of executing a program with the intent of finding an error. A benefit of testing is that it demonstrates that the software appears to be working as stated in the specifications. Lecture 8 Valentina Plekhanova

Testing Objectives The data collected through testing can also provide an indication of the software's reliability and quality. But, testing cannot show the absence of defect -- it can only show that software defects are present. Functional Requirements and Non-functional Requirements must be tested. Lecture 8 Valentina Plekhanova

Software Testing is Not Debugging Testing establishes the existence of defects Debugging is concerned with locating and correcting these defects. Lecture 8 Valentina Plekhanova

software testing discovers unexpected behaviour; defect classification identifies the situation as a software error, a design error, a specification error, a testing error, etc. - if available, a "work-around" is identified; if a software error, then debugging is performed which tracks down the cause of the error, and attempts to fix it. Lecture 8 Valentina Plekhanova

The Testing Process Unit Testing Sub-System Testing System Testing Acceptance Testing or Alpha Testing Beta Testing Lecture 8 Valentina Plekhanova

The Testing Process: Major Stages Unit Testing: Individual components are tested to ensure that they operate correctly.  Module Testing: A module is a collection of dependent components such as an objects, procedures, and functions. A module encapsulates related components so can be tested without other system modules. Lecture 8 Valentina Plekhanova

The Testing Process Sub-System Testing: This phase involves testing collections of modules, which have been integrated into sub-system. The sub-system test process should concentrate on the detection of interface errors by rigorously exercising these interfaces. Lecture 8 Valentina Plekhanova

The Testing Process: System Testing System Testing: The testing process is concerned with finding errors, which normally result from unanticipated interactions between sub-systems and components. It is also concerned with validating that the system meets its functional and non-functional requirements. Lecture 8 Valentina Plekhanova

The Testing Process: Acceptance Testing Acceptance Testing: Acceptance testing often reveals errors and omissions in the system requirements definition [Sommerville]. Lecture 8 Valentina Plekhanova

The Testing Process Acceptance testing is sometimes called alpha testing. When a system is to be marked as a software product, a testing process called beta testing is often used. Lecture 8 Valentina Plekhanova

The Testing Process: Beta Testing Beta testing involves delivering a system to a number of potential customers who agree to use that system and to report problems to the system developers. Lecture 8 Valentina Plekhanova

The Testing Process: Regression Testing Errors in program components may be identified at the later stage of the testing process. Repairing program defects may introduce new defects so testing should be repeated after the system is modified. This is sometimes called regression testing [Sommerville]. Lecture 8 Valentina Plekhanova

White Box Testing [Sommerville] White box testing is an approach to testing where the tests are derived from knowledge of the software structure. Test cases can be derived that guarantee that all independent paths within a module have been exercised at least once; exercise all logical decisions on their true and false sides; execute all loops at their boundaries and within their operational bounds; exercise internal data structures to ensure their validity. Lecture 8 Valentina Plekhanova

Black Box Testing Black box testing attempts to derive sets of inputs that will fully exercise all the functional requirements of a system. It is not an alternative to white box testing. Lecture 8 Valentina Plekhanova

Black Box Testing incorrect or missing functions; interface errors; errors in data structures or external database access; performance errors; initialisation and termination errors. Lecture 8 Valentina Plekhanova

White Box & Black Box Testing White box testing should be performed early in the testing process, while black box testing tends to be applied during later stages. Lecture 8 Valentina Plekhanova

Tests are designed to answer the following questions: How is the function's validity tested? What classes of input will make good test cases? Is the system particularly sensitive to certain input values? How are the boundaries of a data class isolated? What data rates and data volume can the system tolerate? What effect will specific combinations of data have on system operation? Lecture 8 Valentina Plekhanova