Copyright © 2003 Software Quality Research Laboratory Software Production Essentials Seeing Past the Buzz Words.

Slides:



Advertisements
Similar presentations
Chapter 4 Quality Assurance in Context
Advertisements

Cleanroom Software Engineering CIS 376 Bruce R. Maxim UM-Dearborn.
Chapter 2 The Software Process
Alternate Software Development Methodologies
©2006 OLC 1 Process Management: The Foundation for Achieving Organizational Excellence Process Management Implementation Worldwide.
Testing Without Executing the Code Pavlina Koleva Junior QA Engineer WinCore Telerik QA Academy Telerik QA Academy.
Lecture 12 Reengineering Computer-aided Software Engineering Cleanroom Software Engineering.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 23 Slide 1 Software testing.
Software Development Process Models. The Waterfall Development Model.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
School of Computing, Dublin Institute of Technology.
Copyright © 2006 Software Quality Research Laboratory DANSE Software Quality Assurance Tom Swain Software Quality Research Laboratory University of Tennessee.
Software Testing and Quality Assurance
Capability Maturity Model (CMM) in SW design
SE 450 Software Processes & Product Metrics 1 Defect Removal.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
Copyright © 2007 Software Quality Research Laboratory DANSE Software Quality Assurance Tom Swain Software Quality Research Laboratory University of Tennessee.
High Level: Generic Test Process (from chapter 6 of your text and earlier lesson) Test Planning & Preparation Test Execution Goals met? Analysis & Follow-up.
Introduction to Software Testing
Capability Maturity Model
Software Integration and Documenting
Process: A Generic View
Dillon: CSE470: QUALITY ASSURANCE1 Software Qualities Maintainer User Customer Good Documentation Readable Code Good Design Low Cost Portability Increased.
Introduction to RUP Spring Sharif Univ. of Tech.2 Outlines What is RUP? RUP Phases –Inception –Elaboration –Construction –Transition.
Software Testing. Definition To test a program is to try to make it fail.
University of Palestine software engineering department Testing of Software Systems Fundamentals of testing instructor: Tasneem Darwish.
CLEANROOM SOFTWARE ENGINEERING.
N By: Md Rezaul Huda Reza n
VTT-STUK assessment method for safety evaluation of safety-critical computer based systems - application in BE-SECBS project.
1 Chapter 2 The Process. 2 Process  What is it?  Who does it?  Why is it important?  What are the steps?  What is the work product?  How to ensure.
1 Software Quality CIS 375 Bruce R. Maxim UM-Dearborn.
Introduction to Software Engineering LECTURE 2 By Umm-e-Laila 1Compiled by: Umm-e-Laila.
Software Testing The process of operating a system or component under specified conditions, observing and recording the results, and making an evaluation.
Testing Workflow In the Unified Process and Agile/Scrum processes.
Software Engineering Principles Principles form the basis of methods, techniques, methodologies and tools Principles form the basis of methods, techniques,
West Virginia University Towards Practical Software Reliability Assessment for IV&V Projects B. Cukic, E. Gunel, H. Singh, V. Cortellessa Department of.
University of Palestine software engineering department Testing of Software Systems Testing throughout the software life cycle instructor: Tasneem.
Unit Testing 101 Black Box v. White Box. Definition of V&V Verification - is the product correct Validation - is it the correct product.
Software Testing and Quality Assurance Software Quality Assurance 1.
CSCI 521 Final Exam Review. Why Establish a Standard Process? It is nearly impossible to have a high quality product without a high quality process. Standard.
1 Ch. 1: Software Development (Read) 5 Phases of Software Life Cycle: Problem Analysis and Specification Design Implementation (Coding) Testing, Execution.
Cmpe 589 Spring 2006 Lecture 2. Software Engineering Definition –A strategy for producing high quality software.
Copyright © 2006 by The McGraw-Hill Companies, Inc. All rights reserved. McGraw-Hill/Irwin 8-1 Chapter Eight Audit Sampling: An Overview and Application.
Software Development Problem Analysis and Specification Design Implementation (Coding) Testing, Execution and Debugging Maintenance.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
Software Engineering1  Verification: The software should conform to its specification  Validation: The software should do what the user really requires.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
ISBN Prentice-Hall, 2006 Chapter 8 Testing the Programs Copyright 2006 Pearson/Prentice Hall. All rights reserved.
Software Engineering Issues Software Engineering Concepts System Specifications Procedural Design Object-Oriented Design System Testing.
Dynamic Testing.
Software Engineering Lecture 8: Quality Assurance.
Software Engineering (CSI 321) Software Process: A Generic View 1.
1 Phase Testing. Janice Regan, For each group of units Overview of Implementation phase Create Class Skeletons Define Implementation Plan (+ determine.
Lectures 2 & 3: Software Process Models Neelam Gupta.
Welcome to Software Project Management. CONVENTIONAL SOFTWARE MANAGEMENT The BEST and WORST thing about software is its flexibility. 1.Software development.
SOFTWARE TESTING LECTURE 9. OBSERVATIONS ABOUT TESTING “ Testing is the process of executing a program with the intention of finding errors. ” – Myers.
1 Software Testing. 2 What is Software Testing ? Testing is a verification and validation activity that is performed by executing program code.
Software Engineering (CSI 321)
Software Testing.
Software Engineering (CSI 321)
Software Engineering (CSI 321)
Introduction to Software Testing
Verification and Validation Unit Testing
Component-Level Design
Chapter 10 – Software Testing
Test Case Test case Describes an input Description and an expected output Description. Test case ID Section 1: Before execution Section 2: After execution.
Capability Maturity Model
Capability Maturity Model
Software Reviews.
Presentation transcript:

Copyright © 2003 Software Quality Research Laboratory Software Production Essentials Seeing Past the Buzz Words

Copyright © 2003 Software Quality Research Laboratory Why Process? Quality Quality Maximize Customer Satisfaction Maximize Customer Satisfaction Minimize Rework and Repair Minimize Rework and Repair Productivity Productivity Optimize Production Cost Optimize Production Cost Shorten Time to Market Shorten Time to Market This is not a tradeoff. Quality is Free.

Copyright © 2003 Software Quality Research Laboratory Cost of Correcting an Error 1X in Requirements Analysis 1X in Requirements Analysis 5X in Specification and Design 5X in Specification and Design 10X in Coding 10X in Coding 30X in Integration 30X in Integration 70X in Acceptance Test 70X in Acceptance Test 300X in Field 300X in Field Typical Range: $50 - $14,000

Copyright © 2003 Software Quality Research Laboratory Basic Process Elements Requirements Definition Requirements Definition Coding Coding Release Release Everybody does it, but the order may vary.

Copyright © 2003 Software Quality Research Laboratory How Do We Fill the Gaps? Requirements Definition Requirements Definition Specification?/Design?/Verification?/? Specification?/Design?/Verification?/? Coding Coding Test?/ Inspection?/? Test?/ Inspection?/? Release Release No shortage of lifecycle/process candidates.

Copyright © 2003 Software Quality Research Laboratory Software Production is Incremental An efficient, repeatable process is necessary for expanding, changing requirements. ? ? ?

Copyright © 2003 Software Quality Research Laboratory Software Production Keys (1) A seamless, traceable transformation from requirements to code specification. (2) Mapping specified code to a robust, maintainable architecture. (4) Quantitative reliability assessment via model-based statistical testing. (3) Peer review of key work products including 100% code inspection.

Copyright © 2003 Software Quality Research Laboratory Specification Process Overview

Copyright © 2003 Software Quality Research Laboratory Rigorous Specification Process Establish system boundary. Establish system boundary. Define human/software/hardware interfaces. Define human/software/hardware interfaces. Itemize stimuli. Itemize stimuli. Itemize responses. Itemize responses. Perform enumeration. Perform enumeration. Perform canonical sequence analysis. Perform canonical sequence analysis. Generate state machine specification. Generate state machine specification. Transform to formal notation (e.g., ACL2). Transform to formal notation (e.g., ACL2).

Copyright © 2003 Software Quality Research Laboratory Map Specified Code to Architecture

Copyright © 2003 Software Quality Research Laboratory Independent Review Domain Expert Review Domain Expert Review Initial Requirements Initial Requirements Black Box Specification Black Box Specification Usage Model Usage Model Development Team Peer Review Development Team Peer Review Architecture Specification Architecture Specification Test Plan Test Plan Code Inspection Code Inspection Automated Enforcement of Coding Standards Automated Enforcement of Coding Standards Manual Verification of Functional Correctness Manual Verification of Functional Correctness

Copyright © 2003 Software Quality Research Laboratory Testing is Always Sampling Population (All Uses) Sample (Tests) What to test: a statistically appropriate sample How much to test: to an acceptable reliability estimate

Copyright © 2003 Software Quality Research Laboratory Statistical Usage Testing Statistical Usage Testing involves Modeling the population of uses Modeling the population of uses Selecting a sample for testing Selecting a sample for testing Estimating field performance from test sample results Estimating field performance from test sample results Making a release decision Making a release decision

Copyright © 2003 Software Quality Research Laboratory Model-Based Statistical Testing

Copyright © 2003 Software Quality Research Laboratory Usage Model: All Possible Uses and their Likelihood Begin Beta End Start A B Quit STATE MACHINE Nodes are states-of-use Arcs are possible stimuli Probabilities define expected usage Test case is path from initial to terminal state A B B A p=1 p=.9 p=.1 p=.01 p=.05 p=.85 Idle Alpha p=.89

Copyright © 2003 Software Quality Research Laboratory A Usage Model is a Finite-State Markov Chain Well-understood formalism Well-understood formalism Rich body of analytical results Rich body of analytical results Engineering basis for testing Engineering basis for testing Objectivity in test planning and management Objectivity in test planning and management Simulates “use” of product and not the product itself Simulates “use” of product and not the product itself

Copyright © 2003 Software Quality Research Laboratory Statistical Testing based on a Usage Model affords options Coverage testing…all states and arcs Coverage testing…all states and arcs Importance testing…most probable paths Importance testing…most probable paths Random testing…representative usage Random testing…representative usage Testing to reliability goal…0.99, 0.999, … Testing to reliability goal…0.99, 0.999, … Testing to level of confidence…95%, 99%… Testing to level of confidence…95%, 99%… Testing to budget with measured reliability Testing to budget with measured reliability

Copyright © 2003 Software Quality Research Laboratory Test Automation

Copyright © 2003 Software Quality Research Laboratory Results Analysis / Release Decision Record all failures by test case number and transition where failure occurs, then: Compute estimated reliability based on testing experience Compute estimated reliability based on testing experience Evaluate stopping criteria Evaluate stopping criteria Release or fix and retest based on semi-quantitative risk assessment Release or fix and retest based on semi-quantitative risk assessment

Copyright © 2003 Software Quality Research Laboratory Benefits of Model Based Testing Better Product Better Product Clearer requirements, improved specification Clearer requirements, improved specification Better Use of Resources Better Use of Resources Quantitative optimization of testing strategy Quantitative optimization of testing strategy Reusable assets: model, test framework, oracle Reusable assets: model, test framework, oracle Shorter Life Cycle Shorter Life Cycle Test planning in parallel with development Test planning in parallel with development Easier test automation Easier test automation Better Management Better Management Quantitative support for management decisions Quantitative support for management decisions Quantification of expected field reliability Quantification of expected field reliability Clear path to continuous process improvement Clear path to continuous process improvement

Copyright © 2003 Software Quality Research Laboratory Essential Process Elements Requirements Definition Requirements Definition Robust Architecture Definition Robust Architecture Definition Sequence-Based Specification Sequence-Based Specification Domain Expert and Peer Review Domain Expert and Peer Review Coding Coding 100% Code Inspection 100% Code Inspection Model-Based Testing/Certification Model-Based Testing/Certification Incremental Release Incremental Release Fill the gaps with rigorous engineering practices.