Suites? Harnesses? Tests?
We all want quality to happen. How can we help? What is being run? What can I run something with? What does any of this mean? Not all questions are answered, but some.
This document has three sections:
- Test Harnesses - tools, designed to run tests. A harness may be targeted to a specific set of tests, or general to many kinds of tests. What test do you want to see run? Different harnesses could be used to run a given test. Which harness is better for which kinds of testing? kinds of testing?
- Test Suites - arbitrary groupings of test cases, roughly organized by functional area
- Test Infrastructure - the environments the test tools and test cases run in. This includes machine, operating system and physical location (ex: QA farm vs QA lab vs someone's desktop)
There are questions to be answered about any of our tests. If anyone has information or suggestions, please let us know.
- What tests do we have now, how current are they and how they should be run? Should they be expected to pass?
- What features or modules need tests to be written for them? What are the requirements of the testing that should happen?
- What tools do we have now that can be used to write tests? What tools outside of mozilla have people used to build tests and test tools?
- Of the tests currently in existence, which of them are outside the "mozilla.org" umbrella? Which use resources from outside? What is the reliability and accessibility of these resources? Are there issues which keep us from keeping local copies?
Any questions and suggestions are welcome!
Criteria for Colors
- Green: Generously defined now. Info is current or findable. Something is buildable and runnable by someone. There may still be obvious improvements needed.
- Yellow: Little may be known. Probably not completely broken. Work to bring current is unknown.
- Red: Obviously broken or missing. Info not findable. People not locatable.
|Test Harness Name||Brief Description||Language Used||Status of Harness||Notes|
|eggplant||uses VNC for device-level visual comparisons||Being used for automation of Smoke Tests suites in litmus||redstone|
|litmus||Catalog of manual test cases. Being developed to allow community to run the manual smoke tests, BFT, FFT and L10n tests. GUI to capture results and provide feedback to the QA team. Reporting function to check test and platform coverage.||English, German, French, etc.||The place to be on Community Test Day! Still in refinement by zlipton and coop. 2445 test cases, 1994 tester accounts with 845 active||litmus|
|T*||perf tests, runs in tinderbox||running, passing, run by tinderbox||wiki|
|build/make||a standard for invoking stand-alone test executables, and for integrating invocation of other harnesses into MoCo automated systems||"make check" is accepted standard, being integrated with buildbot||tinderbox|
|XULUnit||"XulUnit is a simple, yet powerful and easy to use framework for Unit Testing in XUL applications (XPFE)."||any info known? please share.||xulunit.m.o|
|litmus2||redesign/rework of the test case management tool.||in idea phase||notes|
|Test Suite Name||Brief Description||Test Harness(es)||Status||Last Info|
|Security tests||Custom framework. Runs on QA Farm. When bugs were filed, regression test cases are usually added.||Semi-automated. Plans to fully automate with Eggplant in Q1 2007||Info is current. See bc, jruderman. Definite opportunity to mine bugs for test cases.|
|Automated Smoke Tests||A "Smoke Test" is a quick, basic qualification.||Eggplant. Runs on Tracy's machines. Tests for FFx 1.5 and 2.0||Fully automated. Completed porting to Mac and Linux in Q4 2006. Plan to move execution to QA Farm in Q1 2007||Info is current. See tracy.|
|Basic Functionality Tests (BFT)||130+ manual test cases, broadly covering major features||litmus for 1.5 and 2.0||will be updated for FF3||Info is current. See marcia, timr.|
|Full Functionality Tests (FFT)||approx. 280 manual test cases, covering most features||litmus for 1.0, 1.5 and 2.0||will be updated for FF3||Info is current. See marcia, timr.|
|Localization Tests||15 test cases||litmus for 1.5 and 2.0||engaged and open to design||Info is current. Proposed designs and issues current in newsgroups. See axel|
|Software Update Suite||approx. 50 tests, targeted to update process itself||litmus||Info is current. See bc.|
|T*||includes Tdhtml, Ts, Txul, Trender (aka Tgfx), Z, and mZ, wiki for most T||running, but not growing||Info is current. Tests need transition to buildbot. See robcee, timr.|
|Accessibility||Accessibility/qa||Info is current. A lot is going on, but opportunities to automate are not as developed as they could be. See Aaron Leventhal.|
|Update Checker||validity of update mar files||currently automated on release machines, moving to buildbot, wiki||Info is out of date. See rhelmer.|
|L10n checker/metadiff|| verify that :
||currently automated on release machines, moving to buildbot, wiki||Info is out of date. See rhelmer.|
|Tp2||new page load tests||"make check"/buildbot||nearing complete automation||Info is current. Being integrated into automation. See alice, robcee.|
|Download Checker||verify integrity of major released||manual, wiki||runnable, passing||Info is current. See bc.|
|L10N Search Verifier||manual, wiki||runnable, passing||Info is current, but current plans are unclear.|
|content/xslt/tests/buster||re-purposing of the Adobe Xalan tests.||custom executable/C++||Driver is in mozilla, but test content is at Apache.||Info is current, but current run occasionally. Need automation.|
|DOM||being transitioned into MochiTest||browser and eyeballs?||Info is currrent. More tests to be transitioned. See roc, robcee.|
|CSS||verify spec compliance||reftest||running, passing, needing much to be added||Info is current. More tests needed. See robcee, dbaron.|
|XBL2||wiki||XBL2 still in design||Info is current. jonas|
|Browser/Content||May be transitioned to reftest or MochiTest, as appropriate.||custom executable/C++||Info is current. Several groups of tests need to be seperated, given TLC, automation.|
|Embedding||Tests seem fairly current but not building, why?||custom executable/C++||Info is in source, but not sure of source for more info.|
|Extensions||custom executable/C++||Info is in source, but not sure of source for more info.|
|Java Applets||list suggested by Java team at Apple||browser and eyeballs, wiki||Just a list. No automation is currently in process.||Info is current. See ray.|
|I18N||custom executable/C++||Info is current, but not sure of approach to automation plans.|
|Graphics||custom executable/C++||Info is current, but tests will need to be made current. Match to external Cairo testing for relevance.|
|HTML Parsing||Will need to deal with WHATWG/html5lib tests bug 366936. The htmlparser/tests/html test vs a baseline, but a baseline has not been stored.||custom executable/C++||Info is in source. Other source of info is unclear (perhaps mrbkap?)|
|Acid2||compliance tests from outside standards "watcher"||manually executed, Acid2 Browser Test||currently passing||Info is current. See timr.|
|XPConnect||TestXPC -> "FAILED to get a JSRuntime"||custom executable/C++||Info is in source, but not sure of source for more info.|
|Layout/HTML||1800+ files. These can be transitioned, probably to reftest. HTML file groups: CellMapTest, FrameSetNav, SlideShow, attributes, block, css, formctls, frameset, printer, style, table, tags, xbl.||"the old regression test suite" and reftest. Older tests will go to reftest.||Info is current, but a lot of tests need TLC, automation.|
|MathML||Do mathematical glyphs display correctly on all platforms?||"browsers and eyeballs"||also using w3c.org site content||Info is current, May be able to automate with reftest.|
|Plugins||Not known||Info is in source, but not sure of source for more info.|
|Java Plugin||not current, dev may feel out of loop||Info is current, but not sure of approach to automation plans.|
|Networking||25 test executables, but all must be given parameters||custom executable/C++||Info is in source, but not sure of source for more info.|
|NSPR||approx 150 test executables, most pass.||custom executable/c||Info is in source, but not sure of source for more info.|
|RDF||custom executable/C++||dsds (not being built), rdfcat, rdfpoll, triplescat (doc for invoke?)||Info is in source, but not sure of source for more info.|
|Security/NSS||26 tests, but not runnable without info||custom executable/C++ and "make check"||Info is current. NSS tests run externally. Need tests relevant to MoCo.|
|XPCOM||28 custom executables, most pass, can be better documented, xpcom/tests/unit/test_pipe.js (xpcshell)||custom executable/C++||Info is current, but not sure of source for more info.|
|XPFE||winopen.xul, runs but does not show final results||Info is in source, but not sure of source for more info.|
|XPInstall||pre_checkin_trigger.html, runs in browser, passes||Info is in source, but not sure of source for more info.|
|TestInfrastructure Name||Brief Description||Harnesses and Test Suites in the Infrastructure||Status of the Instructure||Notes|
|tinderboxen||Continuous build engine for Mozilla source, much chronicled in song and fable.||"make check", the results of which may not be verified||see dynamic Tinderbox display|
|buildbots||Continuous build engines, written in Python, cycling rapidly based on Bonsai checkins.||"make check", reftest and MochiTest||reported via Firefox tinderbox|
|QA Farm||some number of Windows, Linux and Macs. Details are not important. They should be a black box resource for developers to say "test this".||"make check", reftest and MochiTest|