Yocto 1.7 Overall Test Plan: Difference between revisions

From Yocto Project
Jump to navigationJump to search
 
(16 intermediate revisions by the same user not shown)
Line 46: Line 46:
; Tool: http://git.yoctoproject.org/cgit/cgit.cgi/poky/tree/scripts/contrib/build-perf-test.sh
; Tool: http://git.yoctoproject.org/cgit/cgit.cgi/poky/tree/scripts/contrib/build-perf-test.sh
; Results page: [[Performance Test]]
; Results page: [[Performance Test]]
Additionally, build performance will be tracked with/without security flags enabled. The first step is to have several build combinations of core-image-minimal, core-image-sato and core-image-sato-sdk and see the build time differences between the builds.
Additionally, build performance will be tracked with/without security flags enabled. The first step is to have several build combinations of core-image-minimal, core-image-sato and core-image-sato-sdk and see the build time differences between the builds.
=== Distro Testing ===
Distro Testing is intended to catch bugs that are distribution specific using the yocto-autobuilder. The tests are all run on identical hardware and with all OS-es updated. The distributions used will be Fedora, Ubuntu, CentOS, OpenSuse with their latest update. The buildsets that are running on Distro testing are:
* buildtools
* nightly-arm
* nightly-multilib
* nightly-qa-systemd
* nightly-x86
* nightly x86-64
* nightly x86-64-lsb
* nightly-world


== Target System ==
== Target System ==
Line 83: Line 92:
| || yes || || || ||
| || yes || || || ||
|-
|-
! beagleboard
! beaglebone
| || yes || yes || yes || ||
| || yes || yes || yes || ||
|-
|-
Line 89: Line 98:
| || yes || yes || || ||
| || yes || yes || || ||
|-
|-
! routerstationpro
! edgerouter
| || yes || yes || || ||
| || yes || yes || || ||
|}
|}
Line 106: Line 115:
* genericx86
* genericx86
* genericx86-64
* genericx86-64
* beagleboard
* beaglebone
* mpc8315e-rdb
* mpc8315e-rdb
* routerstationpro
* edgerouter


=== Compliance Testing ===
=== Compliance Testing ===
Compliance test suites / frameworks used:
Compliance test suites / frameworks used on genericx86-64:
* LSB tests
* LSB tests
* POSIX tests
* POSIX tests
Line 118: Line 127:
=== Stress Testing ===
=== Stress Testing ===


Stress tests are run on Beagleboard and Jasperforest BSPs. Details as follow:
Stress tests are run on Beagleboard and genericx86-64 BSPs. Details as follow:
* Beagleboard core-image-sato-sdk image is tested using LTP and Crashme stress tests
* Beaglebone 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
* genericx86-64 core-image-lsb-sdk image is tested using Helltest and Crashme stress tests


=== System Performance ===
=== System Performance ===
Line 158: Line 167:


== Distribution Support ==
== Distribution Support ==
; Criteria: The OS distribution version is still maintained at the time of the {{ns:4}} release (1.6 release date is: Apr. 25, 2014)
; Criteria: The OS distribution version is still maintained at the time of the {{ns:4}} release (1.7 release date is: OCT, 2014)
; Coverage: Following a table with targeted distribution and versions:
; Coverage: Following a table with targeted distribution and versions:
{| class="wikitable"
{| class="wikitable"
Line 165: Line 174:
| rowspan="3" | Ubuntu
| rowspan="3" | Ubuntu
|-
|-
| 13.10 || October 17, 2013 || July 2014
| 14.04 LTS || April 17, 2014 || April 2019
|-
|-
| 14.04 || April 17, 2014 ||  
| 14.10 || October, 2014 ||  
|-
|-
| rowspan="3" | Fedora
| rowspan="3" | Fedora
|-
|-
|-
|-
| 19 || January 15, 2013 ||  
| 20 || December 17, 2013 ||  
|-
|-
| 20 || December 172013 ||  
| 21 || December 142014 ||  
|-
|-
| rowspan="3" | CentOS
| rowspan="3" | CentOS
Line 184: Line 193:
| rowspan="3" | Debian
| rowspan="3" | Debian
|-
|-
| 6 || February 6th, 2011 || obsolete
| 6 || February 6th, 2011 ||  
|-
|-
| 7 || May 4th, 2013 || current
| 7 || May 4th, 2013 || current
Line 196: Line 205:


= Test Cycle =
= Test Cycle =
* Execution according to [[Yocto 1.6 Schedule]]. The first section of the table, "Build Type", details what type of tests are performed on Weekly, Release Candidate or Release test.
* Execution according to [[Yocto 1.7 Schedule]]. The first section of the table, "Build Type", details what type of tests are performed on Weekly, Release Candidate or Release test.


* List of all [[Test Cases]], included in a cycle or not.
* List of all [[Test Cases]], included in a cycle or not.
Line 221: Line 230:
| yes || yes || yes || yes
| yes || yes || yes || yes
|-
|-
! rowspan="12" | [[#Test Areas]]
! rowspan="13" | [[#Test Areas]]
! [[#BitBake]]
! [[#BitBake]]
| yes || yes || yes ||
| yes || yes || yes ||
Line 256: Line 265:
|-
|-
! [[#Build Appliance]]
! [[#Build Appliance]]
| || || yes ||
|-
! [[Distro Testing]]
| || || yes ||
| || || yes ||
|-
|-
Line 281: Line 293:
| || yes || yes ||  
| || yes || yes ||  
|-
|-
! beagleboard
! beaglebone black
| || yes || yes || yes
| || yes || yes || yes
|-
|-
Line 287: Line 299:
| || yes || yes ||
| || yes || yes ||
|-
|-
! routerstationpro
! edgerouter
| || yes || yes || yes
| || yes || yes || yes
|-
|-
Line 358: Line 370:


*; Tools:
*; Tools:
** [[#Distro Testing]]
** [[AutoBuilder]]
** [[AutoBuilder]]
** On [[AutoBuilder]] the [[Image tests]] are run.
** On [[AutoBuilder]] the [[Image tests]] are run.
** [[Oe-selftest]]
** [[Oe-selftest]] can be used. Currently oe-selftest is run on public [[AutoBuilder]] as well.
** HW automation [https://bugzilla.yoctoproject.org/show_bug.cgi?id=1596 1596]
** HW automation [https://bugzilla.yoctoproject.org/show_bug.cgi?id=1596 1596]


= Validation =
= Validation =
*; Objective:
*; Objective:
** Verify the correct functionality of [https://wiki.yoctoproject.org/wiki/Yocto_1.6_Features new] changes introduced in version 1.6 of the {{ns:4}}.
** Verify the correct functionality of [https://wiki.yoctoproject.org/wiki/Yocto_1.7_Features new] changes introduced in version 1.7 of the {{ns:4}}.


*; Entry criteria:
*; Entry criteria:
** The change is tracked and prioritized in [https://bugzilla.yoctoproject.org/ Bugzilla];
** The change is tracked by filling in the "QA Owner" field for the Medium+/High enhancements
** Bugzilla entry has a target milestone within version 1.6;
** The change is prioritized in [https://bugzilla.yoctoproject.org/ Bugzilla]
** The change is documented or pointed out when no documentation is necessary (the doc flag is set accordingly);
** Bugzilla entry has a target milestone within version 1.7
** The change is documented or pointed out when no documentation is necessary (the doc flag is set accordingly)
** Bug status is set to RESOLVED.
** Bug status is set to RESOLVED.


*; Exit criteria:
*; Exit criteria:
** The change is well documented for writing test case, where applicable;
** The change is well documented for writing test case, where applicable
** Planned test case has passed;
** Planned test case has passed
** Bug status is set to VERIFIED.
** Bug status is set to VERIFIED


*; References:
*; References:
** [[Yocto 1.6 Features]]
** [[Yocto 1.7 Features]]
** [[1.6 qa owned bugs]] - this wiki was created for QA to track easily resolved bugs and features
** [[1.7 qa owned bugs]] - this wiki was created for QA to track easily resolved bugs and features
** [[Yocto Project v1.6 Status]]
** [[Yocto Project v1.7 Status]]


== New features validation and QA integration ==
== New features validation and QA integration ==
*; Objective:
*; Objective:
** QA will follow the [[#Validation]] process on verifying the new [[Yocto 1.6 Features]] and integrating them in the testing process.
** QA will follow the [[#Validation]] process on verifying the new [[Yocto 1.7 Features]] and integrating them in the testing process.


*; Some of the areas that need to be tested:
*; Some of the areas that need to be tested:
** uClibc integration
** uClibc integration
** performance using gcc security flags
** performance using gcc security flags
** New Kernel functionalities listed in the [[Kernel/1.6 Planning]]
** Shuku proposal
** Shuku proposal
** SystemD complete integration
** HW automation


= Test Report =
= Test Report =
*; Objectives:
*; Objectives:
** Show a live [[1.6 QA Status]] of the active test runs, on the latest build;
** Show a live [[1.7 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;
** 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.6 qa run history]];
** Archive reports at [[1.6 qa run history]];
** Use [[QA Status TEMPLATE]] for reporting;
** Use [[QA Status TEMPLATE]] for reporting;
** Use [[Testopia]] as a tool for reporting;
** Use [[Testopia]] as a tool for reporting;

Latest revision as of 15:10, 29 April 2014

Reversion history

Version Modifier Comments
1.0 Alexandru Georgescu

Introduction

This article is the overall test plan for version 1.7 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.

Toaster

Toaster is a Web-based interface to the Bitbake build system and the Poky distribution inside the Yocto Project. This project was formely known as Web Hob / Webhob / webhob, and you may still find references to the old name in the documentation. The Toaster testing plan wiki covers all the validation performed agasint Toaster. The test process focuses mostly on validating the data collected from the build process and verifying the correct functionality of the Toaster GUI.

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

Additionally, build performance will be tracked with/without security flags enabled. The first step is to have several build combinations of core-image-minimal, core-image-sato and core-image-sato-sdk and see the build time differences between the builds.

Distro Testing

Distro Testing is intended to catch bugs that are distribution specific using the yocto-autobuilder. The tests are all run on identical hardware and with all OS-es updated. The distributions used will be Fedora, Ubuntu, CentOS, OpenSuse with their latest update. The buildsets that are running on Distro testing are:

  • buildtools
  • nightly-arm
  • nightly-multilib
  • nightly-qa-systemd
  • nightly-x86
  • nightly x86-64
  • nightly x86-64-lsb
  • nightly-world

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
genericx86 yes
genericx86-64 yes
beaglebone yes yes yes
mpc8315e-rdb yes yes
edgerouter 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:

  • genericx86
  • genericx86-64
  • beaglebone
  • mpc8315e-rdb
  • edgerouter

Compliance Testing

Compliance test suites / frameworks used on genericx86-64:

  • LSB tests
  • POSIX tests
  • LTP tests

Stress Testing

Stress tests are run on Beagleboard and genericx86-64 BSPs. Details as follow:

  • Beaglebone core-image-sato-sdk image is tested using LTP and Crashme stress tests
  • genericx86-64 core-image-lsb-sdk image is tested using Helltest and Crashme stress tests

System Performance

  • Objective
    • Track the run-time performance of targeted systems;
    • Track the run-time performance of targeted systems with gcc security flags;
  • Indicators
    • Boot time for systemd and sysvinit;
    • Image size from Buildhistory to track regression;
    • Piglit test suite results;
    • Other benchmarks that can be integrated, such as the ones listed in the openbenchmarking site.

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

Depending on the new SDK features (e.g. MacOS and Windows support), additional tests will be run in order to validate the new features.

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.7 release date is: OCT, 2014)
Coverage
Following a table with targeted distribution and versions:
Distro Version Release EOL
Ubuntu
14.04 LTS April 17, 2014 April 2019
14.10 October, 2014
Fedora
20 December 17, 2013
21 December 14, 2014
CentOS
5 ~ March 31, 2017
6 ~ November 30, 2020
Debian
6 February 6th, 2011
7 May 4th, 2013 current
openSUSE
12.3 May 28, 2013 ~
13.1 Nov 16, 2013 ~

Test Cycle

  • Execution according to Yocto 1.7 Schedule. The first section of the table, "Build Type", details what type of tests are performed on Weekly, Release Candidate or Release test.
  • 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
#Toaster 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
Distro Testing yes
Target machine
qemuarm yes yes yes
qemumips yes yes yes
qemuppc yes yes yes
qemux86 yes yes yes
qemux86-64 yes yes yes
genericx86-64 yes yes
genericx86-64 yes yes
beaglebone black yes yes yes
mpc8315e-rdb yes yes
edgerouter 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.

  • 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.
    • The tests run on AB are the Image tests. Their configurations are stored in the AB config files "yocto-autobuilder/buildset-config" depending on the target image types.

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

  • 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.
    • Improve build-time testing.

Validation

  • Objective
    • Verify the correct functionality of new changes introduced in version 1.7 of the Yocto Project.
  • Entry criteria
    • The change is tracked by filling in the "QA Owner" field for the Medium+/High enhancements
    • The change is prioritized in Bugzilla
    • Bugzilla entry has a target milestone within version 1.7
    • The change is documented or pointed out when no documentation is necessary (the doc flag is set accordingly)
    • 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

New features validation and QA integration

  • Some of the areas that need to be tested
    • uClibc integration
    • performance using gcc security flags
    • Shuku proposal

Test Report