QA-wip
QA Process
Intro
Given the QA tooling (resulttool) available to manage QA test results and reporting, here is the QA process. First release to implement this process was 2.7_M3_RC1.
This QA process consists below:
Test Trigger Test Planning Test Execution Test Result Store Test Monitoring & Reporting Release Decision
Test Trigger
Each QA team will subscribe to QA notification email (request through Richard Purdie). The list of notifications is maintained on config.json in the yocto- autobuilder-helper which has a branch per release.
Test Planning
Once received the QA notification email, each QA team (eg. intel, windriver, etc) will perform planning on what extra tests they plan to run and when they'll send the results back, then reply to the QA notification email with the planned extra tests and estimate of execution time to QA stakeholders (eg. Richard Purdie, Stephen Jolley), yocto mailing list and the lead QA team. Each QA team can refer to OEQA for automated and manual test cases for their planning. The lead QA team no longer need to setup Testopia and wiki page.
Test Execution
Each QA team will execute the planned extra tests. To make sure test result from the test execution could fully integrated to the new QA tooling (resulttool for test result management and reporting/regression), execute OEQA automated tests and OEQA manual tests through resulttool (refer https://wiki.yoctoproject.org/wiki/Resulttool#manualexecution).
Test Result Store
Each QA team will store test result to the remote yocto-testresults-contrib git repository using resulttool (refer https://wiki.yoctoproject.org/wiki/Resulttool#store), then send the QA completion email (include new defects information) to both QA stakeholder and the lead QA team.
Test Result Repo
Test results are stored in git repo https://git.yoctoproject.org/cgit/cgit.cgi/yocto-testresults-contrib/ After testing is complete, lead QA team will upload test results in yocto-testresults-contric git repo and send QA release mail.
Test Monitoring & Reporting
QA stakeholder will monitor testing progress from remote yocto-testresults git repository using resulttool (refer https://wiki.yoctoproject.org/wiki/Resulttool#report). Once every QA team completed the test execution, the lead QA team will create QA test report and regression using resulttool, then store the report and regression into https://wiki.yoctoproject.org/wiki/Main_Page. Send email report to QA stakeholder and public yocto mailing list.
Release Decision
QA stakeholder will make the final decision for release.
Current Release QA info
Tracking info for current release
- For latest release info, go to https://autobuilder.yocto.io/pub/releases/
- For latest QA results, go to https://git.yoctoproject.org/cgit/cgit.cgi/yocto-testresults-contrib/
--update the purpose of repo, yocto-testresults-contrib and yocto-testresults
Current Release QA Test Plans
- QA Master Test Plan
- Yocto Project 2.8_Release Test Plan
- Performance Archives
- Toaster testing plan
- Extensible SDK Test Plan (eSDK)
- Distro Testing Plan
- BSP Test Plan
Test Execution
Autobuilder
The AutoBuilder is Yocto Project's tool for non-manual test execution, it performs the following functions:
- A scheduled nightly build and test execution that includes:
- That each image created executes the corresponding set of image/run-time tests
- Specific Autobuilder tasks for running build-time testing
- A service for on demand testing requests. (Partially working, feature in progress at request #9880)
Yocto Project QA heavily relies in the Autobuilder thanks to the aforementioned scheduled and on demand test execution features.
Image Testing
In order to execute tests in an image, it is necessary to boot it in either a virtual or a physical target.
Testing Images in Virtual Targets:
The execution in a virtual environment has a nice flow, documented in the Image Tests Enabling... section.
Testing Images in Physical Targets:
For executing tests in physical targets it would be required to:
- Boot the image in the target by following the building an image for hardware instructions.
- Run the image tests by following the image test or exporting tests instructions.
Setting up Targets with Devauto
Manual instructions for setting up the physical test targets appear in many parts of the Yocto Project documentation (i.e. here). It is easy to setup one target using those instructions but it becomes challenging for the cases where multiple targets have to be prepared or the case where it is required to serialize a changing setup over time, for one: testing on several images using the same target.
Devauto is the Python library and command line interface intended to manage the device automation assets that act upon the target's physical state. Refer to the Devauto documentation for more information about the hardware supported and the library and CLI functionality.
Creating and Adding New Tests
Tests for a given component can be automated in the AutoBuilder. With that purpose, follow the Adding Automated Tests to the Autobuilder Guide.
A list of tests that are automated can be seen here.
Reporting
- Bug reporting and Information levels
- [The Test Reporting Tool]
- error report web
- [Test results report]
Performance testing
QA Resources
Archive
You can find the previous QA work by release in the Yocto Project QA Archive.
Other Relevant Data
- Yocto Bug Trend
- Compliance Test Result
- ADT Testing
- Regression Test
- Performance Test
- Distro Test
- Distribution Support
- QA BKM sharing
- LAVA server vs Yocto HW automation testing
- Note: The LAVA framework usage stopped in favor of testing in the AutoBuilder in early 2016.
List of Automated Tests
- Distribution Support
- add ptest wiki
- add piglit test wiki
- add kernel test wiki
- LSB
- LSB Result
- LTP
- LTP result
- POSIX
- Posix result
- POSIX-results
- POSIX History Results
- Automated package upgrade testing