Yocto 1.5 Overall Test Plan
Yocto 1.5 Overall Test Plan reversion history
Version | Modifier | Comments |
1.0 | Alexandru Georgescu | Initial Version |
Yocto 1.5 Test Execution Plan
This test plan defines test targets/components, scope, strategy, configurations as well as test execution cycles for 1.5 version of Yocto.
Targets / Components to Be Tested
[TODO] - this list must be reviewed
- Core build system: includes build system tests also using additional features and tweaks for it.
- Hob2: It includes functional tests for both frontend and backend of Hob2.
- Yocto ADT: It includes cross-toolchain, Eclipse plugin tests.
- BSPs: The core OS feature included Yocto kernel, distribution components(like connman, smart updater & zypper), file system. [TODO]
- Performance: Checks the CPU power behavior by software level tool, such as powertop. Real Power consumption when idle is collected. The performance of the build system is also recorded. [TODO]
- Distribution support: Current versions for supported distributions are tested along with one previous version and the beta release for the next one (the supported distributions are Ubuntu, Fedora, CentOS and OpenSUSE).[TODO]
- Compliance testing: LSB, LTP and POSIX tests are ran on the the selected targets. [TODO]
- Stress testing: Helltest + Crashme test suites are ran.[TODO]
What will not be tested in Yocto v1.5
Following feature categories won't be tested by QA team in Yocto v1.5:
- Documentation: QA will not validate the correctness of each documentation.
- License file: license files and legal process are owned by Distro team.
[TODO]
Test Environment
Test Platform matrix
The following matrix represents the target images that will be validated in QA Test in 1.5.
Target machines | |||||
---|---|---|---|---|---|
meta | meta-yocto-bsp | meta-intel | |||
qemuarm | atom-pc | emenlow | |||
qemumips | beagleboard | crownbay | |||
qemuppc | mpc8315e-rdb | fri2 | |||
qemux86 | routerstationpro | nuc | |||
qemux86-64 | jasperforest | ||||
sugarbay |
The following list represents the list with all the platforms available for Yocto 1.5
Category | QEMU | Atom | Core i7 | Xeon | ARM HW | PPC HW | MIPS HW | ||||||||||
Platform | atom-pc generic | FRI2 | Cronwbay | eMenlow | Sugarbay | Chiefriver | HuronRiver | JasperForest | Beagleboard | mpc8315e-rdb | p1022ds | routerstationpro | |||||
Arch | x86 | x86_64 | arm | ppc | mips | x86 | x86 | x86 | x86 | x86_64 | x86_64 | x86_64 | x86_64 | arm | ppc | ppc | mips |
Sato-SDK image | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | ||
LSB-SDK image | yes | yes | yes |
[TODO] - review LSB sdk tests on QEMU
Notes:
- Fullpass testing defined in execution plan will be performed against sato-sdk image.
- The atom images are both emgd and no-emgd images
Test Strategy and Approach
QA will cover following tests for each target in each round fullpass testing.
[TODO] - define the matrix for what Yocto component tests will be performed on each target.
The following matrix represents the Yocto Project components mapped by the test areas and by the Weekly and Full pass test levels.
Test Areas | |||
---|---|---|---|
Components | Weekly | Full Pass | |
Build System | Bitbake | Yes* | Yes |
Build performance | Yes* | Yes | |
Metadata | Yes* | Yes | |
Distribution | Yes* | Yes | |
Target | Build Appliance | Yes | |
QEMU images | Yes* | Yes | |
BSP images | Yes* | Yes | |
Stress | Yes* | Yes | |
Target performance | Yes* | Yes | |
Compliance | Yes | ||
Tools | Eclipse | Yes* | Yes |
ADT | Yes* | Yes | |
Autobuilder | Yes* | Yes |
[TODO] - add the sanity level in the matrix
Note:
- On weekly test, the basic BSP will be covered: Atom-PC, Beagleboard, Routerstationpro, MPC8315e-rdb, P1022ds-rdb, and all the QEMU images (arm, x86, x86_64, ppc, mips)
- as mentioned in the Weekly test section, the weekly tests will cover the basic functionalities of the component.
- Compliance Test on Beagleboard and routerstation will only cover LTP and POSIX Test, since LSB test suite does not support ARM and MIPS.
- Jasperforest is selected for stress test, because it is powerful with 12 CPUs and 2GB memory. Moreover, it is a server, which needs more stress tests.
The following matrix represents Full pass and Weekly coverage of BSP testing.
Test levels | Atom-PC | NUC | Emenlow | Sugarbay | Jasperforest | Crownbay | FRI2 | Beagleboard | RouterstationPro | MPC8315e-rdb | P1022ds-rdb |
---|---|---|---|---|---|---|---|---|---|---|---|
Weekly | Yes | Yes | Yes | Yes | Yes | ||||||
Full Pass | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
Test Levels
The Yocto 1.5 will be tested from the following different test execution levels.
Sanity Test
Sanity Test is a brief and quick automated test. It is integrated with each build process (including incremental build) in autobuilder system. It checks image basic functionalities, such as booting, network, zypper etc. Its results will be published in build web page and referred by the other testing. It is fully automation test and its execution time should be less than 10 minutes.
- based on the test results, most failed test-cases (from weekly) that can be automated will be included in this test suite.
Frequency: Runs on public Autobuilder for every build. Sanity test can be run on autobuilder system against the built images or on the local development machines for the locally built images.
Scope: Sanity test checks basic functionality in QEMU and its execution time depends on the test cases scheduled to run.
Weekly Test
Weekly test is a test cycle against the weekly image released through distribution team.
- includes Sanity tests
- includes the Manual tests, with high priority for automation
- cover most areas with minimum sets of tests
- contains test cases with high probability to find bugs
Frequency: Weekly Test is against weekly image that starts each Thursday if image is ready on autobuilder system. It will cost 1 days for one round weekly test.
[TODO] - review the cost day time and add the man days necessary for finisshing the Weekly test.
Scope: Weekly Test gives a weekly overview of the Yocto Project by verifiying the basic functionalities and features. It includes all current automated tests for the project components and several maunual tests necessary for feature validation (most of them are tests that are to be automated).
Coverage: The weekly tests cover parts of ADT & toolchain, Core Build System and HOB. Also meta-yocto images are tested. On request meta-intel BSPs can be covered in this stage of testing.
Fullpass Test
- includes Sanity tests
- includes all the weekly tests
- includes all the manual tests
- includes the remaining tests
Frequency: The full pass tests done before the releases in order to validate the components and the new included features
Scope: The test verifies the integration of new features and the regression for the existing ones. The run includes the weekly testcases and also additional manual test cases. Performance tests are ran and also distribution validation tests. The test cases ran cover all the functionalities of the components.
Coverage: The weekly tests cover the entire functionalities for ADT & toolchain, Core Build System, Eclipse plugin and HOB. Also the meta-yocto images are tested. Performace tests are also ran. The meta-intel BSP releases are covered in this stage of testing.
Milestone testing : For every milestone release, the following will be covered:
- distribution testing
- stress testing
- compliance testing
[TODO[ - review Milestone testing
Test Levels | |||||
---|---|---|---|---|---|
Sanity | Weekly | Full-pass | |||
Quick automated tests | '+ Sanity | '+ Sanity | |||
Runs on public AB for every build | '+Manual, with high priority for automation | '+Weekly | |||
* most failed test-cases (from weekly) | * Assures basic functionality | '+ Manual | |||
*based on test results, most reported bugs | *Cover most areas with minimum set of tests | '+Rest |
Test Areas
In 1.5 testing, the test areas will be divided in 3 main components:
- Build system
- Target
- Tools
Build system
Build system test area contains all the tests that are related to the Build system. The project components that contain the test cases related to the build system are:
- Bitbake
- HOB
- Build Performance
- Distribution
Target
The Target test area contains all the test cases which are performed at Runtime. The project components included are:
- Build appliance
- QEMU image
- BSP image
- Target performance
- Compliance
Tools
The Tools test area refers to testing the followin tools supported by The Yocto Project. The project components are:
- Eclipse plugin
- ADT
- Autobuilder
Test areas detailed
Bitbake
Will cover basic Bitbake tests, like checking flags, showing layers, showing error messages, recipes.
Build Performance
For every milestone we have a script used for running the builds performance tests: scripts/contrib/build-perf-test.sh.
Details for the current Build performance results are listed in the Performance test wiki.
Metadata
Distribution Testing
The most recent previous version of one of the 4 supported distributions Ubuntu, Fedora, CentOS, OpenSUSE, and the latest beta version of those are the target for these tests. Basic functionalities of ADT, toolchaion, HOB2 and Core Build System ar testested on these targets.
The following coverage matrix will reprezent the supported distributions:
Distribution | Ubuntu | Fedora | CentOS | OpenSUSE | ||||
Version | 13.04 | 13.10 | 18 | 19 | 6.3 | 6.4 | 12.3 | 13.1 |
RC Supported | Yes | Yes | Yes | Yes | ||||
1.5 Supported | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
[TODO] - add more details
Build appliance
The basic functionality of the Build appliance will be tested. The tests consists on building successfully a build-appliance-image, launch HOB.
Qemu and BSP testing
On every test cycle, QA will validate the core BSPs: Atom-PC, Beagleboard, RouterstationPro, MPC8315e-rdb, P1022ds-rdb, QEMU (arm, ppc, mips, x86, x86_64). The images tested will be core-image-sato-sdk. The scope of BSP testing is to make sure that the core BSPs have basic functionality, like described below:
- Boot Test: Check if Yocto image is bootable with the bootloader.
- Installation/SW Update Test: Validate the Yocto image installation on hardware platform and software install/removal functions from the end users' perspective. Using zypper/rpm/SMART updater for software updates with hardisk installed image.
- Common system usage Test: shutdown/restart, suspend/resume, init 3/5 boot.
Component Test (aka. Feature Test): Based on sato image features to test. For example:
- Perl
- Rootless X
- Opening 3rd party application
- Code compiling and building binaries on the *-sdk images
- Continuous system updates analysis
(Basic functionality for tested features will be exercised as well as new functionality added in each release.)
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
[TODO] - add more details
Runtime Performance
The runtime performance metrics will be measured using the following methods:
- measure boot time for SystemD and SysVinit features
- record image size from buildhistory to track regression
- use Phoronix Test Suite tests to benchmark Yocto images
- run Piglit test suite
[TODO] - detail the methods
Compliance
LTP, POSIX and LSB test suites are ran on the targets. The hardware used for this is Huron River. The images used are core-image-lsb-sdk. [TODO]
Eclipse
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
ADT
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
Autobuilder
Covers sanity tests that are run on the public Autobuilder
Test Execution Cycle
The test execution cycle starts after the weekly build is available on Thursday. If a weekly test is planned in the current week, the QA will perform the weekly tests on the build. If a fullpass is planned, than the weekly tests will be performed for the build. If the weekly tests passes, the testing continues with the remaining tests that are included in the fullpass. The 1.5 schedule is available in the Yocto 1.5 Schedule wiki page. The weekly build is announced on the Yocto public mailing list, with the builds available on the autobuilder server. After all the tests are performed, QA will send a test report on the public mailing list and they will also be available on the 1.5 QA run history page.
Test Execution Cycle | |||||
---|---|---|---|---|---|
Build | Sanity | Weekly | Full-pass | ||
Weekly Build | Yes | YEs | |||
Milestone Build | Yes | Yes | Yes |
Test cases for 1.5
When the weekly build arrives, QA start testing, depending if a weekly test or a fullpass test is planned. All the test cases that QA runs on a build can be found in the Testopia platform. Every test area is mapped on the project components available in Bugzilla. The project components contain specific test cases, which are organized by Testing Plans and Test Runs. The testing progress can be viewed for the specific Test Run created for the build. If a test run is finished or not, the progress will be displayed in the 1.5 QA Status page. When all the test cycle is completed, the report will be added to the 1.5 QA History run page.
In the Test Cases wiki page, a list with all the test cases divided by project components is found.
Test Automation
To reduce testing time, test automation will be adopted in the testing. Part of following tests will be implemented as automation:
- BSP/QEMU functionality tests
- Hob2
- ADT installation, standalone toolchain installation, compiling projects using ADT or Standalone Toolchain Installation
- Build feature tests - core build systems
[TODO] - add a link to a general automation wiki
[TODO] - add a link to a static wiki with all automated tests
[TODO] - add a link to a static wiki with all manual tests that can be automated.
Feature testing
The scope is verify if new features listed in Yocto 1.5 work as expected. QA needs to update the whiteboard for each feature in bugzilla with following status:
- Test Plan Ready: It means QA has discussed with developers and understood how to test a new feature. Testcase design has been reviewed by developer. QA should set the status during a feature is in Design or Design Review stage.
- Test Case Completed: It means QA has finished testcases implementation for a new feature. QA should set the status afer a feature is Development Finished.
- QA Testing Completed: It means QA finishes validation of a new feature and send the result on bugzilla or send to developer.
- No QA needed: It means there is no need to design any testcases for a new feature or QA has no resource to cover it.
- Covered by current QA Test Plan: It means current QA test plan already covers the feature. No new cases needed.
The current feature task board is found in the Yocto Project 1.5 status wiki
- This section will be continuously improved in 1.5, based on the features that will be implemented and their testing plan will be added here.
[TODO] - add a link to the feature list
Main features to be tested in 1.5
- gcc security flags
- extend developer experience to enable system and app development on Windows and MacOS
- WebHob
- small common BSP with graphics
- Fenrus updater
- Security tools
- create infrastructure to support direct image upgarding
- Increase the usage of Autobuilder as a QA tool and add more automated tests
- Toolchain armoring
[TODO] - add bug id for each
Feature verification
[TODO] - to be updated with feedback from Song with the procedure. Should expect this on WW22.4
Every feature will be assessed whether documentation is needed. If yes, the feature cannot be closed until documentation is provided.
[TODO] - add the ones responsible for loggging features and bugs with documentation.
Test report
There will be several pages that will contain the status of the testing and the testing history. The live results for the build that is being tested, are available in 1.5 QA Status page. This page is populated automatically from Testopia with the test results.
After a test cycle is completed, the results are stored in a wiki page, and sent to the mailing list. To view the history of all 1.5 QA test runs, access 1.5 Run History page.
The template of the report can be found in the QA Status Template page.
Testopia
Since 1.4 Testopia has been introduced as the official Test Case management platform for the Yocto Project. It can be accessed by having an account in Bugzilla and by clicking the Product dashboard link.
- Test elements inside Testopia are continuously being added and updated by the QA team. Community involvement is available.
- To access the test case management system, a bugzilla user is needed.
- All bugzilla users han create/edit/delete elements in Testopia on the Community SandBox test plans.
- In order to be able to edit/create elements in Testopia on the official test plans, the bugzilla user has to be in the testers group.
- More information inside the Testopia wiki page: Testopia wiki
[TODO] - add owner to add users to Testopia