Software Quality Assurance Inspection by Ross Simmerman Software developers follow a method of software quality assurance and try to eliminate bugs prior.

Slides:



Advertisements
Similar presentations
Object Oriented Analysis And Design-IT0207 iiI Semester
Advertisements

Testing Relational Database
ICT Class System Life Cycle.  Large systems development projects may involve dozens of people working over several months or even years, so they cannot.
Chapter 4 Quality Assurance in Context
SWE 316: Software Design and Architecture Objectives Lecture # 01 Prologue: The Software Process SWE 316: Software Design & Architecture  To review software.
Case Tools Trisha Cummings. Our Definition of CASE  CASE is the use of computer-based support in the software development process.  A CASE tool is a.
Testing Without Executing the Code Pavlina Koleva Junior QA Engineer WinCore Telerik QA Academy Telerik QA Academy.
Documentation Testing
Lab/Sessional -CSE-374. SYSTEM DEVELOPMENT LIFE CYCLE.
Software Quality Metrics
MSIS 110: Introduction to Computers; Instructor: S. Mathiyalakan1 Systems Design, Implementation, Maintenance, and Review Chapter 13.
SE 450 Software Processes & Product Metrics 1 Defect Removal.
Implementation. We we came from… Planning Analysis Design Implementation Identify Problem/Value. Feasibility Analysis. Project Management. Understand.
 QUALITY ASSURANCE:  QA is defined as a procedure or set of procedures intended to ensure that a product or service under development (before work is.
High Level: Generic Test Process (from chapter 6 of your text and earlier lesson) Test Planning & Preparation Test Execution Goals met? Analysis & Follow-up.
Design, Implementation and Maintenance
Planning. SDLC Planning Analysis Design Implementation.
SystematicSystematic process that translates quality policy into measurable objectives and requirements, and lays down a sequence of steps for realizing.
OHT 4.1 Galin, SQA from theory to implementation © Pearson Education Limited 2004 Software Quality assurance (SQA) SWE 333 Dr Khalid Alnafjan
Introduction to Systems Analysis and Design Trisha Cummings.
CCSB223/SAD/CHAPTER141 Chapter 14 Implementing and Maintaining the System.
1 Building and Maintaining Information Systems. 2 Opening Case: Yahoo! Store Allows small businesses to create their own online store – No programming.
Extreme Programming Software Development Written by Sanjay Kumar.
Introduction to RUP Spring Sharif Univ. of Tech.2 Outlines What is RUP? RUP Phases –Inception –Elaboration –Construction –Transition.
1 Software Testing (Part-II) Lecture Software Testing Software Testing is the process of finding the bugs in a software. It helps in Verifying and.
University of Palestine software engineering department Testing of Software Systems Fundamentals of testing instructor: Tasneem Darwish.
INFO 637Lecture #81 Software Engineering Process II Integration and System Testing INFO 637 Glenn Booker.
Managing the development and purchase of information systems (Part 1)
Objectives Understand the basic concepts and definitions relating to testing, like error, fault, failure, test case, test suite, test harness. Explore.
Software Systems Verification and Validation Laboratory Assignment 3 Integration, System, Regression, Acceptance Testing Assignment date: Lab 3 Delivery.
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.
Phil Cronin Anne Hill Allen Schones CIS841 Summer on Campus 1998 IN-PROCESS INSPECTIONS FOR OBJECT ORIENTED DESIGNS.
Teaching material for a course in Software Project Management & Software Engineering – part II.
Principles of Information Systems, Sixth Edition Systems Design, Implementation, Maintenance, and Review Chapter 13.
Testing Basics of Testing Presented by: Vijay.C.G – Glister Tech.
Moving into Implementation SYSTEMS ANALYSIS AND DESIGN, 6 TH EDITION DENNIS, WIXOM, AND ROTH © 2015 JOHN WILEY & SONS. ALL RIGHTS RESERVED.Roberta M. Roth.
Testing -- Part II. Testing The role of testing is to: w Locate errors that can then be fixed to produce a more reliable product w Design tests that systematically.
Software Development. Software Developers Refresher A person or organization that designs software and writes the programs. Software development is the.
CHAPTER 9 INSPECTIONS AS AN UP-FRONT QUALITY TECHNIQUE
 System Development Life Cycle System Development Life Cycle  SDLC Phases SDLC Phases Phase 1: Preliminary Investigation Phase 2: Feasibility Study.
Topics Covered Phase 1: Preliminary investigation Phase 1: Preliminary investigation Phase 2: Feasibility Study Phase 2: Feasibility Study Phase 3: System.
Construction, Testing, Documentation, and Installation Chapters 15 and 16 Info 361: Systems Analysis and Design.
Project quality management. Introduction Project quality management includes the process required to ensure that the project satisfies the needs for which.
Cmpe 589 Spring 2006 Lecture 2. Software Engineering Definition –A strategy for producing high quality software.
Software Testing Process By: M. Muzaffar Hameed.
Software Development Problem Analysis and Specification Design Implementation (Coding) Testing, Execution and Debugging Maintenance.
Connecting with Computer Science2 Objectives Learn how software engineering is used to create applications Learn some of the different software engineering.
Principles of Information Systems, Sixth Edition 1 Systems Design, Implementation, Maintenance, and Review Chapter 13.
Chapter 1: Fundamental of Testing Systems Testing & Evaluation (MNN1063)
© 2006 Pearson Addison-Wesley. All rights reserved 2-1 Chapter 2 Principles of Programming & Software Engineering.
CS 1120: Computer Science II Software Life Cycle Slides courtesy of: Prof. Ajay Gupta and Prof. James Yang (format and other minor modifications by by.
CSC 480 Software Engineering Test Planning. Test Cases and Test Plans A test case is an explicit set of instructions designed to detect a particular class.
1 Software Testing Strategies: Approaches, Issues, Testing Tools.
© Michael Crosby and Charles Sacker, 2001 Systematic Software Reviews Software reviews are a “quality improvement process for written material”.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
Introduction to System Analysis and Design MADE BY: SIR NASEEM AHMED KHAN DOW VOCATIONAL & TECHNICAL TRAINING CENTRE.
Week # 4 Quality Assurance Software Quality Engineering 1.
Verification vs. Validation Verification: "Are we building the product right?" The software should conform to its specification.The software should conform.
MANAGEMENT INFORMATION SYSTEM
SOFTWARE TESTING Date: 29-Dec-2016 By: Ram Karthick.
Testing More In CS430.
Systems Analysis and Design
Maintaining software solutions
Applied Software Implementation & Testing
Introduction to Systems Analysis and Design
Software life cycle models
Test Case Test case Describes an input Description and an expected output Description. Test case ID Section 1: Before execution Section 2: After execution.
Overview Activities from additional UP disciplines are needed to bring a system into being Implementation Testing Deployment Configuration and change management.
Presentation transcript:

Software Quality Assurance Inspection by Ross Simmerman Software developers follow a method of software quality assurance and try to eliminate bugs prior to release. However, they don’t want to take the time to inspect the software thoroughly prior to release. Instead they must deal with the complaints after release.

Inspection “Inspection” is the systematic approach to examining a program in detail. Assess the quality of the software product itself, not the quality of the process by which it was developed.

Development Process The following three categories: Design, Code and Documentation Test and Verification Control of the Development Processes

Programmer “Natural” Flow like an assembly line. Design/Document Code Test Integrate Performance/Measure Release

Quality Control Software must be: functionally complete easily usable and installable low error rates. To correct a problem found in the final product is much more costly and time consuming then doing so earlier on in the development process.

Detect errors early and correct them as soon as possible to prevent further errors from slipping into the next development phase. Increase ease of use and future maintenance of the product.

Design High Level Design 1.Overall specification on what is to be performed. 2.Dependencies for each major function by modules identifying both internal/external cases. 3.Linkages between modules are specified. 4.For each function, a control flow describing the logic given by modules.

Detailed Design 1.Receives input from High Level Design. 2.Used as input to coding. 3.Complete “Structured” logic flow (by module) should be given. 4.Data Structure should be clearly specified.

Testing Function Test Verification of each function using a series of test cases within its intended environment. Component Test Verification of inter-functional activities. System Test Make sure no part of the system is adversely effected (including performance) and that it doesn’t crash even under unusual, non-intended environment.

Continuous Integration Complete main function path Build upon main with additional functions which are added individually. Thus when errors are found, they can be isolated to the newly added function or interface areas.

Documentation Project “workbook” that contains the design documentation for each function must be maintained in an up to date manner. Used as : A source for use publication. Source for test case development Control information for Continuous Integration. Source for quality control activities.

Inspection and Reviews Number of errors passed from one phase to the next is greatly reduced. Specific exit criteria must be met to proceed to next step. Control steps in the development cycle. Two new steps: 1.Error Prone Analysis 2.Post Functional Test Analysis

Inspection Preparation All appropriate and required outputs for that phase are distributed to the inspectors. They are given time to digest the material before actual inspection. Inspection itself Inspection falls between testing and formal verification. Rework Follow-Up

Control Steps Error-Prone Analysis step follows the coding phase. The content of the inspection results from High Level Design, Detailed Design, and Code are analyzed and any changes or corrections are then identified. The reports that are created from this step serve two purposes. 1.They will allow the developers to decide whether certain areas should be reworked before entering the Test phase. 2. The reports can also be used as additional guideline to the Testing phase in that the error prone areas may require more extensive test effort.

Control Step continued… Post Functional Test Analysis The results from the previous test are analyzed. Besides identifying areas which are functionally weak, the data may be used to estimate the number of errors that will occur when the system goes into production. They measure this estimation against a predetermined error tolerance level. Thus the results from Post Functional Test Analysis may be used to determine the quality of the final product.

Exit Criteria 1 The output from High Level Design is in flowcharts andHIPO diagrams. Flowcharts are used in structured programming, so they make an excellent tool for inspection of this phase. Exit Criteria 1 is made up of the following: 1.High level design inspection results logged into an inspection file, all necessary rework signed-off by managers and logged on the inspection file as complete. 2.The updated version of the High Level Design specification is logged into a project workbook, signed-off by managers, and distributed to : (i) project developers, (ii) testers, (iii) documentation and publications groups and (iv) product assurance group (if any), each module is assigned an owner.

Exit Criteria 1 3. The output serves as an input to the next phase of the development cycle as well as input for early test planning and documentation. The development cycle is considered a static part of the development environment as every function produced must go through the same cycle. The development cycle has quality controls built into it and they are the static part of a dynamic programming process paradigm.

Justification The objective of the previous methods was to reduce error rate and make it easier to enhance and use. This all relates to the user using the software. However, developers can benefit just as much. Their schedules will be met and cost of development will go down. It's estimated that on average a programmer makes 7 errors per 1,000 lines of code. This means even after 60% of the errors have been eliminated by testing, inspection and other quality controls that there is still errors left after release. These remaining errors are estimated to cost 70 people hours to fix per error.

Justification This involves identifying the problem, making the correction, compile or assemble, test and check the test. If redesigning is necessary the cost is much higher. This of course is dependent upon these being unique errors. Should these errors have additional effects that cause more time to be spent verifying they're due to the same unique error this could lead to more people hours to correct. It's a matter of whether its more cost effective to introduce the techniques into the development or to just correcting the errors as they come up. For example: to bring 3.5 errors down to 2.0 it costs 105 people hours.

Conclusion It is not until 60% error elimination quality control that the cost of introducing these techniques seem worth doing. However, a lower level of quality control would likely be sufficient, because machine time cost was never introduced into the comparison. They used a fixed 70 people hours per error correction, which resulted in a linear relationship between the size of the product and the error correction cost. Reasonably, the cost of fixing an error would be higher the larger the product. With the implementation of quality control you can lower error rate, making maintenance easier and lower total cost.