On Thu, Dec 1, 2016 at 6:04 PM, Adam Williamson <adamw...@fedoraproject.org>
wrote:

> On Thu, 2016-12-01 at 14:25 +0100, Josef Skladanka wrote:
> > On Wed, Nov 30, 2016 at 6:29 PM, Adam Williamson <
> adamw...@fedoraproject.org
> > > wrote:
> > > On Wed, 2016-11-30 at 18:20 +0100, Josef Skladanka wrote:
> > > > I would try not to go the third way, because that is really prone to
> > >
> > > erros
> > > > IMO, and I'm not sure that "per context" is always right. So for me,
> the
> > > > "TCMS" part of the data, should be:
> > > > 1) testcases (with required fields/types of the fields in the "result
> > > > response"
> > > > 2) testplans - which testcases, possibly organized into groups. Maybe
> > >
> > > even
> > > > dependencies + saying "I need testcase X to pass, Y can be pass or
> warn,
> > >
> > > Z
> > > > can be whatever when A passes, for the testplan to pass"
> > > >
> > > > But this is fairly complex thing, to be honest, and it would be the
> first
> > > > and only useable TCMS in the world (from my point of view).
> > >
> > > I have rather different opinions, actually...but I'm not working on
> > > this right now and I'd rather have something concrete to discuss than
> > > just opinions :)
> > >
> > > We should obviously set goals properly, before diving into
> implementation
> >
> > details :) I'm interested in what you have in mind, since I've been
> > thinking about this particular kind of thing for the last few years, and
> it
> > really depends on what you expect of the system.
>
> Well, the biggest point where I differ is that I think your 'third way'
> is kind of unavoidable. For all kinds of reasons.
>
> We re-use test cases between package update testing, Test Days, and
> release validation testing, for instance; some tests are more or less
> unique to some specific process, but certainly not all of them. The
> desired test environments may be significantly different in these
> different cases.
>

We also have secondary arch teams using release validation processes
> similar to the primary arch process: they use many of the same test
> cases, but the desired test environments are of course not the same.
>
>
I think we actually agree, but I'm not sure, since I don't really know what
you mean by "test environment" and how should it
1) affect the data stored with the result
2) affect the testcase itself

I have a guess, and I base the rest of my response on it, but I'd rather
know, than assume :)



> Of course, in a non-wiki based system you could plausibly argue that a
> test case could be stored along with *all* of its possible
> environments, and then the configuration for a specific test event
> could include the information as to which environments are relevant
> and/or required for that test event. But at that point I think you're
> rather splitting hairs...
>
> In my original vision of 'relval NG' the test environment wouldn't
> actually exist at all, BTW. I was hoping we could simply list test
> cases, and the user could choose the image they were testing, and the
> image would serve as the 'test environment'. But on second thought
> that's unsustainable as there are things like BIOS vs. UEFI where we
> may want to run the same test on the same image and consider it a
> different result. The only way we could stick to my original vision
> there would be to present 'same test, different environment' as another
> row in the UI, kinda like we do for 'two-dimensional test tables' in
> Wikitcms; it's not actually horrible UI, but I don't think we'd want to
> pretend in the backend that these were two completely different. I
> mean, we could. Ultimately a 'test case' is going to be a database row
> with a URL and a numeric ID. We don't *have* to say the URL key is
> unique. ;)
>

I got a little lost here, but I think I understand what you are saying.
This is IMO one of the biggest pain-points we have currently - the stuff
where we kind of consider "Testcase FOO" for BIOS and UEFI to be
the same, but different at the same time, and I think this is where the
TCMS should come in play, actually.

Because I believe, that there is a fundamental difference between
1) the 'text' of the testcase (which says 'how to do it' basically)
2) the (what I think you call) environment - aka UEFI vs BIOS, 64bit vs
ARM, ...
3) the testplan

And this might be us saying the same things, but we often can end up in a
situation, where we say stuff like "this test(case?) makes sense for BIOS
and
UEFI, for x86_64 and ARM, for physical host and virtual machine, ...)"
and sometimes it would make sense to store the 'variables of the env' with
the testcases, and sometims in the testplan, and figuring out the split is
a difficult thing to do.

I kind of believe, that the "environment requirements" should be a part of
the
testplan - we should say that "testplan X needs testcase Y ran on Foo and
Bar"
in the testplan. Instead of listing all the different options in the
testcase, and then
just selecting "a version of it" in testplan.

And this leads, to the "context" I was mentioning earlier - it might well
happen,
that resultsdb will hold results for Testcase X, with totally different
"env values"
and/or even "sets of env values". But this is fine, since the testplan
know, what
kind of values it needs, and will only take those which have it set in
concern.

While this is nice and awesome, this might lead to instances of data, where
an env value of the same "meaning" (like UEFI vs BIOS) is present, but named
differently (like "boot style" vs "firmware", does not really make sense,
but for
the sake of the argument...), but this would/could be a problem even if we
kept
the env options with the testcases, and can only be handled by firm
guidelines.

Not sure I make much sense, it's too much stuff to just put into one email,
I guess...

There are really all kinds of ways you can structure it, but I think
> fundamentally they'd all boil down to the same inherent level of
> complexity; some of them might be demonstrably worse than others
> (like...sticking them all in wikicode and parsing wiki table syntax to
> figure out when you have different 'test instances' for the same test
> case! that sounds like a *really bad* way to do it!)
>
> Er. I'm rambling, aren't I? One reason I actually tend to prefer just
> sitting down and writing something to trying to plan it all out
> comprehensively is that when I just sit here and try to think out
> planning questions I get very long-winded and fuzzy and chase off down
> all possible paths. Just writing a damn thing is usually quite quick
> and crystallizes a lot of the questions wonderfully...
>

While I agree, I also know that temporary solutions tend to stick (as did
Wiki, and
 old Resultsdb), so I'd like this thing we/you write to be based on at least
an informal, but still to some extent thought-through spec.
I'm the first one to say that putting together the spec is a boring,
sometimes
daunting task, and that a better half of my project are exactly the
"let's write something, it will  crystalize", but for stuff with (at least
the intent of)
a bigger impact, it is far better to have the spec. Trust me, that once you
try and put some together, stuff will crystalize the same way it would if
you were actually writing the code. Sure, you might not (and will not)
catch'em'all, but at least some of the corners and limitations will be
known upfront, so we don't just end up blindly pushing ourselves to said
corner.

I highly suggest putting down a few detailed use-cases, as a basis. Helps
a lot with figuring out what is actually needed, and serves as a nice
doc at the same time.

Joza
_______________________________________________
qa-devel mailing list -- qa-devel@lists.fedoraproject.org
To unsubscribe send an email to qa-devel-le...@lists.fedoraproject.org

Reply via email to