LIFECYCLE VERIFICATION & VALIDATION

Similar documents
Quality Management. Lecture 12 Software quality management

Software Quality. Software Quality Assurance and Software Reuse. Three Important Points. Quality Factors

Software Production and Lifecycle Models

Peer Review Process Description

How To Write Software

Peer Review Process Description

Software Processes. Coherent sets of activities for specifying, designing, implementing and testing software systems

Process Models and Metrics

Software Quality Assurance Software Inspections and Reviews

Engineering Process Software Qualities Software Architectural Design

How To Write Software

Module 10. Coding and Testing. Version 2 CSE IIT, Kharagpur

Software testing. Objectives

Software Process for QA

Software quality engineering. Quality assurance. Testing

Failure Mode and Effect Analysis. Software Development is Different

Software Engineering/Courses Description Introduction to Software Engineering Credit Hours: 3 Prerequisite: (Computer Programming 2).

Chapter 8 Software Testing

Metrics in Software Test Planning and Test Design Processes

Software Engineering Introduction & Background. Complaints. General Problems. Department of Computer Science Kent State University

Modelli di sviluppo software. Enrico Giunchiglia

Software Process Training

Software Development: The Waterfall Model

Software Processes. The software process. Generic software process models. Waterfall model. Waterfall model phases

SOFTWARE CONFIGURATION MANAGEMENT GUIDEBOOK

Software Engineering. Software Processes. Based on Software Engineering, 7 th Edition by Ian Sommerville

Requirements engineering

Oracle Insurance Policy Administration System Quality Assurance Testing Methodology. An Oracle White Paper August 2008

To introduce software process models To describe three generic process models and when they may be used

SOFTWARE DEVELOPMENT STANDARD FOR SPACECRAFT

Software Testing. Knowledge Base. Rajat Kumar Bal. Introduction

Software Engineering. Software Development Process Models. Lecturer: Giuseppe Santucci

ISO 9001:2000 AUDIT CHECKLIST

Software Testing. Quality & Testing. Software Testing

Introduction to Software Engineering. 8. Software Quality

The Software Process. The Unified Process (Cont.) The Unified Process (Cont.)

Best Practices, Process

Certification Authorities Software Team (CAST) Position Paper CAST-26

Revision History Revision Date Changes Initial version published to

ISTQB Certified Tester. Foundation Level. Sample Exam 1

ESTABLISHING A MEASUREMENT PROGRAM

copyright 1996, 2001, 2005 R.S. Pressman & Associates, Inc.

IEEE ComputerSociety 1 Software and Systems Engineering Vocabulary

Identification and Analysis of Combined Quality Assurance Approaches

Software Engineering. Objectives. Designing, building and maintaining large software systems

The V-model. Validation and Verification. Inspections [24.3] Testing overview [8, 15.2] - system testing. How much V&V is enough?

IT3205: Fundamentals of Software Engineering (Compulsory)

ISO 9001 Quality Systems Manual

Software Engineering. How does software fail? Terminology CS / COE 1530

Outline. Definitions. Course schedule

Introduction and Overview

CS 389 Software Engineering. Lecture 2 Chapter 2 Software Processes. Adapted from: Chap 1. Sommerville 9 th ed. Chap 1. Pressman 6 th ed.

Basic Testing Concepts and Terminology

Course/Year W080/807 Expected Solution Subject: Software Development to Question No: 1

assurance activities to reduce r sks, C. Purpose of this Guidebook SOFTWARE ASSURANCE GUIDEBOOK, NASA-GB-A201 I. OVERVIEW A. Concepts and Definitions

Custom Software Development Approach

IAEA-TECDOC-1328 Solutions for cost effective assessment of software based instrumentation and control systems in nuclear power plants

Noorul Islam College of Engineering M. Sc. Software Engineering (5 yrs) IX Semester XCS592- Software Project Management

CS 451 Software Engineering Winter 2009

Specialties Manufacturing. Talladega Castings & Machine Co., Inc. ISO 9001:2008. Quality Manual

CSTE Mock Test - Part III Questions Along with Answers

CHAPTER 7 Software Configuration Management

UL Qualified Firestop Contractor Program Management System Elements. March 13, 2013

Example Software Development Process.

ISO 9001:2000 Gap Analysis Checklist

Information Technology Engineers Examination. Information Security Specialist Examination. (Level 4) Syllabus

CS314: Course Summary

Software Quality Management

ISO 9001:2008 Audit Checklist

How To Write A Contract For Software Quality Assurance

Software Test and Analysis in a Nutshell

Software Testing. System, Acceptance and Regression Testing

Supplier Quality Management System Audit Checklist (ISO 9000:2000, TS 16949:2002)

How To Improve Software Quality

Testing Introduction. IEEE Definitions

Keywords: SQA,Black Box Testing( BBT), White Box testing(wbt).

PROJECT SCOPE MANAGEMENT

Life-Cycle Model. Software Life-Cycle Models. Software Development in Theory. Software Development in Practice

Presentation: 1.1 Introduction to Software Testing

Requirements engineering and quality attributes

Software Quality Assurance Plan

Contents of the ISO 9001:2008 Quality System Checklist

Software Configuration Management Plan

Fundamentals of Measurements

An Introduction to. Metrics. used during. Software Development

ISO 9001 : 2008 QUALITY MANAGEMENT SYSTEM AUDIT CHECK LIST INTRODUCTION

Formal Software Testing. Terri Grenda, CSTE IV&V Testing Solutions, LLC

8. Master Test Plan (MTP)

Testing Process Models

Levels of Software Testing. Functional Testing

How era Develops Software

And the Models Are System/Software Development Life Cycle. Why Life Cycle Approach for Software?

Design of automatic testing tool for railway signalling systems software safety assessment

Camar Aircraft Products Co. QUALITY MANUAL Revision D

Certified Software Quality Engineer (CSQE) Body of Knowledge

CS 1632 SOFTWARE QUALITY ASSURANCE. 2 Marks. Sample Questions and Answers

Build (develop) and document Acceptance Transition to production (installation) Operations and maintenance support (postinstallation)

應 用 測 試 於 軟 體 發 展 生 命 週 期. Testing In The Software Development Life Cycle

Sample Exam Syllabus

Software Engineering Reference Framework

Transcription:

LIFECYCLE VERIFICATION & VALIDATION 1 formal formal Informal Requirements Design Specification Implementation Validation are we building the right product? Verification are we building the product right?

Testing Principles Testing must be an inherent component of the software process should not be a separate phase after integration and before maintenance Execution-based testing execution of code (primarily the implementation) Nonexecution-based testing reviews and static analysis of (non)executable software descriptions Verification: comparing to specification Validation: checking against user needs Software Quality Assurance (SQA) SQA group is responsible for ensuring that all phases are carried out as dictated and that product is "correct" Quality assurance applies to every aspect of the software process SQA group should be managerially independent 2

Testing Testing is the process of inferring behavioral properties of a product on the basis of execution in a known environment with selected inputs and checking results with a test oracle What properties should be tested? utility reliability functional correctness performance robustness Who should test? testing is destructive testing dichotomy: success is failure and failure is success When does testing stop? only after retirement 3

Testing Phases Unit/Module Testing testing of a unit or module (encapsulation of units) comparing it with requirements & make ready for integration Integration Testing systematic combination and testing of software components to insure consistency of component interfaces System Testing testing an integrated software system comparing it with software system requirements (in development environment) Acceptance Testing testing an integrated hardware and software system (in target environment, with customers data) also called "alpha testing" after acceptance "beta testing" with a selected group of customers start 4

Testing Phases - 2 5 Regression Testing testing a modified system to ensure unmodified part has not regressed Unit-Module Testing Integration Testing System Testing Acceptance Testing

Test Documentation Test Plans must be developed during all development phases test cases for phase-specific decisions important to have testing objectives important to avoid overconfidence plans can be reused for regression testing Test Histories must be maintained during all testing phases error logs change reports documentation for later reference important for process improvement 6

Test Plan/History Documentation 7 Test Plan Objective test plan type system/component being tested criteria/requirements Testing Process: how to accomplish this test plan order of execution, process description Test Cases and Test Histories ID: purpose environment/procedure (drivers, stubs, state) test data input, expected output actual output, problems revealed, modifications Justification: how the test case set satisfies the objective Test Plan Status: the current status of this testing process

Qualitity Assessment There is a critical need to produce high quality software increasing safety-critical applications required qualities are widely-varied Quality assessment must be formalized facilitated with formal specifications 8 specification, design and verification technologies have not been shown to be sufficient Testing is a viable approach, but it must be done systematically V&V not restricted to Implementation and Integration

Quality Assessment must permeate the process Quality assessment (testing, verification and validation) should occur at each phase to start: requirements validated against user needs requirements shown internally consistent requirements assured of high quality for each phase: validate current phase against user needs use information from previous phase to verify current phase Test plans should begin with requirements and be reviewed and refined with each phase test plans should be executed as early as possible to further facilitate early error detection 9

Test Planning and Testing 10 Requirements Analysis Requirements Specification User Selection and Analysis System Test Plan Architecture Design Module Interface Specification Specificationbased A&T Integration Test Plan Algorithm Design Module Design Specification Designbased A&T Module Test Plan Testing against oracle Implementation Source Code Implementationbased A&T Unit Test Plan

Lifecycle Reviews: Goals and Objectives Review all lifecycle artifacts Discover all defects currently present in the product under development (as early as possible) Verify that inspected specification conforms with requirements or detect cases of non-conformance Detect defects in software specification Detect defects in a specification's representation Evaluate techniques and tools Measure development process Measure product quality Feedback for specifiers to improve Feedforward for process and quality control 11

Lifecycle Reviews 12 Requirements Specification Software Specification Requirements Review Specification Review find defects in requirements find defects in requirements Architectural Specification Module Specifications Module Implementation Arch Design Review Detailed Design Review Code Review find defects in design structure and decomposition find defects in module specifications find defects in implementation

Lifecycle Reviews: Products Software problem reports Software change reports Error Classification 13 inconsistency specification won't work and/or doesn't meet requirements inefficiency specification imposes barrier to efficient programming or system use ambiguity specification admits varying interpretations inflexibility specification does not accomodate change well Higher quality software

Walkthroughs vs. Inspections 14 Participants specification rep development rep client rep SQA rep typically more participants for inspections Walkthroughs are a two-step process 1. preparation: reviewers read documents 2. group analysis: chaired by SQA rep for objectivity Inspections [Fagan,1976] are a five-step process 1. overview: tutorial presentation of software to be inspected 2. preparation: reviewers read documents includes a checklist of questions to aid in finding flaws 3. group inspection: round-table discussion to find and document defects 4. rework: describe and correct defects 5. follow-up: ensure every identified problem solved

Specification Review Process ➊ Identify desired properties ➋ Make representation reviewable ➌ Separate types of reviews desired ➍ Classify reviewers give participants roles Moderator in charge ➎ Distribute a questionnaire/checklist ➏ Conduct review ➐ Resolve problems and follow-up 15 Can be applied to any software lifecycle artifact

➊ Desired Specification Properties 16 Well structured (wrt principles such as information hiding) Standardized representation Simple Efficient Flexible (wrt requirements changes) Practical (not overly general nor specific) Implementable (wrt resources) Verifiable (wrt requirements)

➋ Reviewable Representation Make assumptions explicit capabilities of operations types of parameters side effects timing handling of undesired events Include redundant information assumptions specifiers take as invariant usage that specifiers assume will not occur Organize document for review 17

➌Types of Reviews and ➍ Reviewer Classification Types of Reviews Assumption validity: are they all correct? Assumption sufficiency: are they all specified? Assumption/Functions consistency Requirements/Functions adequacy Classification of Reviewers Potential Users: capable of assessing satisfaction of user requirements Designers/Coders: capable of evaluating specification representation and method Testers: capable of assessing verifiability and validating Specialists: capable of assessing performance and feasibility Problem solvers Moderator in charge trained and approved, drives the inspection, manages the group 18

➎ Distribute Questionnaire Describe properties for which the reviewer should check Sections of the abstract interface should be studied Questions to be completed by reviewer Make reviewers take an active stand Seek positive feedback as well as negative Include a common checklist of potential faults Lists of fault types found in recent inspections are good aids (enable team members concentrate on areas where most faults have occured) 19

➏ Conduct the Review Conduct the sessions one-on-one 20 Present a brief overview of the component to be reviewed show the overall scheme describe this component's location in the scheme Reviewers go and do their own thing Specifiers read completed questionnaires and meet with reviewers

➐ Resolve and Follow-up Reviewers identify specification defects Developers isolate fault in specification Developers repair specification 21 Follow-up to review repairs Moderator must ensure that every single issue raised has been satisfactorily resolved All fixes must be checked to ensure that no new faults have been introduced If more than 5 % of the material inspected has been reworked, the team reconvenes for a 100 % reinspection

Cleanroom Software Development [Mills et al., 1987] The ideal review process 22 Based on static verification to ensure error-free development defects should be avoided rather than detected and corrected defects avoided by developing in an ultra-clean environment (derived by analogy with semiconductor fabrication units) structured inspections augmented with formal correctness arguments Software components are formally specified and verified instead of usual development and unit/module testing

Cleanroom Software Development - 2 ➊ Formal specification: Software to be developed is formally specified ➋ Incremental development: Software is partitioned into increments which are developed seperately using the Cleanroom approach ➌ Structured programming: Only a limited number of control and data abstraction constructs are used. Stepwise refinement of the specification ➍ Static verification: Developed software commponents are not tested but statically verified using mathematically based correctness arguments ➎ Statistical testing: Integrated software is tested statistically to determine its reliability 23

Cleanroom Software Development - 3 24 Formally specify system Error rework Define software increments Construct stuctured program Formally verify code Integrate Increment Develop operational profile Design statistical tests Test integrated system

Cleanroom Software Development - 4 Three Cleanroom teams 25 specification team: developing and maintaining the system specification development team: developing and verifying the software. Software is not executed but formal approach to verification (e.g. code inspection) is used certification team: developing a set of statistical tests based on the formal specification Cleanroom approach purported to be more effective than traditional approach experimentation may not have compared to best alternatives or used representative developers definitely lends credence to development using formal specification and verification

V&V of specific qualities Discussion How would you evaluate the following qualities? usability 26 reliability robustness performance correctness portability