Dept. of Computer Science & Engineering, The Chinese University of Hong Kong Fighting Against Software Defects CHEN Xinyu 2010-02-01.

Slides:



Advertisements
Similar presentations
SERVICE MANAGER 9.2 PROBLEM MANAGEMENT TRAINING JUNE 2011.
Advertisements

Medical Device Software Development
Test process essentials Riitta Viitamäki,
Ch 3: Unified Process CSCI 4320: Software Engineering.
Software Engineering CSE470: Process 15 Software Engineering Phases Definition: What? Development: How? Maintenance: Managing change Umbrella Activities:
Chapter 4 Quality Assurance in Context
Software Modeling SWE5441 Lecture 3 Eng. Mohammed Timraz
Using UML, Patterns, and Java Object-Oriented Software Engineering Royce’s Methodology Chapter 16, Royce’ Methodology.
Software Quality Assurance Inspection by Ross Simmerman Software developers follow a method of software quality assurance and try to eliminate bugs prior.
Overview Lesson 10,11 - Software Quality Assurance
PVK-HT061 Contents Introduction Requirements Engineering Project Management Software Design Detailed Design and Coding Quality Assurance Maintenance.
RIT Software Engineering
SIM5102 Software Evaluation
SE 450 Software Processes & Product Metrics 1 Defect Removal.
Six Sigma Quality Engineering
Testing - an Overview September 10, What is it, Why do it? Testing is a set of activities aimed at validating that an attribute or capability.
Software Quality Assurance
High Level: Generic Test Process (from chapter 6 of your text and earlier lesson) Test Planning & Preparation Test Execution Goals met? Analysis & Follow-up.
Project Execution & Termination Life Cycle Execution Presented by: Basker George.
Extreme Programming Software Development Written by Sanjay Kumar.
1 Software Quality Engineering CS410 Class 5 Seven Basic Quality Tools.
© Janice Regan, CMPT 128, Jan CMPT 128 Introduction to Computing Science for Engineering Students Creating a program.
University of Palestine software engineering department Testing of Software Systems Fundamentals of testing instructor: Tasneem Darwish.
RUP Fundamentals - Instructor Notes
Dillon: CSE470: SE, Process1 Software Engineering Phases l Definition: What? l Development: How? l Maintenance: Managing change l Umbrella Activities:
CLEANROOM SOFTWARE ENGINEERING.
Software Testing Life Cycle
Techniques for Execution of System Tests Execution of System Tests.
Software Metrics - Data Collection What is good data? Are they correct? Are they accurate? Are they appropriately precise? Are they consist? Are they associated.
Understand Application Lifecycle Management
Project Tracking. Questions... Why should we track a project that is underway? What aspects of a project need tracking?
Error reports as a source for SPI Tor Stålhane Jingyue Li, Jan M.N. Kristiansen IDI / NTNU.
Topic (1)Software Engineering (601321)1 Introduction Complex and large SW. SW crises Expensive HW. Custom SW. Batch execution.
1 The Software Development Process  Systems analysis  Systems design  Implementation  Testing  Documentation  Evaluation  Maintenance.
Software Life Cycle Requirements and problem analysis. –What exactly is this system supposed to do? Design –How will the system solve the problem? Coding.
Testing Workflow In the Unified Process and Agile/Scrum processes.
CS 3610: Software Engineering – Fall 2009 Dr. Hisham Haddad – CSIS Dept. Chapter 2 The Software Process Discussion of the Software Process: Process Framework,
Software Development Cycle What is Software? Instructions (computer programs) that when executed provide desired function and performance Data structures.
DEBUGGING. BUG A software bug is an error, flaw, failure, or fault in a computer program or system that causes it to produce an incorrect or unexpected.
1 Introduction to Software Engineering Lecture 1.
Lecture Introduction to Software Development SW Engg. Development Process Instructor :Muhammad Janas khan Thursday, September.
Cmpe 589 Spring 2006 Lecture 2. Software Engineering Definition –A strategy for producing high quality software.
Software Life Cycle The software life cycle is the sequence of activities that occur during software development and maintenance.
The Software Development Process
Software Architecture Evaluation Methodologies Presented By: Anthony Register.
Software Maintenance Speaker: Jerry Gao Ph.D. San Jose State University URL: Sept., 2001.
ME 4054W: Design Projects RISK MANAGEMENT. 2 Lecture Topics What is risk? Types of risk Risk assessment and management techniques.
Chapter 1: Fundamental of Testing Systems Testing & Evaluation (MNN1063)
Test status report Test status report is important to track the important project issues, accomplishments of the projects, pending work and milestone analysis(
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.
9/8/99Lecture 51 CIS 4251 / CIS 5930 SOFTWARE DEVELOPMENT Fall 1999 Sept. 8, 1999 Marge Holtsinger.
Using Total Quality Management Tools to Improve the Quality of Crash Data John Woosley Louisiana State University.
 Software Testing Software Testing  Characteristics of Testable Software Characteristics of Testable Software  A Testing Life Cycle A Testing Life.
1 The Software Development Process ► Systems analysis ► Systems design ► Implementation ► Testing ► Documentation ► Evaluation ► Maintenance.
Mahindra Satyam Confidential Quality Management System Software Defect Prevention.
Testing Overview Software Reliability Techniques Testing Concepts CEN 4010 Class 24 – 11/17.
Failure Modes and Effects Analysis (FMEA)
What is a software? Computer Software, or just Software, is the collection of computer programs and related data that provide the instructions telling.
Failure Modes, Effects and Criticality Analysis
ON “SOFTWARE ENGINEERING” SUBJECT TOPIC “RISK ANALYSIS AND MANAGEMENT” MASTER OF COMPUTER APPLICATION (5th Semester) Presented by: ANOOP GANGWAR SRMSCET,
Software Configuration Management
Causal Analysis & Resolution (CAR) Support Category
Verification and Validation Overview
GE 6757 TOTAL QUALITY MANAGEMENT
Engineering Processes
Baisc Of Software Testing
PFMEA Summary Process Steps
Presentation transcript:

Dept. of Computer Science & Engineering, The Chinese University of Hong Kong Fighting Against Software Defects CHEN Xinyu

Dept. of Computer Science & Engineering, The Chinese University of Hong Kong 2 Outline  What software defect are  Why software defects occur  What can be done Detection Analysis Prevention  Conclusion Dept. of Computer Science & Engineering, The Chinese University of Hong Kong 2

3 Outline  What software defects are  Why software defects occur  What can be done Detection Analysis Prevention  Conclusion

Dept. of Computer Science & Engineering, The Chinese University of Hong Kong 4 1. What Software Defects Are A software defect is a deficiency in a software product that causes it to perform unexpectedly. Software Defect Number of Defects We need more information! Are we loosing control? Minimizing the number of defects Software’s complexity and accelerated development schedules make avoiding defects difficult

Dept. of Computer Science & Engineering, The Chinese University of Hong Kong 5 2. Why Software Defects Occur  A defect in software results from some type of mistake Human error Systemic error in the development process  Guidelines and procedures  Domain-specific information  Organization information ……  Not every mistake leads to a defect, but almost all defects can be traced back to some type of mistake

Dept. of Computer Science & Engineering, The Chinese University of Hong Kong 6 Dynamics of Software Failure Production Problematic Specifications Cognitive Breakdowns Runtime Failures Runtime Errors  Requirements Software Defects Usability Issues Specifications Functionality Semantics … Programmer Knowledge Attention Strategies … Programming System Interfaces Information Notations … Program Algorithms Data structures Variables Classes Interfaces … A.J. Ko, B.A. Myers A frameworkand methodology for studying the causes of software errors in programming systems Journal of Visual Languages & Computing, 16, pp. 41–84, 2005.

Dept. of Computer Science & Engineering, The Chinese University of Hong Kong 7 3. What Can Be Done  Three Levels in Improving Software Quality Detection Prevention Analysis Look for trends and insights Proactively identify and eliminate potential defects Test quality into the software Learn from the past

Dept. of Computer Science & Engineering, The Chinese University of Hong Kong 8 A Bug's Life at Microsoft Product Code Run test case Enter bug report Sustained Engineering Transition Checklist Specify code fix Modify design Close bug Reactive bug Build workflow Resolve fixed bug Fix code Design OK? Design or code Triage Regress bug Close bug Resolve “Won’t Fix” Fail Pass Fix approved Investigation approved No or refine Proposed code fix Proposed design fix Code issue Design issue Not approved A. Page, K. Johnston, B. Rollison, How we test software at Microsoft Microsoft press, 2009

Dept. of Computer Science & Engineering, The Chinese University of Hong Kong 9 IBM: Orthogonal Defect Classification (ODC)  Defects are collected and analyzed in-process during an on-going software development  Classifying each defect into orthogonal (mutually exclusive) attributes Opener section: These are the attributes one can classify when you find a defect Closer section: These are the attributes one can classify when you know how the defect was fixed ODC Attributes Activity Trigger Impact Target Type Qualifier Source Age A.A. Shenvi Defect prevention with orthogonal defect classification ISEC’09, pp , Feb. 2009

Dept. of Computer Science & Engineering, The Chinese University of Hong Kong 10 Missing Unclear Wrong Changed Better Way Mode (Why?) Mode (Why?) HP: Defect Origins, Types, and Modes Specifications/ Requirements Specifications/ Requirements Design Code Environmental Support Environmental Support Documentation Other Origin (Where?) Origin (Where?) Requirements or Specifications Functionality Other Requirements or Specifications Functionality Other HW Interface SW Interface User Interface Functional Description Other HW Interface SW Interface User Interface Functional Description Other Process (Interprocess) Communication Data Definition Module Design Logic Description Error Checking Standards Other Process (Interprocess) Communication Data Definition Module Design Logic Description Error Checking Standards Other Logic Computation Data Handling Module Interface / Implementation Standards Other Logic Computation Data Handling Module Interface / Implementation Standards Other Test SW Test HW Development Tools Integration SW Other Test SW Test HW Development Tools Integration SW Other Type (What?) Type (What?)

Dept. of Computer Science & Engineering, The Chinese University of Hong Kong 11 Defect Analysis Example

Dept. of Computer Science & Engineering, The Chinese University of Hong Kong 12 Root Cause Analysis  Identify where in the software development lifecycle a defect was introduced Identify where attention could be concentrated Misunderstood Requirements Misunderstood Requirements Missing/Incorrect Requirements/Design Missing/Incorrect Requirements/Design Scattered Requirements Scattered Requirements Implicit Requirements Not Addressed Implicit Requirements Not Addressed Domain Knowledge Domain Knowledge Functional Defects Functional Defects Fishbone or cause-and-effect diagram

Dept. of Computer Science & Engineering, The Chinese University of Hong Kong 13 Defect Prevention  A level 5 Key Process Area (KPA) in the Capability Maturity Model Integration (CMMI) A strategy applied to the software development life cycle that identifies root causes of defects and prevents them from recurring. Software Defect Prevention

Dept. of Computer Science & Engineering, The Chinese University of Hong Kong 14 Fan-out Phenomenon in Software Development Scenarios Specification Design Implementation Internal Testing Internal Testing Customer Testing Customer Testing Work product Time

Dept. of Computer Science & Engineering, The Chinese University of Hong Kong 15 Moving Quality Upstream Requirements Design & Implementation Test Maintenance Time Rate of Discovery Defect Prevention New Old 100X Increase in Cost of Removing Defects Late defect discovery results in significant correct and rework Software Defect Rate of Discovery vs. Time P. Narayana Software defect orevention - In a nutshell

Dept. of Computer Science & Engineering, The Chinese University of Hong Kong 16 Failure Modes and Effects Analysis (FMEA)  Identify potential failure modes in a product design A failure mode is a type of failure that can occur in a product  Assess the risk of each potential failure  Implement appropriate actions to eliminate or mitigate those failure modes How can the system fail?What bad things will happen if the failure occurs? How many failures will the system experience?

Dept. of Computer Science & Engineering, The Chinese University of Hong Kong 17 FMEA Worksheet Process Step, Function or Task Potential Failure Mode Potential Effect(s) of Failure Potential Causes Current ControlImprovement Impact RankLikelihood Rank Risk Priority Owner Detectability Rank Fail to create log file dir Fatal error that stops setup Setup phase 5Dev oversight API failure No disk space Code review Error message Incorrect determine phase Fail to create log file dir Fatal error that stops setup Setup phase 5 Fail to create log file dir Fatal error that stops setup Setup phase Try to reinitialize drive 5 Incorrect determine phase Unpredictable errors are generated 3 Incorrect use of API API failure 3 2 Stop (exit) setup Error message Setup phase Setup phase Add to code review list Improve the API spec. Add disk space check Create more detailed API doc Improve the API spec. Dan John Sam Mary John Setup logging … Risk Priority Number (RPN) = Impact Severity  Occurrence Likelihood  Detectability

Dept. of Computer Science & Engineering, The Chinese University of Hong Kong 18 Fault Tree Analysis (FTA)  Starts with a failure  Focuses on deducing all the potential causes and their relationships using Boolean logic  FMEA and FTA are complementary techniques FMEA is used to identify potential failures FTA is then used to discover the causes of those failures

Dept. of Computer Science & Engineering, The Chinese University of Hong Kong 19 FTA Example

Dept. of Computer Science & Engineering, The Chinese University of Hong Kong Conclusion  The causes of software defects Human errors Systemic errors  Three levels to improve software quality Defect detection  Testing Defect analysis  ODC  Defects origins, types, and modes  Root cause analysis Defect prevention  FMEA  FTA

Dept. of Computer Science & Engineering, The Chinese University of Hong Kong 21 Reference  M. McDonald, R. Musson, R. Smith, The practical guide to defect prevention, Microsoft press, 2008 Thank You!