ResultsDB

From FedoraProject

(Redirected from ResultsDB Overview)
Jump to: navigation, search

Contents

What is ResultsDB

ResultsDB is a system designed to hold the results of tests executed by the AutoQA framework.

Motivation behind ResultsDB

From the beginning of AutoQA development, all test results were stored on the autoqa-results mailing list [1]. While this is not a bad system for storing test results on a small scale, searching through these results (ie. find all test results for foobar-1.3-fc15) is overly difficult and cumbersome.

The primary motivation behind ResultsDB is to provide a simple, easily accessible interface to test results through simple querying API. ResultsDB is also capable of storing test results but this is a secondary objective.

Since ResultsDB is only a system for storing test results, different 'frontend' systems can be created using ResultsDB as a data source. These frontends could be a simple tool to aggregate recent results for packages (potentially a table for a package/update's results within bodhi or koji) or something more complicated like a tool for gathering test-related metrics (historical fail/pass ratio of a specific test in a Fedora release, failure rate of critpath packages etc.).

Current State of Development

At the time of this writing, most of the first version of ResultsDB has been completed:

API

Note.png
Down with direct SQL
During discussions, it was decided against using a direct SQL-based API. Instead, the preference was for a set of specific filter-methods with monitorable (?) arguments.

At the time of this writing, ResultsDB has a well defined API for storing results but the API for retrieving results has yet to be designed. The current thought behind the retrieval API is that it could be better designed once a proper production dataset exists.

When the Fedora Message Bus is deployed, that would provide another mechanism to monitor for and broadcast events.

Database Schema

Visit AutoQA_resultsdb_schema [2] to read up on the schema.

Generic Testplan Frontend

The testplan frontends are designed to be simple applications with an MVC [7] architecture.

It is anticipated that multiple testplan frontends will be created for ResultsDB and this architecture should be flexible enough to support the implementation of several independent frontends.

Example

A frontend was created for the Package Update Acceptance Testplan (PUATP) [5] as an example. There are multiple 'levels' of acceptance, based on the results of different tests. Many AutoQA tests are run on most, if not all, packages and the same data can be presented in different contexts to allow for easier understanding of that data.

At the time of this writing, FedoraQA is using MediaWiki for a TCMS. A method to store and retrieve test metadata on wiki pages was proposed[9] and is currently being used for the more complicated PUATP template[8].

The frontend [6] parses metadata from the wiki page, queries ResultsDB for test results from a specific NVR/testcase combination, and renders the information into an easily readable format.

Mediawiki Testcase Metadata

The semantics of metadata for the PUATP testcase [8] is quite simple.

Links

  1. https://fedorahosted.org/pipermail/autoqa-results/
  2. 2.0 2.1 https://fedoraproject.org/wiki/AutoQA_resultsdb_schema
  3. https://fedoraproject.org/wiki/AutoQA_resultsdb_API
  4. http://git.fedorahosted.org/git/?p=ResultsDB.git;a=tree;f=resultsdb
  5. 5.0 5.1 https://fedoraproject.org/wiki/QA:Package_Update_Acceptance_Test_Plan
  6. 6.0 6.1 6.2 http://git.fedorahosted.org/git/?p=ResultsDB.git;a=tree;f=frontends/puatp
  7. http://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller
  8. 8.0 8.1 8.2 https://fedoraproject.org/wiki/User:Jskladan/Sandbox:Package_Update_Acceptance_Test_Plan_Metadata
  9. https://fedoraproject.org/wiki/QA:Test_Plan_Metadata_Test_Page