You are on page 1of 24

Tracking and Squashing Bugs

Coder To Developer from Mike Gunderloy Chapter 9 Instructor : Dr.James Fawcett Presented by Charlie Chung chungcharlie@yahoo.com

Agenda
Risk Management
QA & Testing Bug Tracking Tools

Risk Management
Risk Assessment

What things might go wrong badly? Cost, schedule or quality? Take the correct action to handle it?

Risk Control

Maintaining the Top Five Risk List Bug Triage

Risk Assessment ideas


I discover a requirement that I can not figure out how

to implement I dont have time to finish the code, I have too many other projects to do I cant finish all the planned features in the time allowed I lose the programs source code due to a hardware issue My code quality is too low to share without embarrassment .

Risk Assessment
risk too much other work too many features hardware disaster probability 0.25 0.5 0.05 cost in weeks 12 4 20 impacts 3 2 1

Risk Control
Get things done!

Maintaining the T5 Risk List


The goal of the Top 5 risk list is to give you an idea

where you can immediately and easy review the most serious threats to your project
Rank this week Rank last week Weeks on List Risk So much consulting work that I don't have time to 1 2 11 finish the code code quality too slow to share without embarrassment Management Steps avoid work with deadline until safely afer the project is submitted. Reserve time in schedule to work on it Implement unit test and track bugs

Bug Triage
Prioritizing bugs based on their seriousness

and deciding what to do about each one Fix what really need to be fixed

By Design Duplicate Postponed Not Reproducible Wont fixed Reassigned Fixed

Bug Tracking Work Flow


A tester find a bug and report it

The bug is assigned to a manager for initial

triage The manager resolve it or assign to a developer Resolved bug returned to a tester The tester either closes the bug or reopen it with additional information or comments which start step 2 again

QA & Testing
Type of Software Test QA for Lone Wolf Build a Test Network

Type of Software Testing


Unit testing Chapter 5, by function or component Functional testing Walk through with specifications? Conformance testing Match industry spec? ex. XML format match W3C XML.. Compatibility testing Different OS, HW

Performance testing Check the application performance is acceptable to user

Type of Software Testing


Stress testing How app fail when subjected to excessive stress Regression testing Test that were passed by previous build of the software Smoke testing Running quick and dirty tests that exercises major features .. Have to wait till next build if failed Black-box testing Focusing on external interfaces, (most are QA jobs) White-box testing Internal behavior of component is tested , just like unit testing

QA for the lone wolf


Most company have 1/3 manager & architect; 1/3 develops; 1/3 testers

Use unit test Create a list of critical requirements Set code aside for a few days before performing

functional tests Get someone dont know your app to test Keep a written list of requirements Use bug tracking system Be sure to check absurd input If you think something might go wrong while coding, enter it as a bug in you bug tracking system. This will help you to remember

Treating bugs as learning experience, not a threat to your coding skills

Building a Test Network


Some advice from the author Buy preassembled machine, name brand, serious development hardware Skip tapes Store data separately Keep drive image Use virtual machines Use KVM switch ( many company do this) Get your own domain Use a firewall Set aside test machine & use mix of machines Set aside a build machines

Bug Tracking Tools


Choosing a bug Tracking Tool

Using a bug tracking tool

Choosing a bug Tracking Tool


Cost (tool cost / license ..)? Multiple platform needs? / web based or other interfaces Send notification, distinguish or feature request? Integrate with other management tool? Where does the tool store information? What do you NEED from here?

Using a bug tracking tool


What happen

What the tester thinks should happen instead


Steps to reproduces the problem

Bug Tracking Systems


Fog Creek Corp. Fog Bugs Managing software projects designed by software development guru Joel Spolsky http://fogcreek.com/FogBugz/index.html Project Center Bug Tracker Supports the definition, and eventually the closure of bugs encountered in development. http://128.230.209.100/ProjectCenter/WebPages/featur es.aspx Problem Tracker Corp. Problem Tracker http://demo.netresultscorp.com/pt4_demo1/ptloginok.a sp http://demo.netresultscorp.com/pt4_demo.html

Example: New Case

*Using Fog Bugz

Example: custom case

*Using Fog Bugz

Example: List view

*Using Fog Bugz

Example: Notification

*Using Fog Bugz

Example: Search

*Using Fog Bugz

Thank you!

You might also like