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
(Test mapping / Test plan configuration)
(New test process)
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
 +
 +
test sets:
 +
  - name: sanity testing
 +
    - test: &check_interface
 +
    - test: &transfer_1Mib_file
 +
 
</pre>
 
</pre>
  

Revision as of 17:55, 25 April 2012

New test process

Some notes from #mer channel at 23.4.2012 from 12:34 onwards:

  • Separating test-definition from the test packaging
  • New test-definition/metadata defines test case
    • 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-*
  • Metadata files are stored in version control
    • Can be automatically updated to a database
  • Testing changed packages first, then integration testing?


  1. This requires lots of changes to existing tools. We could take the current tools in use before developing them further.
  2. New testrunner could be written in Python or similar language

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

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

Test mapping / Test plan configuration

Test mapping.png

  1. Test request comes in. The request has parameters such as stage and "changed packages" list
  2. Testplanner reads the configuration/mapping file and creates test plan(s)
  3. Kickstart files are delivered to image builder and test plans for test automation

Mapping/configuration file:

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
    tests:
      - check interface
      - transfer 1Mib 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