...

Software Testing 1 CA267 Ray Walshe 2015

by user

on
Category: Documents
12

views

Report

Comments

Transcript

Software Testing 1 CA267 Ray Walshe 2015
Software Testing
CA267 Ray Walshe 2015
1
Who I Am
• Ray Walshe
– E-mail: [email protected]
– www.computing.dcu.ie/~ray
CA267 Ray Walshe 2015
2
Outline for today
Introduction
• Course description
• Software Testing Basics
CA267 Ray Walshe 2015
3
Course Resources
• Lectures Weeks 1 -12
– Mon 10:00am
– Tue 13:00pm
• Schedule
• Lecture notes & slides
• Recommended book
– Software Testing A Craftsman's Approach
2nd edition,
Paul C. Jorgensen,
CRC Press
• Past exams
• Project description
CA267 Ray Walshe 2015
4
Project component
• Design and implement
software enhancements and
testing
• Groups of 3/4
• 25% of total grade
• Two parts:
– Develop a test plan
– Implement your test plan
CA267 Ray Walshe 2015
5
Goals of this course
• Become familiar with software testing and quality
assurance concepts and methods
• Learn how to design and plan software testing
activities
• Experience software testing in a project that uses
several components
 Note:
– “Scratching the surface of software testing and QA”
– “Fitting you to become an amateur software tester”
CA267 Ray Walshe 2015
6
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)
CA267 Ray Walshe 2015
7
Course Grade
Component
Weight
Project
Final Exam
25%
75%
CA267 Ray Walshe 2015
8
Outline for today
• Introduction
• Course description
Software testing basics
CA267 Ray Walshe 2015
9
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
CA267 Ray Walshe 2015
10
Software Lifecycle
•
•
•
•
•
•
•
•
Requirements phase
Analysis phase
Design phase (System and Object)
Implementation phase
Testing phase
Integration phase
Maintenance phase
Retirement
CA267 Ray Walshe 2015
11
Software Lifecycle Activities
...and their models
Requirements
Elicitation
Analysis
Expressed in
Terms Of
System
Design
Structured By
Object
Design
Implementation
Implemented
By
Realized By
Verified
By
class...
class...
class...
Use Case
Model
CA267 Ray Walshe 2015
Application
Subsystems
Domain
Objects
Testing
Solution
Domain
Objects
Source
Code
?
class.... ?
Test
Cases
12
Software Testing: Definition
“The process of devising a set of inputs to a given piece of
software that will cause the software to exercise some portion
of its code.
The developer of the software can then check that the results
produced by the software are in accord with his or her
expectations.”
www.reactive-systems.com/esda-glossary.msp
CA267 Ray Walshe 2015
13
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
CA267 Ray Walshe 2015
14
Some Software Testing Objectives
•
•
•
•
•
•
•
Find as many defects as possible.
Find important problems fast.
Assess perceived quality risks.
Advise about perceived project risks.
Advise about perceived quality.
Certify to a given standard.
Assess conformance to a specification
(requirements, design, or product claims).
CA267 Ray Walshe 2015
15
Software Quality Assurance: Definition
“The function of software quality that assures that the
standards, processes, and procedures are appropriate for
the project and are correctly implemented.”
www.hq.nasa.gov/office/codeq/software/umbrella_defs.htm
CA267 Ray Walshe 2015
16
Software Maintenance: Definitions
Software Evolution:
“A continuous change from a lesser, simpler, or worse state to
a higher or better state [for a software system]”
www.cc.gatech.edu/reverse/glossary.htm
Software Maintenance:
“Software maintenance is one of the activities in software
engineering, and is the process of enhancing, porting, and
optimizing deployed software, as well as remedying defects”
CA267 Ray Walshe 2015
17
Average cost distribution
(1976–1981 data)
Object-Oriented and Classical Software Engineer, 5th Edition, Schach (2002)
CA267 Ray Walshe 2015
18
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
CA267 Ray Walshe 2015
19
Fly UP