Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Welcome
Welcome to the Software Testing and Quality
Assurance course
Demanding, challenging and rewarding course
A glimpse of what software testing in theory and
practice is all about
Course website:
www.student.cs.uwaterloo.ca/~cs447/Winter2008
How to reach me
Paulo Alencar
E-mail: palencar@cs.uwaterloo.ca
Phone extension: 33944
Office hours:
Friday 1:00 2:00pm;
2:00 3:00pm (by appointment)
DC 2597B
Course description
Software Testing Basics
Course components
Lectures - 3
SE 465 E2 1303
11:30-12:20 MWF
ECE 453 / CS 447 E2 1303
4:30 5:20 MWF
Tutorials and Discussions
The schedule is on the website
Project
Evolution
Testing
5
Course Resources
Schedule
Lecture notes & slides
Recommended book
Software Testing A Craftsman's Approach
2nd edition,
Paul C. Jorgensen,
CRC Press
Past exams
Project description
Grade allocation
Course news system
6
Project component
Design and implement
software enhancements
and testing
Groups of 4
30% of total grade
Two parts:
System Enhancements
Requirements
Design
Implementation
Testing
Black Box
White Box
7
Course outline
Unit 1: Overview of Software Testing (Chapter 1-2)
Unit 2: Mathematics for S/W Testers (Chapters 3-4)
Unit 3: Black Box / Functional Testing (Chapters 5-8)
Unit 4: White Box / Structural Testing (Chapters 9-11)
Unit 5: Integration and System Testing (Chapter 12-13)
Unit 6: Soft. Reliability and Quality Assurance Basics
Unit 7: Software Reengineering and Evolution Basics
Unit 8: Project Planning and Management
Course Grade
Component
Weight
Project
Midterm Exam
Final Exam
30%
20%
50%
10
What to do now
(perhaps) Adjust course registration
UW Bookstore for textbook
Software Testing - A Craftsman's Approach
2nd edition,
Paul C. Jorgensen,
CRC Press
12
Motivation
Software problems and related faults:
Ariane 5 rocket cost $500M
Data conversion (64-bit to 16-bit format)
Therac 25 cost 6 lives
Overdosing patients during radiation
Mars missions orbital explores & polar lander cost $300M
Mixture of pounds and kilograms
NASA Mariner 1 probe
Period instead of a comma in FORTRAN do-loop
AT&T long distance service fails for 9 hours
Wrong break statement in C-code
USS Yorktow cruiser
Input division by zero
13
Software Lifecycle
Requirements phase
Analysis phase
Design phase (System and Object)
Implementation phase
Testing phase
Integration phase
Maintenance phase
Retirement
14
Analysis
Expressed in
Terms Of
System
Design
Structured
By
Object
Design
Implemen
tation
Implemented
By
Realized By
Verified
By
class...
class...
class...
Use Case
Model
Applicatio
Subsystems
n
Domain
Objects
Testing
Solution
Domain
Objects
Source
Code
?
class.... ?
Test
Cases
15
www.reactive-systems.com/esda-glossary.msp
16
A Testing Cycle
Although testing varies between organizations, there is a cycle
to testing:
1. Requirements Analysis: Testing should begin in the requirements
phase of the software life cycle (SDLC).
2. Design Analysis: During the design phase, testers work with
developers in determining what aspects of a design are testable and
under what parameter those testers work.
3. Test Planning: Test Strategy, Test Plan(s), Test Bed creation.
4. Test Development: Test Procedures, Test Scenarios, Test Cases, Test
Scripts to use in testing software.
5. Test Execution: Testers execute the software based on the plans and
tests and report any errors found to the development team.
6. Test Reporting: Once testing is completed, testers generate metrics
and make final reports on their test effort and whether or not the
software tested is ready for release.
7. Retesting the Defects
17
19
21
Summary
Testing is an important part of the Software
Lifecycle
Highly technical and challenging
It is affected by the selected process
Quality Assurance is paramount both for mission
critical and non-critical systems
Software Evolution aims to keep systems
operational when environment changes occur
22