<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugzilla.yoctoproject.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.6"
          urlbase="https://bugzilla.yoctoproject.org/"
          
          maintainer="it-coreprojects-helpdesk@linuxfoundation.org"
>

    <bug>
          <bug_id>10887</bug_id>
          
          <creation_ts>2017-01-06 15:14:03 +0000</creation_ts>
          <short_desc>Add specific QA strategy section to the manual</short_desc>
          <delta_ts>2017-04-28 19:05:49 +0000</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>9</classification_id>
          <classification>Documentation</classification>
          <product>Development Manual</product>
          <component>development</component>
          <version>unspecified</version>
          <rep_platform>x86</rep_platform>
          <op_sys>Multiple</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard>10 April 2017: RESOLVED</status_whiteboard>
          <keywords></keywords>
          <priority>Medium</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>2.3 M4</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Richard Purdie">richard.purdie</reporter>
          <assigned_to name="Scott Rifenbark">srifenbark</assigned_to>
          <cc>benjamin.esquivel</cc>
    
    <cc>joshuagloe</cc>
    
    <cc>libertad.gonzalez.de.la.cruz</cc>
    
    <cc>srifenbark</cc>
          
          <qa_contact name="Libertad">libertad.gonzalez.de.la.cruz</qa_contact>
          <cf_os>---</cf_os>
          <cf_regression_type>---</cf_regression_type>
          
          <cf_docchange>Done (doc changes complete)</cf_docchange>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>69574</commentid>
    <comment_count>0</comment_count>
    <who name="Richard Purdie">richard.purdie</who>
    <bug_when>2017-01-06 15:14:03 +0000</bug_when>
    <thetext>Looking at the manual there is no specific section about how the project is actually tested. Some pieces are documented but there is no summary. I therefore propose:

&quot;&quot;&quot;
Yotco Project Testing and QA strategy

One of the key benefits the Yocto Project brings is that as well as having build tools, we add in testing strategies around this so that as well as being able to build customised Linux, you&apos;re also able to test and validate it. This QA/testing infrastructure is in fact woven into the project to the point its core developers take some of it for granted. Roughly speaking there are the following pieces:

bitbake-selftest - A standalone command which runs unittesting on key pieces of bitbake and the bitbake fetchers.

sanity.bbclass - This class is automatically included by default and checks the users environment for missing tools (e.g. gcc) or common misconfigurations (e.g. MACHINE set incorrectly)

insane.bbclass - This class checks the generated output from builds for sanity. For example, if building for an ARM target, were ARM binaries generated? If PPC ones were, there is a problem!

testimage.bbclass - Performs runtime testing of images after they&apos;re built. Usually used with qemu to boot the images and check the combined runtime result boots and functions but can also take the IP address of a machine to test.

ptest - These are packages which package up the tests of a given piece of software, allowing them to be run within a target image.

oe-selftest - Used to test cases where combinations of bitbake invocations need to be tested so the tests need to be outside of the buildsystem itself. Runs all tests by default or specific tests or test-suites can be selected.

Originally, much of this testing was done manually but significant effort has been made in automating the tests so that more people can use them and we can run them faster and more efficiently.

The project&apos;s main autobuilder (autobuilder.yoctoproject.org) publically tests the code in OE-Core, Poky, and BitBake both for the current state of master and also testing submitted patches, usually in batches in ross/mut (master-under-test) or master-next branches. This ensures in a publicly visible way that all of the main supposed architectures and recipes in OE-Core build and function. Various features such as multilib, sub architectures like x32, poky-tiny, musl, no-x11 and many more are tested as part of this, along with bitbake-selftest and oe-selftest. It does take the autobuilder workers several hours to validate any given code revision. The autobuilder workers are non-homogeneous meaning we get regular testing across a variety of distros, the autobuilder is limited to only testing qemu based setups and not real hardware.

In addition to the autobuilder&apos;s tests, the QA team also performs testing on a variety of platforms, including some real hardware ones to ensure that things work as expected there.
&quot;&quot;&quot;

and we can then link to the various pieces we do have documentation for. There may also be further documentation needed if this highlights some gaps which can go into separate bugs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>69586</commentid>
    <comment_count>1</comment_count>
    <who name="Benjamin Esquivel">benjamin.esquivel</who>
    <bug_when>2017-01-06 19:28:02 +0000</bug_when>
    <thetext>I support adding this section to the manual. It might make sense to try to add a structure along with the already documented pieces.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>69688</commentid>
    <comment_count>2</comment_count>
    <who name="Scott Rifenbark">srifenbark</who>
    <bug_when>2017-01-10 21:58:53 +0000</bug_when>
    <thetext>I set some parameters for this effort in estimated days and target milestone.  Also ACCEPTED the bug.  I will start looking at this and see where to best fit it in the existing dev-manual organization.  

One thing that struck me while reading over Richard&apos;s draft was inclusion of details such as &quot;ross/mut&quot;.  Do we want to do that?

Scott</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>71475</commentid>
    <comment_count>3</comment_count>
    <who name="Scott Rifenbark">srifenbark</who>
    <bug_when>2017-03-20 18:21:12 +0000</bug_when>
    <thetext>Richard - Can you comment on Comment 2?

Thanks, 
Scott</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>71527</commentid>
    <comment_count>4</comment_count>
    <who name="Richard Purdie">richard.purdie</who>
    <bug_when>2017-03-21 17:08:31 +0000</bug_when>
    <thetext>(In reply to comment #2)
&gt; I set some parameters for this effort in estimated days and target
&gt; milestone.  Also ACCEPTED the bug.  I will start looking at this and see
&gt; where to best fit it in the existing dev-manual organization.  
&gt; 
&gt; One thing that struck me while reading over Richard&apos;s draft was inclusion of
&gt; details such as &quot;ross/mut&quot;.  Do we want to do that?

I think we want to state that we do batch testing on user created branches and the two current most common examples are master-next (in poky) and ross/mut (in poky-contrib) but others may be used as circumstances require.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>71723</commentid>
    <comment_count>5</comment_count>
    <who name="Stephen K Jolley">sjolley.yp.pm</who>
    <bug_when>2017-03-24 17:56:33 +0000</bug_when>
    <thetext>It appears the question has been answered.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>71908</commentid>
    <comment_count>6</comment_count>
    <who name="Scott Rifenbark">srifenbark</who>
    <bug_when>2017-03-30 15:05:00 +0000</bug_when>
    <thetext>Hi, 

See this new section that overviews the testing infrastructure.  http://www.yoctoproject.org/docs/2.3/ref-manual/ref-manual.html#testing-and-quality-assurance

Note that I cross-referenced the new section with a small paragraph in the dev-manual&apos;s &quot;Performing Automated Runtime Testing&quot; section to point to 
QA and testing infrastructure information.

Please comment as needed. 

Thanks, 
Scott</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>72230</commentid>
    <comment_count>7</comment_count>
    <who name="Scott Rifenbark">srifenbark</who>
    <bug_when>2017-04-10 18:18:34 +0000</bug_when>
    <thetext>Hi, 

No review since March.  Marking RESOLVED and putting the doc flag to &quot;done.&quot;

Scott</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>