Project

General

Profile

Wiki » History » Version 9

okurz, 2016-06-14 07:55
rbrown is ok with the definition of done/ready

1 1 okurz
Wiki
2
====
3
4 3 okurz
Also see https://progress.opensuse.org/projects/openqav3/wiki
5
6 1 okurz
## test organization on https://openqa.suse.de/
7
8
### job group names
9
10
#### Job group names should be consistent and structured for easy (daily) review of the current status
11
12
template:
13
```
14
<product_group_short_name> <order_nr>.<product_variant>
15
```
16
e.g. "SLE 12 SP1 1.Server". Keep the whitespace for separation consistent, also see https://progress.opensuse.org/issues/9916
17
18 2 okurz
#### Released products should be named with a prefix 'x' to show up late in the overview page
19 1 okurz
20 2 okurz
This way we can keep track if tests fail even though the product does not produce new builds. This could help us crosscheck tests. E.g. "x-released SLE 12 SP1 1.Server".
21
22
lowercase "x" as all our product names start with capital letters. Sorting works regardless (or uppercase first?).
23 1 okurz
24
For now we do not retrigger tests on old builds automatically but any test developer may retrigger it manually, e.g. if he suspects the tests broke and he wants to confirm that local changes are not at fault.
25 4 okurz
26
## needling best practices
27
There are also other locations where "needling best practices" can be found but we should also have the possibility to keep something on the wiki. Feel free to contact me (okurz) and tell me where it should be instead if there is a better place
28
29
30
### applying "workaround" needles
31
If a test reveals a product issue of minor importance it can make sense create a needle with the property "workaround" set. This way, if the needle is matched, the test records this as a "soft-fail". To backtrack the product issue and follow on this and eventually delete the workaround needle if the product issue is fixed, the product issue should be recorded in the needle name itself and at best also in the git commit message adding the needle. If test changes are necessary the source code should have a corresponding comment referencing the issue as well as marking start and stop of the test procedure that is necessary for applying the workaround. Example for a needle name: "gdm-workaround-bsc962806-20160125" referencing bsc#962806
32 5 okurz
33
34
### do not overwrite old needles because old date confuses people
35 1 okurz
With the needle editor a timestamp of the current day is automatically added to new neeedles. When updating a needle, don't overwrite a needle with the old date tag not to confuse people as it will look really weird in the needle editor.
36 8 okurz
37
38
### needle indidvidual column entries in tables
39
**Problem**: Tables might auto-adjust column size based on content. Therefore it is unsafe to create needles covering multiple columns in a row. Failing example: https://openqa.suse.de/tests/441169#step/yast2_snapper/23
40
**Solution**: Needles support multiple areas. Use them to needle individual cells in this example.
41 6 okurz
42
## Definition of DONE/READY
43
44
Each of the following points has to be fulfilled to regard individual contributions as *DONE*. Not every step has to be done by the same step. The overall completion is in responsibility of the complete team.
45
46
### Definition of DONE
47
48
Also see http://www.allaboutagile.com/definition-of-done-10-point-checklist/ and https://www.scrumalliance.org/community/articles/2008/september/what-is-definition-of-done-%28dod%29
49
50
The following definitions are used to ensure development on individual tests has been completed covering all existing different workflows, e.g. covering "hot-fixes" on the productive instance as well as contributions by new contributors with no previous experience and no control over needle generation on productive instances.
51
52
* Code changes are made available via a pull request on the github repository
53
* New tests as individual test modules (i.e. files under `tests/`): They are loaded in main.pm of sle and/or opensuse 
54
* "make test" works (e.g. automatic travis CI check triggered on each github PR)
55
* [Guidelines for git commits](http://chris.beams.io/posts/git-commit/) have been followed
56
* Code has been reviewed (e.g. in the github PR)
57
* Favored, but depending on criticality/complexity/size: A local verification test has been run, e.g. post link to a local openQA machine or screenshot or logfile
58
* Code has been merged (either by reviewer or reviewee after 'LGTM' from others)
59
* Code has been deployed to osd and o3 (automatic git sync every few minutes)
60 1 okurz
* If new variables are necessary (feature toggles): A test_suite is executing the test, e.g. test_suite is created or variable is added to existing test_suite over web interface configuration on osd and/or o3
61 7 okurz
* If a new test_suite has been created: The test_suite is added to at least one job_group
62 6 okurz
* Necessary needles are made available as PR for sle and/or opensuse (depending if executed, see above for 'main.pm') or are created on the productive instance
63
* At least one successful test run has been observed on osd or o3 and referenced in the corresponding progress item or bugzilla bug report if one exists
64
65
### Definition of READY for new tests
66
67
The following points should be considered before a new test is READY to be implemented:
68
69
* Either a product bug has been discovered for which there is no automated test in openQA or a FATE request for new features exists
70
* A test case description exists depicting the prerequisites of the test, the steps to conduct and the expected result
71
* The impact and applicability for both SLE and openSUSE products has been considered