Key Features. Defect Rates. Traditional Unit testing: 25 faults / KLOC System testing: 25 / KLOC Inspections: / KLOC

Similar documents
Cleanroom Software Engineering

Cleanroom Software Engineering

The Cleanroom Method

Cleanroom Software Engineering

Cleanroom Software Engineering

Framework for Improvement in Cleanroom Software Engineering Thesis Submitted in the partial fulfillment of requirements for the award of the degree

Gradational conception in Cleanroom Software Development

Statistical Testing of Software Based on a Usage Model

Feasibility of Testing to Code. Feasibility of Testing to Code. Feasibility of Testing to Code. Feasibility of Testing to Code (contd)

Verification and Validation

Verification and Validation

MONIKA HEINER.

Course Wrap-Up. Software Testing and Verification. Stephen M. Thebaut, Ph.D. Prepared by. University of Florida

PROPER TECHNIQUE OF SOFTWARE INSPECTION USING GUARDED COMMAND LANGUAGE

[IT6004-SOFTWARE TESTING] UNIT 2

H. Cosmo, E. Johansson, P. Runeson, Sixtensson and C. Wohlin, "Cleanroom Software Engineering in Telecommunication Applications", Proceedings

Test Design Techniques ISTQB (International Software Testing Qualifications Board)

Verification and Validation. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 22 Slide 1

Part 5. Verification and Validation

Verification and Validation. Verification and validation

Cleanroom Software Engineering Reference

RE for Embedded Systems - Part 1

Program Correctness and Efficiency. Chapter 2

Verification and Validation

An Automated Testing Environment to support Operational Profiles of Software Intensive Systems

C. Wohlin, "Engineering Reliable Software", Proceedings 4th International Symposium on Software Reliability Engineering, pp , Denver, Colorado,

Software Verification and Validation (VIMMD052) Introduction. Istvan Majzik Budapest University of Technology and Economics

TESTING. Overview Slide 6.2. Testing (contd) Slide 6.4. Testing Slide 6.3. Quality issues Non-execution-based testing

Why testing and analysis. Software Testing. A framework for software testing. Outline. Software Qualities. Dependability Properties

1 Visible deviation from the specification or expected behavior for end-user is called: a) an error b) a fault c) a failure d) a defect e) a mistake

CSC Advanced Object Oriented Programming, Spring Specification

Introduction to Software Engineering p. 1 The Scope of Software Engineering p. 3 Historical Aspects p. 4 Economic Aspects p. 7 Maintenance Aspects p.

Verification and Validation. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 22 Slide 1

Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 22 Slide 1

Adopting Cleanroom software engineering with a phased approach

Lecture Chapter 2 Software Development

Examination Questions Time allowed: 1 hour 15 minutes

SRM ARTS AND SCIENCE COLLEGE SRM NAGAR, KATTANKULATHUR

The requirements engineering process

B.H. Far

CITS5501 Software Testing and Quality Assurance Formal methods

CSE 5324: Software Engineering I. (Analysis, Design, Creation)

Object-Oriented and Classical Software Engineering

Object-Oriented and Classical Software Engineering

REQUIREMENTS ANALYSIS. What versus how

A Partial Correctness Proof for Programs with Decided Specifications

Sample Exam Syllabus

Learning outcomes. Systems Engineering. Debugging Process. Debugging Process. Review

Introducing Function Extraction into Software Testing

Facts About Testing. Cost/benefit. Reveal faults. Bottom-up. Testing takes more than 50% of the total cost of software development

Reasoning about programs

Last time. Reasoning about programs. Coming up. Project Final Presentations. This Thursday, Nov 30: 4 th in-class exercise

Integration and Testing. Uses slides from Lethbridge & Laganiere, 2001

Darshan Institute of Engineering & Technology for Diploma Studies

Cleanroom Review Techniques for Application Development

Software Development. Modular Design and Algorithm Analysis

Object Oriented Programming

By Matthew Noonan, Project Manager, Resource Group s Embedded Systems & Solutions

Introduction to Software Engineering

Objectives. Chapter 19. Verification vs. validation. Topics covered. Static and dynamic verification. The V&V process

SE 2730 Final Review

Introduction to Formal Methods

Part I: Preliminaries 24

There are three basic elements in object oriented programming: encapsulation, inheritance and polymorphism.

Main Goal. Language-independent program verification framework. Derive program properties from operational semantics

III. Check if the divisors add up to the number. Now we may consider each of these tasks separately, assuming the others will be taken care of

Second assignment came out Monday evening. Find defects in Hnefetafl rules written by your classmates. Topic: Code Inspection and Testing

SFWR ENG 3S03: Software Testing

ΗΜΥ 317 Τεχνολογία Υπολογισμού

Computer Science and Software Engineering University of Wisconsin - Platteville 9-Software Testing, Verification and Validation

Software Testing. Software Testing

Verification and Validation

Ingegneria del Software II academic year: Course Web-site: [

Roll No. :. Invigilator's Signature :.. CS/MCA/SEM-4/MCA-401/ SOFTWARE ENGINEERING & TQM. Time Allotted : 3 Hours Full Marks : 70

Integration Testing. Conrad Hughes School of Informatics. Slides thanks to Stuart Anderson

Software Testing

Formal Foundations of Software Engineering

Quality Assurance = Testing? SOFTWARE QUALITY ASSURANCE. Meaning of Quality. How would you define software quality? Common Measures.

Formal Specification. Objectives

An Optimization Algorithm for Physical Database Design

Dependability Modeling Based on AADL Description (Architecture Analysis and Design Language)

Test requirements in networked systems

Integration Testing. Unit Test vs Integration Testing 1. Unit Testing vs Integration Testing 2. Unit testing: isolation, stub/mock objects

A Refinement Framework for Monadic Programs in Isabelle/HOL

Dataworks Development, Inc. P.O. Box 174 Mountlake Terrace, WA (425) fax (425)

Certified Software Quality Engineer Preparation On Demand, Web-Based Course Offered by The Westfall Team

Technical Report CMU/SEI-96-TR-023 ESC-TR

COMPUTER FLOOD STANDARDS

Software Testing. Testing: Our Experiences

Software Testing 2. OOD and Testability. White box vs Black box Testing. Software Testing 2 Semester 1, 2006

Final Exam CISC 475/675 Fall 2004

Lecture 15 Software Testing

Basic Verification Strategy

UML-Based Statistical Test Case Generation

Three General Principles of QA. COMP 4004 Fall Notes Adapted from Dr. A. Williams

Testing! Prof. Leon Osterweil! CS 520/620! Spring 2013!

Formal Methods and their role in Software and System Development. Riccardo Sisto, Politecnico di Torino

CMSC 435: Software Engineering Section 0201

Softwaretechnik. Lecture 08: Testing and Debugging Overview. Peter Thiemann SS University of Freiburg, Germany

Basic Concepts of Reliability

Transcription:

Cleanroom attempt to mathematically-based, scientific engineering process of software development Cleanroom software engineering yields software that is correct by mathematically sound design, and software that is certified by statistically-valid testing SEI Objective: achive quality by design rather than through testing time is spent in design and verification Harlan Mills (Linger, Dyer, Poore), IBM, 1980 Analogy with electronic component manufacture Use of statistical quality control features Certified software reliability Improved productivity; (near) zero defects at delivery Unit software use can be defined in number of ways based on application Key Features Usage scenarios; statistical modeling Incremental development and release Separate development and acceptance testing Program proofs; no unit testing Defect Rates Traditional Unit testing: 25 faults / KLOC System testing: 25 / KLOC Inspections: 20-50 / KLOC Cleanroom < 3.5 / KLOC delivered Average 2.7 / KLOC between first execution and delivery

Basic Technologies Box-Structured Specification Function-theoretic verification before any code is compiled/executed debugging not permitted Statistical usage testing Incremental Development Typical system < 100KLOC Increment: 2-15KLOC Team size < 14 (6-8) Each increment End - to - End Overlapped development of increments 12-18 weeks from beginning of specification to end of test Partitioning is difficult and critical Formal Specification Box-structured design Black box: stimulus-response State box: formal model of system state Clear box: hierarchical breakdown Program functions Verification properties of control structures

Box Structured Specification and Design Black Box: stimulus / condition / response; organized into tasks; Z has been used for specification; top-down, stepwise refinement; concurrency supported State Box: data / history view; model oriented Clear Box: procedural control (sequence, alternation, iteration, concurrent; contains nested black boxes) Box Definition language State-box (Model-based formal specification) Description of system state in terms of domains (data structures without memory limitations Sets, sequences, records, lists, maps, relations Specification of state invariant Specification of operations Name Arguments with domains Validity condition (precondition) Effect on state (postcondition) Each operation must maintain the invariant Results Defects: 2-5 / KLOC versus 10-30 / KLOC for debugging Productivity: 3-5 improvement in verification over debugging Reliability: statistical usage testing 20 as effective as coverage testing Cleanroom tools Test case generator Reliability analysis package Spreadsheet Verification-based inspection syntax analyzer Script for inspection Management assistant Reports on process

Statistical Usage Testing Certification of reliability Process control Cost-effective orientation Guidelines for test completion (desired reliability reached) or redesign (too many failures found) Stratification mechanism for dealing with critical situations But questions exist on how to feed back the results of testing to the development team Testing process Usage distribution models From competitors, earlier versions, analysis Markov usage chain State transition probability matrix Statistics Π (proportion of time spent in each state) n (number of states visited before a given state is reached) s (number of tests needed to reach a state). Random test generation Design required Test execution and test chain generation, including failure states Statistics R (reliability) MTBF (mean time between failures) D (divergence of test chain from usage chain)

References: http://www.sei.cmu.edu/str/descriptions/cleanroom.html http://www.embedded.com/97/feat9609.htm http://www.sei.cmu.edu/pub/documents/96.reports/pdf/tr022.96.pdf http://www.uta.edu/cse/levine/fall99/cse5324/cr/clean/page.html http://csdl2.computer.org/comp/proceedings/hicss/1998/8248/06/8248 0122.pdf http://www.stsc.hill.af.mil/crosstalk/1996/11/xt96d11f.asp