Item12728: Automated configuration testing notions
Priority: Normal
Current State: Proposal Required
Released In: n/a
Target Release: n/a
Applies To: Extension
Component:
Branches:
I have some notions (ie, partly-baked ideas) about automated configuration testing.
This is all science fiction at this point, but I'm pretty sure it would work and
it could be very useful to administrators, plugin developers, and occasional users.
The basic idea is that each plugin developer (or some other motivated party) would
create one or more example pages that show off a plugin's features.
They would then walk through the page, clicking buttons and such to exercise the page.
During this walkthrough, a JavaScript would record each event
and the resulting (serialized) state of the DOM (eg, using dashcode).
A reliable (eg, cryptographically strong) checksum would also be calculated and saved.
Finally, all of this could be stored on Foswiki.org.
This would provide a script of interactions and set of expected results for the plugin.
Anyone with a Foswiki installation could "play back" the interactions and find out
whether the plugin is acting as expected (eg, by comparing the checksums).
If a mismatch is detected, the DOM serializations and local configuration could be examined,
fixes attempted, etc.
Tests could be added or updated at any time,
because the local site would only ask for them when testing is desired.
Any desired amount of provenance information (eg, authors, version numbers)
could also be built into the system.
--
RichMorin - 23 Jan 2014
Rich, The way to get this stuff handled is to make a
FeatureProposals, and also find a
CommittedDeveloper, to work on them. Of course new developers are welcome, see
GettingStarted. Actually you are already listed as a developer.
We also have Selenium unit tests (currently non-working) for testing via the browser. Especially important for tools like the
WysiwygPlugin. The above ideas look very interesting, especially if it could drive another JS application like
TinyMCEPlugin
Actually this could be implemented as an extension without needing a feature proposal. But to get it into the development process, a feature proposal is the way to go.
--
GeorgeClark - 23 Jan 2014