Yocto 1.2 Overall Test Plan: Difference between revisions

From Yocto Project
Jump to navigationJump to search
No edit summary
 
(29 intermediate revisions by 2 users not shown)
Line 1: Line 1:
Yocto 1.1 Overall Test Plan reversion history
Yocto 1.2 Overall Test Plan reversion history


{|border="1"
{|border="1"
Line 5: Line 5:
|-
|-
| 0.3 || Jiajun Xu || Initial Version  
| 0.3 || Jiajun Xu || Initial Version  
|-
| 0.4 || Jiajun Xu || Updated with comments from Song Liu and Yi Zhao
|}
|}


Line 11: Line 13:
This overall test plan defines test scope, test strategy, test configurations as well as test execution cycle for Yocto v1.2 program.
This overall test plan defines test scope, test strategy, test configurations as well as test execution cycle for Yocto v1.2 program.


=== Features to Be Tested ===
=== Components to Be Tested ===
* Core OS: The core OS feature included Yocto kernel, distro components(like connman & zypper), file system, device drivers (e.g. Intel Graphics Driver).  
* Core OS: The core OS feature included Yocto kernel, distro components(like connman & zypper), file system, device drivers (e.g. Intel Graphics Driver).  
* Core build system: It includes basic core build test and other build feature test. Performance and different distribuitions support will be tested also.
* Core build system: It includes basic core build test and other build feature test. Performance and different distribuitions support will be tested also.
* Hob2: It includes functional tests for both frontend and backend of hob2.
* Hob2: It includes functional tests for both frontend and backend of hob2.
* Yocto ADT: ADT testing only covers toolchain test.
* Yocto ADT: It includes cross-toolchain, Eclipse plugin tests.
* Power/Performance: QA will check the CPU power behavior by software level tool, such as '''powertop'''. Real Power consumption with idle is collected.
* Power/Performance: QA will check the CPU power behavior by software level tool, such as '''powertop'''. Real Power consumption with idle is collected.


=== What will not Be Tested in Yocto v1.2 ===
=== What will not Be Tested in Yocto v1.2 ===
Following feature categories won't be tested by QA team in Yocto v1.2:
Following feature categories won't be tested by QA team in Yocto v1.2:
* Eclipse plugin: QA will not cover ADT plugin and ADT tools testing. -- (ADT team will cover them)
* 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 is owned by Distro team.
* License file: license files and legal process is owned by Distro team.
Line 37: Line 38:
|-
|-
! Minimal image  
! Minimal image  
| yes || yes || yes || yes || yes ||   ||   ||   ||   ||   ||   ||   ||   || yes || yes || yes || yes
| yes || yes || yes || yes || yes ||   ||   ||   ||   ||   ||   ||   ||   ||   || yes || yes || yes || yes
|-
|-
! Sato image
! Sato image
| yes || yes || yes || yes || yes ||   ||   ||   ||   ||   ||   ||   ||   ||   ||   ||   ||  
| yes || yes || yes || yes || yes ||   ||   ||   ||   ||   ||   ||   ||   ||   ||   ||   ||   ||  
|-
|-
! Sato-SDK image  
! Sato-SDK image  
Line 87: Line 88:
| '''Chief River'''||yes||   ||   ||  ||yes||yes||yes
| '''Chief River'''||yes||   ||   ||  ||yes||yes||yes
|-
|-
| '''HuronRiver'''||yes||   ||  ||  ||yes||yes||yes
| '''HuronRiver'''||yes||   ||  ||  || ||yes|| 
|-
|-
| '''Jasperforest'''||yes||   || ||yes**||  ||  ||   
| '''Jasperforest'''||yes||   || ||yes**||  ||  ||   
Line 95: Line 96:
| '''eMenlow'''||yes||   ||  ||  ||  ||yes||yes
| '''eMenlow'''||yes||   ||  ||  ||  ||yes||yes
|-
|-
| '''Beagleboard'''||yes||    || yes* ||  ||  ||   ||  
| '''Beagleboard'''||yes||    || yes* ||yes ||  ||   || yes
|-
|-
| '''mpc8315e-rdb'''||yes||    || yes ||  ||  ||   ||  
| '''mpc8315e-rdb'''||yes||    || yes ||  ||  ||   ||  
Line 101: Line 102:
| '''routerstation'''||yes||    || yes* ||  ||  ||   ||  
| '''routerstation'''||yes||    || yes* ||  ||  ||   ||  
|-
|-
| '''Pandaboard'''||yes||    ||   ||  ||  || yes || yes
| '''Pandaboard'''||yes||    ||   ||  ||  ||   || yes
|-
|-
|
|}
|}


Line 123: Line 123:
|-
|-
| '''Other build features''' || yes || n/a || n/a
| '''Other build features''' || yes || n/a || n/a
|-
|-  
|
|}
|}


Line 137: Line 136:


'''Test Frequency''': Sanity test will be run on autobuilder system against daily build image.
'''Test Frequency''': Sanity test will be run on autobuilder system against daily build image.
'''Test Scope''': Sanity test only check very basic functionality in QEMU and its execution time is less than 10 minutes.
==== 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.
'''Test Scope''': Regression Test covers more cases than Sanity Test. It includes functionality check in QEMU and the basic check for yocto build features.


==== Weekly Test ====
==== Weekly Test ====
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 Sanity Test. Weekly test will also manually check key components behavior, such like X window, connman, multimedia.
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.


'''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.
'''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.
'''Test Scope''': Weekly Test covers more cases than Regression Test. It includes more manual cases for QEMU and yocto build features.


==== Fullpass Test ====
==== Fullpass Test ====
Line 153: Line 163:
'''Test Frequency''': Fullpass test will be performed against each RC build for milestone. It will cost a whole week for one round fullpass test.
'''Test Frequency''': Fullpass test will be performed against each RC build for milestone. It will cost a whole week for one round fullpass test.


==== Regression Test ====
'''Test Scope''': Fullpass Test covers more cases than Weekly Test. It includes stress test, power test, as well as compliance 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.
 
==== Functional Test ====
Functional Test is a set of tests to verify if new features listed in Yocto 1.2 could 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.


'''Test Frequency''': Regression test will be run on PRC autobuilder system against daily build image.
'''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.


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


Line 198: Line 214:


=== Test Automation ===
=== Test Automation ===
To reduce testing time, test automation will be adopted in the testing. Following test 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:
* Sanity Test
* BSP/QEMU functionality tests
* Part of Weekly Test
* Hob2 tests
* Stress Test
* Build feature tests
* Core build Performance Test
 
'''Note''': Currently only sanity tests(10 cases) are fully automated. For 1.2, QA will make more than 60%(80-100 cases) cases automated.


=== Test Infrastructure ===
=== Test Infrastructure ===
Line 210: Line 227:
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.
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 Test) ====
==== System & Core OS(Covered in Weekly/Fullpass Test) ====
* Boot Test: Check if Yocto image is bootable with the bootloader.
* 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.
* 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.
Line 221: Line 238:
(Basic functionality for tested features will be exercised as well as new functionality added in each release.)
(Basic functionality for tested features will be exercised as well as new functionality added in each release.)


==== Core Build System(Covered in Fullpass Test) ====
==== Core Build System(Covered in Weekly/Fullpass Test) ====
* Functionality Test: Test Core build feature on standard host configuration. For example:
* Functionality Test: Test Core build feature on standard host configuration. For example:
** kernel interactive targets
** multilib
** non-GPLv3 build
** PR service
** sstate
** Package History
** core build in virtual machine
** ... etc
** ... etc
* Distribution support Test: Test Core buld on latest Ubuntu, Fedora and Opensuse Hosts
* Distribution support Test: Test Core buld on latest Ubuntu, Fedora and Opensuse Hosts
* Hob Test: Main UI and component functionality are validated (Some cases defined in weekly and some in fulpass)
* Hob2 Test: Main UI and component functionality are validated
* Build appliance Test: Functionality and performance of self-hosted image are tested
* Performance Test: Check Core build performance on standard host(Defined in perfromance test webpage)
* Performance Test: Check Core build performance on standard host(Defined in perfromance test webpage)


==== ADT Test(Covered in Weekly Test) ====  
==== ADT Test(Covered in Weekly Test) ====  
* Toolchain test, including compiler, libraries, etc.
* 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) ====
==== Stress Test(Covered in Fullpass Test) ====
Line 242: Line 270:
==== Power/Performance Test(Covered in Fullpass Test) ====
==== Power/Performance Test(Covered in Fullpass Test) ====
Power/Performance Test is to collect the power/performance data and status of Yocto image on defined BSP.  
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. For performance test, memory footprint under specific workload will be collected.
* 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) ====
==== Compliance Test(Covered in Fullpass Test) ====

Latest revision as of 14:42, 21 May 2012

Yocto 1.2 Overall Test Plan reversion history

Version Modifier Comments
0.3 Jiajun Xu Initial Version
0.4 Jiajun Xu Updated with comments from Song Liu and Yi Zhao


Yocto 1.2 Overall Test Plan

This overall test plan defines test scope, test strategy, test configurations as well as test execution cycle for Yocto v1.2 program.

Components to Be Tested

  • Core OS: The core OS feature included Yocto kernel, distro components(like connman & zypper), file system, device drivers (e.g. Intel Graphics Driver).
  • Core build system: It includes basic core build test and other build feature test. Performance and different distribuitions support will be tested also.
  • Hob2: It includes functional tests for both frontend and backend of hob2.
  • Yocto ADT: It includes cross-toolchain, Eclipse plugin tests.
  • Power/Performance: QA will check the CPU power behavior by software level tool, such as powertop. Real Power consumption with idle is collected.

What will not Be Tested in Yocto v1.2

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

  • Documentation: QA will not validate the correctness of each documentation.
  • License file: license files and legal process is owned by Distro team.

Test Environment

Test Platform matrix

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

Category Qemu Atom Core i7 Xeon ARM HW PPC HW MIPS HW
Platform           FishRiver Island2 TunnelCreek Blacksand eMenlow Chief River Maho Bay SandBridge HuronRiver JasperForest Beagleboard Pandaboard mpc8315e-rdb 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 x86_64 arm arm ppc mips
Minimal image yes yes yes yes yes                   yes yes yes yes
Sato image yes yes yes yes yes                          
Sato-SDK image yes yes 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  

Note:

  • Fullpass testing defined in execution plan will be performed against sato and sato-sdk image.
  • For minimal image, only booting case is checked

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          
qemuarm yes yes yes        
qemumips yes yes yes        
qemuppc yes yes yes        
SugarBay yes   yes   yes yes yes
TunnelCreek yes       yes yes yes
TunnelCreek noemgd (basic functionality are tested)            
FishRiver Island 2 yes       yes yes yes
Maho Bay yes       yes yes yes
Chief River yes       yes yes yes
HuronRiver yes         yes  
Jasperforest yes     yes**      
Blacksand yes   yes     yes yes
eMenlow yes         yes yes
Beagleboard yes   yes* yes     yes
mpc8315e-rdb yes   yes        
routerstation yes   yes*        
Pandaboard yes           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 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.
Core build feature Functionality Performance Distribution Support
Yocto build yes yes yes
Hob2 yes n/a n/a
Build Appliance yes yes n/a
Other build features yes n/a n/a

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.2 will be tested from the following different test execution levels.

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.

Test Frequency: Sanity test will be run on autobuilder system against daily build image.

Test Scope: Sanity test only check very basic functionality in QEMU and its execution time is less than 10 minutes.

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.

Test Scope: Regression Test covers more cases than Sanity Test. It includes functionality check in QEMU and the basic check for yocto build features.

Weekly Test

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.

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.

Test Scope: Weekly Test covers more cases than Regression Test. It includes more manual cases for QEMU and yocto build features.

Fullpass Test

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.2_Schedule), cover Core OS & System usage, hob2, build appliance, and other build features, etc.
  • Stress Test – system should be alive and functional in 24 hours workload test.
  • 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.

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

Functional Test

Functional Test is a set of tests to verify if new features listed in Yocto 1.2 could 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.

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.

Test Execution Cycle

Build Sanity Test Regression Test Weekly Test Fullpass Test
Incremental Build yes
Daily Full Build yes yes
Weekly Build yes yes yes
Milestone Build yes yes yes yes

Test Report

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

Test Report AutoBuilder Web Yocto Mailing List
Incremental Build yes
Daily Full Build yes
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
  • Hob2 tests
  • Build feature tests

Note: Currently only sanity tests(10 cases) are fully automated. For 1.2, QA will make more than 60%(80-100 cases) cases automated.

Test Infrastructure

If QA has resource, test infrastructure will be investigated in Yocto v1.2. Automation test cases development should be test infrastructure independent.

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)

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

  • Functionality Test: Test Core build feature on standard host configuration. For example:
    • multilib
    • PR service
    • Package History
    • ... etc
  • Distribution support Test: Test Core buld on latest Ubuntu, Fedora and Opensuse Hosts
  • Hob2 Test: Main UI and component functionality are validated
  • Build appliance Test: Functionality and performance of self-hosted image are tested
  • Performance Test: Check Core build performance on standard host(Defined in perfromance test webpage)

ADT Test(Covered in Weekly Test)

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

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.

Power/Performance Test(Covered in Fullpass Test)

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)

Compliance Test is targeted to validate system level health with different system test suite.

  • LTP test suite
  • POSIX test
  • LSB test