Project

General

Profile

T03 Remove the MD5 approach and create a new API semantic » History » Version 2

aplanas, 2013-08-07 09:27

1 2
T03 Remove the MD5 approach and create a new API semantic
2
=========================================================
3
4
This milestone is the first one with a heavy programming work and implies that there is a lot of changes in openQA. This milestone cover actions related with the remove of the MD5 mechanism to assert when a image status is present. We replace all this logic using the openCV binding developed in the previous milestone.
5
6
We have defined a new concept to replace the MD5 hash, and is the needle. A needle is an image (PNG) screenshot with a JSON document that describe the image and point one or multiple areas of interes. Every area can be included, excluded or converted to text via an OCR. There is a new API to access this needle database, and a new assert function: waitforneedle() that can query an array of needles and wait until some of the areas are found in the virtual environment. Many of the API changes and new needle format are documented in the doc files.
7
8
We have replaced the gorc ORC with Tessearc to improve the recognition accuracy and to allow more flexibility in the future, like, for example, training the recognition database with a different font set.
9
10
We also have implemented a goanclick() function, that allow to the test developer find a specific area in the screen and move the mouse cursor over it, and simulate the click action. There is a bug in QEMU (reported by the Bernhard Wiedemann) that avoid this action in the actual version of QEMU, so, we have patched QEMU to fix the bug. Also we have remove the old video tool (ffmep2theora) with a more simple one. All this new tools are now in their own devel:openQA repository, in advance of one of the last milestone of the project.
11
12
But the more bigger task is the recreation of all the needles and all the test to support the new API and the new screen format, for the four main images of openSUSE distribution.
13
14
Because T03 is a big change in openQA, we have decided that is a good moment to start putting the project in a shape that can be actually integrated with the main openQA branch. In order to do that we have created a new milestone that address all the tasks related with this work.
15
16
Status of current stage
17
-----------------------
18
19
**Remove the MD5 approach and create a new API semantic**
20
21
  Task or subtask                                                                        Completed   Notes
22
  -------------------------------------------------------------------------------------- ----------- -------
23
  Adapt the test definitions to the new matching (action \#259)                          yes         
24
  Replace the image matching based on md5 sums by openCV (action \#263)                  yes         
25
  make license warning clever (action \#281)                                             yes         [1]
26
  find out what distri/opensuse/inst.d/040\_spashscreen.pm is all about (action \#282)   yes         
27
  add function to verify a needle is no longer present (action \#283)                    yes         [2]
28
  find out what livecdreboot handles for users-reboot (action \#284)                     yes         
29
  Test Tesseract as a better OCR (action \#297)                                          yes         
30
  Cretate goandclick API function (action \#298)                                         yes         
31
  Refactor needels to remove the good label for tag (action \#299)                       yes         
32
  Add checkneedle method to the API (action \#300)                                       yes         
33
  Write needle DB query API (action \#301)                                               yes         
34
  Create needles for DVD installation (action \#302)                                     yes         
35
  Create needles for NET installation (action \#303)                                     yes         
36
  Create needles for KDE installation (action \#304)                                     yes         
37
  Create needles for GNOME installation (action \#305)                                   yes         
38
  Create a way to filter the needles that are used in the test (action \#310)            yes         
39
40
***Notes***
41
1. This task is closed here and delayed
42
2. This task is closed here and delayed
43
44
Edit the tasks for the next stage
45
---------------------------------
46
47
We defined the tasks for [T03B. Merge openQA changes to upstream](http://board.opensuse.org/versions/show/48)
48
49
This stage is new and was not predicted in the initial project definition. With this tasks we can assure that part of the work done in this iteration can be accessed in the main openQA version.
50
51
Define the tasks for the next+2 stage
52
-------------------------------------
53
54
We defined the tasks for [T04. Configure a generic time-out](http://board.opensuse.org/versions/show/29)
55
56
We are evaluating to avoid this T04 milestone, and go directly to T05. The main reason for that is that this task is small and maybe not critical for this openQA version. The main timeout is used when a test fail, but we can propose better ways to inform that a test has failed that this timeout approach.
57
58
Conclusion
59
----------
60
61
Go.