QA/Master Test Plan: Difference between revisions
(67 intermediate revisions by 3 users not shown) | |||
Line 21: | Line 21: | ||
== Objectives == | == Objectives == | ||
The Overall testing plan during {{ns:4}} | The Overall testing plan during {{ns:4}} X.X cycle aims to validate the overall enhancements that are currently in development as well as detecting regressions that might appear along. | ||
* Bug and feature verification | * Bug and feature verification | ||
Line 43: | Line 43: | ||
= Scope = | = Scope = | ||
This article 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. | This article 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. 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. | ||
= Testing Strategy = | = Testing Strategy = | ||
== Test Areas == | == Test Areas == | ||
Each internal project under {{ns:4}}, is an area | Each internal project under {{ns:4}}, is an area to be tested. Areas are grouped by the nature of their functionality, as follows: | ||
* [[#Build System]] | * [[#Build System]] | ||
* [[#Runtime testing]] | * [[#Runtime testing]] | ||
* [[#Developer Tools]] | * [[#Developer Tools]] | ||
* [[# | * [[#Distro Testing]] | ||
Line 76: | Line 76: | ||
==== Metadata ==== | ==== Metadata ==== | ||
Testing the core metadata of the {{ns:4}} is mainly covered in the overall testing process, through other [[#Test Areas]] like [[#BitBake]] and [[#Toaster]] mentioned above. We also have specific tests covering meta-yocto in the meta-yocto test run template, which we are running regularly at Full Pass | Testing the core metadata of the {{ns:4}} is mainly covered in the overall testing process, through other [[#Test Areas]] like [[#BitBake]] and [[#Toaster]] mentioned above. We also have specific tests covering meta-yocto in the meta-yocto test run template, which we are running regularly at Full Pass | ||
==== Distro Testing ==== | ==== 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 are Fedora, Ubuntu, CentOS, OpenSuse with their latest update. If for a distribution, a beta version is available during the release, the n+1 (beta version) will be validated as well.<br/> | 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 are Fedora, Ubuntu, CentOS, OpenSuse with their latest update. If for a distribution, a beta version is available during the release, the n+1 (beta version) will be validated as well.<br/> | ||
Refer to [https://wiki.yoctoproject.org/wiki/ | Refer to [https://wiki.yoctoproject.org/wiki/Distro_Testing_Plan Distribution Test Plan] for more details. | ||
<!-- | |||
[TBD] - distribution support wiki needs to be updated | [TBD] - distribution support wiki needs to be updated | ||
Our Distro config can be found here on contrib: http://git.yoctoproject.org/cgit/cgit.cgi/yocto-autobuilder/log/?h=contrib/QAsetup/ABubuntu | Our Distro config can be found here on contrib: http://git.yoctoproject.org/cgit/cgit.cgi/yocto-autobuilder/log/?h=contrib/QAsetup/ABubuntu | ||
--> | |||
=== Runtime testing === | === Runtime testing === | ||
Line 100: | Line 103: | ||
! linux-yocto | ! linux-yocto | ||
! Image-type | ! Image-type | ||
! | ! AUTO | ||
! | ! MANUAL | ||
! Compliance | ! Compliance | ||
! pTest | ! pTest | ||
Line 109: | Line 112: | ||
| MinwMax 32bit | | MinwMax 32bit | ||
| genericx86 | | genericx86 | ||
| | | 5.x | ||
| core-image-sato-sdk | | core-image-sato-sdk | ||
| <span style="background:#00ff00"> Y </span> | | <span style="background:#00ff00"> Y </span> | ||
Line 120: | Line 123: | ||
| | | | ||
| | | | ||
| | | 5,x-ltsi | ||
| core-image-lsb-sdk | | core-image-lsb-sdk | ||
| <span style="background:#00ff00"> Y </span> | | <span style="background:#00ff00"> Y </span> | ||
Line 131: | Line 134: | ||
| | | | ||
| genericx86-wic | | genericx86-wic | ||
| | | 5.x | ||
| core-image-sato | | core-image-sato-sdk WIC | ||
| <span style="background:#00ff00"> Y </span> | | <span style="background:#00ff00"> Y </span> | ||
| | | | ||
Line 142: | Line 145: | ||
| | | | ||
| | | | ||
| | | 5,x-ltsi | ||
| core-image-lsb-sdk | | core-image-lsb-sdk | ||
| | | | ||
Line 153: | Line 156: | ||
| MinwMax 64bit | | MinwMax 64bit | ||
| genericx86-64 | | genericx86-64 | ||
| | | 5.x | ||
| core-image-sato-sdk | | core-image-sato-sdk | ||
| <span style="background:#00ff00"> Y </span> | | <span style="background:#00ff00"> Y </span> | ||
Line 164: | Line 167: | ||
| | | | ||
| | | | ||
| | | 5,x-ltsi | ||
| core-image-lsb-sdk | | core-image-lsb-sdk | ||
| | | | ||
Line 175: | Line 178: | ||
| | | | ||
| genericx86-64-wic | | genericx86-64-wic | ||
| | | 5.x | ||
| core-image-sato | | core-image-sato-sdk WIC | ||
| <span style="background:#00ff00"> Y </span> | | <span style="background:#00ff00"> Y </span> | ||
| | | | ||
Line 186: | Line 189: | ||
| | | | ||
| | | | ||
| | |5,x-ltsi | ||
| core-image-lsb-sdk | | core-image-lsb-sdk | ||
| | | | ||
Line 197: | Line 200: | ||
| NUC | | NUC | ||
| genericx86-64 | | genericx86-64 | ||
| | | 5.x | ||
| core-image-sato-sdk | | core-image-sato-sdk | ||
| <span style="background:#00ff00"> Y </span> | | <span style="background:#00ff00"> Y </span> | ||
Line 208: | Line 211: | ||
| | | | ||
| | | | ||
| | |5,x-ltsi | ||
| core-image-lsb-sdk | | core-image-lsb-sdk | ||
| <span style="background:#00ff00"> Y </span> | | <span style="background:#00ff00"> Y </span> | ||
Line 219: | Line 222: | ||
| | | | ||
| genericx86-64-wic | | genericx86-64-wic | ||
| | | 5.x | ||
| core-image-sato | | core-image-sato-sdk WIC | ||
| <span style="background:#00ff00"> Y </span> | | <span style="background:#00ff00"> Y </span> | ||
| | | | ||
Line 230: | Line 233: | ||
| | | | ||
| | | | ||
| | | 5,x-ltsi | ||
| core-image-lsb-sdk | | core-image-lsb-sdk | ||
| | | | ||
Line 241: | Line 244: | ||
| QEMU | | QEMU | ||
| qemux86 | | qemux86 | ||
| | | 5.x | ||
| core-image-sato-sdk | | core-image-sato-sdk | ||
| <span style="background:#00ff00"> Y </span> | | <span style="background:#00ff00"> Y </span> | ||
Line 252: | Line 255: | ||
| | | | ||
| | | | ||
| | | 5,x-ltsi | ||
| core-image-lsb-sdk | | core-image-lsb-sdk | ||
| | | | ||
| | |||
| | |||
| | |||
|- | |||
| | |||
| | |||
| | |||
| | |||
| 5,x | |||
| core-image-sato-sdk WIC | |||
| <span style="background:#00ff00"> Y </span> | |||
| | | | ||
| | | | ||
Line 263: | Line 277: | ||
| | | | ||
| qemux86-64 | | qemux86-64 | ||
| | | 5.x | ||
| core-image-sato-sdk | | core-image-sato-sdk | ||
| <span style="background:#00ff00"> Y </span> | | <span style="background:#00ff00"> Y </span> | ||
Line 274: | Line 288: | ||
| | | | ||
| | | | ||
| | | 5,x-ltsi | ||
| core-image-lsb-sdk | | core-image-lsb-sdk | ||
| | | | ||
| | |||
| | |||
| | |||
|- | |||
| | |||
| | |||
| | |||
| | |||
| 5,x | |||
| core-image-sato-sdk WIC | |||
| <span style="background:#00ff00"> Y </span> | |||
| | | | ||
| | | | ||
Line 285: | Line 310: | ||
| EdgeRouter | | EdgeRouter | ||
| EdgeRouter | | EdgeRouter | ||
| | | 5.x | ||
| core-image-sato-sdk | | core-image-sato-sdk | ||
| <span style="background:#00ff00"> Y </span> | | <span style="background:#00ff00"> Y </span> | ||
Line 296: | Line 321: | ||
| | | | ||
| | | | ||
| | | 5,x-ltsi | ||
| core-image-lsb-sdk | | core-image-lsb-sdk | ||
| | | | ||
| | |||
| | |||
| | |||
|- | |||
| | |||
| | |||
| | |||
| | |||
| 5,x | |||
| core-image-sato-sdk WIC | |||
| <span style="background:#00ff00"> Y </span> | |||
| | | | ||
| | | | ||
Line 307: | Line 343: | ||
| MPC8315e-rdb | | MPC8315e-rdb | ||
| MPC8315e-rdb | | MPC8315e-rdb | ||
| | | 5.x | ||
| core-image-sato-sdk | | core-image-sato-sdk | ||
| <span style="background:#00ff00"> Y </span> | | <span style="background:#00ff00"> Y </span> | ||
Line 318: | Line 354: | ||
| | | | ||
| | | | ||
| | | 5,x-ltsi | ||
| core-image-lsb-sdk | | core-image-lsb-sdk | ||
| | | | ||
| | | | ||
| | | | ||
| | | | ||
|- | |- | ||
| | | | ||
| | | | ||
| | | | ||
| | | | ||
| | | 5,x-ltsi | ||
| core-image-sato-sdk WIC | |||
| <span style="background:#00ff00"> Y </span> | |||
| core-image- | |||
| | |||
| | | | ||
| | | | ||
Line 351: | Line 376: | ||
| Beaglebone Black | | Beaglebone Black | ||
| beaglebone | | beaglebone | ||
| | | 5.x | ||
| core-image-sato-sdk | | core-image-sato-sdk | ||
| <span style="background:#00ff00"> Y </span> | | <span style="background:#00ff00"> Y </span> | ||
Line 362: | Line 387: | ||
| | | | ||
| | | | ||
| | | 5,x-ltsi | ||
| core-image-lsb-sdk | | core-image-lsb-sdk | ||
| | | | ||
| | | | ||
| | |||
| | |||
|- | |||
| | |||
| | |||
| | |||
| | |||
| 5,x-ltsi | |||
| core-image-sato-sdk WIC | |||
| <span style="background:#00ff00"> Y </span> | | <span style="background:#00ff00"> Y </span> | ||
| | |||
| | |||
| | | | ||
|- | |- | ||
Line 373: | Line 409: | ||
| QEMU | | QEMU | ||
| qemuarm | | qemuarm | ||
| | | 5.x | ||
| core-image-sato-sdk | | core-image-sato-sdk | ||
| <span style="background:#00ff00"> Y </span> | | <span style="background:#00ff00"> Y </span> | ||
Line 384: | Line 420: | ||
| | | | ||
| | | | ||
| | | 5,x-ltsi | ||
| core-image-lsb-sdk | | core-image-lsb-sdk | ||
| | | | ||
Line 395: | Line 431: | ||
| | | | ||
| qemuarm64 | | qemuarm64 | ||
| | | 5.x | ||
| core-image-sato-sdk | | core-image-sato-sdk | ||
| <span style="background:#00ff00"> Y </span> | | <span style="background:#00ff00"> Y </span> | ||
Line 406: | Line 442: | ||
| | | | ||
| | | | ||
| | | 5,x-ltsi | ||
| core-image-lsb-sdk | | core-image-lsb-sdk | ||
| | | | ||
Line 417: | Line 453: | ||
| | | | ||
| qemuppc | | qemuppc | ||
| | | 5.x | ||
| core-image-sato-sdk | | core-image-sato-sdk | ||
| <span style="background:#00ff00"> Y </span> | | <span style="background:#00ff00"> Y </span> | ||
Line 428: | Line 464: | ||
| | | | ||
| | | | ||
| | | 5,x-ltsi | ||
| core-image-lsb-sdk | | core-image-lsb-sdk | ||
| | | | ||
Line 439: | Line 475: | ||
| | | | ||
| qemumips | | qemumips | ||
| | | 5.x | ||
| core-image-sato-sdk | | core-image-sato-sdk | ||
| <span style="background:#00ff00"> Y </span> | | <span style="background:#00ff00"> Y </span> | ||
Line 450: | Line 486: | ||
| | | | ||
| | | | ||
| | | 5,x-ltsi | ||
| core-image-lsb-sdk | | core-image-lsb-sdk | ||
| | | | ||
Line 461: | Line 497: | ||
| | | | ||
| qemumips64 | | qemumips64 | ||
| | | 5.x | ||
| core-image-sato-sdk | | core-image-sato-sdk | ||
| <span style="background:#00ff00"> Y </span> | | <span style="background:#00ff00"> Y </span> | ||
Line 472: | Line 508: | ||
| | | | ||
| | | | ||
| | | 5,x-ltsi | ||
| core-image-lsb-sdk | | core-image-lsb-sdk | ||
| | | | ||
Line 481: | Line 517: | ||
Meta-Intel | |||
{| class="wikitable" | |||
! Release | |||
! CPU Class | |||
! HW Platform | |||
! BSP Name | |||
! Image-type | |||
! Auto | |||
! Manual | |||
|- | |||
| rowspan="18" style="text-align: center;" | meta-intel | |||
| rowspan="18" | Big Core | |||
| rowspan="3" | MinnowMax 64bit | |||
| rowspan="3" | corei7-64 | |||
| core-image-sato-sdk | |||
| <span style="background:#00ff00"> Y </span> | |||
| | |||
|- | |||
| core-image-lsb-sdk | |||
| <span style="background:#00ff00"> Y </span> | |||
| | |||
|- | |||
| core-image-sato-sdk WIC | |||
| <span style="background:#00ff00"> Y </span> | |||
| | |||
|- | |||
| rowspan="3" | NUC | |||
| rowspan="3" | corei7-64 | |||
| core-image-sato-sdk | |||
| <span style="background:#00ff00"> Y </span> | |||
| <span style="background:#00ff00"> Y </span> | |||
|- | |||
| core-image-lsb-sdk | |||
| <span style="background:#00ff00"> Y </span> | |||
| | |||
|- | |||
| core-image-sato-sdk WIC | |||
| <span style="background:#00ff00"> Y </span> | |||
| | |||
|- | |||
| rowspan="3" | CherryHill | |||
| rowspan="3" | corei7-64 | |||
| core-image-sato-sdk | |||
| <span style="background:#00ff00"> Y </span> | |||
| | |||
|- | |||
| core-image-lsb-sdk | |||
| <span style="background:#00ff00"> Y </span> | |||
| | |||
|- | |||
| core-image-sato-sdk WIC | |||
| <span style="background:#00ff00"> Y </span> | |||
| | |||
|- | |||
| rowspan="3" | Joule | |||
| rowspan="3" | corei7-64 | |||
| core-image-sato-sdk | |||
| <span style="background:#00ff00"> Y </span> | |||
| | |||
|- | |||
| core-image-lsb-sdk | |||
| <span style="background:#ff0000"> </span> | |||
| | |||
|- | |||
| core-image-sato-sdk WIC | |||
| <span style="background:#00ff00"> Y </span> | |||
| | |||
|- | |||
| rowspan="3" | MinnowMax 32bit | |||
| rowspan="3" | core2-32 | |||
| core-image-sato-sdk | |||
| <span style="background:#00ff00"> Y </span> | |||
| <span style="background:#00ff00"> Y </span> | |||
|- | |||
| core-image-lsb-sdk | |||
| <span style="background:#00ff00"> Y </span> | |||
| | |||
|- | |||
| core-image-sato-sdk WIC | |||
| <span style="background:#00ff00"> Y </span> | |||
| | |||
|- | |||
| rowspan="3" | meta-intel-quark 32bit | |||
| rowspan="3" | intel-quark | |||
| core-image-sato-sdk | |||
| <span style="background:#00ff00"> Y </span> | |||
| | |||
|- | |||
| core-image-lsb-sdk | |||
| | |||
| | |||
|- | |||
| core-image-sato-sdk WIC | |||
| <span style="background:#00ff00"> Y </span> | |||
| | |||
|} | |||
==== Sanity Testing ==== | ==== Sanity Testing ==== | ||
Line 534: | Line 667: | ||
==== Build Appliance ==== | ==== Build Appliance ==== | ||
The basic functionality of the Build appliance will be tested. The tests consists on building successfully a build-appliance-image | The basic functionality of the Build appliance will be tested. The tests consists on building successfully a build-appliance-image. | ||
=== Test Cycle === | === Test Cycle === | ||
Line 710: | Line 843: | ||
** Distribution test on RC | ** Distribution test on RC | ||
=== Test | === Test Execution=== | ||
Test execution will be done as per QA process defined in QA wiki page at https://wiki.yoctoproject.org/wiki/QA#QA_Process. | |||
= Testing tools = | = Testing tools = | ||
Line 795: | Line 928: | ||
== Automatic testing of incoming patches == | == Automatic testing of incoming patches == | ||
[TBD] - Not | [TBD] - Not Implemeted | ||
= Test Automation = | = Test Automation = | ||
Line 820: | Line 950: | ||
*[[#Toaster]] | *[[#Toaster]] | ||
*[http://git.yoctoproject.org/cgit/cgit.cgi/poky-contrib/commit/?h=vhangan/eclipse-framework&id=dce7364ba85c12683234dc4841830d4ce23a488c Eclipse testing framework] | *[http://git.yoctoproject.org/cgit/cgit.cgi/poky-contrib/commit/?h=vhangan/eclipse-framework&id=dce7364ba85c12683234dc4841830d4ce23a488c Eclipse testing framework] | ||
= Test Schedule = | |||
For general schedule of the project go to the "Schedule" section on Test Plan of the release under test [[#Test Plans]] | |||
= Entry and Exit Criteria = | |||
In this section are defined the criteria to start and end test cycle: | |||
== Entry Criteria == | |||
* Release candidate was published and mail with "begin QA activities" is sent. | |||
* Images from autobuilder are available | |||
* Templates of the Test Runs are ready for release candidate under test | |||
* Mail with dates to be used and build description was sent | |||
== Exit Criteria == | |||
* All the components planned were 100 % completed | |||
* All Fail / Blocked Test cases are linked to a valid bug (not resolved nor verified) | |||
* If there is a major issue that blocks the component/build | |||
Also a general criteria is defined, go to the section "Pass / Fail Criteria" in the [[#Test Plans]] of the release under test | |||
= Assumptions and Constraints = | |||
TBD | |||
= Validation = | = Validation = | ||
Line 836: | Line 995: | ||
** Planned test case has passed | ** Planned test case has passed | ||
** Bug status is set to VERIFIED | ** Bug status is set to VERIFIED | ||
= Test Reporting = | = Test Reporting = | ||
*; Objectives: | *; Objectives: | ||
** Show a live | ** Show a live 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 | ** Archive reports; | ||
** Use [[QA Status TEMPLATE]] for reporting; | ** Use [[QA Status TEMPLATE]] for reporting; | ||
** Update [[Releases]] wiki after final release | |||
For specific deliverables please check the "Test Deliverables" section on [[#Test Plans]] of the of the current release under test | |||
= Test Plans = | = Test Plans = | ||
This section is | This section is divideb by two types of Test Plans, Release and Component. | ||
== Release == | == Release == | ||
{| class="wikitable" | {| class="wikitable" | ||
Line 863: | Line 1,017: | ||
! Test Plan | ! Test Plan | ||
|- | |- | ||
| 1. | | 3.4 | ||
| [[ | | [[Yocto_Project_3.4_Release_Test_Plan]] | ||
|- | |||
| 3.3 | |||
| [[Yocto_Project_3.3_Release_Test_Plan]] | |||
|- | |||
| 3.2 | |||
| [[Yocto_Project_3.2_Release_Test_Plan]] | |||
|- | |||
| 3.1 | |||
| [[Yocto_Project_3.1_Release_Test_Plan]] | |||
|- | |||
| 2.8 | |||
| [[Yocto_Project_2.8_Release_Test_Plan]] | |||
|- | |||
| 2.7 | |||
| [[Yocto_Project_2.7_Release_Test_Plan]] | |||
|- | |||
| 2.6 | |||
| [[Yocto_Project_2.6_Release_Test_Plan]] | |||
|- | |||
| 2.5 | |||
| [[Yocto_Project_2.5_Release_Test_Plan]] | |||
|- | |||
| 2.4 | |||
| [[Yocto_Project_2.4_Release_Test_Plan]] | |||
|- | |||
| 2.3 | |||
| [[Yocto_Project_2.3_Release_Test_Plan]] | |||
|- | |||
| 2.2 | |||
| [[Yocto_2.2_Overall_Test_Plan]] | |||
|- | |- | ||
| | | 2.1 | ||
| [[ | | [[Yocto_2.1_Overall_Test_Plan]] | ||
|- | |- | ||
| 1. | | 1.8 | ||
| [[Yocto_1. | | [[Yocto_1.8_Overall_Test_Plan]] | ||
|- | |- | ||
| 1. | | 1.7 | ||
| [[Yocto_1. | | [[Yocto_1.7_Overall_Test_Plan]] | ||
|- | |- | ||
| 1. | | 1.6 | ||
| [[Yocto_1. | | [[Yocto_1.6_Overall_Test_Plan]] | ||
|- | |- | ||
| 1.5 | | 1.5 | ||
| [[Yocto_1.5_Overall_Test_Plan]] | | [[Yocto_1.5_Overall_Test_Plan]] | ||
|- | |- | ||
| 1. | | 1.4 | ||
| [[Yocto_1. | | [[Yocto_1.4_Overall_Test_Plan]] | ||
|- | |- | ||
| 1. | | 1.3 | ||
| [[Yocto_1. | | [[Yocto_1.3_Overall_Test_Plan]] | ||
|- | |- | ||
| 1. | | 1.2 | ||
| [[Yocto_1. | | [[Yocto_1.2_Overall_Test_Plan]] | ||
|- | |- | ||
| | | 1.1 | ||
| [[ | | [[Yocto_1.1_Overall_Test_Plan]] | ||
|- | |- | ||
| | | 1.0 | ||
| [[ | | [[Yocto_1.0_Overall_Test_Plan]] | ||
|} | |} | ||
== Component == | == Component == | ||
{| class="wikitable" | |||
! Component | |||
! Test Plan | |||
|- | |||
| ADT | |||
| [[]] | |||
|- | |||
| BSP | |||
| [[BSP Test Plan]] | |||
|- | |||
| CROPS | |||
| [[]] | |||
|- | |||
| Eclipse Plugin | |||
| [[]] | |||
|- | |||
| Meta-Yocto | |||
| [[]] | |||
|- | |||
| Toaster | |||
| [[Toaster testing plan]] | |||
|- | |||
| eSDK | |||
| [[Extensible SDK Test Plan (eSDK)]] | |||
|- | |||
| OE-CORE / Bitbake | |||
| [[Oe-selftest]] | |||
|- | |||
| Distro Testing | |||
| [[Distro Testing Plan]] | |||
|- | |||
| Runtime (Compliance) | |||
| [[]] | |||
|- | |||
| Build Apliance | |||
| [[]] | |||
|} | |||
= Test Executions = | |||
For historical information about the Test executions on the Yocto Project releases go to [[Releases]] | |||
For specific information of the test executions of the current release under test go to the "Execution History" section in the most recent [[#Test Plans]] |
Latest revision as of 05:35, 8 September 2021
Reversion history
Version | Modifier | Comments |
---|---|---|
1.0 | Jose Perez Carranza | first draft |
Introduction
The Yocto Project is an open source collaboration project that provides templates, tools and methods to help you create custom Linux-based systems for embedded products regardless of the hardware architecture. The QA team is in charge to validate some of the tools and components available as well as the images integrity and functionality across different platforms supported. In below sections more detailed information will be provided.
Objectives and Tasks
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.
Objectives
The Overall testing plan during Yocto Project X.X cycle aims to validate the overall enhancements that are currently in development as well as detecting regressions that might appear along.
- Bug and feature verification
- Running regression tests
- Perform exploratory testing on required areas (e.g. Toaster)
- Improve and extend overall automation
Tasks
Here is a list with all tasks identified by this testing plan.
- General component testing
- Bug and Feature reporting
- Bug and Feature verification
- Test automation
- Exploratory testing
- Creating testing plans for required areas
- Review testing approaches with development peers
- Assign QA owners on major features
Scope
This article 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. 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.
Testing Strategy
Test Areas
Each internal project under Yocto Project, is an area to be tested. 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. Currently, oe-selftest covers all #Bitbake, oe-core and #Metadata autoamted tests.
BitBake
Functional testing of BitBake, as a build engine with all its features and components against various configuration and scenarios.
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 against Toaster. The test process focuses mostly on validating the data collected from the build process and verifying the correct functionality of the Toaster GUI such as:
- UI interface
- Backend interaction with bitbake for build purposes
- Backend interaction with database for storing and accessing build informations
- The testing objective involves only positive testing for existing features on Toaster.
- Perform exploratory testing focusing on newer features; this can sometimes generate new test cases.
Metadata
Testing the core metadata of the Yocto Project is mainly covered in the overall testing process, through other #Test Areas like #BitBake and #Toaster mentioned above. We also have specific tests covering meta-yocto in the meta-yocto test run template, which we are running regularly at Full Pass
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 are Fedora, Ubuntu, CentOS, OpenSuse with their latest update. If for a distribution, a beta version is available during the release, the n+1 (beta version) will be validated as well.
Refer to Distribution Test Plan for more details.
Runtime testing
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.
For test coverage, we are running the automated tests using Image tests.
Release | CPU Class | HW Platform | BSP Name | linux-yocto | Image-type | AUTO | MANUAL | Compliance | pTest |
---|---|---|---|---|---|---|---|---|---|
generic BSPs (x86) | Big Core | MinwMax 32bit | genericx86 | 5.x | core-image-sato-sdk | Y | Y | ||
5,x-ltsi | core-image-lsb-sdk | Y | |||||||
genericx86-wic | 5.x | core-image-sato-sdk WIC | Y | ||||||
5,x-ltsi | core-image-lsb-sdk | ||||||||
MinwMax 64bit | genericx86-64 | 5.x | core-image-sato-sdk | Y | |||||
5,x-ltsi | core-image-lsb-sdk | ||||||||
genericx86-64-wic | 5.x | core-image-sato-sdk WIC | Y | ||||||
5,x-ltsi | core-image-lsb-sdk | ||||||||
NUC | genericx86-64 | 5.x | core-image-sato-sdk | Y | Y | Y | |||
5,x-ltsi | core-image-lsb-sdk | Y | Y | ||||||
genericx86-64-wic | 5.x | core-image-sato-sdk WIC | Y | ||||||
5,x-ltsi | core-image-lsb-sdk | ||||||||
VM | QEMU | qemux86 | 5.x | core-image-sato-sdk | Y | Y | |||
5,x-ltsi | core-image-lsb-sdk | ||||||||
5,x | core-image-sato-sdk WIC | Y | |||||||
qemux86-64 | 5.x | core-image-sato-sdk | Y | Y | |||||
5,x-ltsi | core-image-lsb-sdk | ||||||||
5,x | core-image-sato-sdk WIC | Y | |||||||
generic BSPs (n-x86) | MIPS | EdgeRouter | EdgeRouter | 5.x | core-image-sato-sdk | Y | Y | ||
5,x-ltsi | core-image-lsb-sdk | ||||||||
5,x | core-image-sato-sdk WIC | Y | |||||||
PPC | MPC8315e-rdb | MPC8315e-rdb | 5.x | core-image-sato-sdk | Y | Y | |||
5,x-ltsi | core-image-lsb-sdk | ||||||||
5,x-ltsi | core-image-sato-sdk WIC | Y | |||||||
ARM | Beaglebone Black | beaglebone | 5.x | core-image-sato-sdk | Y | Y | |||
5,x-ltsi | core-image-lsb-sdk | ||||||||
5,x-ltsi | core-image-sato-sdk WIC | Y | |||||||
VM | QEMU | qemuarm | 5.x | core-image-sato-sdk | Y | ||||
5,x-ltsi | core-image-lsb-sdk | ||||||||
qemuarm64 | 5.x | core-image-sato-sdk | Y | Y | |||||
5,x-ltsi | core-image-lsb-sdk | ||||||||
qemuppc | 5.x | core-image-sato-sdk | Y | ||||||
5,x-ltsi | core-image-lsb-sdk | ||||||||
qemumips | 5.x | core-image-sato-sdk | Y | ||||||
5,x-ltsi | core-image-lsb-sdk | ||||||||
qemumips64 | 5.x | core-image-sato-sdk | Y | ||||||
5,x-ltsi | core-image-lsb-sdk |
Meta-Intel
Release | CPU Class | HW Platform | BSP Name | Image-type | Auto | Manual |
---|---|---|---|---|---|---|
meta-intel | Big Core | MinnowMax 64bit | corei7-64 | core-image-sato-sdk | Y | |
core-image-lsb-sdk | Y | |||||
core-image-sato-sdk WIC | Y | |||||
NUC | corei7-64 | core-image-sato-sdk | Y | Y | ||
core-image-lsb-sdk | Y | |||||
core-image-sato-sdk WIC | Y | |||||
CherryHill | corei7-64 | core-image-sato-sdk | Y | |||
core-image-lsb-sdk | Y | |||||
core-image-sato-sdk WIC | Y | |||||
Joule | corei7-64 | core-image-sato-sdk | Y | |||
core-image-lsb-sdk | ||||||
core-image-sato-sdk WIC | Y | |||||
MinnowMax 32bit | core2-32 | core-image-sato-sdk | Y | Y | ||
core-image-lsb-sdk | Y | |||||
core-image-sato-sdk WIC | Y | |||||
meta-intel-quark 32bit | intel-quark | core-image-sato-sdk | Y | |||
core-image-lsb-sdk | ||||||
core-image-sato-sdk WIC | Y |
Sanity Testing
BSP Sanity testing is performed by the public AutoBuilder, where all the BSP artifacts are built and checked if they are built correctly. On public AutoBuilder, Image tests is being run also on the QEMU images as well.
Weekly Testing
Consists in running all automated BSP tests, whihc are targeted to run on a weekly basis against the weekly build. Enabling and running the tests is described on the Image tests wiki page. The tests are available for QEMU BSPs and as well BSPs installed on real Hardware. For Coverage, please check #Runtime testing WR column
Full Pass
The full pass testing aims to run the BSP test cases which are not automated. They extend what is covered by #Weekly Testing by containing more complex scenarios like changing runlevels, or audio tests. for reference, please check #Runtime testing FP column.
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 (not implemented)
- 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 meta-toolchain-sdk and user build sdk. It will be covered in Weekly and Fullpass testing.
- Cross-toolchain install&compiling Test
- relocatable SDK
- extensible SDK (eSDK)
- 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.
For eclipse test automation, refer to #Eclipse Testing Framework section.
Build Appliance
The basic functionality of the Build appliance will be tested. The tests consists on building successfully a build-appliance-image.
Test Cycle
Below is a generic and most common Test Cycle used, but for every Yocto Project version under test may change, detailed information can be found #Test Plans
Test execution cycle | ||||
#Sanity Test | #Weekly Test | #Full Pass Test (Release) | ||
Build type | Daily (M.U.T.) | yes | ||
Weekly | yes | yes | ||
Release Candidate | yes | yes | yes | |
Release | yes | yes | yes | |
#Test Areas | #Build System (oe-selftest) | yes | yes | yes |
#BitBake | yes | |||
#Toaster | yes | yes | yes | |
#Metadata | yes | |||
#Runtime testing | yes | yes | yes | |
#Application Development Toolkit | yes | yes | ||
#Eclipse IDE Plugin | yes | |||
#Build Appliance | yes | |||
Distro Testing | yes | yes | yes | |
Target machine | generic BSPs (x86) | yes | yes | yes |
generic BSPs (non x86) | yes | yes | yes | |
VM (x86 and non-x86) | yes | yes | yes | |
Target image | core-image-sato | yes | ||
core-image-sato-dev | yes | |||
core-image-sato-sdk | yes | yes | yes | |
core-image-lsb-sdk | 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.
- 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
- 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 Execution
Test execution will be done as per QA process defined in QA wiki page at https://wiki.yoctoproject.org/wiki/QA#QA_Process.
Testing tools
Autobuilder
More information can be found in the AutoBuilder wiki.
oe-selftest
Oe-selftest is a test framework used for testing the OpenEmbedded build system. Following are some key points in describing oe-selftest:
- based on Python unittest
- designed to simulate normal usage patterns
- does not cover image run-time testing
- implements a new layer that contains generic/specific metadata used only by tests
Details regarding oe-selftest implementation and usage are available on Oe-selftest wiki.
Image tests
Compliance Testing
Compliance test suites / frameworks used on genericx86-64:
- LSB tests
- POSIX tests
- LTP tests
Install steps:
- Download lsb image from autobuilder( same image as in LSB weekly testing for genericx86-64-lsb bsp)
- we test compliance on NUC with genericx86-64-lsb, core-image-lsb-sdk
- Install the image on DUT
- Configure the network so it be able to work externally:
- edit /etc/resolv.conf and add the gateway ip_address
- add the ip and netmask using "ifconfig" command
- add the route using "route add default gw <ip_address>"
- export the proxy using "export http_proxy=<add your proxy link>" command
- there is a bug and if you make these steps in another order than above, it may be possible not work
- Copy "compliance_test.py" script on DUT
- Make sure that your network connection is working
- Run the script like this:
- make the script executable: "chmod a+x compliance_local.py"
- run in command line the following command "./compliance_test.py <milestone> <date>"
- wait until "Configuration done. LSB script must be started from machine." in command line( about 8-12 hours)
- Run "LSB_test.sh" via ssh or manually and wait for it to finish( about a day)
- Get the logs from DUT:
- result-<milestone>-data.fulllog
- result-<milestone>-data.log
- result-<milestone>-data.fail
- posix.log (can be found in: /opt/ltp/testcases/open_posix_testsuite)
- the three others are found in /opt/ltp directory, in output, temp, result folders . The logs need to be sent to yi.zhao@windriver.com specifying the version and the type of image
- in /var/opt/lsb/test/manager/results/x86.../x86....tar.gz (you can find it with auto-complete(tab) easily)
- it has like 18 Mb
- upload this file on drive and send the link to hongxu.jia@windriver.com and mark.hatle@windriver.com
- also I'll fwd an email to see how it looks
- Put the tests from Testopia - Runtime test run on passed
The scripts can be found here: http://git.yoctoproject.org/cgit/cgit.cgi/poky-contrib/log/?h=cagurida/compliance
pTest
Ptest (package test) is a concept for building, installing and running the test suites that the packages include for and by themselves, while producing a consistent test execution output format. More details on enabling and installing pTest are available on Ptest.
Install an run steps:
- Download pTest image from autobuilder( you can find core-image-sato-sdk image in pTest directory)
- Install the image on DUT (using legacy boot)
- Boot the image and copy "ptest-runner.sh" script on DUT
- In command line run "ptest-runner.sh > ptest.log" and wait for it to finish ( about 5 hours)
Eclipse Testing Framework
Eclipse Testing Framework uses Dogtail for test automation. Refer to eclipse-framework README on contrib for installation and framework details. Dogtail is a GUI test tool and automation framework written in Python. It uses Accessibility (a11y) technologies to communicate with desktop applications. dogtail scripts are written in Python and executed like any other Python program.
Build Performance test
The performance of the build system is tracked, with regards to time spent on passing through a build process, in multiple, commonly used, configurations.
- The tool used: http://git.yoctoproject.org/cgit/cgit.cgi/poky/tree/scripts/contrib/build-perf-test.sh
- For more details, refer to Performance Test wiki.
- Currently, build performance results can be viewed here as chart view (starting YP 1.6) here
Automatic testing of incoming patches
[TBD] - Not Implemeted
Test Automation
- Objectives
- Reduce effort with manual testing, by automating current tests;
- Improve run-time testing.
- Improve build-time testing.
- Tools
- #Distro Testing
- AutoBuilder
- On AutoBuilder the Image tests are run.
- Oe-selftest can be used. Currently oe-selftest is run on public AutoBuilder as well.
Test Automation contrib repositories
Test Schedule
For general schedule of the project go to the "Schedule" section on Test Plan of the release under test #Test Plans
Entry and Exit Criteria
In this section are defined the criteria to start and end test cycle:
Entry Criteria
- Release candidate was published and mail with "begin QA activities" is sent.
- Images from autobuilder are available
- Templates of the Test Runs are ready for release candidate under test
- Mail with dates to be used and build description was sent
Exit Criteria
- All the components planned were 100 % completed
- All Fail / Blocked Test cases are linked to a valid bug (not resolved nor verified)
- If there is a major issue that blocks the component/build
Also a general criteria is defined, go to the section "Pass / Fail Criteria" in the #Test Plans of the release under test
Assumptions and Constraints
TBD
Validation
- Objective
- Verify the correct functionality of new changes introduced in current version 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 the current version
- 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
Test Reporting
- Objectives
- Show a live 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;
- Use QA Status TEMPLATE for reporting;
- Update Releases wiki after final release
For specific deliverables please check the "Test Deliverables" section on #Test Plans of the of the current release under test
Test Plans
This section is divideb by two types of Test Plans, Release and Component.
Release
Component
Component | Test Plan |
---|---|
ADT | [[]] |
BSP | BSP Test Plan |
CROPS | [[]] |
Eclipse Plugin | [[]] |
Meta-Yocto | [[]] |
Toaster | Toaster testing plan |
eSDK | Extensible SDK Test Plan (eSDK) |
OE-CORE / Bitbake | Oe-selftest |
Distro Testing | Distro Testing Plan |
Runtime (Compliance) | [[]] |
Build Apliance | [[]] |
Test Executions
For historical information about the Test executions on the Yocto Project releases go to Releases
For specific information of the test executions of the current release under test go to the "Execution History" section in the most recent #Test Plans