Yocto 1.5 Overall Test Plan: Difference between revisions

From Yocto Project
Jump to navigationJump to search
Line 226: Line 226:


= Test Areas =
= Test Areas =
== Build System Test ==
The testing areas are defined by the {{ns:4}} component covered, and grouped by the components nature and destination, as follows:
=== BitBake Test ===
 
== Build System ==
Including 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.
Functional testing of BitBake, as a build engine, with all its features and components, against various configuration and scenarios.


=== HOB Test ===
=== HOB ===
Functional and usability testing of HOB as a graphical user interface for BitBake.
Functional and usability testing of HOB as a graphical user interface for BitBake.


=== Metadata Test ===
=== Metadata ===
Testing the core metadata of the {{ns:4}} is mainly covered in the overall testing process, of other [[#Test Area]]s like [[#BitBake Test]] and [[#HOB Test]] mentioned above.
Testing the core metadata of the {{ns:4}} is mainly covered in the overall testing process, of other [[#Test Area]]s like [[#BitBake]] and [[#HOB]] mentioned above.


=== Build Performance ===
=== Build Performance ===
For every milestone we have a script used for running the builds performance tests: scripts/contrib/build-perf-test.sh.
The performance of the build system is tracked, with regards to time spent on passing through a build process, in multiple, commonly used, configurations.
Details for the current Build performance results are listed in the [https://wiki.yoctoproject.org/wiki/Performance_Test Performance test] wiki.
; 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.


== Target System Test ==
=== QEMU Image ===
The '''Target''' test area contains all the test cases which are performed at Runtime. The project components included are:
Covering all core, QEMU, machine definitions:
* Build appliance
* qemuarm
* QEMU image
* qemumips
* BSP image
* qemuppc
* Target performance
* qemux86
* Compliance
* qemux86-64


=== Qemu and BSP testing ===
=== BSP Image ===
Covering BSPs included in the {{ns:4}}:
* atom-pc
* beagleboard
* mpc8315e-rdb
* routerstationpro


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.
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:
The scope of BSP testing is to make sure that the core BSPs have basic functionality, like described below:


Line 266: Line 279:




=== Target Performance ===
=== System Performance ===


The runtime performance metrics will be measured using the following methods:
The run-time performance metrics will be measured using the following methods:


* measure boot time for SystemD and SysVinit features
* measure boot time for SystemD and SysVinit features

Revision as of 12:53, 12 June 2013

Reversion history

Version Modifier Comments
1.0 Alexandru Georgescu Initial Version

Introduction

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

  • 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.
  • 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.
  • 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).
  • Compliance testing: LSB, LTP and POSIX tests are ran on the the selected targets.
  • Stress testing: Helltest + Crashme test suites are ran.

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.

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


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.


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


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 Areas

The testing areas are defined by the Yocto Project component covered, and grouped by the components nature and destination, as follows:

Build System

Including 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, of 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.

QEMU Image

Covering all core, QEMU, machine definitions:

  • qemuarm
  • qemumips
  • qemuppc
  • qemux86
  • qemux86-64

BSP Image

Covering BSPs included in the Yocto Project:

  • atom-pc
  • beagleboard
  • mpc8315e-rdb
  • routerstationpro

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.)


System Performance

The run-time 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

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]

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

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 Test

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

Test Cycle

Test execution cycle
#Sanity Test #Weekly Test #Full Pass Test #Release Test
Build type Daily (M.U.T.) yes
Weekly build yes yes
RC build yes yes yes
Release yes yes yes yes

Sanity Test

Brief and quick automated tests, with execution time of maximum 10 minutes.

  • Objective
    • Ensure the build output is sane / as expected;
    • 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

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

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