Meego Wiki
Views

Quality/Plans/Test-plan-template

From MeeGo wiki
< Quality | Plans(Difference between revisions)
Jump to: navigation, search
(Traceability of Features)
 
(17 intermediate revisions not shown)
Line 1: Line 1:
-
WORK IN PROGRESS - please contribute by editing this page or posting your comments on discussion are for this page.
+
Proposal - please contribute by editing this page or posting your comments on [[Talk:TestPlanTemplate|discussion area]] for this page.
 +
 
 +
Note that this is template giving the frame from actual test plan.
 +
The intent is to list areas/things which one need to consider when planning needed QA activities for certain MeeGo Release (e.g. 1.2, 1.3).
== Introduction ==
== Introduction ==
-
 
-
The Test Plan defines the Quality Assurance procedures used to verify MeeGo 1.1 release (incl. Core OS, Netbook UX and Handheld UX verticals).
 
=== Purpose ===
=== Purpose ===
-
The purpose of the Test Plan is to describe <please contribute>
+
The purpose of the Test Plan is to introduce the testing strategy, scope, sub-plans and testing activities done or supported by QA team for MeeGo X.X release.
-
The intended readers for this document are <please contribute>
+
The intended readers for this document are people interested about the reasoning behind the actual activities done by QA team.
 +
 
 +
<please write more>
=== Objectives ===
=== Objectives ===
-
The Test Plan is intended to provide the vehicle for customers to confirm the functionality and completeness of the MeeGo 1.1 release. It is expected that the satisfaction of the complete series of criteria contained in this plan will signify successful functionality of the integrated release.
+
The Test Plan is intended to provide the vehicle for QA team to confirm the functionality and completeness of the MeeGo X.X release. It is expected that the satisfaction of the complete series of criteria contained in this plan will signify successful functionality of the integrated release.
 +
 
 +
<please list more objectives>
=== Goal ===
=== Goal ===
The goal is to deliver a product with no open bugs with a severity level of critical and a minimal number of open bugs with severity level major.
The goal is to deliver a product with no open bugs with a severity level of critical and a minimal number of open bugs with severity level major.
 +
 +
<please add other goals>
=== Document Overview ===
=== Document Overview ===
Line 23: Line 30:
==== Test Cases ====
==== Test Cases ====
-
During the the release phase aiming to final release, test cases will be executed. The test cases are described in test documents which are in <our_test_case_management_tool>. The actual test case code might be (depending on the license type and test level) part of the source package. Each test case also contains test specific criteria which decide upon test case success of failure.
+
During the the release phase aiming to final release, test cases will be executed. The test cases are described in test documents which are in gitorius at meego.gitorious.org/meego-quality-assurance. The actual test case code might be (depending on the license type and test level) part of the source package. Each test case also contains test specific criteria which decide upon test case success or failure.
 +
 
 +
Test cases shall fulfill the definitions given in [[Quality/Test_case_template|Test case template]]
 +
 
 +
<add other sources and definitions used>
==== Test Case Result ====
==== Test Case Result ====
-
Following verdicts shall be assigned for a test case after execution
+
Verdict shall be assigned for a test case after execution according [[Quality/Glossary#Test_case_verdict|test case verdict instructions]].
-
* Fail: A test is deemed to fail if its actual result does not match its expected result.
+
-
** Create also a bug report in bugs.meego.com
+
-
* Pass: A test is deemed to pass if its actual result matches its expected result.
+
-
* In addition to these two main values there are also one additional verdict:
+
-
** If you are unable to finish the test, please set the result to Blocked and create a bug report in bugs.meego.com against either test or component that it is testing.
+
==== Traceability of Features ====
==== Traceability of Features ====
-
For each feature listed bugs.meego.com, in principle, one or more test cases will exist (see detailed test plans).
+
For each feature listed bugs.meego.com, in principle, one or more test cases should exist (see detailed test plans). This information should be defined in the test case according instructions given in [[Quality/Test_case_template|Test Case Template]]
==== Test Case Documentation ====
==== Test Case Documentation ====
-
Each test case described in the detailed test plan contains the following fields <please contribute according test packaging, XML and DTD>
+
Each test case described in the detailed test plan contains the fields according [[Quality/Test_case_template|Test Case Template]] and [http://meego.gitorious.org/meego-quality-assurance/test-definition test-definition]
== Overall test strategy ==
== Overall test strategy ==
Line 64: Line 70:
Tests are written on a highest priority first basis, and secondly on broad coverage.
Tests are written on a highest priority first basis, and secondly on broad coverage.
 +
 +
<add other priorization rules used by vertical or project>
=== Coverage ===
=== Coverage ===
-
At this stage we are aiming towards <please contribute>
+
At this stage we are aiming towards feature and functionality coverage.
 +
 
 +
<put additional coverage targets here>
=== Configurations ===
=== Configurations ===
-
MeeGo 1.1 is tested in a number of configurations, both in a <Virtual> as well as on reference devices. The public configurations used for this release are <please contribute>
+
MeeGo X.X is tested in a number of configurations, both in reference hardwares and a QEMU environment. The public configurations used for this release are YY.
 +
 
 +
<update data according the information given by product management>
=== Test Execution ===
=== Test Execution ===
-
All automated tests are executed in a MeeGo QA automated environment, and typically test results are available for each build.
+
All automated tests are executed in a automated environment ([http://ots.meego.com/ OTS]), and typically test results are available for each build.
Manual tests are executed regularly, but certainly before each release.
Manual tests are executed regularly, but certainly before each release.
-
See discussion for some ideas about this.
+
<update your rules and environments here>
 +
 
=== Test Reporting ===
=== Test Reporting ===
-
<please contribute>
+
Reporting for individual test sessions is done in [http://qa-reports.meego.com/ qa-reports]. Verticals might have additional reporting practices defined.
-
* Search Results
+
-
* Advanced Search
+
-
* Test Runs
+
-
* Statistics
+
=== Test Tools ===
=== Test Tools ===
-
<please contribute>
 
Additional tools such as Valgrind may be used to do a deep analysis of test details/failures and tools such as <please contribute> are used in the documentation process. These tools which will provide additional data used to analyse the quality of the product but are not necessarily used in the Go/No-Go decision making process.
Additional tools such as Valgrind may be used to do a deep analysis of test details/failures and tools such as <please contribute> are used in the documentation process. These tools which will provide additional data used to analyse the quality of the product but are not necessarily used in the Go/No-Go decision making process.
-
=== Basic Functionality Checklist ===
+
<add your own tool portfolio here>
 +
 
 +
=== Testing Quality Characteristics ===
 +
 
 +
Check out the [[Quality/Test_areas_and_types|Test areas and types]].
 +
 
 +
==== Functionality ====
-
<please contribute>
+
The basic functionality checklist can be categorized as below:
-
The basic functionality checklist is categorized as below, and the <link to quality awareness wiki-page> has a lot more details:
+
* Installation and un-installation  
* Installation and un-installation  
* Startup and exiting  
* Startup and exiting  
Line 107: Line 120:
* Help and documentation  
* Help and documentation  
* UI Controls  
* UI Controls  
 +
[[Quality/Test_areas_and_types#Functionality_quality_characteristics|Test areas and types for functionality]] has more details/ideas.
-
=== Basic Usability Checklist ===
+
<list your goals for functional testing here>
-
<please contribute>
+
==== Performance ====
-
Below is the usability check list which is referred to while we were performing usability feedback for netbook UX.
+
 
 +
The performance target is to produce a quality product with a performance that is competitive in the market. This is going to be achieved by first looking at the different areas that affect the performance of MeeGo X.X release, on actual reference hardwares, and then trying to measure these values to find out where performance needs to be improved.
 +
The focus areas might be:
 +
* Binary sizes
 +
* Functional Performance
 +
* Application Startup times
 +
* Startup times
 +
* Memory usage
 +
[[Quality/Test_areas_and_types#Performance_quality_characteristics|Test areas and types for performance]] has more details/ideas.
 +
 
 +
Our goal to have a fast and responsive system having following targets:
 +
* <list your measurable targets for performance aspects of the system here>
 +
 
 +
These are our initial targets only. Once we have reached these targets we will continue to improve and create a new set of targets to aim for.
 +
 
 +
<define your approach in more details here>
 +
 
 +
==== Reliability ====
 +
 
 +
Our goal is to have reliable system having following targets:
 +
* <list your measurable targets for reliability aspects of the system here>
 +
[[Quality/Test_areas_and_types#Reliability_quality_characteristics|Test areas and types for reliability]] has more details/ideas.
 +
 
 +
==== Usability ====
 +
 
 +
The usability check list can be categorized as below:
* Task success rates and Error prevention
* Task success rates and Error prevention
* Help users recognize, diagnose, and recover from errors
* Help users recognize, diagnose, and recover from errors
Line 122: Line 161:
* User preference
* User preference
* User control and freedom
* User control and freedom
-
 
+
[[Quality/Test_areas_and_types#Usability_quality_characteristics|Test areas and types for usability]] has more details/ideas.
-
=== Performance ===
+
-
 
+
-
==== Goals ====
+
-
 
+
-
The performance target is to produce a quality product with a performance that is competitive in the market. This is going to be achieved by first looking at the different areas that affect the performance of MeeGo 1.1 release, on actual devices, and then trying to measure these values to find out where performance needs to be improved.
+
-
The focus areas are:
+
-
* Binary sizes
+
-
* Functional Performance
+
-
* Application Startup times
+
-
* Startup times
+
-
* Memory usage
+
-
 
+
-
==== Targets ====
+
-
 
+
-
Based on the target system and our goal to have a fast and responsive system we have defined the goals <please contribute>
+
-
These are our initial targets only. Once we have reached these targets we will continue to improve and create a new set of targets to aim for.
+
== General Environment Setup ==
== General Environment Setup ==
-
MeeGo can be tested on devices as well as in a <Virtual> environment. Both cases have value and may provide data that would be hard or impossible to acquire 'on the other side'.
+
MeeGo can be tested on reference hardwares as well as in a QEMU environment. Both cases have value and may provide data that would be hard or impossible to acquire 'on the other side'.
=== Basic Environment Setup ===
=== Basic Environment Setup ===
-
Once MeeGo is installed in the <Virtual> environment or installed onto a device, no additional environment setup should be required that isn't already required by MeeGo itself. It is important though that the environment is equal for each testrun, i.e. the same background processes are running for each test run, and that only background processes are running that are required.
+
Once MeeGo is installed in the QEMU environment or installed onto a reference hardware, no additional environment setup should be required that isn't already required by MeeGo itself. It is important though that the environment is equal for each testrun, i.e. the same background processes are running for each test run, and that only background processes are running that are required.
-
Certain aspects of MeeGo can only be tested if associated hardware modules are available on the device/desktop machine on which the test is executed. For instance:
+
Certain aspects of MeeGo can only be tested if associated hardware modules are available on the reference hardware/desktop machine on which the test is executed. For instance:
* Bluetooth
* Bluetooth
* Wireless
* Wireless
Line 157: Line 180:
Please refer to the manuals that come with these items to setup correctly.
Please refer to the manuals that come with these items to setup correctly.
-
=== Testing MeeGo 1.1 in a <Virtual> environment ===
+
<put reference to your test environment here>
-
To test MeeGo in a <virtual> environment, MeeGo needs to be built for the desktop which is accomplished by <please contribute>
+
=== Testing MeeGo in a QEMU environment ===
-
=== Testing MeeGo 1.1. on a device ===
+
To test MeeGo in a QEMU environment, MeeGo needs to be built for the desktop which is accomplished by <put reference/link to the latest instructions over here>
-
To test MeeGo on a device, MeeGo needs to be built for that specific device which is accomplished by <please contribute>
+
=== Testing MeeGo on a reference hardware ===
 +
 
 +
To test MeeGo on a reference hardware, MeeGo needs to be built for that specific reference hardware, which is accomplished by <put reference/link to the latest instructions over here>
== Detailed Test Plans ==
== Detailed Test Plans ==
-
<please contribute>. Structure taken here is following components and verticals in bugs.meego.com.
+
<Structure taken here is following components and verticals in bugs.meego.com. This is provided as the illustrative example how subplans can be organized. Align this according your project setup>
{| border="1"
{| border="1"
Line 176: Line 201:
|-
|-
|Bluetooth
|Bluetooth
-
|<please contribute>
+
|<please add reference here>
-
|<please contribute>  
+
|<please add reference here>
-
|<please contribute>  
+
|<please add reference here>
|-
|-
|Contacts
|Contacts
-
|<please contribute>
+
|<please add reference here>
-
|<please contribute>
+
|<please add reference here>
-
|<please contribute>  
+
|<please add reference here>
|-
|-
|Content framework
|Content framework
-
|<please contribute>
+
|<please add reference here>
-
|<please contribute>
+
|<please add reference here>
-
|<please contribute>
+
|<please add reference here>
-
|-
+
-
|DUIhome
+
-
|<please contribute>
+
-
|<please contribute>
+
-
|<please contribute>
+
-
|-
+
-
|Dialer
+
-
|<please contribute>
+
-
|<please contribute>
+
-
|<please contribute>  
+
|-
|-
|Graphics subsystem
|Graphics subsystem
-
|<please contribute>
+
|<please add reference here>
-
|<please contribute>
+
|<please add reference here>
-
|<please contribute>
+
|<please add reference here>
-
|-
+
-
|Internet layout engine
+
-
|<please contribute>
+
-
|<please contribute>
+
-
|<please contribute>
+
-
|-
+
-
|LibREST
+
-
|<please contribute>
+
-
|<please contribute>
+
-
|<please contribute>  
+
|-
|-
|Media subsystem
|Media subsystem
-
|<please contribute>
+
|<please add reference here>
-
|<please contribute>
+
|<please add reference here>
-
|<please contribute>  
+
|<please add reference here>
|-
|-
|Photo viewer
|Photo viewer
-
|<please contribute>
+
|<please add reference here>
-
|<please contribute>
+
|<please add reference here>
-
|<please contribute>  
+
|<please add reference here>
|-
|-
|Qt
|Qt
-
|<please contribute>
+
|<please add reference here>
-
|<please contribute>
+
|<please add reference here>
-
|<please contribute>
+
|<please add reference here>
-
|-
+
-
|SMS
+
-
|<please contribute>
+
-
|<please contribute>
+
-
|<please contribute>
+
-
|-
+
-
|Telephony
+
-
|<please contribute>
+
-
|<please contribute>
+
-
|<please contribute>
+
-
|-
+
-
|Theme
+
-
|<please contribute>
+
-
|<please contribute>
+
-
|<please contribute>
+
-
|-
+
-
|UI Infrastructure
+
-
|<please contribute>
+
-
|<please contribute>
+
-
|<please contribute>  
+
|-
|-
|Virtual keyboard
|Virtual keyboard
-
|<please contribute>
+
|<please add reference here>
-
|<please contribute>
+
|<please add reference here>
-
|<please contribute>  
+
|<please add reference here>
|-
|-
|Web browser
|Web browser
-
|<please contribute>
+
|<please add reference here>
-
|<please contribute>
+
|<please add reference here>
-
|<please contribute>  
+
|<please add reference here>
|}
|}

Latest revision as of 06:50, 17 February 2011

Proposal - please contribute by editing this page or posting your comments on discussion area for this page.

Note that this is template giving the frame from actual test plan. The intent is to list areas/things which one need to consider when planning needed QA activities for certain MeeGo Release (e.g. 1.2, 1.3).

Contents

Introduction

Purpose

The purpose of the Test Plan is to introduce the testing strategy, scope, sub-plans and testing activities done or supported by QA team for MeeGo X.X release.

The intended readers for this document are people interested about the reasoning behind the actual activities done by QA team.

<please write more>

Objectives

The Test Plan is intended to provide the vehicle for QA team to confirm the functionality and completeness of the MeeGo X.X release. It is expected that the satisfaction of the complete series of criteria contained in this plan will signify successful functionality of the integrated release.

<please list more objectives>

Goal

The goal is to deliver a product with no open bugs with a severity level of critical and a minimal number of open bugs with severity level major.

<please add other goals>

Document Overview

Test Cases

During the the release phase aiming to final release, test cases will be executed. The test cases are described in test documents which are in gitorius at meego.gitorious.org/meego-quality-assurance. The actual test case code might be (depending on the license type and test level) part of the source package. Each test case also contains test specific criteria which decide upon test case success or failure.

Test cases shall fulfill the definitions given in Test case template

<add other sources and definitions used>

Test Case Result

Verdict shall be assigned for a test case after execution according test case verdict instructions.

Traceability of Features

For each feature listed bugs.meego.com, in principle, one or more test cases should exist (see detailed test plans). This information should be defined in the test case according instructions given in Test Case Template

Test Case Documentation

Each test case described in the detailed test plan contains the fields according Test Case Template and test-definition

Overall test strategy

Introduction

Components can be tested by a combination of component (unit, module and component integration testing put together), integration and system tests.

For a system test the component is typically tested by launching the application in the test environment and by executing functionality of the component using the User Interface, and by verifying the outcome against an 'expected result'. In cases where manual verification is required the expected outcome is specified in the test case.

Where possible all or parts of the test steps are automated, but in all cases there will be a manually executed 'Acceptance Test' for each GUI component in which the module will, at least, be verified against a standard checklist.

For an Integration test the component is typically tested by launching the component (if it has a GUI), or by launching other applications that make use of the tested component, inside the test environment and by executing functionality of the component using the User Interface. Where applicable, parts of the system may be replaced by stubs to partially insulate the component from its environment.

Unit tests are so named because they each test one unit of code. This type of tests are usually written by developers as they work on code (white-box style), to ensure that the specific function is working as expected. Whether a module of code has hundreds of unit tests or only five is irrelevant. One function might have multiple tests, to catch corner cases or other branches in the code. A test suite of unit tests should never cross process boundaries in a program, let alone network connections. Doing so introduces delays that make tests run slowly and discourage developers from running the whole suite.

Module test tests a module of code similar way than unit tests - the difference is that test are generated black-box style (without reference to the internal structure of the module).

Introducing dependencies on external modules or data also turns unit tests into component integration tests. If one module misbehaves in a chain of interrelated modules, it is not so immediately clear where to look for the cause of the failure. Tests are checking ready made part of the component with simulators (stubs, test drivers) for missing external dependencies.

Priorization

Tests are written on a highest priority first basis, and secondly on broad coverage.

<add other priorization rules used by vertical or project>

Coverage

At this stage we are aiming towards feature and functionality coverage.

<put additional coverage targets here>

Configurations

MeeGo X.X is tested in a number of configurations, both in reference hardwares and a QEMU environment. The public configurations used for this release are YY.

<update data according the information given by product management>

Test Execution

All automated tests are executed in a automated environment (OTS), and typically test results are available for each build.

Manual tests are executed regularly, but certainly before each release.

<update your rules and environments here>

Test Reporting

Reporting for individual test sessions is done in qa-reports. Verticals might have additional reporting practices defined.

Test Tools

Additional tools such as Valgrind may be used to do a deep analysis of test details/failures and tools such as <please contribute> are used in the documentation process. These tools which will provide additional data used to analyse the quality of the product but are not necessarily used in the Go/No-Go decision making process.

<add your own tool portfolio here>

Testing Quality Characteristics

Check out the Test areas and types.

Functionality

The basic functionality checklist can be categorized as below:

  • Installation and un-installation
  • Startup and exiting
  • Screen Layout and Navigation
  • Mobility and connectivity
  • Security
  • Touch interaction
  • UI style
  • Accessibility and clarity
  • Help and documentation
  • UI Controls

Test areas and types for functionality has more details/ideas.

<list your goals for functional testing here>

Performance

The performance target is to produce a quality product with a performance that is competitive in the market. This is going to be achieved by first looking at the different areas that affect the performance of MeeGo X.X release, on actual reference hardwares, and then trying to measure these values to find out where performance needs to be improved. The focus areas might be:

  • Binary sizes
  • Functional Performance
  • Application Startup times
  • Startup times
  • Memory usage

Test areas and types for performance has more details/ideas.

Our goal to have a fast and responsive system having following targets:

  • <list your measurable targets for performance aspects of the system here>

These are our initial targets only. Once we have reached these targets we will continue to improve and create a new set of targets to aim for.

<define your approach in more details here>

Reliability

Our goal is to have reliable system having following targets:

  • <list your measurable targets for reliability aspects of the system here>

Test areas and types for reliability has more details/ideas.

Usability

The usability check list can be categorized as below:

  • Task success rates and Error prevention
  • Help users recognize, diagnose, and recover from errors
  • Ease of use
  • Flexibility and efficiency of use
  • Consistency and standards
  • Time on task
  • Task path, task flow and sequence
  • Aesthetic and minimalist design
  • User preference
  • User control and freedom

Test areas and types for usability has more details/ideas.

General Environment Setup

MeeGo can be tested on reference hardwares as well as in a QEMU environment. Both cases have value and may provide data that would be hard or impossible to acquire 'on the other side'.

Basic Environment Setup

Once MeeGo is installed in the QEMU environment or installed onto a reference hardware, no additional environment setup should be required that isn't already required by MeeGo itself. It is important though that the environment is equal for each testrun, i.e. the same background processes are running for each test run, and that only background processes are running that are required.

Certain aspects of MeeGo can only be tested if associated hardware modules are available on the reference hardware/desktop machine on which the test is executed. For instance:

  • Bluetooth
  • Wireless
  • TV
  • Radio
  • Telephony
  • etc.

Please refer to the manuals that come with these items to setup correctly.

<put reference to your test environment here>

Testing MeeGo in a QEMU environment

To test MeeGo in a QEMU environment, MeeGo needs to be built for the desktop which is accomplished by <put reference/link to the latest instructions over here>

Testing MeeGo on a reference hardware

To test MeeGo on a reference hardware, MeeGo needs to be built for that specific reference hardware, which is accomplished by <put reference/link to the latest instructions over here>

Detailed Test Plans

<Structure taken here is following components and verticals in bugs.meego.com. This is provided as the illustrative example how subplans can be organized. Align this according your project setup>

Core OS Handheld UX Netbook UX
Bluetooth <please add reference here> <please add reference here> <please add reference here>
Contacts <please add reference here> <please add reference here> <please add reference here>
Content framework <please add reference here> <please add reference here> <please add reference here>
Graphics subsystem <please add reference here> <please add reference here> <please add reference here>
Media subsystem <please add reference here> <please add reference here> <please add reference here>
Photo viewer <please add reference here> <please add reference here> <please add reference here>
Qt <please add reference here> <please add reference here> <please add reference here>
Virtual keyboard <please add reference here> <please add reference here> <please add reference here>
Web browser <please add reference here> <please add reference here> <please add reference here>
Personal tools