1 CS 501 Spring 2002 CS 501: Software Engineering Lecture 23 Reliability III.

Slides:



Advertisements
Similar presentations
Testing Relational Database
Advertisements

Software Testing. Quality is Hard to Pin Down Concise, clear definition is elusive Not easily quantifiable Many things to many people You'll know it when.
Testing Workflow Purpose
Lecture 8: Testing, Verification and Validation
Testing and Quality Assurance
1 CS 501 Spring 2005 CS 501: Software Engineering Lecture 21 Reliability 3.
Software testing.
CS CS 5150 Software Engineering Lecture 21 Reliability 2.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 23 Slide 1 Software testing.
CS CS 5150 Software Engineering Lecture 22 Reliability 2.
Software Testing and Quality Assurance
1 CS 501 Spring 2007 CS 501: Software Engineering Lecture 21 Reliability 3.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 23 Slide 1 Software testing.
Program Testing Nelson Padua-Perez Chau-Wen Tseng Department of Computer Science University of Maryland, College Park.
Illinois Institute of Technology
Objectives Understand the basic concepts and definitions relating to testing, like error, fault, failure, test case, test suite, test harness. Understand.
CS CS 5150 Software Engineering Lecture 21 Reliability 3.
(c) 2007 Mauro Pezzè & Michal Young Ch 1, slide 1 Software Test and Analysis in a Nutshell.
CS CS 5150 Software Engineering Lecture 20 Acceptance and Delivery.
Software Testing. “Software and Cathedrals are much the same: First we build them, then we pray!!!” -Sam Redwine, Jr.
CS 501: Software Engineering Fall 2000 Lecture 22 Dependable Systems II Validation and Verification.
1 CS 501 Spring 2008 CS 501: Software Engineering Lecture 21 Reliability 3.
Software Testing Name: Madam Currie Course: Swen5431 Semester: Summer 2K.
Types and Techniques of Software Testing
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 23 Slide 1 Software testing.
Software Testing Verification and validation planning Software inspections Software Inspection vs. Testing Automated static analysis Cleanroom software.
System/Software Testing
System Testing There are several steps in testing the system: –Function testing –Performance testing –Acceptance testing –Installation testing.
CCSB223/SAD/CHAPTER141 Chapter 14 Implementing and Maintaining the System.
ECE 355: Software Engineering
Software Quality Assurance Lecture #8 By: Faraz Ahmed.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 23 Slide 1 Software testing Slightly adapted by Anders Børjesson.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 23 Slide 1 Software testing.
Objectives Understand the basic concepts and definitions relating to testing, like error, fault, failure, test case, test suite, test harness. Explore.
CS 501: Software Engineering Fall 1999 Lecture 16 Verification and Validation.
CMSC 345 Fall 2000 Unit Testing. The testing process.
RUP Implementation and Testing
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
Chapter 8 – Software Testing Lecture 1 1Chapter 8 Software testing The bearing of a child takes nine months, no matter how many women are assigned. Many.
 CS 5380 Software Engineering Chapter 8 Testing.
Testing Basics of Testing Presented by: Vijay.C.G – Glister Tech.
Testing Workflow In the Unified Process and Agile/Scrum processes.
Testing -- Part II. Testing The role of testing is to: w Locate errors that can then be fixed to produce a more reliable product w Design tests that systematically.
Dr. Tom WayCSC Testing and Test-Driven Development CSC 4700 Software Engineering Based on Sommerville slides.
CS CS 5150 Software Engineering Lecture 20 Reliability 2.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 22 Slide 1 Software Verification, Validation and Testing.
1 CS 501 Spring 2002 CS 501: Software Engineering Lecture 24 Delivering the System.
1 Introduction to Software Testing. Reading Assignment P. Ammann and J. Offutt “Introduction to Software Testing” ◦ Chapter 1 2.
CS CS 5150 Software Engineering Lecture 20 Reliability 2.
Chapter 8 Lecture 1 Software Testing. Program testing Testing is intended to show that a program does what it is intended to do and to discover program.
Software Engineering1  Verification: The software should conform to its specification  Validation: The software should do what the user really requires.
ISBN Prentice-Hall, 2006 Chapter 8 Testing the Programs Copyright 2006 Pearson/Prentice Hall. All rights reserved.
CS451 Lecture 10: Software Testing Yugi Lee STB #555 (816)
1 Software Testing Strategies: Approaches, Issues, Testing Tools.
HNDIT23082 Lecture 09:Software Testing. Validations and Verification Validation and verification ( V & V ) is the name given to the checking and analysis.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 23 Slide 1 Software testing.
T EST T OOLS U NIT VI This unit contains the overview of the test tools. Also prerequisites for applying these tools, tools selection and implementation.
Testing Overview Software Reliability Techniques Testing Concepts CEN 4010 Class 24 – 11/17.
Lecturer: Eng. Mohamed Adam Isak PH.D Researcher in CS M.Sc. and B.Sc. of Information Technology Engineering, Lecturer in University of Somalia and Mogadishu.
Tool Support for Testing Classify different types of test tools according to their purpose Explain the benefits of using test tools.
Chapter 8 – Software Testing
Software testing strategies 2
Lecture 09:Software Testing
Testing and Test-Driven Development CSC 4700 Software Engineering
CS 5150 Software Engineering
Software Engineering Lecture #14.
Test Case Test case Describes an input Description and an expected output Description. Test case ID Section 1: Before execution Section 2: After execution.
CS 501: Software Engineering
Chapter 7 Software Testing.
Presentation transcript:

1 CS 501 Spring 2002 CS 501: Software Engineering Lecture 23 Reliability III

2 CS 501 Spring 2002 Administration

3 CS 501 Spring 2002 Static and Dynamic Verification Static verification: Techniques of verification that do not include execution of the software. May be manual or use computer tools. Dynamic verification: Testing the software with trial data. Debugging to remove errors.

4 CS 501 Spring 2002 Test Design Testing can never prove that a system is correct. It can only show that (a) a system is correct in a special case, or (b) that it has a fault. The objective of testing is to find faults. Testing is never comprehensive. Testing is expensive.

5 CS 501 Spring 2002 Testing and Debugging Testing is most effective if divided into stages: Unit testing at various levels of granularity tests by the developer emphasis is on accuracy of actual code System and sub-system testing uses trial data emphasis is on integration and interfaces Acceptance testing uses real data in realistic situations emphasis is on meeting requirements

6 CS 501 Spring 2002 Acceptance Testing Alpha Testing: Clients operate the system in a realistic but non-production environment Beta Testing: Clients operate the system in a carefully monitored production environment Parallel Testing: Clients operate new system alongside old production system with same data and compare results

7 CS 501 Spring 2002 The Testing Process System and Acceptance Testing is a major part of a software project It requires time on the schedule It may require substantial investment in datasets, equipment, and test software. Good testing requires good people! Management and client reports are important parts of testing. What is the definition of "done"?

8 CS 501 Spring 2002 Testing Strategies Bottom-up testing. Each unit is tested with its own test environment. Top-down testing. Large components are tested with dummy stubs. user interfaces work-flow client and management demonstrations Stress testing. Tests the system at and beyond its limits. real-time systems transaction processing

9 CS 501 Spring 2002 Test Cases Test cases are specific tests that are chosen because they are likely to find faults. Test cases are chosen to balance expense against chance of finding serious faults. Cases chosen by the development team are effective in testing known vulnerable areas. Cases chosen by experienced outsiders and clients will be effective in finding gaps left by the developers. Cases chosen by inexperienced users will find other faults.

10 CS 501 Spring 2002 Test Case Selection: Coverage of Inputs Objective is to test all classes of input Classes of data -- major categories of transaction and data inputs. Cornell example: (undergraduate, graduate, transfer,...) by (college, school, program,...) by (standing) by (...) Ranges of data -- typical values, extremes Invalid data, reversals, and special cases.

11 CS 501 Spring 2002 Test Case Selection: Program Objective is to test all functions of each computer program Paths through the computer programs Program flow graph Check that every path is executed at least once Dynamic program analyzers Count number of times each path is executed Highlight or color source code Can not be used with time critical software

12 CS 501 Spring 2002 Program Flow Graph if-then-else loop-while

13 CS 501 Spring 2002 Statistical Testing Determine the operational profile of the software Select or generate a profile of test data Apply test data to system, record failure patterns Compute statistical values of metrics under test conditions

14 CS 501 Spring 2002 Statistical Testing Advantages: Can test with very large numbers of transactions Can test with extreme cases (high loads, restarts, disruptions) Can repeat after system modifications Disadvantages: Uncertainty in operational profile (unlikely inputs) Expensive Can never prove high reliability

15 CS 501 Spring 2002 Regression Testing REGRESSION TESTING IS ONE OF THE KEY TECHNIQUES OF SOFTWARE ENGINEERING Applied to modified software to provide confidence that modifications behave as intended and do not adversely affect the behavior of unmodified code. Basic technique is to repeat entire testing process after every change, however small.

16 CS 501 Spring 2002 Regression Testing: Program Testing 1.Collect a suite of test cases, each with its expected behavior. 2.Create scripts to run all test cases and compare with expected behavior. (Scripts may be automatic or have human interaction.) 3.When a change is made, however small (e.g., a bug is fixed), add a new test case that illustrates the change (e.g., a test case that revealed the bug). 4.Before releasing the changed code, rerun the entire test suite.

17 CS 501 Spring 2002 Discussion of Pfleeger, Chapter 9 Format: State a question. Ask a member of the class to answer. (Sorry if I pronounce your name wrongly.) Provide opportunity for others to comment. When answering: Stand up. Give your name or NetID. Make sure the TA hears it. Speak clearly so that all the class can hear.

18 CS 501 Spring 2002 Question 1: Configuration Management (a)Explain the problem of configuration management. (b)What techniques are used to avoid software faults in configuration management?

19 CS 501 Spring 2002 Question 2: Deltas (a)Explain the term delta in system management. (b)What is the alternative? (c)What do you think are the benefits of the two approaches?

20 CS 501 Spring 2002 Question 3: Function Testing (a)What is function testing? (b)What is not tested during the function testing phase?

21 CS 501 Spring 2002 Question 4: Reliability Testing (a)Why is testing software reliability different from testing hardware reliability? (b)Why does six-sigma testing not apply to software? (c)There is a trade-off between expenditure and software reliability: (i) What are the implications before release of the software? (ii) What are the implications after release of the software?

22 CS 501 Spring 2002 Question 5: Documentation of Testing Explain the purpose of each of the following: (a)Test plan (b)Test specification and evaluation (c)Test description (d)Test analysis report

23 CS 501 Spring 2002 Question 6: Safety Critical Software A software system fails and several lives are lost. An inquiry discovers that the test plan did not consider the case that caused the failure. Who is responsible: (a) The testers for not noticing the missing cases? (b) The Test planners for not writing the complete test plan? (c) The managers for not having checked the test plan? (d) The customer for not having done a thorough acceptance test?