Software Defects.

Slides:



Advertisements
Similar presentations
Chapter 4 Quality Assurance in Context
Advertisements

PERTEMUAN - 2 SOFTWARE QUALITY. OBJECTIVES After completing this chapter, you will be able to: ■ Define software, software quality and software quality.
Copyright © 1994 Carnegie Mellon University Disciplined Software Engineering - Lecture 1 1 Disciplined Software Engineering Lecture #7 Software Engineering.
Testing: Who 3, What 4, Why 1, When 2, How 5 Lian Yu, Peking U. Michal Young, U. Oregon.
1 Software Testing and Quality Assurance Lecture 1 Software Verification & Validation.
 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.
Software Quality Assurance
Software Defects Defect Prevention and Removal 1.
BY RAJESWARI S SOFTWARE TESTING. INTRODUCTION Software testing is the process of testing the software product. Effective software testing will contribute.
1 Software Inspections and Walkthroughs Author: A. Frank Ackerman Presented by Cynthia Johnson EEL6883.
Chapter 9 – Software Evolution and Maintenance
Applied Software Project Management Andrew Stellman & Jennifer Greene Applied Software Project Management Applied Software.
Software Project Management
Software Quality Chapter Software Quality  How can you tell if software has high quality?  How can we measure the quality of software?  How.
Verification and Validation Yonsei University 2 nd Semester, 2014 Sanghyun Park.
Categories of software defects See accompanying Word file “Software defects 2”
What is Software Engineering? the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software”
The Ariane 5 Launcher Failure
SoITSSpecifications of IT systems? 1 Specifications of IT systems checking and validating Jens Bennedsen and Peter Gorm Larsen
Software Quality Assurance Lecture #4 By: Faraz Ahmed.
CS 501: Software Engineering Fall 1999 Lecture 16 Verification and Validation.
Software Engineering DKT 311 Lecture 11 Verification and critical system validation.
Verification and Validation Overview References: Shach, Object Oriented and Classical Software Engineering Pressman, Software Engineering: a Practitioner’s.
Software Testing Testing principles. Testing Testing involves operation of a system or application under controlled conditions & evaluating the results.
Lecture 11 Testing and Debugging SFDV Principles of Information Systems.
1 Software testing. 2 Testing Objectives Testing is a process of executing a program with the intent of finding an error. A good test case is in that.
 CS 5380 Software Engineering Chapter 8 Testing.
INVARIANTS EEN 417 Fall When is a Design of a System “Correct”? A design is correct when it meets its specification (requirements) in its operating.
Software Quality See accompanying Word file “Software quality 1”
Testing Workflow In the Unified Process and Agile/Scrum processes.
Disciplined Software Engineering Lecture #7 Software Engineering Institute Carnegie Mellon University Pittsburgh, PA Sponsored by the U.S. Department.
© Copyright 2011 John Wiley & Sons, Inc.
CS 350, slide set 5 M. Overstreet Old Dominion University Spring 2005.
Quality Assurance.
Chapter 12: Software Inspection Omar Meqdadi SE 3860 Lecture 12 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
KUFA UNIVERSITY Department of Computer Science 06/12/2015.
SEN 460 Software Quality Assurance. Bahria University Karachi Campus Waseem Akhtar Mufti B.E(UIT), M.S(S.E) AAU Denmark Assistant Professor Department.
CPSC 873 John D. McGregor Session 9 Testing Vocabulary.
Testing and inspecting to ensure high quality An extreme and easily understood kind of failure is an outright crash. However, any violation of requirements.
CPSC 871 John D. McGregor Module 8 Session 1 Testing.
1 Software Testing Strategies: Approaches, Issues, Testing Tools.
 Software Testing Software Testing  Characteristics of Testable Software Characteristics of Testable Software  A Testing Life Cycle A Testing Life.
HNDIT23082 Lecture 09:Software Testing. Validations and Verification Validation and verification ( V & V ) is the name given to the checking and analysis.
Software Engineering Lecture 8: Quality Assurance.
1 Phase Testing. Janice Regan, For each group of units Overview of Implementation phase Create Class Skeletons Define Implementation Plan (+ determine.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 23 Slide 1 Software testing.
Reviews Chapter 5 Applied Software Project Management, Stellman & Greene See also:
Testing JUnit Testing. Testing Testing can mean many different things It certainly includes running a completed program with various inputs It also includes.
What is a software? Computer Software, or just Software, is the collection of computer programs and related data that provide the instructions telling.
SQA COMPONENTS IN THE PROJECT LIFE CYCLE C HAPTER 8 Dr. Ahmad F. Shubita.
CPSC 372 John D. McGregor Module 8 Session 1 Testing.
Requirements Errors Lecture # 14.
Software Quality Assurance
Regression Testing with its types
John D. McGregor Session 9 Testing Vocabulary
Testing More In CS430.
Testing and Debugging PPT By :Dr. R. Mall.
Software Verification and Validation
Verification and Testing
Verification and Validation Overview
John D. McGregor Session 9 Testing Vocabulary
Roberta Roth, Alan Dennis, and Barbara Haley Wixom
John D. McGregor Session 9 Testing Vocabulary
Lesson 2 Understanding Software Bugs
Software Quality Engineering
Lecture 09:Software Testing
Quality Measurable characteristic Cyclomatic complexity Cohesion
Applied Software Project Management
Welcome to Corporate Training -1
Presentation transcript:

Software Defects

What is a Software Defect? A software defect is an error, flaw, mistake, failure, or fault in software that prevents it from behaving as intended (e.g., producing an incorrect or unexpected result) Software defects are also known as software errors or software bugs

Effects of Software Defects Bugs can have a wide variety of effects, with varying levels of inconvenience to the user of the software. Some bugs have only a delicate effect on the program’s functionality, and may thus lie undetected for a long time. More serious bugs may cause the software to crash or freeze leading to a denial of service. Others qualify as security bugs and might for example enable a malicious user (hacker) to bypass access controls in order to obtain unauthorized privileges

Effects of Software Defects The results of bugs may be extremely serious In 1996, the European Space Agency’s US $1 billion prototype Arian 5 rocket was destroyed less than a minute after launch WHY? Bug in the on-board guidance computer program WHY? Reuse code from the old Ariane4 system HOW? conversion from the 64 bit float to 16 bit unsigned integer

Effects of Software Defects In June 1994, a Royal Air Force Chinook crashed into the Mull of Kintyre, killing 29 people. WHY? A software bug in the aircraft’s engine control computer

Effects of Software Defects In 2002, a study commissioned by the US Department of Commerce’ National Institute of Standards and Technology (NIST) concluded Software bugs are so predominant and damaging that they cost estimated US $59 billion annually Estimated $22.2 billion, could be eliminated by an improved testing infrastructure that enables earlier and more effective identification and removal of software defects. 

Software Defects in Six Application Size Ranges 1 function point or 125 C statements 10 function points or 1,250 C statements 100 function points or 12,500 C statements 1,000 function points or 125,000 C statements 10,000 function points or 1,250,000 C statements 100,000 function points or 12,500,000 C statements

Categories of Software Defects Errors of commission Errors of omission Errors of clarity and ambiguity Errors of speed or capacity

Errors of Commission Something wrong is done A classic example at the code level would be going through a loop one time too many or branching on the wrong address

Errors of Omission Something left out by accident For example, omitting a parentheses in nested expressions

Errors of Clarity and Ambiguity Different interpretations of the same statement This kind of error is common with all natural language requirements and specification documents and user manuals, too.

Errors of Speed and Capacity Application works, but not fast enough

Defect Origins Software defects can be found in any of the documents and work products including very serious ones in cost estimates and development plans However, there are seven major classes of software work products where defects have a strong probability of triggering

Software Defect Origins Errors in Requirements Errors in Design Errors in Source code Errors in User Documentation Errors due to “Bad fixes” Errors in Data and Tables Errors in Test Cases

Defect Discovery Defects are discovered by developers & testers (usually) before release Defects are discovered by customers and users (usually) after release Defects discovered after release can be embarrassing for the development team

Software Defect Elimination Strategies Effective defect prevention High levels of defect removal efficiency Accurate defect prediction before the project begins Accurate defect tracking during development Useful quality measurements Ensuring high levels of user-satisfaction

Defect Prevention and Removal Both defect prevention and removal techniques are used by the “best-in-the-class” companies Defect prevention is very difficult to understand, study, and quantify. We’ll talk about defect prevent in a later lecture Both non-test and testing defect removal techniques must be applied

Typical Defect Removal Inspections Direct fault detection and removal Testing Failure observation and fault removal

Inspections Inspections are critical examinations of software artifacts by human inspectors aimed at discovering and fixing faults in the software systems Inspections are critical reading and analysis of software code or other software artifacts, such as designs, product specifications, test plans, etc. Inspections are typically conducted by multiple human inspectors, through some coordination process. Multiple inspection phases or sessions may be used.

Inspections Faults are detected directly in inspection by human inspectors, either during their individual inspections or various types of group sessions Identified faults need to be removed as a result of the inspection process, and their removal also needs to be verified

Inspections The inspection processes vary, but typically include some planning and follow-up activities in addition to the core inspection activity The formality and structure of inspections may vary, from very informal reviews and walkthroughs, to fairly formal variations.

Non-Test Defect Removal Methods Requirement inspections Design inspections Code inspections Test plan reviews Test-case inspections User documentation editing or reviews

Testing Defect Removal Methods Unit test by individual programmers New function testing Regression testing Performance testing Integration testing System testing Field test (external beta test)

Defect Removal Not all defects are equal when it comes to removal Requirements errors, design problems, and “bad fixes” are particularly difficult

Software Defect Origins & Defect Removal Effectiveness

Summary In today’s lecture, we talked about software defects and where are they introduced in the software product We discussed the approaches to eliminating these defects