Home
Add Document
Sign In
Create An Account
Sommerville Chapter 8 Software Testing: Definitions and Fundamentals. Slides from Prof. Mats Heimdahl
Sommerville Chapter 8 Software Testing: Definitions and Fundamentals Slides from Prof. Mats Heimdahl Announcements Homework 3 handout will be a...
Author:
Sheila Waters
2 downloads
0 Views
168KB Size
Report
Download PDF
Recommend Documents
Chapter 8 Software Testing. Chapter 8 Software testing
Software Testing. Chapter 16
2012. Topics covered. Software testing and inspection Development testing Test-driven development Release testing. Chapter 8 Software testing
Software evolution. Objectives. Topics covered. Sommerville Chapter 21
2015. Chapter 8 Software Testing. Development testing Test-driven development Release testing User testing
Adapted from Ian Sommerville
Chapter 8: Hypothesis Testing
Chapter 8 Testing hypotheses
Chapter 8: Hypothesis Testing
Chapter 8 Hypothesis Testing
Chapter 8 Hypothesis Testing
Chapter 8: Hypothesis Testing
Chapter 14 Software Testing Techniques
Chapter 13 Software Testing Strategies
Chapter 8. Prof. Ishikawa and Quality Control
Version Control. *Slides are modified from Prof. Necula from CS169
Chapter 8. BCH Codes. 8.1 Definitions
SOFTWARE TESTING. Software Testing - II
Software Testing. Testing types. Software Testing
CHAPTER 14 SOFTWARE TESTING TECHNIQUES. Overview
Couples HIV Counselling and Testing. PowerPoint Slides
Chapter 8: Nutrition LEARNING OBJECTIVES KEY TERMS AND DEFINITIONS
Software Introduction and Testing
Chapter 6. The Fundamentals of Drug Testing. Paul Cary, M.S
Sommerville Chapter 8
Software Testing: Definitions and Fundamentals
Slides from Prof. Mats Heimdahl
Announcements Homework
3 handout will be available
later today. Week
7 lab starts Monday. You can drop in to any one of the sessions next week.
Topics for Today Some
definitions
Let’s get the language right
What
is a test?
Testing
strategies
How do we tackle a testing project
Verification vs. Validation Verification: ?????
Validation: ?????
Verification and Validation: IEEE Verification The process of evaluating a system or
component to determine whether the products…satisfy the conditions imposed… Validation The process of evaluating a system or
component…to determine whether it satisfies specified requirements.
Verification and Validation: Kaner Verification Checking a program against the most closely
related design documents or specifications Validation Checking the program against the published
user or system requirements
Verification and Validation: Myers Verification An attempt to find errors by executing a
program in a test or simulated environment Validation An attempt to find errors by executing a
program in a real environment
Verification vs. Validation: Right Definition
Verification: “are we building the product right?” The software should conform to its specification
Validation: “are we building the right product?” The software should do what the user really requires
Validation and Verification Validation: Are we building the right product? Implements ?
Customer Requirements
Software
Verification: Are we building the product right? Implements ?
Specification
Implementation
Dynamic and Static Verification Dynamic
V&V
Concerned with exercising and observing product
behavior Testing
Static
V&V
Concerned with analysis of the static system
representation to discover problems Proofs Inspections
Static and Dynamic V&V Static Verification
Requirements Specification
Prototype
High-Level Design
Formal Specification
Detailed Design
Program
Dynamic Evaluation
Definitions of Testing The
process of executing a program (or part of a program) with the intention of finding errors (Myers, via Humphrey)
The
purpose of testing is to find errors
Testing is the process of trying to discover every
conceivable fault or weakness in a work product (Myers, via Kit) The
process of searching for errors (Kaner)
What is a Test? Test Cases Test Data
Software under Test
Output Correct result?
Oracle
Test Data and Test Cases Test
data
Inputs which have been devised to test the
system Test
cases
Inputs to test the system and the predicted
outputs from these inputs if the system operates according to its specification
Bugs? What is That? Failure An execution that yields an erroneous result
Fault The source of the failure
Error The mistake that led to the fault being
introduced in the code
Axiom of Testing
“Program testing can be used to show the presence of bugs, but never their absence.” ●
Dijkstra, 1969
Black and White Box Black
box testing:
Designed without knowledge of the program’s
internal structure and design Based on functional requirements
White
box testing:
Examines the internal design of the program Requires detailed knowledge of its structure
The V & V Process Is
a whole life-cycle process
V & V must be applied at each stage in the
software process Has
two principal objectives
The discovery of defects in a system The assessment of whether or not the system
is usable in an operational situation
The V-Model of Development Requirements Specification
Acceptance Test Plan
System Specification
System Design
System Integration Test Plan
Detailed Design
Sub-system Integration Test Plan
Module and Unit Code and Test
Unit Test Plan
Service
Acceptance Test
System Integration Test
Sub-system Integration Test
Testing Stages Unit
testing
Testing of individual components
Module
testing
Testing of collections of dependent components
Sub-system
testing
Testing collections of modules integrated into sub-systems
System
testing
Testing the complete system prior to delivery
Acceptance
testing
Testing by users to check that the system satisfies
requirements Sometimes called alpha and beta testing
V Graph Requirements Analysis
System
High-Level Design
Integration
Low-Level Design
Unit
Coding
Unit
Delivery Maintenance
Acceptance Regression
Types of Testing Statistical
testing
Tests designed to reflect the frequency of user
inputs Used for reliability estimation
Defect
testing
Tests designed to discover system defects A successful defect test is one which reveals
the presence of defects in a system
Testing Strategies Testing
strategies are ways of approaching the testing process
Different
strategies may be applied at different stages of the testing process
Strategies
covered
Top-down testing Bottom-up testing Back-to-back testing
Incremental Testing
A
T1
A
T1
T2 T2
T2
A
T1
B
B T3
T3
B T3
C An integration testing strategy in which you test subsystems in isolation, and then continue testing as you integrate more and more subsystems
C
T4
T4 T5
D
Top-down testing Level 1
Testing Sequence
Level 2
Level-2 Stubs
Level-3 Stubs
Level 1
Level 2
Level 2
Level 2
Top-Down Testing Start
with the high-levels of a system and work your way downwards
Testing
strategy which is used in conjunction with top-down development
Finds
architectural errors
May
need system infrastructure before any testing is possible
May
be difficult to develop program stubs
Bottom-Up Testing Test Drivers Testing Sequence
Level N-1
Level N-1
Level N-1
Test Drivers
Level N
Level N
Level N
Level N
Level N
Bottom-Up Testing Necessary
for critical infrastructure components
Start
with the lower levels of the system and work upward
Needs
test drivers to be implemented
Does
not find major design problems until late in the process
Appropriate
for object-oriented systems
Create Scaffolding Goal To setup the environment for executing the test D R I V E R
initialization of non-local variables initialization of parameters activation of the unit
PROGRAM UNIT
S T U B
“templates” of modules used by the unit (functions called by the unit) “templates” of any other entity used by the unit
ORACLE check the correspondence between the produced and the expected result
Problems and Tradeoffs effort in test execution and regression testing
poorly designed drivers/stubs low effort in development high effort in test execution and regression testing
high effort in development low effort in test execution and regression testing
well designed drivers/stubs
effort in developing drivers/stubs
Back-to-Back Testing Test Data
Program Version A
Program Version B
Result Comparison Difference Report
Who Should Test?
Developer Understands the system But, will test gently And, is driven by deadlines
Independent tester Must learn system But, will attempt to break it And, is driven by “quality”
Axioms of Testing “As
the number of detected defects in a piece of software increases, the probability of the existence of more undetected defects also increases”
“Assign
your best programmers to testing”
“Exhaustive
testing is impossible”
Axioms of Testing “You
cannot test a program completely”
“Even
if you do find the last bug, you’ll never know it”
“It
takes more time than you have to test less than you’d like”
“You
will run out of time before you run out of test cases”
We Have Learned Test
definitions and language
Testing
activities include unit testing, module testing, sub-system testing, integration testing and acceptance testing
Testing
should be scheduled as part of the planning process Adequate resources must be made available
Testing
strategies include top-down testing, bottom-up testing, and back-to-back testing
Some
axioms about testing
Suggest Documents
Chapter 8 Software Testing. Chapter 8 Software testing
Read more
Software Testing. Chapter 16
Read more
2012. Topics covered. Software testing and inspection Development testing Test-driven development Release testing. Chapter 8 Software testing
Read more
Software evolution. Objectives. Topics covered. Sommerville Chapter 21
Read more
2015. Chapter 8 Software Testing. Development testing Test-driven development Release testing User testing
Read more
Adapted from Ian Sommerville
Read more
Chapter 8: Hypothesis Testing
Read more
Chapter 8 Testing hypotheses
Read more
Chapter 8: Hypothesis Testing
Read more
Chapter 8 Hypothesis Testing
Read more
Chapter 8 Hypothesis Testing
Read more
Chapter 8: Hypothesis Testing
Read more
Chapter 14 Software Testing Techniques
Read more
Chapter 13 Software Testing Strategies
Read more
Chapter 8. Prof. Ishikawa and Quality Control
Read more
Version Control. *Slides are modified from Prof. Necula from CS169
Read more
Chapter 8. BCH Codes. 8.1 Definitions
Read more
SOFTWARE TESTING. Software Testing - II
Read more
Software Testing. Testing types. Software Testing
Read more
CHAPTER 14 SOFTWARE TESTING TECHNIQUES. Overview
Read more
Couples HIV Counselling and Testing. PowerPoint Slides
Read more
Chapter 8: Nutrition LEARNING OBJECTIVES KEY TERMS AND DEFINITIONS
Read more
Software Introduction and Testing
Read more
Chapter 6. The Fundamentals of Drug Testing. Paul Cary, M.S
Read more
×
Report "Sommerville Chapter 8 Software Testing: Definitions and Fundamentals. Slides from Prof. Mats Heimdahl"
Your name
Email
Reason
-Select Reason-
Pornographic
Defamatory
Illegal/Unlawful
Spam
Other Terms Of Service Violation
File a copyright complaint
Description
×
Sign In
Email
Password
Remember me
Forgot password?
Sign In
Login with Google
Login with Facebook