Yocto 1.4 Overall Test Plan: Difference between revisions

From Yocto Project
Jump to navigationJump to search
No edit summary
 
(36 intermediate revisions by 3 users not shown)
Line 1: Line 1:
Yocto 1.3 Overall Test Plan reversion history
Yocto 1.4 Overall Test Plan reversion history


{|border="1"
{|border="1"
Line 5: Line 5:
|-
|-
| 1.0 || Laurentiu Serban || Initial Version  
| 1.0 || Laurentiu Serban || Initial Version  
|-
| 1.1 || Laurentiu Serban || Updated after comments from Yi Zhao
|-
| 1.2 || Laurentiu Serban || Updated after comments and suggestions from the team
|-
| 1.3 || Laurentiu Serban || Updated after comments and suggestions from Tom Zanussi
|}
|}


Line 22: Line 28:
                                                                                                                                                                                                                            
                                                                                                                                                                                                                            
=== What will not Be Tested in Yocto v1.4 ===                                                                                                                                                                             
=== What will not Be Tested in Yocto v1.4 ===                                                                                                                                                                             
Following feature categories won't be tested by QA team in Yocto v1.3:
Following feature categories won't be tested by QA team in Yocto v1.4:
* Documentation: QA will not validate the correctness of each documentation.
* Documentation: QA will not validate the correctness of each documentation.
* License file: license files and legal process are owned by Distro team.
* License file: license files and legal process are owned by Distro team.
Line 28: Line 34:
=== Test Environment ===
=== Test Environment ===
==== Test Platform matrix ====
==== Test Platform matrix ====
Following matrix is the target Test Plantforms for Yocto 1.3, with the target images will be validated in QA test.
Following matrix is the target Test Plantforms for Yocto 1.4, with the target images will be validated in QA test.
{|border="1" cellpadding="5"
{|border="1" cellpadding="5"
! Category !! colspan="5"| Qemu !! colspan="4" | Atom !! colspan="3" | Core i7 !! colspan="2" | Xeon !! ARM HW !! PPC HW !! MIPS HW  
! Category !! colspan="5"| Qemu !! colspan="4" | Atom !! colspan="3" | Core i7 !! colspan="1" | Xeon !! ARM HW !! colspan="2" | PPC HW !! colspan="1" | MIPS HW  
|-
|-
! Platform
! Platform
|   ||   ||   ||   ||   || FishRiver Island2|| CrownBay|| Blacksand || eMenlow || Chief River || Maho Bay || Sugarbay || HuronRiver|| Romely || JasperForest || Beagleboard || mpc8315e-rdb || routerstationpro
|   ||   ||   ||   ||   || atom-pc generic || FishRiver Island2|| CrownBay|| eMenlow || Sugarbay || ChiefRiver || HuronRiver || JasperForest || Beagleboard || mpc8315e-rdb || p1022ds || routerstationpro  
|-
|-
! Arch  
! Arch  
| x86_32 || x86_64 || arm || ppc || mips || x86_32 || x86_32 || x86_32 || x86X64 || x86_64 || x86X64 || x86X64 || x86_64 || x86_64 || arm || ppc || mips
| x86_32 || x86_64 || arm || ppc || mips || x86_32 || x86_32 || x86_32 || x86_32 || x86_64 || x86_64|| x86_64 || x86_64 || arm || ppc || ppc || mips
|-
! Minimal image
| yes || yes || yes || yes || yes ||   ||   ||   ||   ||   ||   ||   ||   ||   || yes || yes || yes
|-
|-
! Sato-SDK image  
! Sato-SDK image  
| yes || yes || yes || yes || yes || yes || yes || yes || yes || yes || yes || yes ||   ||   || yes || yes || yes
| yes || yes || yes || yes || yes || yes || yes || yes || yes || yes || yes ||   ||   || yes || yes || yes || yes
|-
|-
! LSB-SDK image
! LSB-SDK image
| yes || yes || yes || yes || yes ||   ||   ||   ||   ||   ||   ||   || yes  || yes ||   || yes ||    
| yes || yes || yes || yes || yes ||   ||   ||   ||   ||   ||   || yes  || yes ||   || yes ||   ||    
|}
|}




Note:  
Notes:  
* Fullpass testing defined in execution plan will be performed against sato and sato-sdk image.
* Fullpass testing defined in execution plan will be performed against sato-sdk image.
* For minimal image, only booting case is checked
* The atom images are both emgd and no-emgd images


=== Test Strategy and Approach ===
=== Test Strategy and Approach ===
Line 67: Line 70:
| '''qemux86'''||yes||yes||  ||  ||  ||  ||  
| '''qemux86'''||yes||yes||  ||  ||  ||  ||  
|-
|-
| '''qemux86-64'''||yes||yes||  ||  ||  ||  ||   
| '''qemux86-64'''||yes||yes||  ||  ||yes ||  ||   
|-
|-
| '''qemuarm'''||yes||yes||  || ||  ||  ||  
| '''qemuarm'''||yes||yes||  || ||  ||  ||  
Line 76: Line 79:
|-
|-
| '''SugarBay'''||yes||   || yes ||  ||   ||yes||yes
| '''SugarBay'''||yes||   || yes ||  ||   ||yes||yes
|-
| '''TunnelCreek'''||yes||   ||   ||  ||yes||yes||yes
|-
| '''TunnelCreek noemgd'''||(basic functionality are tested)||   ||   ||   ||   ||   ||  
|-
|-
| '''FishRiver Island 2'''||yes||   ||   ||  ||   ||yes||yes
| '''FishRiver Island 2'''||yes||   ||   ||  ||   ||yes||yes
|-
| '''Maho Bay'''||yes||   ||   ||  ||yes||yes||yes
|-
| '''Chief River'''||yes||   ||   ||  ||yes||yes||yes
|-
|-
| '''HuronRiver'''||yes||   ||  ||  || ||yes|| 
| '''HuronRiver'''||yes||   ||  ||  || ||yes|| 
|-
| '''Romely'''||yes||   || ||yes**||  ||  || 
|-
|-
| '''Jasperforest'''||yes||   || ||yes**||  ||  ||   
| '''Jasperforest'''||yes||   || ||yes**||  ||  ||   
|-
| '''Blacksand'''||yes||   || yes ||  ||  ||yes||yes
|-
|-
| '''eMenlow'''||yes||   ||  ||  ||  ||yes||yes
| '''eMenlow'''||yes||   ||  ||  ||  ||yes||yes
Line 102: Line 93:
|-
|-
| '''routerstation'''||yes||    || yes* ||  ||  ||   ||  
| '''routerstation'''||yes||    || yes* ||  ||  ||   ||  
|-
| '''p1022ds'''||yes||    ||   ||  ||  ||   ||  
|}
|}


Note:
Note:
* Compliance Test on Beagleboard and routerstation will only cover LTP and POSIX Test, since LSB test suite does not support ARM and MIPS.
* Compliance Test on Beagleboard and routerstation will only cover LTP and POSIX Test, since LSB test suite does not support ARM and MIPS.
* Jasperforest and Romely are picked up for stress test, because it is powerful with 12 CPUs and 2GB memory. Moreover, it is a server, which needs more stress tests. The other test boards, like blacksand and eMenlow do not have powerful CPUs, that's why we do not use them for stress test.
* 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.
 


{| border="1" {{table}}
{| border="1" {{table}}
Line 116: Line 110:
| '''Yocto build''' || yes || yes || yes
| '''Yocto build''' || yes || yes || yes
|-
|-
| '''WebHob & Hob2'''||yes||n/a||n/a
| '''Hob2'''||yes||n/a||yes
|-
| '''ADT&Toolchain'''||yes||n/a||yes
|-
|-
| '''Other build features''' || yes || n/a || n/a
|-
|}
|}


Line 126: Line 120:


=== Test Levels ===
=== Test Levels ===
The Yocto 1.3 will be tested from the following different test execution levels.  
The Yocto 1.4 will be tested from the following different test execution levels.  


==== Sanity Test ====
==== Sanity Test ====
Sanity Test is a very brief and quick test. It is integrated with each build process (including incremental build) in autobuilder system. It checks image basic functionality, 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.
Sanity Test is a brief and quick 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.
Additional test cases can be defined and integrated.  


'''Test Frequency''': Sanity test will be run on autobuilder system against daily build image.
'''Frequency''': Sanity test can be run on autobuilder system against the built images or on the local development machines for the locally built images.


'''Test Scope''': Sanity test only check very basic functionality in QEMU and its execution time is less than 10 minutes.
'''Scope''': Sanity test checks basic functionality in QEMU and its execution time depends on the test cases scheduled to run


==== Regression Test ====
Regression test is a set of tests to verify the new feature development does not introduce new issues to previous workable functionality. It covers the most important features check for both BSP/QEMU and yocto build features. The testcase list is updated after one milestone is finished and won't be updated until the next milestone is finished.


'''Test Frequency''': Regression test will be run on PRC autobuilder system against daily build image.
==== Weekly Test ====
Weekly test is a test cycle against the weekly image released through distribution team.  


'''Test Scope''': Regression Test covers more cases than Sanity Test. It includes functionality check in QEMU and the basic check for yocto build features.
'''Frequency''': Weekly Test is against weekly image and occurred each Thursday if image is ready on autobuilder system. It will cost 2 days for one round weekly test.


==== Weekly Test ====
'''Scope''': Weekly Test gives a weekly overview of the Yocto Project by verifiying the basic functionalities and features. It includes all the automated tests for the project components and several maunual tests necessary for feature validation (if those test cases are not automated yet or cannot be automated).
Weekly test is a test cycle against the weekly image released through distribution team. It will do new feature exploring, bug verification and regression testing. It includes more testing in component and system usage rather than Regression Test. Weekly test will also manually check key components behavior, such like X window, connman, multimedia.
 
'''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 - Pre-release ====
 
'''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.


'''Test Frequency''': Weekly Test is against weekly image and occurred each Thursday if image is ready on autobuilder system. It will cost 3 days for one round weekly test.
'''Coverage''': The weekly tests cover the entire functionalities for ADT & toolchain, Core Build System and HOB. Also the meta-yocto images are tested. Performace tests are also ran. meta-intel BSP releases are covered in this stage of testing.  


'''Test Scope''': Weekly Test covers more cases than Regression Test. It includes more manual cases for QEMU and yocto build features.
==== Fullpass Test - Post-release ====


==== Fullpass Test ====
'''Frequency''': The full pass tests done after the releases in order to  validate the components and the new included features for the release candidates
In milestone test, test team will perform a full validation testing for candidate build, following test will be involved. It includes more tests than Sanity and Weekly Test.


* Functional Test – which will test the items in Feature List(defined in https://wiki.yoctoproject.org/wiki/Yocto_1.3_Schedule), cover Core OS & System usage, WebHob, Hob2, and other build features, etc.
'''Scope''': The test verifies the quality of new features and the regression for the existing ones. The run includes the weekly testcases and also additional manual test cases. The test cases ran cover all the functionalities of the components.
* Stress Test – system should be alive and functional in 24 hours workload test.  
In addition to pre-release testing the stress and compliance test suites are ran
* Power and Performance Test – which follow the power and performance test plan
* Compliance Test - system level test suites will be chosen, LTP, POSIX and LSB.


'''Test Frequency''': Fullpass test will be performed against each RC build for milestone. It will cost a whole week for one round fullpass test.
'''Coverage''': The weekly tests cover the entire functionalities for ADT & toolchain, Core Build System and HOB. Also meta-yocto images are tested. Performance, Distribution, Stress and Compliance testing are covered.  meta-intel BSP releases are covered in this stage of testing.


'''Test Scope''': Fullpass Test covers more cases than Weekly Test. It includes stress test, power test, as well as compliance test.
=== Test Areas ===


==== Functional Test ====
==== Functional Test ====
Functional Test is a set of tests to verify if new features listed in Yocto 1.3 could work as expected. QA needs to update the whiteboard for each feature in bugzilla with following status:
*will test the existing features and also the new items in Feature List (defined in https://wiki.yoctoproject.org/wiki/Yocto_1.4_Schedule), cover Core OS & System usage,Hob2, ADT, toolchain, the eclipse plugin and the self-hosted-image.
 
===== System & Core OS(Covered in Weekly/Fullpass Test) =====
* 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
** 3G and WiFi connectivity
** 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.)
 
===== Core Build System(Covered in Weekly/Fullpass Test) =====
* Functionality Test: Test Core build feature on standard host configuration. For example:
** Build Appliance
** multilib
** PR service
** Package History
** poky manual features
** image and package build options
** license filtering, white-listing or black-listing licenses
 
===== ADT Test(Covered in Weekly Test/Fullpass Test) =====
** Cross-toolchain install&compiling Test
** relocatable SDK
** ADT installer
** toolchain tarballs
** yocto build tree
** Eclipse plugin
** C/C++ project create/cross-compile/remote-debug/deploy
** User-Space Tools
** Bitbake Project Create
 
===== Hob2 =====
** Selecting the machine and the image type and building an image
** Editing the packages list for an image
** Editing the list of images available for the user
** Adding extra-options for the build
** Enabling poky-tiny or deb rpm and ipk packaging
 
==== Stress Test ====
*system should be alive and functional in 24 hours workload test. Helltest and Crash me are the suites that are ran for the stress tests. BSP images are the targets for it. The HW targets is to be defined.
 
==== Power and Performance Test ====
*which follow the power and performance test plan. The performance of the build system is the subject of the test. Building a core-image-sato image for qemu (x86_64) time is the deliverable of the test case. Another performance test is the boot time for the qemu image previously created.
The power test cases are: the powertop output in c2 state and the free output.
 
==== Compliance Test ====
*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.
 
==== Distribution Testing ====
*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, toolchain, HOB2 and Core Build System are tested on these targets (including all the automated tests cases)
 
 
==== Testing new features ====
 
The scope is verify if new features listed in Yocto 1.4 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 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'''.
* 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'''.
Line 169: Line 228:
* Covered by current QA Test Plan: It means current QA test plan already covers the feature. No new cases needed.
* Covered by current QA Test Plan: It means current QA test plan already covers the feature. No new cases needed.


'''Test Frequency''': New Feature test is a continuous QA work within feature development phase. After one new feature is finished, testcases for it will be added into weekly or fullpass test.
'''Frequency''': New Feature test is a continuous QA work within feature development phase. After one new feature is finished, test cases for it will be added into weekly or fullpass test.


=== Test Execution Cycle ===
=== Test Execution Cycle ===
{|border="1" solid
{|border="1" solid
! Build !! Sanity Test !! Regression Test !! Weekly Test !! Fullpass Test
! Build !! Sanity Test !! Weekly Test !! Fullpass Test
|-
! Incremental Build
| yes || || ||
|-
! Daily Full Build
| yes || yes || ||
|-
|-
! Weekly Build  
! Weekly Build  
| yes || yes || yes ||  
| yes || yes ||  
|-
|-
! Milestone Build  
! Milestone Build  
| yes || yes || yes || yes  
| yes || yes || yes  
|}
|}


Line 194: Line 247:
{|border="1" solid
{|border="1" solid
! Test Report !! AutoBuilder Web  !! Yocto Mailing List
! Test Report !! AutoBuilder Web  !! Yocto Mailing List
|-
! Incremental Build
| yes ||
|-
! Daily Full Build
| yes ||
|-
|-
! Weekly Build  
! Weekly Build  
Line 213: Line 260:
To reduce testing time, test automation will be adopted in the testing. Part of following tests will be implemented as 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
* BSP/QEMU functionality tests
* Build feature tests
* Build feature tests - core build systems
* ADT installation, standalone toolchain installation, compiling projects using ADT or Standalone Toolchain Installation and Eclipse plug-in tests
* Hob2
 
'''Note''': Currently only sanity tests(10 cases) and about half of the BSP/QEMU test cases are fully automated.
 
=== What is new in 1.4 testing ===


'''Note''': Currently only sanity tests(10 cases) are fully automated.
'''Kernel testing'''


=== Test Infrastructure ===
*Testing LTSI support for BSP<br>
If QA has resource, test infrastructure will be investigated in Yocto v1.3. Automation test cases development should be test infrastructure independent.
** all BSP unless explicitly overridden<br>
** e.g. FRI2 overrides kernel version to 3.8<br>
** mainly Poky-LSB distro on Jasper Forest will be tested<br>
*All QEMUs were updated to use version 3.8<br>


=== Test Design ===
This is a overall test design for test components which will be covered QA testing. Detailed test cases design will be covered in Test Execution Plan.


==== System & Core OS(Covered in Weekly/Fullpass Test) ====
- Testing atom-pc - support for 3.0 kernel - the atom-pc image has a 3.0 kernel, tests are ran on an atom-pc netbook
* 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 for software update 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
** 3G
** ... etc
(Basic functionality for tested features will be exercised as well as new functionality added in each release.)


==== Core Build System(Covered in Weekly/Fullpass Test) ====
'''SMART updater'''
* Functionality Test: Test Core build feature on standard host configuration. For example:
** Build Appliance
** multilib
** PR service
** Package History
** ... etc
* Distribution support Test: Test Core build on latest CentOS, Ubuntu, Fedora and Opensuse Hosts
* WebHob & Hob2 Test: Main UI and component functionality are validated
* Performance Test: Check Core build performance on standard host(Defined in perfromance test webpage)


==== ADT Test(Covered in Weekly Test) ====
- SMART updater is a new feature to be integrated in 1.4. Test cases for SMART updater will be added to testopia
* Cross-toolchain install&compiling Test
** ADT installer
** toolchain tarball
** yocto build tree
* Eclipse plugin
** C/C++ project create/cross-compile/remote-debug/deploy
** User-Space Tools
** Bitbake Project Create
** Hob
* Distribution Support
** 32/64 bit, QEMU/BSP support
** Ubuntu, Fedora, Opensuse


==== Stress Test(Covered in Fullpass Test) ====
'''Testopia'''
Stress testing refers to tests that determine the robustness of software by testing beyond the limits of normal operation. Stress tests commonly put a greater emphasis on robustness, availability, and error handling under a heavy load, than on what would be considered as correct behavior under normal circumstances.


* Test Method: 24 hours workload (Helltest + Crashme) test should pass.
* Testopia is now populated and is is being used by the QA team.Presentations about Testopia ware delivered to the QA team and project stakeholders.
* An access management system is in place in the form of the "Testers" group in Bugzilla. The users belonging to that group can conduct tests, all others can just read the information inside Testopia.
* Test elements inside Testopia are continuously being added and updated by the QA team. Community involvement is available.
* more information inside the Testopia wiki page: https://wiki.yoctoproject.org/wiki/Testopia


==== Power/Performance Test(Covered in Fullpass Test) ====
'''Test automation framework for Core Build System'''
Power/Performance Test is to collect the power/performance data and status of Yocto image on defined BSP.
* Test Method: Power test will check if Yocto is power saving friendly, that CPU should support and enter different power saving stage.


==== Compliance Test(Covered in Fullpass Test) ====
- Use of a tool similar to an autobuilder instance for Core Build System test automation
Compliance Test is targeted to validate system level health with different system test suite.
* LTP test suite
* POSIX test
* LSB test

Latest revision as of 15:19, 25 March 2013

Yocto 1.4 Overall Test Plan reversion history

Version Modifier Comments
1.0 Laurentiu Serban Initial Version
1.1 Laurentiu Serban Updated after comments from Yi Zhao
1.2 Laurentiu Serban Updated after comments and suggestions from the team
1.3 Laurentiu Serban Updated after comments and suggestions from Tom Zanussi


Yocto 1.4 Test Execution Plan

This test plan defines test targets/components, scope, strategy, configurations as well as test execution cycles for 1.4 version of Yocto.

Targets / Components to Be Tested

  • Core OS: The core OS feature included Yocto kernel, distribution components(like connman, smart updater & zypper), file system, device drivers (e.g. Intel Graphics Driver).
  • 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.
  • 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.4

Following feature categories won't be tested by QA team in Yocto v1.4:

  • 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

Following matrix is the target Test Plantforms for Yocto 1.4, with the target images will be validated in QA test.

Category Qemu Atom Core i7 Xeon ARM HW PPC HW MIPS HW
Platform           atom-pc generic FishRiver Island2 CrownBay eMenlow Sugarbay ChiefRiver HuronRiver JasperForest Beagleboard mpc8315e-rdb p1022ds routerstationpro
Arch x86_32 x86_64 arm ppc mips x86_32 x86_32 x86_32 x86_32 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 yes yes             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.

Test Target System & Core OS ADT Compliance Stress Power/Performance Graphics Mulitimedia
qemux86 yes yes          
qemux86-64 yes yes     yes    
qemuarm yes yes          
qemumips yes yes          
qemuppc yes yes          
SugarBay yes   yes     yes yes
FishRiver Island 2 yes         yes yes
HuronRiver yes         yes  
Jasperforest yes     yes**      
eMenlow yes         yes yes
Beagleboard yes   yes* yes     yes
mpc8315e-rdb yes   yes        
routerstation yes   yes*        
p1022ds yes            

Note:

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


Core build feature Functionality Performance Distribution Support
Yocto build yes yes yes
Hob2 yes n/a yes
ADT&Toolchain yes n/a yes

Note:

  • For other core build features not listed, QA will cover functionality test if there is no specific requirement for performance and distribution.

Test Levels

The Yocto 1.4 will be tested from the following different test execution levels.

Sanity Test

Sanity Test is a brief and quick 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. Additional test cases can be defined and integrated.

Frequency: 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.

Frequency: Weekly Test is against weekly image and occurred each Thursday if image is ready on autobuilder system. It will cost 2 days for one round weekly test.

Scope: Weekly Test gives a weekly overview of the Yocto Project by verifiying the basic functionalities and features. It includes all the automated tests for the project components and several maunual tests necessary for feature validation (if those test cases are not automated yet or cannot 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 - Pre-release

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 and HOB. Also the meta-yocto images are tested. Performace tests are also ran. meta-intel BSP releases are covered in this stage of testing.

Fullpass Test - Post-release

Frequency: The full pass tests done after the releases in order to validate the components and the new included features for the release candidates

Scope: The test verifies the quality of new features and the regression for the existing ones. The run includes the weekly testcases and also additional manual test cases. The test cases ran cover all the functionalities of the components. In addition to pre-release testing the stress and compliance test suites are ran

Coverage: The weekly tests cover the entire functionalities for ADT & toolchain, Core Build System and HOB. Also meta-yocto images are tested. Performance, Distribution, Stress and Compliance testing are covered. meta-intel BSP releases are covered in this stage of testing.

Test Areas

Functional Test

System & Core OS(Covered in Weekly/Fullpass Test)
  • 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
    • 3G and WiFi connectivity
    • 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.)

Core Build System(Covered in Weekly/Fullpass Test)
  • Functionality Test: Test Core build feature on standard host configuration. For example:
    • Build Appliance
    • multilib
    • PR service
    • Package History
    • poky manual features
    • image and package build options
    • license filtering, white-listing or black-listing licenses
ADT Test(Covered in Weekly Test/Fullpass Test)
    • Cross-toolchain install&compiling Test
    • relocatable SDK
    • ADT installer
    • toolchain tarballs
    • yocto build tree
    • Eclipse plugin
    • C/C++ project create/cross-compile/remote-debug/deploy
    • User-Space Tools
    • Bitbake Project Create
Hob2
    • Selecting the machine and the image type and building an image
    • Editing the packages list for an image
    • Editing the list of images available for the user
    • Adding extra-options for the build
    • Enabling poky-tiny or deb rpm and ipk packaging

Stress Test

  • system should be alive and functional in 24 hours workload test. Helltest and Crash me are the suites that are ran for the stress tests. BSP images are the targets for it. The HW targets is to be defined.

Power and Performance Test

  • which follow the power and performance test plan. The performance of the build system is the subject of the test. Building a core-image-sato image for qemu (x86_64) time is the deliverable of the test case. Another performance test is the boot time for the qemu image previously created.

The power test cases are: the powertop output in c2 state and the free output.

Compliance Test

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

Distribution Testing

  • 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, toolchain, HOB2 and Core Build System are tested on these targets (including all the automated tests cases)


Testing new features

The scope is verify if new features listed in Yocto 1.4 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.

Frequency: New Feature test is a continuous QA work within feature development phase. After one new feature is finished, test cases for it will be added into weekly or fullpass test.

Test Execution Cycle

Build Sanity Test Weekly Test Fullpass Test
Weekly Build yes yes
Milestone Build yes yes yes

Test Report

Test report should be posted on webpage and Yocto mailing list.

Test Report AutoBuilder Web Yocto Mailing List
Weekly Build yes
Milestone Build yes

Test report format : Test Report Format

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
  • Build feature tests - core build systems
  • ADT installation, standalone toolchain installation, compiling projects using ADT or Standalone Toolchain Installation and Eclipse plug-in tests
  • Hob2

Note: Currently only sanity tests(10 cases) and about half of the BSP/QEMU test cases are fully automated.

What is new in 1.4 testing

Kernel testing

  • Testing LTSI support for BSP
    • all BSP unless explicitly overridden
    • e.g. FRI2 overrides kernel version to 3.8
    • mainly Poky-LSB distro on Jasper Forest will be tested
  • All QEMUs were updated to use version 3.8


- Testing atom-pc - support for 3.0 kernel - the atom-pc image has a 3.0 kernel, tests are ran on an atom-pc netbook

SMART updater

- SMART updater is a new feature to be integrated in 1.4. Test cases for SMART updater will be added to testopia

Testopia

  • Testopia is now populated and is is being used by the QA team.Presentations about Testopia ware delivered to the QA team and project stakeholders.
  • An access management system is in place in the form of the "Testers" group in Bugzilla. The users belonging to that group can conduct tests, all others can just read the information inside Testopia.
  • Test elements inside Testopia are continuously being added and updated by the QA team. Community involvement is available.
  • more information inside the Testopia wiki page: https://wiki.yoctoproject.org/wiki/Testopia

Test automation framework for Core Build System

- Use of a tool similar to an autobuilder instance for Core Build System test automation