Finding and Managing Bugs CSE 403 Lecture 23

Slides:



Advertisements
Similar presentations
INTRODUCTION 1. Business systems and QA Department business systems 2. All the bug reports and all the bug tracking systems are very similar.
Advertisements

Test process essentials Riitta Viitamäki,
Regression Methodology Einat Ravid. Regression Testing - Definition  The selective retesting of a hardware system that has been modified to ensure that.
INTRODUCTION 1. QA Department business systems 2. All the bug reports and all the bug tracking systems are very similar.
Annoucements  Next labs 9 and 10 are paired for everyone. So don’t miss the lab.  There is a review session for the quiz on Monday, November 4, at 8:00.
The Joel Test: 12 Steps to Better Code By Tim Denton.
Acronis Jira New Acronis Bug Tracking System March, 2011.
Testing: Who 3, What 4, Why 1, When 2, How 5 Lian Yu, Peking U. Michal Young, U. Oregon.
1 Software Maintenance and Evolution CSSE 575: Session 8, Part 3 Predicting Bugs Steve Chenoweth Office Phone: (812) Cell: (937)
Testing HCI Usability Testing. Chronological order of testing Individual program units are built and tested (white-box testing / unit testing) Units are.
15 Jul 2005CSE403, Summer'05, Lecture 10 Lecture 10: Incremental Releases Valentin Razmov.
Quality Assurance: Test Development & Execution Ian S. King Test Development Lead Windows CE Base OS Team Microsoft Corporation.
A Bug Tracking Story Danny R. Faught Tejas Software Consulting ASEE Software Engineering Process Improvement Workshop 2002.
Estimation Wrap-up CSE 403, Spring 2008, Alverson Spolsky.
QWise software engineering – refactored! Testing, testing A first-look at the new testing capabilities in Visual Studio 2010 Mathias Olausson.
Software Testing Lifecycle Practice
Dr Andy Brooks1 FOR0383 Software Quality Assurance Lecture 1 Introduction Forkröfur/prerequisite: FOR0283 Programming II Website:
CSC444F'06Lecture 111 Process Control. CSC444F'06Lecture 112 The Process Document A document that concisely describes the steps we go through to produce.
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
Tracking The Problem  By Aaron Jackson. What’s a Problem?  A suspicious or unwanted behavior in a program  Not all problems are errors as some perceived.
Dr. Tom WayCSC Testing and Test-Driven Development CSC 4700 Software Engineering Based on Sommerville slides.
Chapter 13: Regression Testing Omar Meqdadi SE 3860 Lecture 13 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
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.
16 October Reminder Types of Testing: Purpose  Functional testing  Usability testing  Conformance testing  Performance testing  Acceptance.
CS 5150 Software Engineering Lecture 3 Software Processes 2.
Quality Assurance: Test Development & Execution CSE 403 Lecture 23 Slides derived from a talk by Ian King.
1 Introduction to Software Testing. Reading Assignment P. Ammann and J. Offutt “Introduction to Software Testing” ◦ Chapter 1 2.
QA and Testing. QA Activity Processes monitoring Standards compliance monitoring Software testing Infrastructure testing Documentation testing Usability.
Software Defects.
Testing. Today’s Topics Why Testing? Basic Definitions Kinds of Testing Test-driven Development Code Reviews (not testing) 1.
CS 5150 Software Engineering Lecture 2 Software Processes 1.
System Testing Earlier we have stated the 2 views of testing:
CSE 403, Spring 2007, Alverson Quality Assurance Pragmatic Programmer Tip Think about Your Work Turn off the autopilot and take control. Constantly critique.
29 March Software Quality and Testing. Why do we care? Therac-25 (1985) Multiple space fiascos (1990s) Ariane V exploded after 40 seconds (conversion)
Jason I. Hong CS169 - Software Engineering, Fall 1998 Testing Strategies.
Week 6 MondayTuesdayWednesdayThursdayFriday Testing III Reading due Group meetings Testing IVSection ZFR due ZFR demos Progress report due Readings out.
CS223: Software Engineering Lecture 25: Software Testing.
Fall CS-EE 480 Lillevik 480f06-l9 University of Portland School of Engineering Senior Design Lecture 9 Project management Project plan Change request.
Testing. Aspects of Quality Software Flexibility Extensibility Correctness Robustness Reliability Safety Usability.
Steve Chenoweth Office Phone: (812) Cell: (937)
Change Request Management
Introduction to CAST Technical Support
Introduction to Software Testing Part1 Summary & Terms
Peter Varhol Solutions Evangelist
SaralTA Batch-07 Software Testing Presented By - Chittaranjan M.
Regression Testing with its types
Tracking and Squashing Bugs
Quality Assurance Week 5 Winter quarter 02/04/02 SOS
Quality Assurance: Early Work Items
Quality Assurance Best Practices THANK YOU!.
The LAST Recitation Godfrey Tan.
Smart Testing and Recycling Testing
Issue Tracking Systems
Strategies For Software Test Documentation
Software Quality Engineering
Introduction to CAST Technical Support
CSCE 315 – Programming Studio, Fall 2017 Tanzir Ahmed
Testing and Test-Driven Development CSC 4700 Software Engineering
CSE 303 Concepts and Tools for Software Development
Welcome to Corporate Training -1
BIT 285: (Web) Application Programming
Introduction to CAST Technical Support
Software Testing Lifecycle Practice
that focus first on areas of risk.
Test Cases, Test Suites and Test Case management systems
Testing.
Walking dead. How to save project?
Project Iterations.
Chapter 10: Testing and Quality Assurance
Presentation transcript:

Finding and Managing Bugs CSE 403 Lecture 23 A Bug’s life Finding and Managing Bugs CSE 403 Lecture 23

What is a bug? Formally, a “software defect” SUT fails to perform to spec SUT causes something else to fail SUT functions, but does not satisfy usability criteria If the SUT works to spec and someone wants it changed, that’s a feature request

What are the contents of a bug report? Repro steps – how did you cause the failure? Observed result – what did it do? Expected result – what should it have done? Any collateral information: return values/output, debugger, etc. Environment Test platforms must be reproducible “It doesn’t do it on my machine”

What makes a good bug report? Clear, descriptive title Accurate description of the problem Environment description Steps to reproduce the problem Ideally, a minimal set of steps

Ranking bugs Severity Priority Sev 1: crash, hang, data loss Sev 2: blocks feature, no workaround Sev 3: blocks feature, workaround available Sev 4: trivial (e.g. cosmetic) Priority Pri 1: Fix immediately Pri 2: Fix before next release outside team Pri 3: Fix before ship Pri 4: Fix if nothing better to do 

A Bug’s Life

Bug Triage Decide which bugs to fix Reasons NOT to fix bugs Ambiguous status of the bug Cost of fix vs. benefit to the product Risks that fixing it will cause other problems Incorrect fix Other portions of the code depend on incorrect behavior

Regression Testing Good: rerun the test that failed Or write a test for what you missed Better: rerun related tests (e.g. component level) Best: rerun all product tests Automation can make this feasible!

Tracking Bugs Raw bug count Ratio by ranking Find rate vs. fix rate Slope is useful predictor Ratio by ranking How bad are the bugs we’re finding? Find rate vs. fix rate One step forward, two back? Management choices Load balancing Review of development quality

When can I ship? Test coverage sufficient Bug slope, find vs. fix lead to convergence Severity mix is primarily low-sev Priority mix is primarily low-pri

Milestones Feature complete Code complete Code Freeze All features are present Code complete Coding is done, except for the bugs Code Freeze No more coding Release Candidate I think it’s ready to ship It’s out the door

BUGs vs. Time Feature Complete Code Complete Code Freeze Release Candidate

Basic entomology Some facts about bugs (from Code Complete) The scope of most errors is limited 85% could be fixed by modifying a single routine Errors in assignment statements are common 41% of errors in assignment statements Most errors easy to fix 85% a few hours 14% a few hours to a few days 1% multiple days Old Microsoft Data (1992) 10 to 20 defects per 1000 lines of code in test 0.5 defects per 1000 lines of released code

Errors in testing Test cases can have errors too! Spending hours looking for bugs in code that turn out to be in the test case Test cases more prone to errors than the code Especially when the developer writes the test case

When do you fix bugs? Write the code first, have someone else fix the bugs Fix blocking bugs, but save the minor stuff until code complete Aggressively fix bugs as they are found