Meego Wiki
Views

Quality/QA-tools

From MeeGo wiki
(Difference between revisions)
Jump to: navigation, search
(Roadmap)
Line 173: Line 173:
|-
|-
| [https://bugs.meego.com/showdependencytree.cgi?id=12971&hide_resolved=0 Qt Creator integration] || 1.2.x
| [https://bugs.meego.com/showdependencytree.cgi?id=12971&hide_resolved=0 Qt Creator integration] || 1.2.x
 +
|-
 +
| [[Quality/QA-tools/OTS/Roadmap|OTS releases]] ||
|}
|}

Revision as of 11:08, 9 February 2011

Contents

Quality Assurance (QA) Tools

Quality Assurance tools are developed to ensure MeeGo SW quality. QA tools team develops and maintains tools for Quality Assurance.

Open source tools  – available for all, available for development and contributions. Make people accountable for quality.

Anyone is welcome to contribute and non-member contributions will be treated with same process and review as member contributions. We follow MeeGo contribution guidelines. In addition, you may take personal clone from our git repositories and create merge request. Tool maintainers in our projects will review your contributions and decide on merge.

Targets:

  • Improve MeeGo test reporting tools - target from MeeGo Quality Assurance
  • Improve MeeGo test automation (execution and software installation) - target from MeeGo release engineering

"As Core OS release release manager I want to verify trunk:testing packages frequently so that I know the quality of nightly/weekly releases."

Tools and Maintainers

Tool maintainers are selected based on developer experience with particular tool/package or seniority. Tool maintainers have been agreed in the QA-tools meeting Tuesday September 7th 2010. Changes, if needed, are discussed also there.

In practice only tool maintainers will have commit and review right to particular repository - later several people may have rights to repository based on merit (as proposed by tool maintainer). Others must follow MeeGo contribution guidelines to submit patches or personal clone + merge request approach.

The maintainer of the tree shall update the changelog.

Tool (link to wiki page) GitoriousMaintainer Substitute
test-definitionGitorious Sampo Saaristo Timo Härkönen
testrunner-lite Gitorious Sampo Saaristo Kyösti Ranto
Testrunner Gitorious Kyösti Ranto Timo Härkönen
Testplanner Gitorious Kyösti Ranto N/A
eat - enables automated testing Gitorious Timo Härkönen Timo Mäkimattila
ots - open testing system Gitorious Teemu Vainio Tom Galvin
MeeGo Automated installer Gitorious Timo Härkönen N/A
MeeGo Core Test Suite Gitorious Matti Salmi Jeff Zheng
MeeGo Netbook Test Suite Gitorious Jeff Zheng N/A
Model-Based Testing adapter for qtuitest Gitorious Riku Halonen N/A
MIN test framework Gitorious Sampo Saaristo Timo Mäkimattila
Testability Driver Gitorious Petri Kiiskinen Tatu Lahtela
Rich Core dumper Gitorious Carol Rus Raimo Gratseff
Crash Reporter Gitorious Carol Rus Raimo Gratseff
Crash Reporter settings Gitorious Carol Rus Raimo Gratseff
Hardware Accessory for Testing (HAT) Gitorious Marko Junttila Riku Halonen
QA Reports Gitorious Sami Hangaslammi Jarno Keskikangas
Scripts and utils Gitorious N/A N/A
handset_ux_tests Gitorious JessicaJi N/A
MeeGo Fast Feedback Testing (MeeGo-FFT) Gitorious Alexey Kuznetsov Timo Härkönen
Service OS based Flasher Gitorious Jing Wang N/A
Qpid C wrapper library - libcqpid Gitorious Sami Lahtinen N/A

You can install Testrunner, testrunner-lite, test-definition, Testplanner, OTS, Meego-ai, libcqpid, eat and MIN from Tools:Testing repository. The instructions for setting up the repositories can be found here.

See the rest of our team members and our collaboration spaces below. If you are interested in the user experience work regarding these tools, you can find more information here.

Overview

The figure below tries to summarize the relations and tasks of the tools when used in test automation context.

Testautomationtools.png

xfig file:File:Qatools.fig

Release Practices

Here is the workflow for QA tools release practices.

Role Description
Developer Anyone who wants to participate in qa-tools development
VCS Maintainer Component owner who has commit rights in version control system (VCS)
Package Maintainer Integrator whose responsibility is the OBS packaging
Release Management Third party who is responsible of trunk:testing releases(?)

Release.png

Kivio file: File:Release.flw

  1. Developer creates merge request(s) in gitorious.
  2. VCS Maintainer tests and accepts merge requests.
  3. VCS Maintainer checks/updates change logs.
  4. VCS Maintainer tags a version.
  5. VCS maintainer sends email to meego-qa mailing list based on the following template

Topic: Integration request: package-name version

PACKAGE: package-name
TAG: tag name
URL: link to sources
CHANGES: short description of changes containing bugs.meego.com bug numbers of fixed bugs
  1. Package maintainer updates the OBS package.
  2. Package maintainer tests the OBS package.
  3. If the package belongs to tools:testing and passes testing, Package Maintainer may accept it. If the package belongs to trunk:testing, Package Maintainer creates a promotional request to Release Management. (If the package belongs to both repositories, we let the Release Management set bugs fixed by the package to RELEASED state).
  4. Host side tools are updated to tools:testing after verifying functionality
  5. Package maintainer replies to meego-qa list about the actions done with the updated package. e.g. 'Updated in devel:quality and sent promotion request to testing'
  6. Release Management accepts the package. Or not. (Follow meego-packaging and meego-commits.)

YouTube videos

YouTube is a good way to communicate new features. You can find existing demo videos on meegoqatools channel on Youtube.

If you shoot a video to YouTube, promote it on meego-qa mailing list!

You can find some hints how to shoot, edit, and upload a video here: YouTube_Hints

Release checklist

To make sure fixes are released without delay, check that the following conditions are met

  1. Change logs are updated and contain relevant references to MeeGo bugzilla
  2. Created obs request include fixes bug numbers from MeeGo bugzilla
  3. Bugzilla items listed in changes are set as resolved
  4. Spec file matches MeeGo packaging guidelines
  5. Rpmlint warnings are either fixed or explained by comments in the spec file. e.g. eat packages install files into root's home and the reasoning for it needs to be explained
  6. Host side tool packages use the same source tar ball to produce debian and rpm packages

Roadmap

(We need still rough estimates for releases -timakima)

The release dates defined in MeeGo Release plans 1.1 and 1.2. These dates are the latest estimation. They will be updated as work progresses.

The features in the roadmap are followed with META FEA bugs. The features are split to small tool specific FEA:s that block the feature META bug. The META bug is then the last bug to be closed when the feature is finished. You can also follow the tool bug progression from the dependency trees of the META bugs.

Adding a new feature to the roadmap:

  1. Add a feature bug describing the main purpose of the feature with META and FEA tags.
  2. Add separate bugs for each tool specific change
  3. Add correct dependencies between tool specific bugs (e.g. testrunner bug depends on testrunner-lite bug that depends on test-definition bug...)
  4. Make all of the bugs block the META bug


Feature  Release
Measurement support 1.1.90.5
Easy install 1.1.90.5
Parallel testing 1.1.90.7
Events feature in automatic testing 1.1.90.8
MCTS coverage support  1.2.0.0
Test environment validation  1.2.x
Test equipment control 1.2.x
Qt Creator integration 1.2.x
OTS releases

Features and Bugs

Want to report an feature idea or bug to us? - Please do it here

Bugzilla workflow: Bugzilla/how-report-bugs

We'd like to have the best guess of the moment about the delivery of features. Remember to set the target build of the bug you're working with according to: Release Engineering/Plans/1.1 and Release Engineering/Plans/1.2

When you add a new bug, add correct dependencies to the corresponding roadmap meta bug.

Documentation

This section will contain links to various guides and user documentation. See the wiki pages of the tools for tool-specific documentation.

Design/ Planning

Meetings

All meetings will be held in #meego-meeting on irc.freenode.net.

Team Members and Collaboration Spaces

The current team members are (in no particular order):

Name Role Affiliation IRC nickname
Ville Ilvonen Team lead (act.) Nokia vilvo
Riku Halonen Team member Nokia rikhalon
Kari Sievi Team member Digia sievi
Timo Härkönen Team member Digia timoph
Carol Rus Team member Digia carrus
Sami Lahtinen Team member Digia slahtinen
Raimo Gratseff Team member Digia rrraimo
Kyösti Ranto Team member Digia kyranto
Arto Sinnelä Team member Digia asinnela
Joonas Kylänpää Team member Digia Kaadlajk
Timo Mäkimattila Team member Digia timakima
Elias Luttinen Team member Digia eluttine
Ville Niutanen Team member Digia Villen
Esa-Pekka Miettinen Team member Digia E-P
Vesa Poikajärvi Team member Digia vesse
Alexey Kuznetsov Team member Digia alkuznet
Sergey Timofeev Team member Digia setimofe
Daniil Chuiko Team member Digia dachuiko
Jarmo Savinen Team member Digia jasavi
Sampo Saaristo Team member Sofica sampos
Ling Yu Team member Intel -
Jing Wang Team member Intel -
Teemu Vainio Team member Ixonos tvainio
Tuomo Mäkinen Team member Ixonos -
Jouni Leppäkases Team member Ixonos jouni
Tom Galvin Team member Ixonos -
Jarno Keskikangas Team member Leonidas jakeskik
Janne Hietamäki Team member Leonidas _janne
Sami Hangaslammi Team member Leonidas sahangas

Team communication is in English. Our collaboration spaces are:

Personal tools