Kernel Development QA: Difference between revisions

From Yocto Project
Jump to navigationJump to search
 
(2 intermediate revisions by the same user not shown)
Line 1: Line 1:
This article is the test plan for kernel development features in Yocto Project.
This article is the test plan for kernel development features in Yocto Project.


= About Kernel Development =
==About Kernel Development==


Describes common tasks you can perform on Yocto Project using kernel tools, and shows you how to use the metadata required to work with the kernel.  
Describes common tasks you can perform on Yocto Project using kernel tools, and shows you how to use the metadata required to work with the kernel.  
For more information you can review the [http://www.yoctoproject.org/docs/latest/kernel-dev/kernel-dev.html Kernel Development manual].
For more information you can review the [http://www.yoctoproject.org/docs/latest/kernel-dev/kernel-dev.html Kernel Development manual].


= Objectives =
==Objectives==
Verify all kernel development components are fully functional.
Verify all kernel development components are fully functional.


= Team members =
==Team members==
QA team members involved in Kernel Development testing:
QA team members involved in Kernel Development testing:


  [mailto:jair.de.jesus.gonzalez.plascencia@intel.com Jair Gonzalez]
  [mailto:jair.de.jesus.gonzalez.plascencia@intel.com Jair Gonzalez]


= Scope =
==Scope==


== Types of Tests ==
===Types of Tests===


* Manual tests on different platforms
* Manual tests on different platforms
* No automated tests at the moment
* No automated tests at the moment


== Features Tested ==
===Features Tested===
: 1. linux-yocto-custom
: 1. linux-yocto-custom
:: 1.1 local source
:: 1.1 local source
Line 32: Line 32:
: 6. building external modules (hello-mod)
: 6. building external modules (hello-mod)


The complete set of test cases are documented on the [[Kernel Development Test Cases]] wiki. They are also listed on the master Kernel test plan in Testopia, that can be reached following this [https://bugzilla.yoctoproject.org/tr_show_plan.cgi?plan_id=94 link].
The complete set of test cases are documented on the [[Kernel Development Test Cases]] wiki. They are also listed on the master Kernel test plan in Testopia, that can be reached following this [https://bugzilla.yoctoproject.org/tr_show_run.cgi?run_id=7435 link].


= Test Strategy =
==Test Strategy==
There are several test approaches for kernel development, such as:
There are several test approaches for kernel development, such as:
* Perform test cases agreed upon development during periodic full pass test cycles, according to the schedule.
* Perform test cases agreed upon development during periodic full pass test cycles, according to the schedule.
Line 41: Line 41:
* Perform exploratory testing on existing functionalities.
* Perform exploratory testing on existing functionalities.


== Test automation ==
===Test automation===
Tests will be gradually automated, after determining the feasibility to do so following discussions with the development team.
Tests will be gradually automated, after determining the feasibility to do so following discussions with the development team.


== Sanity testing ==
===Sanity testing===
* Not covered at this moment
* Not covered at this moment
* TBD following discussions with the development team
* TBD following discussions with the development team


==Test Process==
===Test Process===


: 1. Follow the steps as indicated on the [[Kernel Development Test Cases]] wiki.
: 1. Follow the steps as indicated on the [[Kernel Development Test Cases]] wiki.
Line 54: Line 54:
: 3. Update results to corresponding Testopia test run.
: 3. Update results to corresponding Testopia test run.


== Submitting Bugs ==
===Submitting Bugs===
Being part of the Yocto Project, Kernel Development follows the same Yocto Project guidelines and principles. The guidelines can be found at https://wiki.yoctoproject.org/wiki/Community_Guidelines.  
Being part of the Yocto Project, Kernel Development follows the same Yocto Project guidelines and principles. The guidelines can be found at https://wiki.yoctoproject.org/wiki/Community_Guidelines.  
Kernel Development bugs are no different than other Yocto Project bugs and are tracked into Bugzilla, the official Yocto Project bug tracker. Learn more about [https://wiki.yoctoproject.org/wiki/Bugzilla_Configuration_and_Bug_Tracking our process for reporting bugs].
Kernel Development bugs are no different than other Yocto Project bugs and are tracked into Bugzilla, the official Yocto Project bug tracker. Learn more about [https://wiki.yoctoproject.org/wiki/Bugzilla_Configuration_and_Bug_Tracking our process for reporting bugs].


=Requirements=
==Requirements==
Use cases are documented in the corresponding section for each test case on [[Kernel Development Test Cases]] wiki.
Use cases are documented in the corresponding section for each test case on [[Kernel Development Test Cases]] wiki.


==HW Requirements==
===HW Requirements===
* Any machine able to build Yocto Project.
* Any machine able to build Yocto Project.


==Software Requirements==
===Software Requirements===
* Poky
* Poky
* GNU/Linux environment
* GNU/Linux environment


==Environment Requirements==
===Environment Requirements===
*YP 2.3 Release:
*YP 2.3 Release:
*Ubuntu-14.04
*Ubuntu-14.04
Line 80: Line 80:
*openSUSE-project-13.2
*openSUSE-project-13.2


= Schedule =
==Schedule==
Every cycle depending on Milestone and release candidate
Every cycle depending on Milestone and release candidate


==Test execution Cycle==
===Test execution Cycle===
{| class="wikitable"
{| class="wikitable"
! Build
! Build
Line 95: Line 95:
| Weekly Build
| Weekly Build
| TBD
| TBD
| Y
| TBD
|-
|-
| Milestone Build
| Milestone Build
Line 102: Line 102:
|}
|}


=Dependencies=
==Dependencies==
*YP Dependencies
*YP Dependencies
** poky
** poky
** meta-kerneltest layer
** meta-kerneltest layer


=Risk Assumptions=
==Risk Assumptions==
* For each change in kernel version and kernel cache, the team needs to change many configuration files in order to achieve a correct execution.
* For each change in kernel version and kernel cache, the team needs to change many configuration files in order to achieve a correct execution.
* Just like any software, the kernel is also susceptible to bugs.
* Just like any software, the kernel is also susceptible to bugs.


=Tools=
==Tools==
* bitbake
* bitbake
* yocto-layer
* yocto-layer
Line 117: Line 117:
* any available text editor
* any available text editor


= Release Criteria/ Exit Criteria =
==Release Criteria/ Exit Criteria==
* All test cases pass.
* All test cases pass.
* No blocking issues are found.
* No blocking issues are found.


 
==References==
 
* http://www.yoctoproject.org/docs/latest/dev-manual/dev-manual.html
<!--
* http://www.yoctoproject.org/docs/latest/kernel-dev/kernel-dev.html
THIS IS THE OLD TESTING PLAN
Compendium of Yocto Project manuals, including the two above:
 
* https://www.yoctoproject.org/docs/latest/mega-manual/mega-manual.html
= Test Areas =
eSDK consists of two big components, as follows:
 
== Backend ==
 
==== Functionality tests ====
* [[REST_API_Contracts | REST API]]  verification – create Django tests to detect API calls returning incomplete (fields having null values) or wrong data for a certain set of entries from each table - our goal is to have 90% data collected. The tests can be found [http://git.yoctoproject.org/cgit/cgit.cgi/poky-contrib/commit/?h=andreeap/eSDK-tests&id=7cfd179be5db2a5530d60093fd09d0240138c2fa here];
*  Calculation of the data collection rate - the ratio between the number of the variables having null values ​​and the total number of variables collected (the data collection rate does not include wrong values); Run: ./fail_rate.py path_to_eSDK.sqlite_file. Output: table_name field_name value_that_never_changes and for each table a percentage: (the number of occurences of all the fields that never change their values)/(total number of entries for that table);
* Verify that all links in the simple UI are available;
*  Verify the quality of the data collected through the simple UI;
*  Verify the quality of the data collected by verifying most of the values from the database by connecting directly to the database - our immediate goal is to have 90% correct data collected;
 
==== Usability tests ====
*  Verify the easy usage of eSDK ([https://wiki.yoctoproject.org/wiki/WebHob#Installation_and_Running easy to install and start/stop the eSDK server])
 
== Frontend ==
 
==== Functionality tests ====
*  Manual testing in the first stage;
*   Automate testing using  [http://www.seleniumhq.org/ Selenium], in the second stage;
 
==== Compatibility tests ====
*  Verify the behavior of the GUI on different browsers and operating systems; TBD
 
==== Usability tests ====
*  Verify if the GUI design is as described here: http://yoctoproject.org/webhob;
*  Friendly graphical user interface;
 
==== Performance tests ====
*  Stress testing (e.g. display appropriate error messages when the system is under stress);
 
= Test Cycle =
{|class="wikitable" style="text-align: center;"
| || || colspan="3" | Test execution cycle
|-
| || || [[#Weekly Test]] || [[#Full Pass Test]] || [[#Release Test]]
|-
| rowspan="2" | Build type || Weekly  || Yes || Yes ||
|-
| Release || Yes || Yes || Yes
|-
| rowspan="2" | [[#Test Areas]] || [[#Backend]] || Yes || Yes || Yes
|-
| [[#Frontend]]  || Yes || Yes || Yes
|-
| rowspan="5" | Target machine || qemuarm || || Yes || Yes
|-
| qemumips|| || || Yes
|-
| qemuppc|| || || Yes
|-
| qemux86|| Yes || Yes || Yes
|-
| qemux86-64  ||  ||  || Yes
|-
| rowspan="3" | Target image|| core-image-minimal|| Yes || ||
|-
| core-image-sato-sdk|| || Yes || Yes
|}
 
== Weekly Test ==
*; Scope:
** Images built weekly and released through the distribution team.
 
*; Objective:
** Functionality test on most areas with minimum sets of tests;
** Regression test with high probability to find bugs.
 
== Full Pass Test ==
*; Scope:
** Images built as candidates for milestone or final release;
** Passed [[#Weekly Test]]
 
*; Objective:
** Ensure functionality of eSDK component.
 
== Release Test ==
*; Scope:
** Release candidates that pass [[#Full Pass Test]]
 
*; Objective:
** All scheduled features are covered, or rescheduled;
** All relevant bugs are fixed and verified.
-->

Latest revision as of 21:35, 6 November 2017

This article is the test plan for kernel development features in Yocto Project.

About Kernel Development

Describes common tasks you can perform on Yocto Project using kernel tools, and shows you how to use the metadata required to work with the kernel. For more information you can review the Kernel Development manual.

Objectives

Verify all kernel development components are fully functional.

Team members

QA team members involved in Kernel Development testing:

Jair Gonzalez

Scope

Types of Tests

  • Manual tests on different platforms
  • No automated tests at the moment

Features Tested

1. linux-yocto-custom
1.1 local source
1.2 local source with parallel meta
1.3 local source with recipe-space meta
2. External Source
3. defconfig
4. defconfig + fragments
5. linux-yocto meta data + local fragments (WIP)
6. building external modules (hello-mod)

The complete set of test cases are documented on the Kernel Development Test Cases wiki. They are also listed on the master Kernel test plan in Testopia, that can be reached following this link.

Test Strategy

There are several test approaches for kernel development, such as:

  • Perform test cases agreed upon development during periodic full pass test cycles, according to the schedule.
  • Write new test cases based on developer requests or new features added, as required.
  • Maintain current test cases and update them according to changes.
  • Perform exploratory testing on existing functionalities.

Test automation

Tests will be gradually automated, after determining the feasibility to do so following discussions with the development team.

Sanity testing

  • Not covered at this moment
  • TBD following discussions with the development team

Test Process

1. Follow the steps as indicated on the Kernel Development Test Cases wiki.
2. Verify that all test cases pass. If not, raise bugs properly.
3. Update results to corresponding Testopia test run.

Submitting Bugs

Being part of the Yocto Project, Kernel Development follows the same Yocto Project guidelines and principles. The guidelines can be found at https://wiki.yoctoproject.org/wiki/Community_Guidelines. Kernel Development bugs are no different than other Yocto Project bugs and are tracked into Bugzilla, the official Yocto Project bug tracker. Learn more about our process for reporting bugs.

Requirements

Use cases are documented in the corresponding section for each test case on Kernel Development Test Cases wiki.

HW Requirements

  • Any machine able to build Yocto Project.

Software Requirements

  • Poky
  • GNU/Linux environment

Environment Requirements

  • YP 2.3 Release:
  • Ubuntu-14.04
  • Ubuntu-14.10
  • Ubuntu-15.04
  • Fedora-21
  • CentOS-6.*
  • CentOS-7.*
  • Debian-7.*
  • Debian-8.*
  • openSUSE-project-13.2

Schedule

Every cycle depending on Milestone and release candidate

Test execution Cycle

Build Automated Test Manual Test
Daily Master NO NO
Weekly Build TBD TBD
Milestone Build TBD Y

Dependencies

  • YP Dependencies
    • poky
    • meta-kerneltest layer

Risk Assumptions

  • For each change in kernel version and kernel cache, the team needs to change many configuration files in order to achieve a correct execution.
  • Just like any software, the kernel is also susceptible to bugs.

Tools

  • bitbake
  • yocto-layer
  • bitbake-layers
  • any available text editor

Release Criteria/ Exit Criteria

  • All test cases pass.
  • No blocking issues are found.

References

Compendium of Yocto Project manuals, including the two above: