12:00:47 <E-P> #startmeeting Mer QA meeting 26/4/2012 12:00:47 <MerBot> Meeting started Thu Apr 26 12:00:47 2012 UTC. The chair is E-P. Information about MeetBot at http://wiki.merproject.org/wiki/Meetings. 12:00:47 <MerBot> Useful Commands: #action #agreed #help #info #idea #link #topic. 12:01:57 <E-P> let's see how many can participate today 12:03:14 <E-P> #topic Current status 12:04:09 <E-P> from the last meeting we had one action and it was for me 12:04:18 <E-P> http://mer.bfst.de/meetings/mer-meeting/2012/mer-meeting.2012-04-19-11.00.html 12:04:49 <E-P> #info First draft for the test mapping, http://wiki.merproject.org/wiki/Talk:Quality/Test_processes 12:05:19 <lbt> back ... 12:05:21 <E-P> the mapping will change if we change the test process 12:05:32 <E-P> lbt: great to have you here 12:06:37 <E-P> #info timoph is working on https://bugs.merproject.org/show_bug.cgi?id=315 12:08:05 <E-P> #info E-P tested the eat package on nemo virtual image 12:09:10 <E-P> anything else? 12:09:41 <lbt> looking at the test definition ... makes sens 12:09:42 <lbt> e 12:09:58 <E-P> we can discuss more about that in the next topic 12:10:04 <lbt> OK 12:10:38 <E-P> #topic Test constraints and mapping 12:11:11 <E-P> #info http://wiki.merproject.org/wiki/Talk:Quality/Test_processes 12:11:51 <E-P> lbt: did I miss something important from what we chatted on Monday? 12:12:12 <lbt> I haven't cross checked - I should action myself to do that :) 12:12:43 <lbt> so/but looking at : create_l2cap_connection .... I see environment: hardware .... do we need to say "needs a bluetooth peer" 12:13:09 <lbt> I don't want to be too detailed 12:13:25 <l3i> E-P: So, where would the actualt test cases be defiend? 12:13:27 <lbt> but somewhere that should be noted... "expects a peer setup using profile XYZ..." 12:13:41 <l3i> s/defiend/defined/ 12:14:13 <E-P> lbt: you are right, in that case the bluetooth peer could be some automatic server 12:14:24 <E-P> I try to avoid the master-slave stuff at the moment 12:14:49 <lbt> yep - that's exactly the kind of environmental dependency I was thinking of 12:14:50 <l3i> E-P: I mean not "how the tests are like", but how they're executed in practice 12:15:04 <E-P> l3i: that example is missing the "steps" 12:15:22 <l3i> E-P: Anyway the idea would be to include the steps in same definition somehow? 12:15:32 <E-P> l3i: basically using our current test-definition format, extending it and removing it from the packages 12:15:53 <E-P> l3i: yes 12:16:19 <l3i> E-P: Still using XML as well, or some other format? And would there still be "test packages" as such (I'd assume not directly)? 12:16:26 <E-P> lbt: if we have environment dependencies, does those effect to the test plan creation somehow? 12:16:47 <lbt> I think so - they need to be met to allow the test to be meaningful 12:16:59 <lbt> a failure when there is no peer is misleading 12:17:09 <lbt> and the automation needs to "know" somehow 12:17:13 <E-P> l3i: no decions yet, I would like to keep the XML format because the tools are using that 12:17:25 <E-P> l3i: and in some level maybe supporting the old test packaking 12:17:32 <l3i> E-P: Ok 12:18:05 <E-P> lbt: yep, that requires that we can specify our test environments 12:18:09 * lbt has no problem with using XML or any other sane format btw 12:18:26 <E-P> which is another story 12:18:40 <lbt> E-P: OK 12:19:17 <E-P> what do you think about the idea of having test sets defined in the test-definition, like in my example? 12:19:50 <E-P> that would make the mapping a bit easier, if you don't have to define all the test cases there 12:19:57 <lbt> *nod* 12:20:29 <E-P> you could anyway do the mapping in the case level 12:20:30 <lbt> I like it 12:20:32 <l3i> E-P: Looks pretty good to me 12:20:45 <lbt> what is important is that the tests have/need state 12:21:14 <l3i> E-P: Nothing in the format example what comes to "what components the test is testing", right? 12:21:37 <l3i> E-P: Just dependencies, but nothing to tell what the test target is 12:22:00 <l3i> E-P: I mean, on component/package level 12:22:29 <E-P> l3i: yes, the test-definition's component is missing from that 12:22:49 <l3i> E-P: You mean there would be a single component for the entire definition? 12:23:05 <lbt> I could see that being specified at the top and at a per-test level 12:23:05 <l3i> E-P: Or.. on which level? Definition of a case? 12:23:08 <E-P> l3i: no, test case could define that 12:23:14 <l3i> E-P: Ok 12:23:23 <l3i> E-P: Thought you thought so 12:23:56 <E-P> how about the mapping then... 12:24:07 <lbt> top-level for common, (eg bluez) and then maybe some specifics eg: create_l2cap_connection may test connman 12:24:27 <lbt> but xfer_1Mib_file doesn't test connman 12:24:44 <E-P> lbt: right 12:24:53 <l3i> E-P: If you do the mapping in a separate mapping file, how well does that fit together with mapping per case? 12:25:02 <E-P> if we have in the mapping all core packages listed, that will be pretty heavy to maintain 12:25:14 <E-P> l3i: that is my question too 12:25:35 <E-P> should it be somehow automatic that we can use fields in the test definition to do the mapping? 12:25:48 <lbt> so far this file looks like what I thought a mapping file would look like 12:26:06 <lbt> barring the package bit we just mentioned 12:27:11 <l3i> E-P: I think the targets defined in test cases themselves (or on set level) should be the "master" source for "what a test tests" 12:27:13 <lbt> I'd ecpect to see (for clarity sake) the actual test steps extracted to per-case files/definitions 12:27:40 <l3i> E-P: And that should be taken into account in any additional mapping outside the definition 12:28:14 <lbt> bear in mind that logically this is one huge data structure - the task is to make rational breaks to aid management 12:29:33 <lbt> this file looks a good level of detail to be useful for managing and deciding what tests to run - it helps aggregate using the sets 12:29:47 <lbt> it helps decide what set to use by looking into the components 12:29:59 <lbt> so I see it as ideal for test planning 12:30:20 <lbt> execution and maybe even test setup needs additional detail 12:30:43 <E-P> lbt: you are right, but maybe not splitting each test to single file 12:31:00 <lbt> implementation detail :) 12:31:23 <lbt> I'd exepce them to be "not in this file" 12:31:33 <lbt> mmm expect :) 12:31:36 <l3i> I think there should be some automation available to help create mappings based on the target info in test definitions. Like, listing sets out of a collection of tests that are "testing a certain component" 12:32:02 <lbt> l3i: is that backwards? 12:32:11 <lbt> automation uses mappings, not creates them 12:32:11 <E-P> l3i: if I understood you correctly, do you mean that when a package changes the process looks from the test-definios what to test? 12:32:13 <l3i> lbt: Depends on what is forwards ,) 12:32:30 <lbt> automation creates plans (ie .ks files and a list of tests/sets to run) 12:32:31 <l3i> E-P: Not necessarily 12:32:48 <l3i> E-P: When the test definitions change, the mappings should be revised 12:32:51 <lbt> ah 12:32:57 <E-P> l3i: i agree, having a tool to create sets easily eg. create set to domain connectivity 12:33:12 <lbt> yeah, that's not what I mean by automation 12:33:24 <lbt> automation here (for me anyhows) is BOSS-like 12:33:41 <l3i> lbt: I just used the word automation to mean opposite of doing something manually 12:33:55 <lbt> *nod* a tool to analyse dependencies from the architecture and create a basic mapping 12:34:16 <l3i> In any case, whoever writes a test normally has a picture of what it's testing... 12:34:31 <l3i> And having to do mappings completely without that info in use would be illogical 12:34:35 <lbt> feature: bluetooth 12:35:00 <lbt> or domain: communications 12:35:08 <l3i> lbt: Where would the features/domains be defined 12:35:17 <l3i> and where the mapping of packages etc. to those would reside 12:35:28 <lbt> platform architecture 12:35:40 <Stskeeps> domains is mer arch docs, each rpm belonfs to group 12:35:49 <l3i> Stskeeps: Ok 12:35:50 <Stskeeps> group is domain 12:35:53 <lbt> http://releases.merproject.org/~carsten/GraphicsX11.png 12:36:26 <l3i> Stskeeps: Ok, how about when only one package changes, I suppose you don't want to run all the tests for that domain..? 12:36:31 <lbt> something like this - but I agree that w need more scoping 12:36:53 <lbt> l3i: I think there are 2 scopes happening here 12:37:08 <lbt> one is to do with creating and managing tests 12:37:15 <lbt> the other to do with selection and execution 12:37:17 <l3i> lbt: yes 12:37:32 <l3i> lbt: And they need a clear connection too 12:37:36 <lbt> yep 12:37:59 <lbt> so your first point uses diagrams like Stskeeps' with docs and 'domain knowledge' 12:38:14 <lbt> it has to provide enough data to satisfy your 2nd point 12:38:41 <lbt> ie "when pkgA changes, what tests can I run given I have no hardware" 12:39:27 <lbt> E-P's test-definition format was written knowing how bluetooth works 12:39:52 <lbt> when looking at coverage we'd check that all packages were tested 12:40:09 <lbt> and (still in scope 1) we'd analyse that each package caused sane tests to be run 12:40:27 <lbt> scope 2 happens when we throw it over the wall :) 12:41:43 <lbt> l3i: if we find that we run too many tests when a package changes, that's a bug in the test domain somewhere 12:42:08 <l3i> lbt: How do you measure when you're running too many tests? 12:42:16 <lbt> people complain 12:43:27 <Stskeeps> metrics, lack of qa capacity 12:43:43 <lbt> as I said, "we'd analyse that each package caused sane tests to be run" ... sane is a bit subjective 12:44:30 <E-P> we need some process how to add new tests to the mapping 12:44:48 <l3i> Hmm.. Would it make sense to 1) have each test case tell what it's supposed to test, what it requires etc., and then 2) use the mapping outside the test definition to select only the bigger blocks of tests ro run, while on the case level the definition would be what "decides"..? 12:44:53 <E-P> that we don't have too heavy tests when package changes 12:44:59 <lbt> yep, there's an entire test development and release process E-P 12:45:13 <l3i> So, the mapping files would do only "rough selection" 12:45:52 <lbt> l3i: I see most of that in E-P's file already 12:46:00 <E-P> l3i: exactly 12:46:44 <l3i> lbt: me too, just hadn't got an explanation confirming that 12:46:57 <lbt> :) 12:47:33 <lbt> nb ... I'm a bit pedantic about names.... sry ... so I'm not keen on "Mapping/configuration file" 12:47:47 <l3i> lbt: Test selection file? 12:47:48 <lbt> I think that's practically the test plan 12:48:01 <lbt> and it looks like a .ks that implements the plan 12:48:08 <lbt> test selection is good too 12:48:20 <E-P> both fine for me 12:48:30 <lbt> some words have domain-specific meaning so I'm cautious 12:48:52 <l3i> I'd say a test plan is maybe something that's automatically generated in the process when there's a change, and when you go through the test selection and definitions 12:49:15 <l3i> to pick tests to execute in different environments 12:49:26 <l3i> After picking the tests, you'd have the plan 12:49:32 <lbt> yep 12:49:35 <E-P> true 12:49:43 <lbt> so can we use that term? 12:49:55 <l3i> lbt: I'd not use it for the "Mapping/configuration file" 12:50:05 <lbt> a test plan is a sequential set of tests on a specific platform configuration 12:50:06 <l3i> As I dfon't see that as a test plan 12:50:20 <l3i> lbt: Yes, that's more as I see it 12:50:41 <l3i> Hmm 12:51:32 <lbt> looking at the diagram: step 1 makes sense 12:51:38 <lbt> step 3 makes sense 12:51:39 <E-P> like I talked with timoph, these changes requires lots of work and I would like that we have some automation up-and-running before making these changes 12:51:40 <lbt> step 2... 12:51:50 <lbt> E-P: not a problem 12:52:10 <lbt> E-P: to some degree we're blue-skying here 12:52:19 <E-P> if we use current tools, we should get them pretty fast up 12:52:20 <lbt> I like that as it helps agree a direction 12:52:29 <l3i> E-P: What were you actually referring to by "Test plan(s)" in step 3? 12:53:13 <E-P> l3i: test plans to OTS, one test plan per device 12:53:20 <l3i> E-P: Ok, I see 12:54:40 <E-P> you are ok that the test selection file has .ks files and devices specified? 12:54:45 <l3i> Maybe that could be described on the page too 12:55:05 <lbt> so step 2... I see that as input to "Test execution planner" and I see it as all the "test-definition" files that we talked about earlier 12:55:13 <E-P> l3i: yes I will add that, that page is anyway only for discussion/draft 12:55:40 <l3i> E-P: ok 12:56:22 <lbt> so actually.... add them as another input to the execution planner 12:56:35 <E-P> nod 12:56:53 <lbt> and I think I'm seeing what that config file is now 12:57:12 <lbt> it's supposed to help determin which tests to pick and how to setup a device (like templates) 12:57:24 <E-P> one issue is that where do we keeps this information, it would be nice to have in a database 12:58:06 <lbt> E-P: lets not worry too much just yet - decide how to master it and then optimise storage/retreival later? 12:58:28 <E-P> fine for me 12:58:29 <l3i> A database whose content would be automatically updated when committing changes to the files are done could be useful� 12:58:32 <lbt> yes 12:58:36 <E-P> yes 12:58:52 <l3i> But yes, too early 12:59:12 <E-P> I think we have now common understanding what we want and need 12:59:23 <lbt> FYI phaeron helped me fix IMG last night 12:59:54 <lbt> so that's a step closer to having an image 13:00:00 <E-P> #info test definition: adding environment dependency, what is needed from the test environment eg. needs bluetooth pair 13:00:21 <E-P> #info test environment dependency requries defining the environments 13:00:24 <lbt> next we need to update OBS to make image generation post-build easier... hopefully next week 13:01:02 <E-P> I will add task bugs to bugzilla about these features 13:01:13 <E-P> easier to track where we are and what needs to be done 13:01:30 <E-P> #info keeping the test definition in the management level, separating test steps to own file 13:01:46 <E-P> #info test definition: defining a component in the top and test case level 13:02:16 <E-P> #info test definition: defining a test set in the definition looks ok 13:02:22 <E-P> #info a tool is needed for creating test sets easily, eg. create set for communications domain 13:02:57 <E-P> #info test definition defines tests and their requirements, mapping is outside of the test definition 13:03:12 <E-P> #info test mapping selects bigger blocks of tests to run 13:03:25 <E-P> #info using test selection name instead of mapping 13:03:37 <E-P> #info setting up the current tools before implementing new process 13:03:56 <E-P> #info next we need to update OBS to make image generation post-build easier 13:04:12 <E-P> did I miss something? 13:05:01 <E-P> so next steps taking the current tools into action, adding tasks to bugzilla 13:05:19 <lbt> E-P: dual scope issue 13:06:25 <lbt> and maybe a re-draft of the diagram with 1,2 and 3 as inputs and 4 as the test-plan (as per the definition mentioned or similar) 13:07:40 <E-P> #info re-draft the diagram 1,2 and 3 as inputs and 4 as the test-plan 13:08:11 <E-P> I have to go soon, something else for today? 13:08:44 <E-P> I can create a draft plan how we take the QA test process into action 13:08:55 <lbt> nope, I have to go v. soon too 13:09:05 <l3i> Nothing from me 13:09:11 <l3i> either 13:09:18 <E-P> #action E-P Create a plan how to take the QA test process into action 13:09:21 <lbt> I'd like to see a minimal e2e solution ASAP 13:09:39 <lbt> it's always easier to grow something small :) 13:09:51 <E-P> I agree 13:10:42 <E-P> thanks for the discussion, again we are one step closer to have QA up-and-running 13:10:45 <lbt> grab me in #mer and we can get something operational 13:10:58 <E-P> ok 13:11:12 <E-P> #endmeeting