#154: Tracker: critical path test case creation
--------------------------+-------------------------------------------------
Reporter: adamwill | Owner: adamwill
Type: enhancement | Status: new
Priority: major | Milestone: Fedora 15
Component: Wiki | Version:
Resolution: | Keywords:
--------------------------+-------------------------------------------------
Comment (by jlaska):
Replying to [comment:16 adamwill]:
The category name for specific source packages should be:
Package_(srcrpmname)_Test_Cases
That works fine. I think the "Package_" prefix is not needed, but it
certainly doesn't hurt anything to have it (just longer wiki page names
"Category:Package_mobile-broadband-provider-info_Test_Cases" vs
"Category
:Mobile-broadband-provider-info_Test_Cases", but that's certainly not
horrible).
same reasoning as my initial proposal for the test case name: we need
to
specify that (srcrpmname), in this context, is specifically a source RPM
name. I can imagine, for instance, we might want to create a generic
category for Python test packages, called Category:Python_Test_Cases, and
put test cases into that category which are not actually test cases for
the Python .src.rpm. So we'd also have a
Category:Package_python_Test_Cases . That could probably be a member of
Category:Python_Test_Cases , but not vice versa.
I think the page name of each test case can be a bit more flexible and
we don't really need to worry about defining it, the categories are the
crucial thing.
Definitely!
Do we also want to suggest a category for each .src.rpm along the
lines
of:
Category:Package_python_core_Test_Cases
? Rationale: I'm thinking about how we want the bodhi or fedora-easy-
karma listing for each package to look. I'm thinking of something like:
-------------------------------------------------------
Update: python-2.7.9-blahblah
This update does blah blah foo foo whee whee poop.
The following test cases can be used to check the functionality of this
package.
'''Critical path tests'''
These tests verify critical path functionality (link to critical path
process page) and should take highest priority:
* links to all tests in Category:Package_python_Test_Cases *and*
Category:Critical_path_Test_Cases
'''Core functionality tests'''
These tests verify core functionality of the package and should take
highest priority after critical path tests:
* links to all tests in Category:Package_python_core_Test_Cases (but not
Category:Critical_path_Test_Cases)
'''Remaining tests'''
These tests verify non-critical path, non-core functionality:
* links to all other tests (in Category:Package_python_Test_Cases but
not Category:Package_python_core_Test_Cases or
Category:Critical_path_Test_Cases)
------------------------------------------------------
------------------------------------------------------
The thinking being that some packages will grow fairly large sets of
tests (abrt already has, for instance) and it would help to isolate core
functionality tests for rapid sanity checking.
The way I read your organization above is that the front-ends will present
the tests by priority (critical path, core, *). I really like this
visualization, but wonder if it is outside the scope for the first pass.
Meaning, I think I'd want to see more focus on just getting critpath tests
defined for as many critpath packages, rather than spending time on non-
critpath or non-core stuff. With the setup you've designed, it doesn't
exclude people from creating non-critpath tests.
An aside, I think the previously discussed Category: organization would
lend better to allowing maintainers to prioritize tests themselves. For
example ...
bodhi and f-e-k will look for wiki pages under
Category:Package_%{sourcerpm}_Test_cases. Any tests in that category
would be listed, any tests in sub-categories of that page will be
presented as you demonstrate above. So to achieve your desired output,
you might organize tests like ...
{{{
Category:Package_python_Test_Cases
|
+--> Category:Critpath_python_Test_Cases
| |
| +-> QA:Testcase_python_do_something_1 [1]
| +-> QA:Testcase_python_do_something_2 [1]
| +-> QA:Testcase_python_do_something_3 [1]
|
+--> Category:Core_python_Test_Cases
| |
| +-> QA:Testcase_python_do_something_4
| +-> QA:Testcase_python_do_something_5
|
+--> Category:Low_python_Test_Cases
| |
| +-> QA:Testcase_python_do_something_6
| +-> QA:Testcase_python_do_something_7
|
|--> QA:Testcase_python_do_something_8
|--> QA:Testcase_python_do_something_9
[1] Could also exist in Category:Critpath_test_cases, but not required
}}}
This would allow maintainers to group the tests as they see fit, but holds
that everything must be anchored out of
Category:Package_python_Test_Cases. We would still focus on prioritizing
development of critpath tests, but the support exists for
maintainers/packagers to organize as they feel is appropriate. Also, the
mediawiki API provides the needed methods to find and present the
information listed above.
Another something to keep in mind, any heavy/complex wiki organization we
do may require extra work when migrating data to another system (which is
a possible mid-term future scenario).
random side observation: our naming of test case pages and
categories
currently stinks.
Sure, page naming wasn't as important when we weren't attempting to
integrate it with other tools so I gather some wiki renaming may be
required. Or did it stink in another regard?
next big concern: where do we effectively document this? All we
currently have on test cases is:
I can add some overview and stuff to that page but it's not a
terribly
visible page, really. I guess the best approach is to edit that page and
add some links to it from strategic other places, especially developer
instruction pages. Thoughts?
Agreed. Do we need an SOP/HOWTO for each of the use cases where
proventesters, or maintainers, will interact with this setup? Such as ...
1. How to create a test case
2. How to organize test cases
3. How to post results for test cases
4. ... ?
--
Ticket URL: <
https://fedorahosted.org/fedora-qa/ticket/154#comment:18>
Fedora QA <
http://fedorahosted.org/fedora-qa>
Fedora Quality Assurance