Summary

This spec tracks the high priority enhancements to Checkbox for Karmic. They are designed to improve the user experience and provide required functionality for other Checkbox related blueprints.

Low priority/undefined enhancements are dealt with in ../CheckboxWishlist

Rationale

Checkbox requires various enhancements to improve the user experience, or provide functionality for teams using Checkbox. These enhancements vary in size and complexity, but none are significant enough to require their own blueprint. Therefore a decision was made to combine them into a single blueprint for tracking purposes.

Enhancements

Each enhancement is dealt with individually.

Apport Hooks

Checkbox currently does not have any hooks for Apport to use when reporting bugs. Following issues during the Jaunty development cycle which resulted in a number of duplicated bugs, these should be added early in the Karmic cycle to address any future issues.

Hooks should be provided for:

In addition there should a general apport hook to include the system/submission ids if they are cached (see below).

Use Cases

Implementation Details

Apport/DeveloperHowTo

Logging By Default

For users running the development release and using the extended checkbox-qa package we should enable --log-level=info (or debug) by default and specify a log file so that apport can easily grab this data.

The log file will be overwritten each time, so space should not be a problem.

Cached Data

Checkbox already stores its report file (submission.xml) when run. This should be supplemented with cached system and submission IDs for apport (and other systems) to access, along with the launchpad id used to submit data.

This is linked to bugs 363549 & 379393 which deal with using FreeDesktop XDG base directory specifications and exposing the system/submission IDs to Apport respectively.

Use Cases

Implementation Details

Two plaintext files are stored in $checkbox_data - system and submission which contain the system and submission IDs respectively.

Bug Filing

The Checkbox report will be extended to provide the facility for filing bugs via apport for all tests. Bugs can be filed directly on a package, when known, or against general functionality using apport's new symptom functionality.

Use Cases

Implementation Details

Each test will have a "Report Bug" link next to it in the report, which when activated will trigger Apport with either a package or symptom provided by the test.

This will require a "source" attribute to be provided in test definitions.

If no "source" is provided, ubuntu-bug will be used instead.

Checkbox QA package

A new package - checkbox-qa will be created in universe as a repository for extended tests and plugins above and beyond the base tests currently provided. The emphasis on tests in checkbox will be on end users (see "Terminology" below), while checkbox-qa will be technical and detailed tests.

Using this package as a catch-all for additional suites and plugins will make life easier for the various teams wanting to integrate their work with Checkbox.

This will also allow us to stabilise the Checkbox core packages, while rapidly expanding (and prototyping) a wider range of tests.

checkbox-qa-mago

Since a number of tests in the checkbox-qa package may depend on Mago, and it's not clear whether Mago will be packaged for Karmic, we should either:

Use Cases

Implementation Details

Open Questions

Test Progress

Checkbox should display the total number of tests, and the current position.

Use Cases

Implementation Details

The number of tests and current position will be displayed using natural language: "Test 3 of 8". This string will be translated as part of the usual translation process.

A status bar should be added to the Checkbox GTK interface, that displays the test progess.

The Checkbox CLI interface will display the test progress as a separator between each test.

Test Output

Checkbox should be able to display the output of tests. This will be useful for both debugging and long running tests.

Bug 333916 corresponds to this enhancement.

Use Cases

Implementation Details

A progress bar dialogue should be displayed for each test that includes:

Test output is automatically echoed/copied/piped to the output pane.

When the "Show/Hide" button is clicked, the output pane is displayed, and the button text changed.

The state of the "Show/Hide" button is remembered between tests, and the progress dialogue configured accordingly for each test.

What should the behaviour be if the test fails?

Unsure of how to address this for the CLI interface.

Local Usage

Although we want to encourage people to submit their data to Launchpad, it should be made more obvious that the report will be saved locally on the submission screen. The report will be displayed to the user who will then be given the option to save it and/or submit it to Launchpad.

When using checkbox-extras, local storage will be used. In the future results from the '-qa' package will be submitted to the QA Results Tracking System (QARTS).

A related bug is 305111.

Use Cases

Need some specific stories.

Implementation Details

Terminology

The tests in the base package should avoid technical terminology where possible, instead presenting a user friendly alternative. E.g. "We have detected a wired network controller." vs "We have detected a Broadcom Foo 9000.".

This will require re-writing of the tests and/or their detection scripts.

Use Cases

Implementation Details


CategorySpec

QATeam/Specs/CheckboxEnhancements (last edited 2009-06-19 09:49:01 by genld-218-089)