Re: [Freeipa-devel] [PROPOSAL] FreeIPA Test Plan Workflow

2015-03-20 Thread Petr Spacek
On 19.3.2015 12:33, Martin Kosek wrote:
> On 03/19/2015 11:45 AM, Petr Spacek wrote:
>> On 19.3.2015 10:11, Martin Kosek wrote:
>>> On 03/19/2015 09:25 AM, Petr Spacek wrote:
 Hello,

 I do not much to add to the process itself. After first reading it seems
 pretty heavyweight but let's try it, it can be refined at any time :-)
>>>
>>> Right, but then we would need to migrate the data about test completion and 
>>> so
>>> on - which is more work. So it is much better to define some working now, 
>>> than
>>> to change it couple months later.
>>>
>>> We were already trying to invent something as much lightweight as possible,
>>> this was the minimum new fields we come for to be able to track the test
>>> coverage and plans. If you have another proposal how to track it better, I
>>> would love to hear it, really :-)
>>
>> Sure. For me the main question is when *designing of tests* should start and
>> how it is synchronized with feature design. Is it done in parallel? Or
>> sequentially? When the feedback from test designers flows back? Isn't it too 
>> late?
>>
>> Let's discuss ticket workflow like this:
>> new -> design functionality&tests -> write code&tests -> test run -> closed
>>
>> IMHO we should have tests *designed* before we start to implement the final
>> version of the functionality. It may be too late to find out that interface
>> design is flawed (e.g. from user's point of view) when the feature is fully
>> implemented and test phase is reached.
>>
>> Designing/writing tests early could discover things like poor interface 
>> design
>> sooner, when it is still easy to change interfaces. Currently we have 
>> 'design'
>> reviews before the implementation starts but actually designing tests at the
>> same time would attract more eyes/brains to the feature design phase. We may
>> call it 'first usability review' if we wish :-)
>>
>> In my mind, test designers should be first feature users (even virtually) so
>> the early feedback is crucial.
>>
>> Note that this approach does not preclude experimental/quick&dirty 
>> prototyping
>> as part of the design phase but it has to be clear that prototype might (and
>> should!) be thrown away if the first idea wasn't the best one.
> 
> Yes! This is exactly why this QE team was created - to be able to test as 
> early
> as possible, review designs with QE eyes as early as possible.

Great, in that case we can ignore the next section completely (it was meant as
fallback).

>> If this is too radical:
/snip/

>> Then there is the question if we actually need to separate field for QE state
>> and Test case field. Test case could behave in the same way as Bugzilla link
>> field:
>> - empty field - undecided
>> - 0 (or string "not necessary" or something) - test case is deemed 
>> unnecessary
>> - non-zero link - apparently, a test case exists
>>
>> It would be more consistent with what we have for Bugzilla links.
> 
> The metadata we come up should be able to supply at least following queries:
> - which tickets (RFEs/bugs) are covered with tests in a specific milestone,
> what are the test cases
> - who, from QE team, is working on which tickets
> - list of tickets where we want the tests and which are for grabs by QE 
> engineer
> 
> I am not sure if this can be covered just with the extra QE phase and Test 
> Case
> link.

Okay, it might be easier with more explicit fields as proposed.

-- 
Petr^2 Spacek

-- 
Manage your subscription for the Freeipa-devel mailing list:
https://www.redhat.com/mailman/listinfo/freeipa-devel
Contribute to FreeIPA: http://www.freeipa.org/page/Contribute/Code


Re: [Freeipa-devel] [PROPOSAL] FreeIPA Test Plan Workflow

2015-03-19 Thread Martin Kosek
On 03/19/2015 11:45 AM, Petr Spacek wrote:
> On 19.3.2015 10:11, Martin Kosek wrote:
>> On 03/19/2015 09:25 AM, Petr Spacek wrote:
>>> Hello,
>>>
>>> I do not much to add to the process itself. After first reading it seems
>>> pretty heavyweight but let's try it, it can be refined at any time :-)
>>
>> Right, but then we would need to migrate the data about test completion and 
>> so
>> on - which is more work. So it is much better to define some working now, 
>> than
>> to change it couple months later.
>>
>> We were already trying to invent something as much lightweight as possible,
>> this was the minimum new fields we come for to be able to track the test
>> coverage and plans. If you have another proposal how to track it better, I
>> would love to hear it, really :-)
> 
> Sure. For me the main question is when *designing of tests* should start and
> how it is synchronized with feature design. Is it done in parallel? Or
> sequentially? When the feedback from test designers flows back? Isn't it too 
> late?
> 
> Let's discuss ticket workflow like this:
> new -> design functionality&tests -> write code&tests -> test run -> closed
> 
> IMHO we should have tests *designed* before we start to implement the final
> version of the functionality. It may be too late to find out that interface
> design is flawed (e.g. from user's point of view) when the feature is fully
> implemented and test phase is reached.
> 
> Designing/writing tests early could discover things like poor interface design
> sooner, when it is still easy to change interfaces. Currently we have 'design'
> reviews before the implementation starts but actually designing tests at the
> same time would attract more eyes/brains to the feature design phase. We may
> call it 'first usability review' if we wish :-)
> 
> In my mind, test designers should be first feature users (even virtually) so
> the early feedback is crucial.
> 
> Note that this approach does not preclude experimental/quick&dirty prototyping
> as part of the design phase but it has to be clear that prototype might (and
> should!) be thrown away if the first idea wasn't the best one.

Yes! This is exactly why this QE team was created - to be able to test as early
as possible, review designs with QE eyes as early as possible.

> If this is too radical:
> 
> To me it seems kind on unnatural to separate testing from overall bug state.
> Equivalent of ON_QA state in Bugzilla seems more natural to me as it is kind
> of weird to claim that ticket is closed/finished before full testing cycle is
> finished.
> 
> I.e. the ticket could have states like:
> new -> assigned -> qe -> closed
> "qe" state can be easily skipped if no testing is (deemed to be) necessary.

This is an alternate approach yes. Trac has workflow plugin that should be able
to add it. But wouldn't that workflow actually support the classic waterfall
approach and not the more agile approach with testing more or less in parallel
with the work on the code?

The point is that a RFE may be still in development and also in QE state in
parallel - thus the field.

> 
> Then there is the question if we actually need to separate field for QE state
> and Test case field. Test case could behave in the same way as Bugzilla link
> field:
> - empty field - undecided
> - 0 (or string "not necessary" or something) - test case is deemed unnecessary
> - non-zero link - apparently, a test case exists
> 
> It would be more consistent with what we have for Bugzilla links.

The metadata we come up should be able to supply at least following queries:
- which tickets (RFEs/bugs) are covered with tests in a specific milestone,
what are the test cases
- who, from QE team, is working on which tickets
- list of tickets where we want the tests and which are for grabs by QE engineer

I am not sure if this can be covered just with the extra QE phase and Test Case
link.

-- 
Manage your subscription for the Freeipa-devel mailing list:
https://www.redhat.com/mailman/listinfo/freeipa-devel
Contribute to FreeIPA: http://www.freeipa.org/page/Contribute/Code


Re: [Freeipa-devel] [PROPOSAL] FreeIPA Test Plan Workflow

2015-03-19 Thread Petr Spacek
On 19.3.2015 10:11, Martin Kosek wrote:
> On 03/19/2015 09:25 AM, Petr Spacek wrote:
>> Hello,
>>
>> I do not much to add to the process itself. After first reading it seems
>> pretty heavyweight but let's try it, it can be refined at any time :-)
> 
> Right, but then we would need to migrate the data about test completion and so
> on - which is more work. So it is much better to define some working now, than
> to change it couple months later.
> 
> We were already trying to invent something as much lightweight as possible,
> this was the minimum new fields we come for to be able to track the test
> coverage and plans. If you have another proposal how to track it better, I
> would love to hear it, really :-)

Sure. For me the main question is when *designing of tests* should start and
how it is synchronized with feature design. Is it done in parallel? Or
sequentially? When the feedback from test designers flows back? Isn't it too 
late?

Let's discuss ticket workflow like this:
new -> design functionality&tests -> write code&tests -> test run -> closed

IMHO we should have tests *designed* before we start to implement the final
version of the functionality. It may be too late to find out that interface
design is flawed (e.g. from user's point of view) when the feature is fully
implemented and test phase is reached.

Designing/writing tests early could discover things like poor interface design
sooner, when it is still easy to change interfaces. Currently we have 'design'
reviews before the implementation starts but actually designing tests at the
same time would attract more eyes/brains to the feature design phase. We may
call it 'first usability review' if we wish :-)

In my mind, test designers should be first feature users (even virtually) so
the early feedback is crucial.

Note that this approach does not preclude experimental/quick&dirty prototyping
as part of the design phase but it has to be clear that prototype might (and
should!) be thrown away if the first idea wasn't the best one.


If this is too radical:

To me it seems kind on unnatural to separate testing from overall bug state.
Equivalent of ON_QA state in Bugzilla seems more natural to me as it is kind
of weird to claim that ticket is closed/finished before full testing cycle is
finished.

I.e. the ticket could have states like:
new -> assigned -> qe -> closed
"qe" state can be easily skipped if no testing is (deemed to be) necessary.

Then there is the question if we actually need to separate field for QE state
and Test case field. Test case could behave in the same way as Bugzilla link
field:
- empty field - undecided
- 0 (or string "not necessary" or something) - test case is deemed unnecessary
- non-zero link - apparently, a test case exists

It would be more consistent with what we have for Bugzilla links.

-- 
Petr^2 Spacek

-- 
Manage your subscription for the Freeipa-devel mailing list:
https://www.redhat.com/mailman/listinfo/freeipa-devel
Contribute to FreeIPA: http://www.freeipa.org/page/Contribute/Code


Re: [Freeipa-devel] [PROPOSAL] FreeIPA Test Plan Workflow

2015-03-19 Thread Martin Kosek
On 03/19/2015 09:25 AM, Petr Spacek wrote:
> Hello,
> 
> I do not much to add to the process itself. After first reading it seems
> pretty heavyweight but let's try it, it can be refined at any time :-)

Right, but then we would need to migrate the data about test completion and so
on - which is more work. So it is much better to define some working now, than
to change it couple months later.

We were already trying to invent something as much lightweight as possible,
this was the minimum new fields we come for to be able to track the test
coverage and plans. If you have another proposal how to track it better, I
would love to hear it, really :-)

-- 
Manage your subscription for the Freeipa-devel mailing list:
https://www.redhat.com/mailman/listinfo/freeipa-devel
Contribute to FreeIPA: http://www.freeipa.org/page/Contribute/Code


Re: [Freeipa-devel] [PROPOSAL] FreeIPA Test Plan Workflow

2015-03-19 Thread Petr Spacek
Hello,

I do not much to add to the process itself. After first reading it seems
pretty heavyweight but let's try it, it can be refined at any time :-)

On 19.3.2015 08:57, Martin Kosek wrote:
> Test Coverage: yes/no/in progress/ /
I'm very much in favor of more descriptive names like:
covered/not necessary/test in works/undecided

It would allow random walkers by (like me :-) to understand what is going on
without necessity to study some internal processes.

-- 
Petr^2 Spacek

-- 
Manage your subscription for the Freeipa-devel mailing list:
https://www.redhat.com/mailman/listinfo/freeipa-devel
Contribute to FreeIPA: http://www.freeipa.org/page/Contribute/Code


Re: [Freeipa-devel] [PROPOSAL] FreeIPA Test Plan Workflow

2015-03-19 Thread Martin Kosek
On 03/18/2015 08:18 PM, Martin Koci wrote:
> Hi,
> working with Test Plans for 4.2 features I'd like to outline workflow
> for test plans. The main aim is to have something documented and more
> clear. 
> So I'd like to start with track ticket options. For better tracking and
> managing tickets we could consider 3 new fields in the track ticket.

track --> Trac

>  
> - First field for tracking link for test plan/test case which we can
> refer to. We would call this field just "Test". 

I would name it "Test Case", if it would link to Test Case on wiki/other tool.
With "Test", I would rather understand it to be a link to the actual tests.

> - The second field for tracking tester (QE). Let's called this field "QA
> Contact". This field should inform about contributor (QE). That means -
> you can track unassigned bugs (tracks), assigned but not reviewed (the
> work hasn't started yet), and finished ("-", "+" - see below). According
> to this you can also see who is overloaded and who can help to the
> others.

Right now, we have following person-related fields (in form name - label):
reporter - Reported by
reviewer - Patch review by

So for consistency sake, what about:
tester - Test by

> - The third one for tracking states or flags for test coverage.
> Something like "QE Test Coverage" with four states/flags:
> 
> * Review is needed - " "  (review is required for this issue)
> Empty "QE Test Coverage" should mean "Hey, I need to be reviewed and
> considered whether some test is needed or not".
> * Test is not needed - "-" (Test is not required for this issue)
> * Test exists - "+" (Test already exists - QE done)
> * Test in progress - "?" (Test is required and QE {will} works on
> test{s})
>  
> I can imagine some naming instead of flags +,-,?, ,.  Any ideas?

Right, this is the most important one as we will use it which RFEs/tickets we
want to cover with tests and which not. The states make sense (we come up with
them together anyway), +/-/?/ / makes sense, alternatively we can do:

Test Coverage: yes/no/in progress/ /

> In the track ticket should be described the issue or link to design page
> to get all necessary information for coverage. QE changes state "QE Test
> Coverage" (Test in progress - "?") and creates test plan on wiki [1] and
> add this link to "Test" field in the track. Then QE informs
> freeipa-devel list about test plan if it's OK providing the link to test
> plan. If it's OK QE will start work on particular test cases. When QE is
> done then changes state "QE Test Coverage" to "+" (test exists). 

Makes sense for big features, yes. What about smaller features or bug fixes? Is
test plan also required or would it be sufficient to just add that one or two
tests to XMLRPC tests?

> As well I'd like to propose the possibility that ticket will not be
> closed until QE is done with test?

Still not sure, the requirement is that the test would need to be finished
before GA, as the ticket must be in the milestone where the code is released. I
personally do not see a problem with closing the ticket and leaving it with
"Test Coverage: in progress" which would then be changed to "yes", when test is
done. It is easy to filter tickets with unfinished tests, even if they are 
closed.

> Hope it makes sense to you. 
> Can I get your thoughts on this, please?
> 
> Thanks,
> /koca
> *[1] - http://www.freeipa.org/page/Main_Page
> 
> 

-- 
Manage your subscription for the Freeipa-devel mailing list:
https://www.redhat.com/mailman/listinfo/freeipa-devel
Contribute to FreeIPA: http://www.freeipa.org/page/Contribute/Code