160 likes | 311 Views
CSci 250 Software Design & Development. Lecture #15 Tuesday, March 13, 2001. Class Format for Today. Announcements Return & review midterm exam Review course evaluations Questions Begin Chapter 9 Lecture. Announcements. Welcome back from Spring break! Reminder: Design documents due
E N D
CSci 250Software Design & Development Lecture #15 Tuesday, March 13, 2001 CSci 250 - Clark University
Class Format for Today • Announcements • Return & review midterm exam • Review course evaluations • Questions • Begin Chapter 9 Lecture CSci 250 - Clark University
Announcements • Welcome back from Spring break! • Reminder: Design documents due Thursday, March 15th • Implementation Plan - turn in with Test Plan (we’ll discuss on Thursday) • Possibility I might teach CSci 201 (Proseminar in Comp. Sci.) next fall -Confirmation should come in April CSci 250 - Clark University
Review • Midterm exam results • Course evaluation results CSci 250 - Clark University
Questions? • About the midterm exam • About design assignment • About Content Index • Anything else? CSci 250 - Clark University
Chapter 9 Software Testing CSci 250 - Clark University
Introduction • Definition: What is software testing? • The process of finding differences between expected and observed behavior (How do we know what’s expected?) • A systematic attempt to find errors in a planned way • Why do we need to test software? CSci 250 - Clark University
Testing Characteristics • Impossible to completely test a non-trivial system -- Why? • Testing is not decidable • Needs to be performed within time and budget constraints: • Systems are deployed without being fully tested • Some faults are discovered by end user CSci 250 - Clark University
Goals & Results of Testing • Goals: • To “break” the system • To find defects • To find differences between expected behavior (based on system models) & observed behavior • How do we define a successful test? • Results: • When differences are found, developers either modify the system to correct a defect, or update the system model to reflect the state of the system CSci 250 - Clark University
Types of testing • Unit testing: • Based on object model • Test individual components stand-alone • Structural testing: • Based on system design • Integration testing: individual tested components are tested together • System structure testing: culmination of integration testing involving all components CSci 250 - Clark University
Types of testing continued • System testing: • Functional testing: • Based on Use Cases from Requirements • Test functionality • Performance testing: • Based on Non-functional requirements • test system performance • Acceptance testing: • Based on Requirements and Functional Specifications • Performed by the Client CSci 250 - Clark University
Who does the testing? • Not a good idea to have a new or inexperienced person doing testing • Tester must have detailed knowledge of whole system, from Requirements to system design, through implementation • Also not a good idea to have a developer test his/her own code -- Why not? CSci 250 - Clark University
Testing Terminology • Software Reliability: the probability that a software system will not cause the failure of the system for a specified time under specified conditions • Component: any part of system that can be isolated for testing • Failure, Error • Fault / defect / bug CSci 250 - Clark University
Terminology Continued • Test Case: a set of inputs and expected results that exercises a component with the purpose of causing failures and detecting faults. • Test Stub: used to test the caller • Test Driver: used to test the component called • Correction: change to a component with the intent of repairing a fault; may introduce new faults! CSci 250 - Clark University
QC / QA Techniques • Fault Avoidance: prevent occurrence of errors & failures by finding faults in the system before release (to QA) • Fault Detection: find faults, but do not try to recover from failures. Usually applied during development. • Fault Tolerance: recovery from failure while the system is still executing CSci 250 - Clark University
For next time: • Continue lecture on Testing • Read Chapter 9 & bring questions to class. • We’ll also talk about: • Test Planning • Implementation Planning CSci 250 - Clark University