The Mer Wiki now uses your Mer user account and password (create account on https://bugs.merproject.org/)


Talk:Quality/Test processes

From Mer Wiki
(Difference between revisions)
Jump to: navigation, search
(New test process)
(Test selection)
 
(6 intermediate revisions by one user not shown)
Line 1: Line 1:
== New test process ==
+
= New test process =
  
Some notes from #mer channel at [http://mer.bfst.de/logs/%23mer/%23mer.2012-04-23.log.html#t2012-04-23T12:34:18 23.4.2012] from 12:34 onwards:
+
== Test definition ==
* Separating test-definition from the test packaging
+
Some notes from #mer channel at [http://mer.bfst.de/logs/%23mer/%23mer.2012-04-23.log.html#t2012-04-23T12:34:18 23.4.2012] from 12:34 onwards and from the QA meeting [http://mer.bfst.de/meetings/mer-meeting/2012/mer-meeting.2012-04-26-12.00.html 2012-04-26].
* New test-definition/metadata defines test case
+
 
 +
* Separating test definition from the test packaging
 +
* New test definition defines test cases and test sets
 +
** Test's steps are in own file, makes test management easier
 
** Same information than in the current test-definition
 
** Same information than in the current test-definition
 
*** Architectural domain and subdomain/feature
 
*** Architectural domain and subdomain/feature
Line 10: Line 13:
 
** Defines provides, eg. provides 3G network
 
** Defines provides, eg. provides 3G network
 
** Defines dependencies to packages 0-*
 
** Defines dependencies to packages 0-*
* Metadata files are stored in version control
+
* Test definition files are stored in version control
** Can be automatically updated to a database
+
* Testing changed packages first, then integration testing?
+
  
 
<br />
 
<br />
  
# This requires lots of changes to existing tools. We could take the current tools in use before developing them further.
+
* This requires lots of changes to existing tools. We could take the current tools in use before developing them further.
# New testrunner could be written in Python or similar language
+
  
 
New test-definition format:
 
New test-definition format:
Line 26: Line 26:
 
feature: bluetooth
 
feature: bluetooth
 
test cases:
 
test cases:
   - name: check interface
+
   - name: &check_interface
 
     timeout: 60
 
     timeout: 60
 
     test type: functional
 
     test type: functional
Line 32: Line 32:
 
     environment: hardware
 
     environment: hardware
  
   - name: create l2cap connection
+
   - name: &create_l2cap_connection
 
     timeout: 120
 
     timeout: 120
 
     test type: functional
 
     test type: functional
Line 39: Line 39:
 
     provides: bluetooth-connection-l2cap
 
     provides: bluetooth-connection-l2cap
  
   - name: close l2cap connection
+
   - name: &close_l2cap_connection
 
     timeout: 120
 
     timeout: 120
 
     test type: functional
 
     test type: functional
Line 46: Line 46:
 
     provides: bluetooth-connection-l2cap-close
 
     provides: bluetooth-connection-l2cap-close
  
   - name: transfer 1Mib file
+
   - name: &transfer_1Mib_file
 
     timeout: 600
 
     timeout: 600
 
     test type: functional
 
     test type: functional
Line 53: Line 53:
 
     requires-before: bluetooth-connection-l2cap
 
     requires-before: bluetooth-connection-l2cap
 
     requires-after: bluetooth-connection-l2cap-close
 
     requires-after: bluetooth-connection-l2cap-close
 +
 +
  - name: &transfer_10Mib_file
 +
    timeout: 600
 +
    test type: functional
 +
    dependencies: [bluez, mer-testdata-files]
 +
    environment: hardware
 +
    requires-before: bluetooth-connection-l2cap
 +
    requires-after: bluetooth-connection-l2cap-close
 +
 +
test sets:
 +
  - name: sanity testing
 +
    - test: &check_interface
 +
    - test: &create_l2cap_connection
 +
    - test: &close_l2cap_connection
 +
    - test: &transfer_1Mib_file
 +
 
</pre>
 
</pre>
  
== Test mapping / Test plan configuration ==
+
== Test selection ==
  
 
[[Image:test_mapping.png]]
 
[[Image:test_mapping.png]]
  
# Test request comes in. The request has parameters such as stage and "changed packages" list
+
# New test request comes in. The request has parameters such as stage and "changed packages" list
# Testplanner reads the configuration/mapping file and creates test plan(s)
+
# Get from the stage's test selection file devices and test sets/cases
 +
# Get from test definitions requirements, packages and dependencies for test sets/cases
 
# Kickstart files are delivered to image builder and test plans for test automation
 
# Kickstart files are delivered to image builder and test plans for test automation
  
Mapping/configuration file:
+
Test selection:
 
<pre>
 
<pre>
 
name: Release testing
 
name: Release testing
Line 80: Line 97:
 
   - chroot:
 
   - chroot:
 
     filter: "hardware=chroot"
 
     filter: "hardware=chroot"
  - all:
 
    test package suffix: "-tests"
 
  
 
default packages:
 
default packages:
Line 90: Line 105:
  
 
packages:
 
packages:
   - alc:
+
   - package: bluez
     filter: "name=unittests"
+
     - set: sanity testing
     versio: < 1.5.0
+
     - test: transfer_10Mib_file
    device: [virtual n900]
+
 
+
  - bluez
+
 
+
  - qt5base:
+
    test packages:
+
      - mwts-location-tests
+
        filter: "type=functional"
+
        versio: 2.3.1
+
        device: [virtual n900]
+
      - qt5base-unittests
+
  
 
</pre>
 
</pre>
Line 113: Line 117:
 
** kickstart: mapping kickstart files to devices
 
** kickstart: mapping kickstart files to devices
 
* default options: default options for devices
 
* default options: default options for devices
** filter: filter options to testrunner-lite
 
** test package suffix: if test package(s) are not defined for a package, then trying to use "original package name + suffix" test package. See the bluez package below.
 
 
* default packages: a list of test packages that are always executed
 
* default packages: a list of test packages that are always executed
 
* packages: the actual package mapping
 
* packages: the actual package mapping
** filter: filter options to testrunner-lite
 
 
** version: package version to use
 
** version: package version to use
 
** device: on which devices to execute the test
 
** device: on which devices to execute the test
** test packages: list of test packages and their configurations
 

Latest revision as of 05:52, 2 May 2012

[edit] New test process

[edit] Test definition

Some notes from #mer channel at 23.4.2012 from 12:34 onwards and from the QA meeting 2012-04-26.

  • Separating test definition from the test packaging
  • New test definition defines test cases and test sets
    • Test's steps are in own file, makes test management easier
    • Same information than in the current test-definition
      • Architectural domain and subdomain/feature
    • HW (chroot or device or both)
    • Defines requirements, eg. needs 3G network or test data
    • Defines provides, eg. provides 3G network
    • Defines dependencies to packages 0-*
  • Test definition files are stored in version control


  • This requires lots of changes to existing tools. We could take the current tools in use before developing them further.

New test-definition format:

version: 1.0
name: bluetooth tests
domain: communications
feature: bluetooth
test cases:
  - name: &check_interface
    timeout: 60
    test type: functional
    dependencies: [bluez]
    environment: hardware

  - name: &create_l2cap_connection
    timeout: 120
    test type: functional
    dependencies: [bluez]
    environment: hardware
    provides: bluetooth-connection-l2cap

  - name: &close_l2cap_connection
    timeout: 120
    test type: functional
    dependencies: [bluez]
    environment: hardware
    provides: bluetooth-connection-l2cap-close

  - name: &transfer_1Mib_file
    timeout: 600
    test type: functional
    dependencies: [bluez, mer-testdata-files]
    environment: hardware
    requires-before: bluetooth-connection-l2cap
    requires-after: bluetooth-connection-l2cap-close

  - name: &transfer_10Mib_file
    timeout: 600
    test type: functional
    dependencies: [bluez, mer-testdata-files]
    environment: hardware
    requires-before: bluetooth-connection-l2cap
    requires-after: bluetooth-connection-l2cap-close

test sets:
  - name: sanity testing
    - test: &check_interface
    - test: &create_l2cap_connection
    - test: &close_l2cap_connection
    - test: &transfer_1Mib_file

[edit] Test selection

Test mapping.png

  1. New test request comes in. The request has parameters such as stage and "changed packages" list
  2. Get from the stage's test selection file devices and test sets/cases
  3. Get from test definitions requirements, packages and dependencies for test sets/cases
  4. Kickstart files are delivered to image builder and test plans for test automation

Test selection:

name: Release testing
devices:
  - chroot
    ots-device: mer-chroot
    kickstart: chroot-release.ks
  - virtual
    ots-device: mer-virtual-i686
    kickstart: virtual-image-core.ks
  - n900
    ots-device: mer-n900
    kickstart: nemo-n900.ks

default options:
  - chroot:
    filter: "hardware=chroot"

default packages:
  - chroot:
    - mer-core-chroot-tests
  - all:
    - mer-core-sanity-tests

packages:
  - package: bluez
    - set: sanity testing
    - test: transfer_10Mib_file

Description:

  • devices: a list of devices for the tests are executed
    • ots-device: device name in the OTS (test automation)
    • kickstart: mapping kickstart files to devices
  • default options: default options for devices
  • default packages: a list of test packages that are always executed
  • packages: the actual package mapping
    • version: package version to use
    • device: on which devices to execute the test
Personal tools