Tracking The Problem By Aaron Jackson. What’s a Problem? A suspicious or unwanted behavior in a...

35
Tracking The Problem By Aaron Jackson

Transcript of Tracking The Problem By Aaron Jackson. What’s a Problem? A suspicious or unwanted behavior in a...

Page 1: 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.

Tracking The Problem By Aaron Jackson

Page 2: 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.

What’s a Problem?

A suspicious or unwanted behavior in a program

Not all problems are errors as some perceived problems are desired features

A problem’s life cycle begins when a person spots the defect or one of the effects of the defect

Page 3: 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.

Problem Life Cycle

1. The user informs the vendor about the problem.

2. The vendor reproduces the problem.

3. The vendor isolates the problem circumstances.

4. The vendor locates and fixes the defect locally.

5. The vendor delivers the fix to the user.

Page 4: 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.

Vendor Responsibilities

Organize the life cycle

Locate which problems are currently open

Find out which problems are the most severe

Find out if any similar problems occurred in the past

Update the user on any progress made

Page 5: 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.

Problem Report

When a problem arises the user sends the vendor a problem report

A problem report contains the information needed to fix the problem

To fix a problem the vendor must be able to reproduce it

A report should contain all relevant facts needed to reproduce the problem

Page 6: 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.

What To Report

Often times a report is bloated with irrelevant information

This can be avoided by providing only relevant information such as:

The Product Release

The Operating Environment

The System Resources

The Problem History

Description of Expected and Experienced Behavior

A One-line Summary

Page 7: 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.

Product Release

The version number or some possible identifier for the program

Using this information, the vendor can recreate test the same copy of the program as the user

If at all possible try to generalize the problem Does the problem only occur on this version of the program?

Does it occur in previous releases too?

Example: Kodi v15.1 “Isengard” Windows OS

Page 8: 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.

Operating Environment

Provide version information about operating system

Provide information on relevant third party components, as interactions between them and the OS may cause problems

Again Try to generalize Does the problem occur on other operating systems?

Does the problem occur with different components attached?

Does the problem in alternate versions of the operating system?

Example: Windows 10 Pro with HP inkjet 3050b installed

Page 9: 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.

System Resources

Sometimes problems can occur under limited resources

As such, it is preferred to provide information on the system’s: Memory

Remaining Hard Disk Space

CPU Load (when problem occurs)

GPU VRAM size (if relevant)

Example: the system has 8GB of memory, the hard has 63GB of free space, and the CPU (intel i5 4 Core) was at 62% load

Page 10: 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.

Problem History

Provides a description of what needs to be done to reproduce the problem

Typically includes input or configuration files

The problem history is the most important fact in troubleshooting

If the problem cannot be reproduced by the vendor it is unlikely to be fixed

Provide all relevant information

Page 11: 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.

Expected and Experienced Behavior

Expected What should have happened according to the user

“The program should have saved the file”

Experienced The symptoms of the problem

“The program crashed”

Page 12: 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.

One-line Summary

Captures the essence of the problem

Used to decide the severity of the problem

Example: Kodi crashes when opening a .wma file

Page 13: 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.

Managing Problems

Two Methods:

1. Problem List

Lists all open or unresolved problems to date

2. Problem Database

Stores all problem reports

Page 14: 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.

Bugzilla

A problem database that organizes all problem reports for Mozilla

Bugzilla stores problem reports using this classification system Severity

Priority

Identifier

Comments

Notification

Page 15: 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.

Severity

Each Problem is assigned a severity

Blocker: Blocks development

Critical: Crashes, loss of data

Major: Major loss of function

Normal: A “standard” problem

Trivial: Cosmetic problem (typos)

Enhancement: Not a problem but a desired feature

Page 16: 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.

Priority

Each problem is assigned a priority

The higher the priority the sooner the problem is looked at

Priority is typically chosen by management

Prioritizing is an important component of development and problem solving

Page 17: 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.

Identifier

Each new problem receives an identifier (AKA bug number or report number)

The bug number is then used in communication when referring to the said problem

Page 18: 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.

Comments

Any user or developer can attach comments to a problem report

Add information you feel is relevant

Suggest possible steps needed to fix the problem

Page 19: 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.

Notification

Developers and users can attach their email to a problem report

When a change is made to the problem they are notified

Page 20: 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.

The Problem Life Cycle

Page 21: 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.

The Problem Life Cycle

Stages of the life cycle: Unconfirmed: A new problem report was just entered into the

database New: The problem report is valid Assigned: The problem is assigned to a developer Resolved: The problem is resolved and placed under one of the

following Fixed – The problem is fixed Invalid – Is not a problem or contains irrelevant facts Duplicate – The same problem has already been reported WONTFIX – The problem will never be fixed WORKSFORME – The developer could not reproduce the problem

Verified: The problem is fixed Closed: The problem no longer exists in a new release Reopened: If a problem occurs again it is assigned reopened rather

than new

Page 22: 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.

Management Resolutions

Who files problem reports

Who classifies problem reports

Who sets priorities

Who takes care of the problem

Who closes the issue

What is the life cycle of a problem

Page 23: 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.

The Software Change Control Board (SCCB)

Many companies use a SCCB to set priorities

Track problem reports and take care of their handling

Typically consists of developers, testers and configuration managers

Page 24: 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.

Problem Driven Development

Create a single problem in the form of a requirement

Divide that problem into sub problems or sub requirements

Solve all problems in order of severity

The product is ready for shipping when all problems are resolved

Page 25: 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.

Managing Clutter

Duplicates are likely to occur when multiple users have the same problem

This causes the problem database to become cluttered with duplicate reports

Reduce clutter by

Encourage users to use the search feature

Identify duplicates when possible

When the original problem is closed all the duplicates are closed with it

Remove unresolved reports that are no longer applicable

Page 26: 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.

Problem Fixes and Releases

How do you manage your versions in order to track bugs?

When a new version is released mark it with an appropriate tag

This creates version control which allows:

A main version where new features are added

A branch version where only fixes are added to stable versions

Page 27: 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.

Problems and Tests

When testing a program there is a high likelihood that a developer will encounter an error

Failures should not be entered in the problem database as that defeats the purpose of the test

Tests make problem reports obsolete

If a developer can reproduce a bug at will there is no need to place it in the database

Page 28: 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.

Effective Problem Reports

Characteristics of an effective problem report:

Is well structured

Is reproducible

Has a descriptive one-line summary

Is as simple as possible

Is as general as possible

Is neutral and stays with the facts

Page 29: 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.

Bug Tracking Tools

Bugzilla – bug tracker used by Mozilla

http://bugzilla.mozilla.org/

Page 30: 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.

Bug Tracking Tools

PHPBUGTRACKER – Lightweight problem tracking software that is simpler to use than Bugzilla

http://phpbt.sf.net/

Page 31: 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.

Bug Tracking Tools

ISSUETRACKER – A bug tracker that focuses on being user friendly

http://issue-tracker.sourceforge.net/

Page 32: 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.

Bug Tracking Tools

TRAC – Comes with integrated version control, making it easier to track problems across multiple versions

http://trac.edgewall.com/

Page 33: 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.

Bug Tracking Tools

SOURCEFORGE – provides automated project organization

http://sourceforge.net/

Page 34: 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.

Bug Tracking Tools

GFORGE – Similar to SOURCEFORGE it provides project organization. Unlike SOURCEFORGE GFORGE does not host projects

https://gforge.com/gf/

Page 35: 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.

Sources

Zeller, A. (2009). Why Programs Fail: A Guide to Systematic Debugging(2nd ed.). Burlington, MA.

https://www.bugzilla.org/docs/2.18/html/lifecycle.html

https://pixabay.com/en/folder-files-paper-office-document-303891/

https://cdn3.iconfinder.com/data/icons/seo-accessibility-usability-2-1/256/Usability_Evaluation-512.png

http://all-free-download.com/free-vector/download/business_meeting_59027.html

http://cliparts.co/clipart/2352617

http://www.thealgonquinway.ca/images/dictionary/img-word3293.jpg