1 Principles of testing TESTING BASICS: Basic principles of testing: Testing must be:  thorough  ongoing  developed with design  efficient most effective--independent.

Slides:



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

Software Testing Techniques
Software Testing Technique. Introduction Software Testing is the process of executing a program or system with the intent of finding errors. It involves.
Defect testing Objectives
Testing and Quality Assurance
SOFTWARE TESTING. INTRODUCTION  Software Testing is the process of executing a program or system with the intent of finding errors.  It involves any.
COMP 121 Week 7: Object-Oriented Design and Efficiency of Algorithms.
1 Software Engineering Lecture 11 Software Testing.
Software Failure: Reasons Incorrect, missing, impossible requirements * Requirement validation. Incorrect specification * Specification verification. Faulty.
November 2005J. B. Wordsworth: J5DAMQVT1 Design and Method Quality, Verification, and Testing.
Testing: General Requirements, DFT, Multilevel Testing Testing: General Requirements DFT Multilevel Testing-- System, Black Box, White Box Tests.
Testing: Who 3, What 4, Why 1, When 2, How 5 Lian Yu, Peking U. Michal Young, U. Oregon.
Informatics 43 – April 30, What is a test case? An input to a system, and the correct output. An “input” may be complex. Example: – What is an input.
A Brief Introduction to Software Design and Design Quality By Laura Leventhal.
Testing: General Requirements, DFT, Multilevel Testing Testing: General Requirements DFT Multilevel Testing-- System, Black Box, White or Glass Box Tests.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 23 Slide 1 Software testing.
Testing: General Requirements, DFT, Multilevel Testing Testing: General Requirements DFT Multilevel Testing-- System, Black Box, White Box Tests.
Embedded Systems: Hardware
Software Testing. “Software and Cathedrals are much the same: First we build them, then we pray!!!” -Sam Redwine, Jr.
1 Software Testing Techniques CIS 375 Bruce R. Maxim UM-Dearborn.
Black Box Software Testing
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 23 Slide 1 Software testing.
Systems Analysis and Design in a Changing World, Fifth Edition
Dillon: CSE470: QUALITY ASSURANCE1 Software Qualities Maintainer User Customer Good Documentation Readable Code Good Design Low Cost Portability Increased.
CMSC 345 Fall 2000 Unit Testing. The testing process.
1 SYS366 Lecture 1: Introduction to Systems. 2 What is Software Development? Software Development implies developing some software – but it does not involve.
INT-Evry (Masters IT– Soft Eng)IntegrationTesting.1 (OO) Integration Testing What: Integration testing is a phase of software testing in which.
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.
Embedded Systems: Testing. Testing needs to occur at many levels and at many stages in the development process. Testing is needed to verify adherence.
Software Life Cycle Requirements and problem analysis. –What exactly is this system supposed to do? Design –How will the system solve the problem? Coding.
The Systems Development Life Cycle
1 Note on Testing for Hardware Components. 2 Steps in successful hardware design (basic “process”): 1.Understand the requirements (“product’) 2.Write.
1 Ch. 1: Software Development (Read) 5 Phases of Software Life Cycle: Problem Analysis and Specification Design Implementation (Coding) Testing, Execution.
1 CMPT 275 High Level Design Phase Modularization.
Software Engineering Lecture 14: Testing Techniques and Strategies.
Testing: General Requirements, DFT, Multilevel Testing Testing: General Requirements DFT Multilevel Testing-- System, Black Box, White or Glass Box Tests.
Software Development Problem Analysis and Specification Design Implementation (Coding) Testing, Execution and Debugging Maintenance.
LECTURE 20 26/11/15. Summary - Testing ◦ Testing affects all stages of software engineering cycle ◦ One strategy is a bottom-up approach – class, integration,
LECTURE 19 23/11/15 Software Quality and Testing.
Software Engineering1  Verification: The software should conform to its specification  Validation: The software should do what the user really requires.
Software Testing. System/Software Testing Error detection and removal determine level of reliability well-planned procedure - Test Cases done by independent.
Agenda for today: The Unified Software Development Process: Test (Note) Test The purpose of testing Artifacts Test in the sw Life Cycle Workers Test procedure.
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.
Testing: General Requirements; DFT; Multilevel Testing.
Silicon Programming--Testing1 Completing a successful project (introduction) Design for testability.
1 Phase Testing. Janice Regan, For each group of units Overview of Implementation phase Create Class Skeletons Define Implementation Plan (+ determine.
Irwin/McGraw-Hill Copyright © 2000 The McGraw-Hill Companies. All Rights reserved Whitten Bentley DittmanSYSTEMS ANALYSIS AND DESIGN METHODS5th Edition.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 23 Slide 1 Software testing.
VI SEM CSE UNIT IV SOFTWARE ENGINEERING PROJECT MANAGEMENT TESTING STRATEGIES By Mr. Vaibhav V. Bhujade DEPARTMENT OF COMPUTER SCIENCE & ENGINEERING DMIETR,
Software Engineering Testing. These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e (McGraw-Hill 2009). Slides copyright.
C++ for Engineers and Scientists, Second Edition 1 Problem Solution and Software Development Software development procedure: method for solving problems.
The information systems lifecycle Far more boring than you ever dreamed possible!
Embedded Systems: Testing. Combinational Logic Main issues in testing embedded systems hardware: The world is ANALOG, not digital; even in designing.
SOFTWARE TESTING LECTURE 9. OBSERVATIONS ABOUT TESTING “ Testing is the process of executing a program with the intention of finding errors. ” – Myers.
11 Systems Analysis and Design in a Changing World, Fifth Edition.
Outline System diagram Goal Schedule System Diagram RamDisk Flash Memory HardDisk Interface (Virtualization) Input (Configurations, Trace ) Input.
CSE 219 Final exam review.
Software Testing.
Software Testing.
Software Testing Techniques
Software Engineering (CSI 321)
Software Testing An Introduction.
Introduction to Software Testing
How do we convince people that in programming simplicity and clarity —in short: what mathematicians call "elegance"— are not a dispensable luxury, but.
Software testing.
The purpose of testing Artifacts Test in the sw Life Cycle Workers
CS240: Advanced Programming Concepts
Informatics 43 – April 28, 2016.
Software Testing COM /12/2019 Testing/Spring 98.
Software Testing Techniques
Presentation transcript:

1 Principles of testing TESTING BASICS: Basic principles of testing: Testing must be:  thorough  ongoing  developed with design  efficient most effective--independent testing exhaustive test--usually not possible

2 Design for testability (DFT) design for testability (DFT)--what makes software "testable"?  operability: few bugs, incremental test  observability: you can see the results of the test  controllability: you can control state + input to test  decomposability: you can decompose into smaller problems and test each separately  simplicity: you choose the “simplest solution that will work”  stability: same test will give same results each time  understandability: you understand code, inputs, and outputs

3 Types of testing Types of testing:  white box--"internals” (also called "glass box")  black box--"interfaces” (also called "behavioral")  system--”functionality” (can be based on specs, use cases)  application-specific-- GUIs Client/Server Real-time Documentation/help

4 Testing strategies testing strategies: verification--functions correctly implemented validation--we are implementing the correct functions (according to requirements)

5 Spiral design/testing strategy A general design/testing strategy can be described as a "spiral”: requirements  design  code system test  integ. test  unit test (system) (black (white box) box) when is testing complete? One model: "logarithmic Poisson model” f(t)=(1/p)ln(I 0 pt+1) f(t) = cumulative expected failures at time t I 0 = failures per time unit at beginning of testing p = reduction rate in failure intensity START END Requirements/System Tests Design/Integration Tests Code/Unit Tests

6 OO testing strategy OO testing: emphasis is on interfaces use UML tools to support testing strategies and development of test cases --system tests: use cases; quality measurements --black box tests: ER diagrams, object message diagrams, dataflow and state diagrams --white box tests: class and state diagrams, CRC cards

7 Good, Bad, and Successful Tests good test: has a high probability of finding an error ("bad test": not likely to find anything new) successful test: finds a new error most effective testing: by an "independent” third party

8 Black box testing--example Examples: CarGasStation: station P company employee Denotes link that leads to one or more test cases

9 Black box testing guidelines General guidelines: test BOUNDARIES test output also choose "orthogonal” cases if possible

10 Using specifications for system tests System tests should verify that specifications have been met For UML-based strategy: each use case ---> one or more system tests each quality / performance requirement  one or more system tests Additional qualitative or quantitative tests (not from use cases): examples: is system “user-friendly”? are timing requirements met? are available resources sufficient?

11 Using specifications for system tests Example: 1. Place call 2. Receive call 3. Use scheduler Cellular network User Associated sequence diagrams Associated test cases use cases Tests verify use case supported