1 Systems Validation & Verification, Quality and Standards (CSE4431) Dr Sita Ramakrishnan School CSSE Monash University.

Slides:



Advertisements
Similar presentations
Configuration Management
Advertisements

System Integration Verification and Validation
Software Quality Assurance Plan
Chapter 4 Quality Assurance in Context
Testing Without Executing the Code Pavlina Koleva Junior QA Engineer WinCore Telerik QA Academy Telerik QA Academy.
1 Systems V & V, Quality and Standards Dr Sita Ramakrishnan School CSSE Monash University.
Stepan Potiyenko ISS Sr.SW Developer.
1 Systems Validation & Verification, Quality and Standards (CSE4431) Dr Sita Ramakrishnan School CSSE Monash University.
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.
SE 555 – Software Requirements & Specifications Introduction
SOFTWARE PROJECT MANAGEMENT Project Quality Management Dr. Ahmet TÜMAY, PMP.
1 CMPT 275 Software Engineering Requirements Analysis Process Janice Regan,
Software Quality Assurance For Software Engineering && Architecture and Design.
Introduction to Software Testing
Software Verification and Validation (V&V) By Roger U. Fujii Presented by Donovan Faustino.
Effective Methods for Software and Systems Integration
Software Project Management Fifth Edition
Introduction to Software Quality Assurance (SQA)
Managing Software Quality
Slide 6.1 CHAPTER 6 TESTING. Slide 6.2 Overview l Quality issues l Nonexecution-based testing l Execution-based testing l What should be tested? l Testing.
What is Software Engineering? the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software”
 The software systems must do what they are supposed to do. “do the right things”  They must perform these specific tasks correctly or satisfactorily.
Quality Assurance ITEC Rick Price. Expectations This course is not purely a lecture course – Classroom participation is a large portion – Everyone.
University of Palestine software engineering department Testing of Software Systems Fundamentals of testing instructor: Tasneem Darwish.
Software Inspection A basic tool for defect removal A basic tool for defect removal Urgent need for QA and removal can be supported by inspection Urgent.
Software System Engineering: A tutorial
1 Software Quality CIS 375 Bruce R. Maxim UM-Dearborn.
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
What is a life cycle model? Framework under which a software product is going to be developed. – Defines the phases that the product under development.
Topic (1)Software Engineering (601321)1 Introduction Complex and large SW. SW crises Expensive HW. Custom SW. Batch execution.
SENG521 (Fall SENG 521 Software Reliability & Testing Software Product & process Improvement using ISO (Part 3d) Department.
Installation and Maintenance of Health IT Systems
Software Quality Assurance SE Software Quality Assurance What is “quality”?
IT Requirements Management Balancing Needs and Expectations.
This chapter is extracted from Sommerville’s slides. Text book chapter
Slide 1V&V 10/2002 Software Quality Assurance Dr. Linda H. Rosenberg Assistant Director For Information Sciences Goddard Space Flight Center, NASA
CHECKPOINTS OF THE PROCESS Three sequences of project checkpoints are used to synchronize stakeholder expectations throughout the lifecycle: 1)Major milestones,
Creator: ACSession No: 15 Slide No: 1Reviewer: SS CSE300Advanced Software EngineeringFebruary 2006 Software Quality Assurance & Software Quality Control.
University of Palestine software engineering department Testing of Software Systems Testing throughout the software life cycle instructor: Tasneem.
KS3 Phase4 Client Server Monitoring System October 1, 2008 by Stephen, Seema, Kam, Shpetim.
CSSE Software Engineering Process and Practice Lecture 5 Q UALITY A SSURANCE.
Software Quality Assurance SOFTWARE DEFECT. Defect Repair Defect Repair is a process of repairing the defective part or replacing it, as needed. For example,
Software Quality Assurance and Testing Fazal Rehman Shamil.
Software Engineering Lecture 8: Quality Assurance.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
VERIFICATION AND VALIDATION TECHNIQUES. The goals of verification and validation activities are to assess and improve the quality of the work products.
SE513 Software Quality Assurance Lecture12: Software Reliability and Quality Management Standards.
Testing Overview Software Reliability Techniques Testing Concepts CEN 4010 Class 24 – 11/17.
SwCDR (Peer) Review 1 UCB MAVEN Particles and Fields Flight Software Critical Design Review Peter R. Harvey.
What is a software? Computer Software, or just Software, is the collection of computer programs and related data that provide the instructions telling.
by: Er. Manu Bansal Deptt of IT Software Quality Assurance.
 System Requirement Specification and System Planning.
ISQB Software Testing Section Meeting 10 Dec 2012.
TOTAL QUALITY MANAGEMENT
Configuration Management
SOFTWARE TESTING Date: 29-Dec-2016 By: Ram Karthick.
Software Quality Control and Quality Assurance: Introduction
Software Configuration Management (SCM)
Software Quality Assurance
Software Quality Assurance
Engineering Processes
Introduction to Software Testing
Charakteristiky kvality
Thursday’s Lecture Chemistry Building Musspratt Lecture Theatre,
Software Quality Assurance
Chapter 13 Quality Management
Engineering Processes
Software Reviews.
Presentation transcript:

1 Systems Validation & Verification, Quality and Standards (CSE4431) Dr Sita Ramakrishnan School CSSE Monash University

© S Ramakrishnan2 zDiscussion y Overview of the unit - CSE4431 y Week-by-Week Outline y Assessment Details y Basic Testing Concepts, IEEE Definitions zCSE4431 material online at z Assignments handouts in class Systems Validation & Verification, Quality and Standards (CSE4431)

© S Ramakrishnan3 yTopic areas: xIEEE Definition - Verification & Validation xSoftware Quality Attributes xStandards xIndependent V & V xRole of V & V method in SDLC xOverview - Test Models, Test Design Patterns, Testing tools, Testing xChallenges of Testing, Purpose of Inspection & Testing Systems Validation & Verification, Quality and Standards (CSE4431)

© S Ramakrishnan4 xIEEE Standard of Software Engineering Terminology (1990) defines software verification as the “process of evaluating a system or component to determine whether the products of a given development phase satisfy conditions imposed at the start of the phase”. That is to say, software verification is concerned with the degree of acceptability of a product for a particular phase. xFormal verification rarely used throughout a design or for tracking defects early because of time & expertise required IEEE Definition - Verification & Validation

© S Ramakrishnan5 xVerification -> the process of determining whether or not the products of a given phase of software development meet all the constraints established in the previous phase (Standard Glossary of SE Terminology) xVerification is often equated to software testing in the context of commercial applications in the industry xValidation is the process of evaluating software at the end of the development process to ensure compliance with the initial requirements IEEE Definition - Verification & Validation

© S Ramakrishnan6 xValidation of software refers to a set of activities, which ensure that the software built is traceable to customer requirements, and meets expected results xValidation method also appropriate where verification may be difficult or not feasible (proofs may require prohibitive memory & time, providing a complet set of spec. & identifying all relevant properties may not be feasible, and not always reachable) xValidation testing is conducted to ensure that the software meets the functional, behavioural & performance requirements of the system IEEE Definition - Verification & Validation

© S Ramakrishnan7 xSoftware testing is one element of a generic process referred to as Verification & Validation in engineering software systems xV & V process is used to ensure that the given software conforms to its spec. & meets the needs of the customer xV & V are different activities as stated by Boehm (1984): Verification: “Are we building the product right?” Validation: “Are we building the right product?” IEEE Definition - Verification & Validation

© S Ramakrishnan8 xA V & V process is a product a property to be controlled on the product a technique for evaluating the property xAn Example of V & V process a product: the whole software system a property : a functional property given by –a set of input data –a set of expected results a technique: testing –comparing expected results and the actual results from the system A Verification & Validation Process & An Example of V & V Process

© S Ramakrishnan9 xIn theoretical Comp Sc, verification is roughly synonymous to theorem proving xResearchers in Formal methods employ formal techniques based on model checking or theorem proving in the verification of software systems xTheorem proving is a mathematical process of proving that the functions computed by the program matches its specification xVerification of correctness is treated here (in CSE4431) as the set of activities carried out to ensure that software conforms to its specification, and to correctly implement a specific function - this definition is close to Software validation testing Verification & Validation Verification & Validation

© S Ramakrishnan10 xSoftware quality attributes assessment (McCall, Richards & Walters 1977) 11 quality attributes in terms of 3 categories: - product operation, product revision and product transitionsoftware quality model (1977) characterised 11 quality attributes in terms of 3 categories: - product operation, product revision and product transition Product operation Product operations consist of usability, correctness, reliability, integrity and efficiency attributesProduct operation - captures how effective the software operations are in performing a set of tasks such as ease with which data can be input and the ease and reliability of output data. Product operations consist of usability, correctness, reliability, integrity and efficiency attributes Product revision - Product revision category includes maintainability, flexibility & testability as its 3 sub characteristics.Product revision - measures the ease of update, change & maintain the performance of the software. Important w.r.t testing & cost of fixing errors. Product revision category includes maintainability, flexibility & testability as its 3 sub characteristics. Quality issues in software systems

© S Ramakrishnan11 Product transition - 3 sub characteristics of the product transition category are: interoperability, reusability and portabilityProduct transition - emphasis is to consider the ease with which software can migrate to other platforms, be reusable & interoperate. 3 sub characteristics of the product transition category are: interoperability, reusability and portability Boehm introduced some more quality attributes in 1978 As software demands grow, quality attributes were looked at again ISO adopted ISO 9126 in 1991 as the standard for software quality ISO 9126 standard moves from McCall’s 3 main attributes to 6 and includes 21 sub attributes Quality issues in software systems

© S Ramakrishnan12 xInternational organisation for standardisation (ISO) adopted ISO9126 as the standard for software quality(ISO, 1991). It has 6 main quality attributes and subattributes: –functionality (suitability, accurateness, interoperability, compliance, security) –reliability (fault tolerance, recoverability, maturity) – usability (learnability, operability, understandability) –efficiency ( w.r.t. time & resource) –maintainability (changeability, stability, testability, analyzability) –portability (adaptability, installability, conformance, replaceability) Quality issues in software systems

© S Ramakrishnan13 xThe ISO’s ISO 9126 standard is now widely adopted. xOther industry standards such as IEEE have adjusted their standards to comply with the ISO standards Quality issues in software systems

© S Ramakrishnan14 xIEEE publ. (1988, 1996) have metrics that could be used for testing quality attributes. These metrics include fault density requirements compliance test coverage & mean time to failure xHowever, no one metric is able to unambiguously measure a specific quality attribute - various metrics may give different rank orderings for the same quality and making comparative judgements across products difficult Quality issues in software systems

© S Ramakrishnan15 xV & V is a life cycle process of a software development effort and is used to assess the software quality and the V&V activites are performed at the unit, module & integration levels verify: Latin for versus = true –verify objectively that the output from the development activities fulfill the requirements imposed by the previous phase of the SDLC and is internally complete, consistent & correct for supporting the next phase –was the product built correctly? validate: Value –validate objectively that the products built satisfy the customer requirements – was the correct product built? Role of V & V and Independent V & V in SDLC

© S Ramakrishnan16 xIndependent V & V is a V & V process Where an iterative set of activities is carried out by a contractor or an organisation other than the developer of a system xAim of IV&V is to improve the quality & reliability of the system, assure that product meets the client’s operational requirements xIndependent group doing V&V provides an objective second opinion and is used to evaluate processes such as testing & configuration management as well as software & documentation Role of V & V and Independent V & V in SDLC

© S Ramakrishnan17 x I V & V activities done by outsourcing or with contractors or with a separate QA team xAdvantages: Independence – as V & V performed by someone other than the developer IV&V done concurrently with development, defects/deficiencies detected and corrected early Adopts a well-planned, well-defined V&V process and uses established quality standards, best practices such as formal inspection techniques and so on Role of V & V and Independent V & V in SDLC

© S Ramakrishnan18 x As reported by Sandia national lab, xRisk analysis & mitigation planning xRisk analysis & mitigation planning – work with develoeprs during risk analysis phase (which should start early in SDLC) and reduce identified risks by specific actions xEvaluation xEvaluation through analysis & testing for performance, robustness Early detection of deficiencies x Early detection of deficiencies/defects by independent analysis and separate testing – Arianne launch failure disaster example improve safety, security & reliabilityimproved performance xIV&V can assure that software will work as expected and a well planned IV&V strives to improve safety, security & reliability of the system. Provides improved performance by recommending improvements in design, development & testing of the system A Well-Planned I ndependent V & V returns benefits

© S Ramakrishnan19 x V& V aimed to be a systematic & technical evaluation of products associated with the development & maintenance process xRefer to Quality Manual – ISO-9001 xTwo major V & V activities are: reviews and testing xReviews – inspection & walkthroughs xFormal reviews - at the end of each phase of LC, to check if requirements, design & specs. have been met xInspection or walkthroughs – detailed examination of artifacts with a formal review panel xTesting V & V Activities

© S Ramakrishnan20 The major V & V activities during xSoftware system initiation phase – how system to be reviewed & tested. Clients may be involved in generating test cases or may use test data generators Resulting in better cost & schedule estimates due to adequate plans & test capabilities xSoftware Requirements phase (SRS) – V &V to check if software requirements consistent with system requirements Assure that requirements are testable Preliminary version of acceptance test plan, include a verification matrix which relates requirements to tests – to demonstrate that requirements are satisfied Start on test data generators if required Phase ending SR Review V & V Activities SDLC phases

© S Ramakrishnan21 x Software Architectural (Preliminary) Design Phase - V & V here should include Update to preliminary version of acceptance test plan & verification matrix Conduct informal reviews & walkthroughs or inspections of the prelim. DB or software design Phase ending preliminary design review (PDR) where allocations of requirements to software architecture are reviewed & approved V & V Activities SDLC phases

© S Ramakrishnan22 x Software Detailed Design Phase - V & V here should include Completing the acceptance test plan & verification matrix including test specifications & unit test plans Conduct informal reviews & walkthroughs or inspections of the detailed DB or software designs Phase ending critical design review (CDR) which completes the software design phase V & V Activities SDLC phases

© S Ramakrishnan23 x Software Implementation Phase - V & V activities here should include Code inspections and/or walkthroughs Unit testing software Locate, fix and retest errors Develop detailed test plans for next 2 phases of SDLC V & V Activities SDLC phases

© S Ramakrishnan24 x Software Integration and Test Phase - V & V activities here should include Tested units from previous phase integrated into subsystems and then into final system Activities include –Do Tests for each test procedure –Document test completion, expected vs actual results, test performance –Locate, record, fix & retest errors/nonconformance reports –Test readiness review (TRR) to confirm readiness for acceptance testing V & V Activities SDLC phases

© S Ramakrishnan25 x Software Acceptance & Delivery Phase - V & V activities here should include By testing, analysis & inspection, show that the system developed meets its functional, performance & interface requirements Locate, fix & retest any non conformances Phase ending acceptance review (AR) xSoftware Operation Phase - V & V activities here should include V & V activities of the previous 7 phases done during this phase for any updates of software V & V Activities SDLC phases

© S Ramakrishnan26 x Testing tools used in V&V of software especially for testing complex and/or large software systems xFormal inspection is a useful technique for finding errors. Developed by Michael Fagan, IBM Inspection involves line by line auditing of the product being reviewed Structured review - applied to any product of SDLC process (design, code, documentation) - direct feedback to the author - Efficient in locating & fixing errors Inspections done by a team, each member has a specific role; a moderator trained in the inspection process leads the team; a reader leads the team through the item; one or 2 reviewers who look for faults in the item; a recorder who records the faults; and the author, who has to explain the work being inspected. V & V Activities Techniques and Tools

© S Ramakrishnan27 xWhat is Testing? The term “Test” is derived from the Latin expression testum, an earthenware pot used by the Romans in the quality evaluation process of materials such as precious metal ores (Oxford English Dictionary). xSoftware Testing is done to: check that a program conforms to its specification uncover software defects ensure it functions correctly & does not produce unexpected results check robustness - how far can it be pushed before it fails badly understand the risks involved in software releases to customers An Overview Challenges of Testing An Overview Challenges of Testing

© S Ramakrishnan28 x“Testing is an activity aimed at evaluating an attribute or capability of a program or system and determining that it meets its required results” (Hetzel, 1988). this testing approach known as positive testing x“Testing is the process of executing a program or system with the intent of finding errors” (Myers, 1979). this approach is known as negative testing as it looks for defects outside the scope of requirements to cover incomplete requirements & inaccurate specification xIn practice, testing combines both positive & negative testing elements xDefining testing in terms of risk has become more popular. xRisk relates to AUT (Appl. under test) An Overview Testing (More Definitions) An Overview Testing (More Definitions)

© S Ramakrishnan29 x How do we plan for software testing? x When do we perform software testing? x How do we determine the test criteria and perform software testing? x How do we determine that the test outputs are correct (test oracle)? x When do we stop testing (test adequacy)? Fundamental Testing Questions