Cleanroom Software Engineering

Similar documents
Cleanroom Software Engineering

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

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

Gradational conception in Cleanroom Software Development

Cleanroom Software Engineering

The Cleanroom Method

Cleanroom Software Engineering

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

Cleanroom Software Engineering Reference

White-Box Testing Techniques III

Requirements and Specifications

Adopting Cleanroom software engineering with a phased approach

Verification and Validation

RE for Embedded Systems - Part 1

Introducing Function Extraction into Software Testing

Part 5. Verification and Validation

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

Examination Questions Time allowed: 1 hour 15 minutes

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

Verification and Validation

Verification and Validation

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

B.H. Far

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

Statistical Testing of Software Based on a Usage Model

The requirements engineering process

Race Catcher. Automatically Pinpoints Concurrency Defects in Multi-threaded JVM Applications with 0% False Positives.

Test Design Techniques ISTQB (International Software Testing Qualifications Board)

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

Software Testing for Developer Development Testing. Duvan Luong, Ph.D. Operational Excellence Networks

In this Lecture you will Learn: Testing in Software Development Process. What is Software Testing. Static Testing vs.

Testing Tools. Software Testing and Verification. Lecture 14. Stephen M. Thebaut, Ph.D. Prepared by. University of Florida

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

Case Study: Black-Box Testing

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

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

APPENDIX B STATEMENT ON STANDARDS FOR CONTINUING PROFESSIONAL EDUCATION (CPE) PROGRAMS

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

Managing Change and Complexity

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

(See related materials in textbook.) CSE 435: Software Engineering (slides adapted from Ghezzi et al & Stirewalt

CHAPTER 6. Slide 6.1 TESTING

Last Class. Demand Paged Virtual Memory. Today: Demand Paged Virtual Memory. Demand Paged Virtual Memory

Object-Oriented and Classical Software Engineering

Object-Oriented and Classical Software Engineering

Software Testing. Software Testing

Software Development Chapter 1

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

Topics in Software Testing

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

Test Driven Development

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

Db2 Partner Application Verification Quick Guide

Object-Oriented Design Lecture 5 CSU 370 Fall 2008 (Pucella) Friday, Sep 26, 2008

White-Box Testing Techniques II

TEACHING SPECIFICATION AND VERIFICATION OF EVENT- DRIVEN PROGRAMS USING CLEANROOM SOFTWARE ENGINEERING

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

Professional Services Overview

Software Engineering

An Optimization Algorithm for Physical Database Design

About Us. Services CONSULTING OUTSOURCING TRAINING MENTORING STAFF AUGMENTATION 9/9/2016

The ComFoRT Reasoning Framework

Lecture 5 Safety Analysis FHA, HAZOP

Higher-order Testing. Stuart Anderson. Stuart Anderson Higher-order Testing c 2011

Software Design. Levels in Design Process. Design Methodologies. Levels..

Electronic Annual Travel Certification Form

Reducing the costs of rework. Coping with change. Software prototyping. Ways to Cope with change. Benefits of prototyping

Definitions. Key Objectives

Verification and Validation. Assuring that a software system meets a user s needs. Verification vs Validation. The V & V Process

Write perfect C code to solve the three problems below.

Design and Implementation of an Efficient Algorithm Using Data Structures: A Recipe for the Structured Process Called Top Down Programming

INCREMENTAL SOFTWARE CONSTRUCTION WITH REFINEMENT DIAGRAMS

Financial Planning Institute of Southern Africa SETTING THE STANDARD. Continuous Professional Development (Cpd) Policy

Nonblocking Assignments in Verilog Synthesis; Coding Styles That Kill!

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

Sample Exam Syllabus

User Guides. Here is an overview of the process for connecting with organisations and using the App

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

Box-Structured Requirement Determination Methods

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

Software Engineering Lifecycles. Controlling Complexity

Mutual Recognition Agreement/Arrangement: General Introduction, Framework and Benefits

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

Continuing Professional Development Program Guidelines

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

Higher National Unit specification: general information. Troubleshooting a Desktop Operating System

CSE 374 Programming Concepts & Tools. Hal Perkins Fall 2015 Lecture 15 Testing

Prot. DC2018SSV120 Milano, To all Certification Bodies (CBs) with OH&S accreditation. To the associations of Conformity Assessment Bodies

Top-Down Transaction-Level Design with TL-Verilog

Administrivia. Added 20 more so far. Software Process. Only one TA so far. CS169 Lecture 2. Start thinking about project proposal

Rule Formats for Nominal Modal Transition Systems

Topic: Software Verification, Validation and Testing Software Engineering. Faculty of Computing Universiti Teknologi Malaysia

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

Learning the Hard Way

Verification and Validation

Laboratory 5: Implementing Loops and Loop Control Strategies

mywbut.com Software Life Cycle Model

City of Denton s Proactive Approach to Asset Management featuring InfoMaster & Cityworks

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

Requirements for editing 8D Reports

Transcription:

Cleanroom Software Engineering Software Testing and Verification Lecture 25 Prepared by Stephen M. Thebaut, Ph.D. University of Florida

Required Reading and Additional Reference Required Reading: Linger, Cleanroom Software Engineering for Zero-Defect Software, Proceedings, 15 th Int. Conf. on Soft. Eng. (1993), IEEE Computer Society Press, pp. 2-13. Additional relevant reference: Linger, Trammell, Cleanroom Software Engineering Reference Model. CMU/SEI- 96-TR-022, Software Engineering Institute, 1996.

Cleanroom SE Philosophy Cleanroom Software Engineering is a software development philosophy. First introduced in the 80s within IBM by Harlan Mills. Based on the notion that defects in software should be avoided rather than detected and repaired. Software development should not be viewed as a trial-and-error undertaking. (cont d)

Cleanroom SE Philosophy Cleanroom Software Engineering is a software development philosophy. First introduced in the 80s within IBM by Harlan Mills. Based on the notion that defects in software should be avoided rather than detected and repaired. Software development should not be viewed as a trial-and-error undertaking. (cont d)

Cleanroom SE Philosophy Cleanroom Software Engineering is a software development philosophy. First introduced in the 80s within IBM by Harlan Mills. Based on the notion that defects in software should be avoided rather than detected and repaired. Software development should not be viewed as a trial-and-error undertaking. (cont d)

Cleanroom SE Philosophy Cleanroom Software Engineering is a software development philosophy. First introduced in the 80s within IBM by Harlan Mills. Based on the notion that defects in software should be avoided rather than detected and repaired. Software development should not be viewed as a trial-and-error undertaking. (cont d)

Cleanroom SE Philosophy (cont d) In traditional software development, errors were regarded as inevitable. Programmers were urged to get software into execution quickly, and techniques for error removal were widely encouraged. The sooner the software could be written, the sooner debugging could begin. (cont d)

Cleanroom SE Philosophy (cont d) Today, debugging is understood to be the most error-prone process in software development, leading to right in the small, wrong in the large programs...

Characteristics Team-oriented The functional specification is created by the development team, or by a separate specification team for large projects, and the usage specification is created by the certification team. Object-based box structure specification and design Stepwise refinement (cont d)

Characteristics Team-oriented The functional specification is created by the development team, or by a separate specification team for large projects, and the usage specification is created by the certification team. Object-based box structure specification and design Stepwise refinement (cont d)

Characteristics Team-oriented The functional specification is created by the development team, or by a separate specification team for large projects, and the usage specification is created by the certification team. Object-based box structure specification and design Stepwise refinement (cont d)

Characteristics Team-oriented The functional specification is created by the development team, or by a separate specification team for large projects, and the usage specification is created by the certification team. Object-based box structure specification and design Stepwise refinement (cont d)

Characteristics (cont d) Uses function-theoretic correctness verification components are not executed or developer-tested! Team correctness verification takes the place of unit testing and debugging, and software enters system testing directly, with no execution by the development team...no private debugging (is) permitted. (cont d)

Characteristics (cont d) Uses function-theoretic correctness verification components are not executed or developer-tested! Team correctness verification takes the place of unit testing and debugging, and software enters system testing directly, with no execution by the development team...no private debugging (is) permitted. (cont d)

Characteristics (cont d) Statistical usage testing (of integrated increments) is undertaken for quality certification ( statistical quality control ). The certification (test) team is responsible for...certifying the quality of software with respect to its specification. Certification is carried out by statistical usage testing that produces objective assessments of product quality. (cont d)

Characteristics (cont d) Statistical usage testing (of integrated increments) is undertaken for quality certification ( statistical quality control ). The certification (test) team is responsible for...certifying the quality of software with respect to its specification. Certification is carried out by statistical usage testing that produces objective assessments of product quality. (cont d)

Characteristics (cont d) Incremental development Management planning and control...is based on developing and certifying a pipeline of software increments that accumulate to the final product. Structured programming

Characteristics (cont d) Incremental development Management planning and control...is based on developing and certifying a pipeline of software increments that accumulate to the final product. Structured programming

Characteristics (cont d) Incremental development Management planning and control...is based on developing and certifying a pipeline of software increments that accumulate to the final product. Structured programming

Impact on Development Cycle Experienced...teams...can achieve substantially reduced product development cycles. The precision of Cleanroom development eliminates rework and results in dramatically reduced time for certification testing compared to traditional methods. And Cleanroom teams are not hostage to error correction following product release.

Box Structure Specification and Design Incorporates black box (external behavior), state box (retained data), and clear box (processing) forms. Transition Functions: Black box: (S, SH -> R) State box: (S, OS) -> (R, NS) Clear box: (S, OS) -> (R, NS) by procedure (intended function) Intended functions are refined into control structures (programs)

Box Structure Specification and Design Incorporates black box (external behavior), state box (retained data), and clear box (processing) forms. Transition Functions: Black box: (S, SH -> R) State box: (S, OS) -> (R, NS) Clear box: (S, OS) -> (R, NS) by procedure (intended function) Intended functions are refined into control structures (programs)

Box Structure Specification and Design Incorporates black box (external behavior), state box (retained data), and clear box (processing) forms. Transition Functions: Black box: (S, SH -> R) Stimulus Stimulus History Response State box: (S, OS) -> (R, NS) Clear box: (S, OS) -> (R, NS) by procedure (intended function) Intended functions are refined into control structures (programs)

Box Structure Specification and Design Incorporates black box (external behavior), state box (retained data), and clear box (processing) forms. Transition Functions: Black box: (S, SH -> R) Stimulus Stimulus History Response State box: (S, OS) -> (R, NS) Clear box: (S, OS) -> (R, NS) by procedure (intended function) Intended functions are refined into control structures (programs)

Box Structure Specification and Design Incorporates black box (external behavior), state box (retained data), and clear box (processing) forms. Transition Functions: Old State Black box: (S, SH -> R) State box: (S, OS) -> (R, NS) Clear box: (S, OS) -> (R, NS) by procedure (intended function) New State Intended functions are refined into control structures (programs)

Box Structure Specification and Design Incorporates black box (external behavior), state box (retained data), and clear box (processing) forms. Transition Functions: Black box: (S, SH -> R) State box: (S, OS) -> (R, NS) Clear box: (S, OS) -> (R, NS) by procedure (intended function) Intended functions are refined into control structures (programs)

Box Structure Specification and Design Incorporates black box (external behavior), state box (retained data), and clear box (processing) forms. Transition Functions: Black box: (S, SH -> R) State box: (S, OS) -> (R, NS) Clear box: (S, OS) -> (R, NS) by procedure (intended function) Intended functions are refined into control structures (programs)

Verification Development teams employ mental proofs of correctness in team reviews Every correctness condition of every control structure is verified every team member must agree that each condition is correct.

Verification Development teams employ mental proofs of correctness in team reviews Every correctness condition of every control structure is verified every team member must agree that each condition is correct.

Quality Certification Based on statistical quality control in manufacturing Process (statistical usage testing): sample population of user executions based on expected frequency (stratified random sampling): operational profile measure quality by determining if executions are correct extrapolate to the population of possible executions (statistical inference) if quality is inadequate, identify and correct flaws in development process (cont d)

Quality Certification Based on statistical quality control in manufacturing Process (statistical usage testing): sample population of user executions based on expected frequency (stratified random sampling): operational profile measure quality by determining if executions are correct extrapolate to the population of possible executions (statistical inference) if quality is inadequate, identify and correct flaws in development process (cont d)

Quality Certification Based on statistical quality control in manufacturing Process (statistical usage testing): sample population of user executions based on expected frequency (stratified random sampling): operational profile measure quality by determining if executions are correct extrapolate to the population of possible executions (statistical inference) if quality is inadequate, identify and correct flaws in development process (cont d)

Quality Certification Based on statistical quality control in manufacturing Process (statistical usage testing): sample population of user executions based on expected frequency (stratified random sampling): operational profile measure quality by determining if executions are correct extrapolate to the population of possible executions (statistical inference) if quality is inadequate, identify and correct flaws in development process (cont d)

Quality Certification Based on statistical quality control in manufacturing Process (statistical usage testing): sample population of user executions based on expected frequency (stratified random sampling): operational profile measure quality by determining if executions are correct extrapolate to the population of possible executions (statistical inference) if quality is inadequate, identify and correct flaws in development process (cont d)

Quality Certification Based on statistical quality control in manufacturing Process (statistical usage testing): sample population of user executions based on expected frequency (stratified random sampling): operational profile measure quality by determining if executions are correct extrapolate to the population of possible executions (statistical inference) if quality is inadequate, identify and correct flaws in development process (cont d)

Quality Certification (cont d) Alternate distributions can be defined for low-probability, high-consequence functions. Errors tend to be found in failure-rate order on average (coverage testing is not biased to find errors in any particular rate order).

Quality Certification (cont d) Alternate distributions can be defined for low-probability, high-consequence functions. Errors tend to be found in failure-rate order on average (coverage testing is not biased to find errors in any particular rate order).

Cleanroom Software Engineering Software Testing and Verification Lecture 25 Prepared by Stephen M. Thebaut, Ph.D. University of Florida