Yocto 1.5 Overall Test Plan: Difference between revisions
(149 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
= Reversion history = | |||
{|class="wikitable" | |||
{| | ! Version || Modifier || Comments | ||
|- | |- | ||
| 1.0 || Alexandru Georgescu || Initial Version | | 1.0 || Alexandru Georgescu || Initial Version | ||
|- | |||
| 2.0 || Mihai Lindner || RFC Version | |||
|} | |} | ||
= Introduction = | |||
This article is the overall test plan for version 1.5 of the {{ns:4}}. | |||
It contains an overview of the testing process, such as testing areas, types, cycles and reports, along with a summary and objective for each of the conducted validation activities. | |||
Further on, sections may be linked to other articles that contain further details or information related to them. | |||
Note that the information provided in this article, or articles linked here, is subject to changes when needed as to reflect the actual activities held for the current version of the {{ns:4}}. | |||
== | = Objectives = | ||
The test process is mainly focused to track and review the quality and performance of the {{ns:4}}, along with its reference system and internal projects. | |||
The plan also includes identifying and tracking areas subject to improvement, regression, validation of enhancements and bugs, development of testing methods with emphasis on automated testing. | |||
Documentation and licensing status is not included in the scope of the testing process, unless otherwise noted e.g. as part of the process of verifying new features. | |||
== | = Test Areas = | ||
Each internal project, under {{ns:4}}, is an area subject to a testing process. Areas are grouped by the nature of their functionality, as follows: | |||
== Build System == | |||
The build engine and the surrounding components, that provide the means to build an image or bake a bit of software. In this area the ''build-time'' tests are executed. | |||
=== | === BitBake === | ||
Functional testing of BitBake, as a build engine, with all its features and components, against various configuration and scenarios. | |||
=== | === HOB === | ||
Functional and usability testing of HOB as a graphical user interface for BitBake. | |||
[ | === Metadata === | ||
Testing the core metadata of the {{ns:4}} is mainly covered in the overall testing process, through other [[#Test Areas]] like [[#BitBake]] and [[#HOB]] mentioned above. | |||
=== Build Performance === | |||
The performance of the build system is tracked, with regards to time spent on passing through a build process, in multiple, commonly used, configurations. | |||
; Tool: http://git.yoctoproject.org/cgit/cgit.cgi/poky/tree/scripts/contrib/build-perf-test.sh | |||
; Results page: [[Performance Test]] | |||
== | == Target System == | ||
Area focused on a target operating system or an application that comes with it, as the output of a build process. In this area the ''run-time'' tests are executed. | |||
[ | {|class="wikitable" style="text-align: center;" | ||
| Machine type | |||
!Target machine | |||
| | |||
! System Testing || [[#Compliance Testing]] || [[#Stress Testing]] || [[#System Performance]] || [[#Application Development Toolkit]] | |||
|- | |||
| rowspan="6" | [[#QEMU Machine]] | |||
|- | |||
! qemuarm | |||
| || yes || || || || yes | |||
|- | |||
! qemumips | |||
| || yes || || || || yes | |||
|- | |||
! qemuppc | |||
| || yes || || || || yes | |||
|- | |||
! qemux86 | |||
| || yes || || || || yes | |||
|- | |||
! qemux86-64 | |||
| || yes || || || yes || yes | |||
|- | |||
| rowspan="5" | [[#BSP Machine]] | |||
|- | |||
! atom-pc | |||
| || yes || || || || | |||
|- | |||
! beagleboard | |||
| || yes || yes || yes || || | |||
|- | |||
! mpc8315e-rdb | |||
| || yes || yes || || || | |||
|- | |||
! routerstationpro | |||
| || yes || yes || || || | |||
|} | |||
=== QEMU Machine === | |||
Covering all core, QEMU, machine definitions: | |||
* qemuarm | |||
* qemumips | |||
* qemuppc | |||
* qemux86 | |||
* qemux86-64 | |||
== | === BSP Machine === | ||
Covering BSPs included in the {{ns:4}}: | |||
* atom-pc | |||
* beagleboard | |||
* mpc8315e-rdb | |||
* routerstationpro | |||
=== | === Compliance Testing === | ||
Compliance test suites / frameworks used: | |||
* | * LSB tests | ||
* POSIX tests | |||
* LTP tests | |||
=== Stress Testing === | |||
Stress tests are run on Beagleboard and Jasperforest BSPs. Details as follow: | |||
* Beagleboard core-image-sato-sdk image is tested using LTP and Crashme stress tests | |||
* Jasperforest core-image-lsb-sdk image is tested using Helltest and Crashme stress tests | |||
=== System Performance === | |||
*; Objective: | |||
**Track the run-time performance of targeted systems; | |||
*; Indicators: | |||
** Boot time for <tt>systemd</tt> and <tt>sysvinit</tt>; | |||
** Image size from [[Buildhistory]] to track regression; | |||
** Piglit test suite results; | |||
==== | == Developer Tools == | ||
=== Application Development Toolkit === | |||
ADT testing includes tests for ADT-installer, meta-toolchain-sdk and user build sdk. It will be covered in Weekly and Fullpass testing. | |||
*Cross-toolchain install&compiling Test | |||
*relocatable SDK | |||
*ADT installer | |||
*toolchain tarballs | |||
*yocto build tree | |||
=== Eclipse IDE Plugin === | |||
Eclipse plugin tests will cover the basic functionalities. This includes installation, configuring Yocto Project ADT settings, Yocto BSP, Bitbake project and project compiling and deployment to the target. Based on the features that will be implemented, new test cases will be added, to support Windows and Mac support. This will be more detailed in the Features section. | |||
*headless build | |||
*C/C++ project creation | |||
*debug/deploy | |||
*user space tools | |||
*Bitbake project | |||
=== Build Appliance === | |||
The basic functionality of the Build appliance will be tested. The tests consists on building successfully a build-appliance-image, launch HOB. | |||
==== | == Distribution Support == | ||
; Criteria: The OS distribution version is still maintained at the time of the {{ns:4}} release (1.5 release date is: Oct. 18, 2013) | |||
; Coverage: Following a table with targeted distribution and versions: | |||
{| class="wikitable" | |||
! Distro !! Version !! Release !! EOL | |||
|- | |||
| rowspan="4" | Ubuntu | |||
|- | |||
| 12.04.2 LTS || February 14, 2013 || April 2017 | |||
|- | |||
| 12.10 || October 18, 2012 || April 2014 | |||
|- | |||
| 13.04 || April 25, 2013 || January 2014 | |||
|- | |||
| rowspan="4" | Fedora | |||
|- | |||
| 17 || May 29, 2012 || ~August 02, 2013 | |||
|- | |||
| 18 || January 15, 2013 || ~December 12, 2013 | |||
|- | |||
| 19 || July 2013 || ~ | |||
|- | |||
| rowspan="3" | CentOS | |||
|- | |||
| 5 || ~ || March 31, 2017 | |||
|- | |||
| 6 || ~ || November 30, 2020 | |||
|- | |||
| rowspan="3" | Debian | |||
|- | |||
| 6 || February 6th, 2011 || obsolete | |||
|- | |||
| 7 || May 4th, 2013 || current | |||
|- | |- | ||
| rowspan="3" | openSUSE | |||
|- | |- | ||
| 12.2 || October 22, 2012 || ~ | |||
| | |||
|- | |- | ||
| 12.3 || May 28, 2013 || ~ | |||
| | |||
|} | |} | ||
= Test Cycle = | |||
* Execution according to [[Yocto 1.5 Schedule]]. | |||
* List of all [[Test Cases]], included in a cycle or not. | |||
{|class="wikitable" style="text-align: center;" | |||
| || | |||
! Test | !colspan="4"|Test execution cycle | ||
|- | |||
| || | |||
! [[#Sanity Test]] || [[#Weekly Test]] || [[#Full Pass Test]] || [[#Release Test]] | |||
|- | |||
! rowspan="5" |Build type | |||
|- | |||
! Daily (M.U.T.) | |||
| yes || || || | |||
|- | |||
! Weekly | |||
| yes || yes || || | |||
|- | |||
! Release Candidate | |||
| yes || yes || yes || | |||
|- | |||
! Release | |||
| yes || yes || yes || yes | |||
|- | |||
! rowspan="11" | [[#Test Areas]] | |||
! [[#BitBake]] | |||
| yes || yes || yes || | |||
|- | |||
! [[#HOB]] | |||
| || yes || yes || | |||
|- | |||
! [[#Build Performance]] | |||
| || yes || || | |||
|- | |||
! [[#QEMU Image]] | |||
| yes || yes || yes || | |||
|- | |||
! [[#BSP Image]] | |||
| || yes || yes || | |||
|- | |||
! [[#Compliance Testing]] | |||
| || || || yes | |||
|- | |||
! [[#Stress Testing]] | |||
| || || || yes | |||
|- | |||
! [[#System Performance]] | |||
| || || || yes | |||
|- | |||
! [[#Application Development Toolkit]] | |||
| || yes || yes || | |||
|- | |||
! [[#Eclipse IDE Plugin]] | |||
| || yes || yes || yes | |||
|- | |||
! [[#Build Appliance]] | |||
| || || yes || | |||
|- | |||
! rowspan="10" | Target machine | |||
|- | |||
! qemuarm | |||
| yes || yes || yes || | |||
|- | |||
! qemumips | |||
| yes || yes || yes || | |||
|- | |||
! qemuppc | |||
| yes || yes || yes || | |||
|- | |||
! qemux86 | |||
| yes || yes || yes || | |||
|- | |||
! qemux86-64 | |||
| yes || yes || yes || | |||
|- | |||
! atom-pc | |||
| || yes || yes || | |||
|- | |||
! beagleboard | |||
| || yes || yes || yes | |||
|- | |||
! mpc8315e-rdb | |||
| || yes || yes || | |||
|- | |||
! routerstationpro | |||
| || yes || yes || yes | |||
|- | |||
! rowspan="6" | Target image | |||
|- | |- | ||
! | ! core-image-sato | ||
| yes || || || | |||
|- | |- | ||
! | ! core-image-sato-dev | ||
| yes || || || | |||
|- | |- | ||
! | ! core-image-sato-sdk | ||
| yes || yes || yes || yes | |||
|- | |- | ||
! | ! core-image-minimal | ||
| yes || || || | |||
|- | |- | ||
! | ! core-image-minimal-dev | ||
| yes || || || | |||
|} | |} | ||
== Sanity Test == | |||
Brief and quick automated tests, with execution time of maximum 10 minutes. | |||
*; Scope: | |||
** Each build process triggered on the [[AutoBuilder]]. | |||
* | |||
* | |||
*; Objective: | |||
** Build finished with no errors; | |||
** Check basic QEMU image functionality, e.g. boot, network, package manager, etc.; | |||
** Establish if testing cycle can continue, depending on the build type. | |||
[ | == Weekly Test == | ||
*; Scope: | |||
** Images built weekly and released through the distribution team. | |||
** Passed [[#Sanity Test]] | |||
*; Objective: | |||
** Functionality test on most areas with minimum sets of tests; | |||
** Regression test with high probability to find bugs. | |||
== | == Full Pass Test == | ||
*; Scope: | |||
** Images built as candidates for milestone or final release; | |||
** Passed [[#Weekly Test]] | |||
* | *; Objective: | ||
* | ** Ensure functionality of all {{ns:4}} components. | ||
* | |||
== Release Test == | |||
*; Scope: | |||
** Release candidates that pass [[#Full pass test]] | |||
*; Objective: | |||
** All scheduled features are covered, or rescheduled; | |||
** All relevant bugs are fixed and verified. | |||
*; Coverage: | |||
** Stress test on RC | |||
** Compliance test on RC | |||
** Distribution test on RC | |||
= Test Automation = | |||
* | *; Objectives: | ||
* | ** Reduce effort with manual testing, by automating current tests; | ||
* | ** Improve run-time testing. | ||
* | |||
* | |||
*; Tools: | |||
** [[AutoBuilder]] | |||
= Validation = | |||
*; Objective: | |||
** Verify the correct functionality of new changes introduced in version 1.5 of the {{ns:4}}. | |||
*; Entry criteria: | |||
** The change is tracked and prioritized in [https://bugzilla.yoctoproject.org/ Bugzilla]; | |||
** Bugzilla entry has a target milestone within version 1.5; | |||
** The change is documented or pointed out when no documentation is necessary; | |||
** Bug status is set to RESOLVED. | |||
The | *; Exit criteria: | ||
** The change is well documented for writing test case, where applicable; | |||
** Planned test case has passed; | |||
** Bug status is set to VERIFIED. | |||
*; References: | |||
** [[Yocto 1.5 Features]] | |||
* | ** [[Yocto Project v1.5 Status#Feature/Task Board]] | ||
* | |||
[ | = Test Report = | ||
*; Objectives: | |||
** Show a live [[1.5 QA Status]] of the active test runs, on the latest build; | |||
** Send out an report email to the {{ns:4}} [https://lists.yoctoproject.org/listinfo/yocto mailing list] at the end of a test cycle; | |||
** Archive reports at [[1.5 qa run history]]; | |||
** Use [[QA Status TEMPLATE]] for reporting; | |||
** Use [[Testopia]] as a tool for reporting; |
Latest revision as of 13:03, 2 July 2013
Reversion history
Version | Modifier | Comments |
---|---|---|
1.0 | Alexandru Georgescu | Initial Version |
2.0 | Mihai Lindner | RFC Version |
Introduction
This article is the overall test plan for version 1.5 of the Yocto Project. It contains an overview of the testing process, such as testing areas, types, cycles and reports, along with a summary and objective for each of the conducted validation activities. Further on, sections may be linked to other articles that contain further details or information related to them. Note that the information provided in this article, or articles linked here, is subject to changes when needed as to reflect the actual activities held for the current version of the Yocto Project.
Objectives
The test process is mainly focused to track and review the quality and performance of the Yocto Project, along with its reference system and internal projects. The plan also includes identifying and tracking areas subject to improvement, regression, validation of enhancements and bugs, development of testing methods with emphasis on automated testing. Documentation and licensing status is not included in the scope of the testing process, unless otherwise noted e.g. as part of the process of verifying new features.
Test Areas
Each internal project, under Yocto Project, is an area subject to a testing process. Areas are grouped by the nature of their functionality, as follows:
Build System
The build engine and the surrounding components, that provide the means to build an image or bake a bit of software. In this area the build-time tests are executed.
BitBake
Functional testing of BitBake, as a build engine, with all its features and components, against various configuration and scenarios.
HOB
Functional and usability testing of HOB as a graphical user interface for BitBake.
Metadata
Testing the core metadata of the Yocto Project is mainly covered in the overall testing process, through other #Test Areas like #BitBake and #HOB mentioned above.
Build Performance
The performance of the build system is tracked, with regards to time spent on passing through a build process, in multiple, commonly used, configurations.
- Tool
- http://git.yoctoproject.org/cgit/cgit.cgi/poky/tree/scripts/contrib/build-perf-test.sh
- Results page
- Performance Test
Target System
Area focused on a target operating system or an application that comes with it, as the output of a build process. In this area the run-time tests are executed.
Machine type | Target machine | System Testing | #Compliance Testing | #Stress Testing | #System Performance | #Application Development Toolkit | |
---|---|---|---|---|---|---|---|
#QEMU Machine | |||||||
qemuarm | yes | yes | |||||
qemumips | yes | yes | |||||
qemuppc | yes | yes | |||||
qemux86 | yes | yes | |||||
qemux86-64 | yes | yes | yes | ||||
#BSP Machine | |||||||
atom-pc | yes | ||||||
beagleboard | yes | yes | yes | ||||
mpc8315e-rdb | yes | yes | |||||
routerstationpro | yes | yes |
QEMU Machine
Covering all core, QEMU, machine definitions:
- qemuarm
- qemumips
- qemuppc
- qemux86
- qemux86-64
BSP Machine
Covering BSPs included in the Yocto Project:
- atom-pc
- beagleboard
- mpc8315e-rdb
- routerstationpro
Compliance Testing
Compliance test suites / frameworks used:
- LSB tests
- POSIX tests
- LTP tests
Stress Testing
Stress tests are run on Beagleboard and Jasperforest BSPs. Details as follow:
- Beagleboard core-image-sato-sdk image is tested using LTP and Crashme stress tests
- Jasperforest core-image-lsb-sdk image is tested using Helltest and Crashme stress tests
System Performance
- Objective
- Track the run-time performance of targeted systems;
- Indicators
- Boot time for systemd and sysvinit;
- Image size from Buildhistory to track regression;
- Piglit test suite results;
Developer Tools
Application Development Toolkit
ADT testing includes tests for ADT-installer, meta-toolchain-sdk and user build sdk. It will be covered in Weekly and Fullpass testing.
- Cross-toolchain install&compiling Test
- relocatable SDK
- ADT installer
- toolchain tarballs
- yocto build tree
Eclipse IDE Plugin
Eclipse plugin tests will cover the basic functionalities. This includes installation, configuring Yocto Project ADT settings, Yocto BSP, Bitbake project and project compiling and deployment to the target. Based on the features that will be implemented, new test cases will be added, to support Windows and Mac support. This will be more detailed in the Features section.
- headless build
- C/C++ project creation
- debug/deploy
- user space tools
- Bitbake project
Build Appliance
The basic functionality of the Build appliance will be tested. The tests consists on building successfully a build-appliance-image, launch HOB.
Distribution Support
- Criteria
- The OS distribution version is still maintained at the time of the Yocto Project release (1.5 release date is: Oct. 18, 2013)
- Coverage
- Following a table with targeted distribution and versions:
Distro | Version | Release | EOL |
---|---|---|---|
Ubuntu | |||
12.04.2 LTS | February 14, 2013 | April 2017 | |
12.10 | October 18, 2012 | April 2014 | |
13.04 | April 25, 2013 | January 2014 | |
Fedora | |||
17 | May 29, 2012 | ~August 02, 2013 | |
18 | January 15, 2013 | ~December 12, 2013 | |
19 | July 2013 | ~ | |
CentOS | |||
5 | ~ | March 31, 2017 | |
6 | ~ | November 30, 2020 | |
Debian | |||
6 | February 6th, 2011 | obsolete | |
7 | May 4th, 2013 | current | |
openSUSE | |||
12.2 | October 22, 2012 | ~ | |
12.3 | May 28, 2013 | ~ |
Test Cycle
- Execution according to Yocto 1.5 Schedule.
- List of all Test Cases, included in a cycle or not.
Test execution cycle | |||||
---|---|---|---|---|---|
#Sanity Test | #Weekly Test | #Full Pass Test | #Release Test | ||
Build type | |||||
Daily (M.U.T.) | yes | ||||
Weekly | yes | yes | |||
Release Candidate | yes | yes | yes | ||
Release | yes | yes | yes | yes | |
#Test Areas | #BitBake | yes | yes | yes | |
#HOB | yes | yes | |||
#Build Performance | yes | ||||
#QEMU Image | yes | yes | yes | ||
#BSP Image | yes | yes | |||
#Compliance Testing | yes | ||||
#Stress Testing | yes | ||||
#System Performance | yes | ||||
#Application Development Toolkit | yes | yes | |||
#Eclipse IDE Plugin | yes | yes | yes | ||
#Build Appliance | yes | ||||
Target machine | |||||
qemuarm | yes | yes | yes | ||
qemumips | yes | yes | yes | ||
qemuppc | yes | yes | yes | ||
qemux86 | yes | yes | yes | ||
qemux86-64 | yes | yes | yes | ||
atom-pc | yes | yes | |||
beagleboard | yes | yes | yes | ||
mpc8315e-rdb | yes | yes | |||
routerstationpro | yes | yes | yes | ||
Target image | |||||
core-image-sato | yes | ||||
core-image-sato-dev | yes | ||||
core-image-sato-sdk | yes | yes | yes | yes | |
core-image-minimal | yes | ||||
core-image-minimal-dev | yes |
Sanity Test
Brief and quick automated tests, with execution time of maximum 10 minutes.
- Scope
- Each build process triggered on the AutoBuilder.
- Objective
- Build finished with no errors;
- Check basic QEMU image functionality, e.g. boot, network, package manager, etc.;
- Establish if testing cycle can continue, depending on the build type.
Weekly Test
- Scope
- Images built weekly and released through the distribution team.
- Passed #Sanity Test
- Objective
- Functionality test on most areas with minimum sets of tests;
- Regression test with high probability to find bugs.
Full Pass Test
- Scope
- Images built as candidates for milestone or final release;
- Passed #Weekly Test
- Objective
- Ensure functionality of all Yocto Project components.
Release Test
- Scope
- Release candidates that pass #Full pass test
- Objective
- All scheduled features are covered, or rescheduled;
- All relevant bugs are fixed and verified.
- Coverage
- Stress test on RC
- Compliance test on RC
- Distribution test on RC
Test Automation
- Objectives
- Reduce effort with manual testing, by automating current tests;
- Improve run-time testing.
- Tools
Validation
- Objective
- Verify the correct functionality of new changes introduced in version 1.5 of the Yocto Project.
- Entry criteria
- The change is tracked and prioritized in Bugzilla;
- Bugzilla entry has a target milestone within version 1.5;
- The change is documented or pointed out when no documentation is necessary;
- Bug status is set to RESOLVED.
- Exit criteria
- The change is well documented for writing test case, where applicable;
- Planned test case has passed;
- Bug status is set to VERIFIED.
Test Report
- Objectives
- Show a live 1.5 QA Status of the active test runs, on the latest build;
- Send out an report email to the Yocto Project mailing list at the end of a test cycle;
- Archive reports at 1.5 qa run history;
- Use QA Status TEMPLATE for reporting;
- Use Testopia as a tool for reporting;