Package Update Acceptance Test Plan - final call

Kamil Paral kparal at redhat.com
Fri Apr 23 13:06:36 UTC 2010


----- "James Laska" <jlaska at redhat.com> wrote:

> > = Test Priority =
> > 
> > 1. Do we want to have the strict requirement that introspection and
> > advisory tests may be started only after all mandatory tests have
> > finished? In other words, do we want to have the testing sequence
> > like this:
> > 
> > -> mandatory tests -> (wait for completion) -> introspection + 
> > advisory tests
> > 
> > or this:
> > 
> > -> mandatory + introspection + advisory tests (no particular order)
> > 
> > Reason for (the first sequence): It prioritizes the most important
> > tests, they will be finished sooner. It can save resources in case
> > some mandatory test fails and we won't run any subsequent tests
> > (see question 2).
> > Reason against: More difficult to implement. Less effective from
> > overall performance view.
> 
> My preference would be the path of least resistance, which seems like
> the second approach.  Should we suffer from slow mandatory test
> results
> due to introspection and advisory tests being run first, we have test
> scheduling options to explore to address the problem.  Whether it's
> prioritized/weighted jobs or grouping the tests into the three
> buckets
> I'm not sure yet ... but I feel like that's something we can address
> in
> the future.

Same opinion here, thanks, document updated.

> 
> > = Test Pass/Fail Criteria =
> > 
> > 2. Do we want to continue executing tests when some mandatory
> > test fails?
> > Reason for: We will have more results, maybe the maintainer will
> > have a look at all the results and may fix more issues at once
> > (not only the failed mandatory test).
> > Reason against: It wastes resources - the update will not be
> > accepted anyway. When a mandatory test fails (like installability
> > or repo sanity), many follow-up tests may fail because of that,
> > so they may not produce interesting output anyway.
> 
> Let's make our lives simpler at first ... schedule all the tests. 
> Even
> if mandatory results fail, having the introspection and advisory
> results
> available for later review or comparison will be helpful.
> 
> That said, as soon as the mandatory tests have failed, we can
> initiate
> whatever process needs to happen to ensure that package update is not
> accepted.  However, the other tests would continue to run and report
> results into the appropriate place.

Again I fully agree. Updated.

> 
> > 3. We should complement requirement "all tests have finished" with
> > a definition what happens if some test crashes. It is obvious that
> > we can't accept package for which some substantial (read mandatory
> > or introspection) test has crashed. So we can add a requirement
> > like this:
> > "all mandatory and introspection tests have finished cleanly (no
> > test crashes)"
> > The question remains - what about advisory tests? Do we require
> that
> > they also don't crash? Or even if some of them crashes it won't be
> > an obstacle for accepting the update?
> > Reason for: Advisory tests are not important for accepting the
> > update, a test crash should not cause rejection.
> > Reason against: Some information won't be available. It could
> happen
> > that those information would cause the maintainer to withdraw/renew
> > the updated package.
> 
> Long-term, all these tests need to run and results presented to the
> maintainer.  Short-term while we are piloting this effort, I don't
> have
> a problem allowing a build to proceed once mandatory tests have
> completed, but advisory/introspection tests failed or aborted.

I would prefer to cover longer-term objectives in the document
rather then pilot stage. I have added a requirement:
"# all mandatory and introspection tests have finished cleanly 
(not crashed or otherwise aborted)"

> 
> > = Introspection tests =
> > 
> > 4. Rpmlint - "no errors present" vs "no new errors present": It
> > is obvious we have to provide an option for package maintainers to
> > whitelist some rpmlint messages. The actual implementation of the
> > whitelist is still to be discovered, but that doesn't matter, it
> > will be there. In this respect is seems to me that "no new errors"
> > requirement has no benefit over "no errors" requirement, because
> > the latter one does everything the prior one and even more. When
> > it is possible to whitelist errors then there's no reason for us
> > to allow any errors in the output.
> > Implementation note: "no new errors" is more an rpmguard's task
> > than rpmlint's. We can implement that as an rpmguard check and put
> > it to introspection tests, that's possible. But it's not needed if
> > we agree on "no errors" requirement.
> 
> "No new errors" seems like an achievable short-term approach to add
> value while not overloading the maintainer with a potentially large
> list
> of rpmlint failures (/me thinking kernel) that they haven't been
> tracking since the package was initially incorporated into Fedora. 
> Down
> the road, I agree a whitelist mechanism would be ideal (as well as a
> shortcut to file a bug against rpmlint).

The whitelist mechanism is surely a must-have, otherwise we would
end up impaled on a stakes, quartered and burnt alive :)

"No new errors" could work for some packages, but it wouldn't work
for many others, especially when a version number is mentioned in the
message - it will change for every release, so we would see it
as a new error anyway. Kernel package is a nice example of this.
A few references:

https://fedorahosted.org/pipermail/autoqa-results/2010-April/013921.html
https://fedorahosted.org/pipermail/autoqa-results/2010-April/016838.html
https://fedorahosted.org/pipermail/autoqa-results/2010-April/016436.html

I believe when AutoQA goes live it will not be enforcing anything
for a long time, just providing additional info. There will be a
lot of time when maintainers may solve these issues. I wouldn't
worry too much, we can also disable some test if it seems to
be causing troubles, until it is resolved.

> 
> > =  Responsibilities and permissions =
> > 
> > 5. "Introspection tests failures may be waived by:"
> > 5a. Should Release Engineering be there?
> 
> No, let's just go with below.  And anyone can demonstrate required
> test
> skills and join the group, including release engineers.
> 
> > 5b. Should we add the new proventesters group?
> 
> Oh good catch, yes!

I have removed RelEng and also QA (on jkeating's suggestion) and
replaced them with proventesters team. Or would it be better
to leave the whole QA team in?

> 
> Hope this helps,
> James
> 
> -- 
> test mailing list
> test at lists.fedoraproject.org
> To unsubscribe: 
> https://admin.fedoraproject.org/mailman/listinfo/test


More information about the test mailing list