Wikitcms is a term used to refer to Fedora's use of this Mediawiki instance as an ad hoc test management system ('TCMS' stands for 'Test Case Management System', but that precise initialism is in fact quite rarely used). It is also the name of a Python module which provides an interface to the 'system'.
The use of the Fedora wiki to track test results dates back to at least the page QA/FC6Test2TreeTesting - at that time, the Fedora wiki was a MoinMoin instance, not this Mediawiki instance. The rough form of a table with different tests as the rows and results as columns is visible even there. Since then, this basic format has been gradually elaborated.
- Separate test case pages were introduced in QA/TestResults/Fedora9Install/Alpha
- Live CD testing was introduced in QA/TestResults/Fedora9LiveCD/FinalRelease (and dropped after Fedora 10, until the introduction of the Desktop test type with Fedora 13)
- The first test result templates - Template:Testresult/fail, Template:Testresult/pass, and Template:Testresult/warn - were introduced in QA/TestResults/Fedora10Install/Final
- Result columns per architecture also first appeared in QA/TestResults/Fedora10Install/Final
- The first effort at associating bug reports with results was in QA:Fedora_11_Alpha_Install_Test_Results
- The first 'template' page (then used for manual copy/paste templating) for results pages was QA:Fedora_11_Install_Results_Template
- Separation of results pages by compose first occurred in Fedora 11, with TCs first appearing with Fedora 12
- The Test Results namespace (allowing result submission without a FAS account) was first used for Fedora 12
- The current Template:Result result template first appeared in Test_Results:Fedora_13_Alpha_TC1_Install
- The first of the current 'test types' other than Installation - Desktop - appeared in Test_Results:Fedora_13_Alpha_TC_Desktop (this also marked the introduction of result 'environments' other than architecture)
- The TC/RC result page naming scheme was more or less settled as of Fedora 13
- The Current (testtype) Results redirect pages first appeared with Fedora 13
- The Installation page was first split into sections in Test_Results:Fedora_14_Alpha_TC1_Install
- The Base and Security Lab test types appeared in Fedora 16 Alpha
- The first 'two-dimensional' result table (where the rows each represent the same test case in a different context, effectively using both rows and columns to represent environments) appeared in Test_Results:Fedora_20_Alpha_TC1_Install#ARM_disk_images
- The first (manual) result pages for nightly builds appeared in Fedora 21's pre-Alpha phase
- The Cloud and Server test types first appeared in Fedora 21 Alpha
- The template system for generating result pages, the CurrentFedoraCompose template, the wikitcms module, and the relval utility for generating result pages and reporting results were all introduced during the Fedora 21 cycle
- Individual nightly compose result pages and automatic generation of nightly result pages were introduced in Fedora 22
The following can be considered as features of the wikitcms 'system':
- Storage and organization (as pages, in categories) of test cases
- Advanced formatting and templating for test case content (via the mediawiki engine)
- Result reporting without authentication
- Capability to distinguish between test case and 'test instance'
- Results sorted by environment (with arbitrary 'environments')
- Tests for a given build grouped by 'test type' and section within test type
Fundamentally, wikitcms consists of a set of conventions and expectations about the names, contents and categorization of wiki pages related to test results. There are also several critical 'auxiliary' pages which are used in the generation of the primary pages; these are considered a part of the system and should be modified only with care.
- Release validation result pages are in the Test Results namespace, and are named Fedora RELEASE MILESTONE COMPOSE TESTTYPE or Fedora RELEASE MILESTONE DATE TESTTYPE, where:
- RELEASE is a Fedora release version number
- MILESTONE is a valid Fedora milestone for the release, or a nightly compose type, currently Rawhide or Branched
- COMPOSE is a TC or RC compose identifier, e.g. TC1 or RC2 (nb: RC2.1 is a valid format here)
- DATE is a nightly compose date, in YYYYMMDD format
- TESTTYPE is one of the validation test types (see below)
- For each 'event' (a TC, RC, or nominated nightly compose), there is a page named as above, but with Summary in place of the TESTTYPE
- Test types are defined by the existence of a template page (in the Template namespace) named TESTTYPE test matrix
- For each test type, a page exists in the Test Results namespace, named Current TESTTYPE Test
- Validation test category pages are named as follows:
- The top-level Category:Test_Results exists
- Each Fedora release has a Fedora RELEASE Test Results category that is a member of Category:Test_Results
- There is a category for each milestone for each Fedora release, which is a member of that release's category, with the name Fedora RELEASE MILESTONE Test Results
- If there are nightly validation pages for the release, there is a category with the name Fedora RELEASE Nightly Test Results, which is a member of the that release's category
The result pages contain a section heading, Test Matrix, which acts as a separator. The page wikitext beyond that separator is considered the result text. Results take the form of one or more wiki tables, but separating tests into different tables is only cosmetic.
Result tables must follow these rules:
- They have a single header row, which appears as a single line in the wikitext. The format where each cell in the header row appears on a newline in the wikitext is not allowed for wikitcms purposes
- Each row other than the header row - a result row - represents a single test instance (usually just a test case, but see elsewhere in this section for the way in which test names and page sections can produce multiple test instances for a single test case)
- In contrast to the header row, result rows place each of their cells on a new line in the wikitext. The format where the entire row appears on a single line of wikitext is not allowed for wikitcms purposes
- The first column indicates the level (usually milestone) of the test
- One of the columns must be used for the purpose of identifying the test instance with which that row is associated
- For each row, the contents of that column must be formatted to begin with a link to the test case associated with the row, e.g.
- The link may be named, in which case the name portion is considered the test name, e.g. . This is an example of a test instance which is not simply a single test case: the same test case could appear in another row with a different test name, which would constitute another test instance
- Each column after the identifier column is a result column: its column title represents a test environment, and its contents is one or more test results
- Test results must use the Template:Result template, e.g. (to indicate a failure from the user adamwill with the related bug #123456)
- Comments may appear following the test result with which they are associated; all text between one test result and the next (or the end of the line) is considered a comment associated with that test result
The result text for a given page may be separated by section, and if it is, the section in which a test instance appears is considered an identifying attribute of that test instance: that is, if there are two rows for the same test case (with no test name, or with the same test name) but they appear in separate sections, they are considered two separate test instances.