Thursday, 27 November 2008

Testing against "head"

The extension testing environment is first and foremost intended to test the functionality of extensions that are to be run on wikis that use the stable versions of the MediaWiki software. There are however extensions like the CreatePage extensions, that have been developed outside the Wikimedia Foundation and that would provide a welcome addition to the WMF projects.

In order to provide the right arguments for such an adoption, it makes sense to test extensions on "head" as well. This argument I posed to Bernard, and he has graciously granted my request. Kim has been asked to make it so.

Several people use the testing environment for their purposes. I learned that even Translate is being tested. If you have a need for testing your extension, the environment can be made available to you too.

Saturday, 22 November 2008

What stable releases to support?

I was asked what releases do we support in our MediaWiki extension testing. The question is not so much against what releases we can test against, the question is, what gives the best return of investment.

At this moment, the Wikimedia Foundation supports the 1.12 and 1.13 stable releases. People are urged to be as up to date as possible. To stay up to date, people need to know if the extension they have installed will work in these releases.This is the information that we aim to provide.

By concentrating on the stable versions, there is a combination of technical and localisation support for the core MediaWiki product. For extensions there is plenty of room for improvement; the localisation is currently not supported for previous releases and it is less clear what version of the extension works on any given release.

When you want to learn if an extension changed in its behaviour compared to an old version of MediaWiki, you too can test extensions in our environment. When you want to learn if your extension will work against "head", the test environment is there for you as well.

Wednesday, 19 November 2008

Betawiki supports Uniwiki extensions

The Uniwiki extensions were developed by UNICEF. They were developed based on usability studies. Studies that found that that 100% of newbies were not able to create a new article in a MediaWiki environment, studies that help explain why so many of our projects do not grow as we want them to do.

We have been doing some testing, and we have found that this software does not work against the bleeding edge software used by the Wikimedia Foundation. Siebrand had a look and fixed the localisation, MinuteElection has a look and fixed a bug.

We are currently talking with Kennisnet and we aim to get in contact with UNICEF. We really think it is important to get more usability into MediaWiki this will help the smallest 80% of our projects a lot.

In the meantime, I am really happy to announce that Betawiki now supports the localisation or the 12 Uniwiki extensions. In anticipation of finding support for these extensions, Siebrand has opened up the localisation for these important extensions.

Getting started with testing

Wikiation has developed the ExtensionTesting software and environment. They have put a lot of effort in making sure that MediaWiki extensions can be tested in a structured way, in a way that helps all users of a MediaWiki installation.

When people create an environment like this, it is important that it provides great, inviting tools that make it almost compulsory to use. To help Wikiation achieve this goal, Stichting Open Progress has sought MinuteElectron to help test drive this environment and test an initial set of extensions.

There are not that many extensions that we have a special interest in. You can suggest extensions for us to test. Particularly requests that include information of what needs to be tested will be of our interest.
Gerard Meijssen
Stichting Open Progress

Monday, 17 November 2008

What tools do you need?

Currently we have:
  • virtual servers as test environments (Instead of making things bulletproof, we make things easy to re-spawn)
  • simple straightforward diff-tests to flag potential situations where extension installations stomping on each other.
  • server side regression testing.
What else do we need?

Extension testing

MediaWiki provides a rich environment to its many users. Because of its open source nature, many people develop functionality that is not provided out of the box.

Wikiation does wiki hosting for organisations. When creating a new extension changes has to be made. Quality within organisation is of very high interest. So if a extension has been modified in one detail, the complete extension has to be tested again. Because this change may create an other bug. That is not acceptable. So testing must be intensive. So when there are changes, testing is required again.

Brion Vibber, the CTO of the Wikimedia Foundation, releases several times a year new stable versions of the software. Its recommended to upgrade installations because improved functionality, security and localisations become available. This does results, for each new MediaWiki version, changes to existing extension which may not work any more as they did in the previous version.
So if there are external changes extension testing is required.

There are more then 1000 MediaWiki extensions If a customer of Wikiation does have an interest in a specific extension, Wikiation would like to make it available. But does the exension work as expected? Does the extension make modifications in the core of MediaWiki which might influence the behaviour of the rest of the system? So when a extension written by others is to be used, extension testing is required.

All tree cases are about quality. Does it work as it supposed to work? Is it reproducible. Will my current wikipage, with a specific extension, produce a identical result with a new version of the extension. People are very good in creative tasks, but quite bad in working accurately. Proper testing requires accurate work. And if you want really quality each change requires that everything is tested again.

This task is so huge that a human hardly can do it. The most often used solution is, less testing. That does work but it has to be paid by less quality. Wikiation did search if automated MediaWiki extension testing did exists. It did not. Because of the quality requirements, Wikiation decided to develop its own extension testing system. Each extension on any MW version has to be tested in an automated way. With predefined test sets for specific extensions in specific situation a predefined result has to be generated by the extension. If it does, the status is Ok otherwise it fails. A failure may be an error, but it also may be the wished for improvement. Only a human can be the judge of this.

Wikiation does use MediaWiki software as a hosting company, it could keep the results of this extension testing all to it self. But I do feel it is good to return something to the MediaWiki community. So this extension testing is free to use. The developed software is provided as open source under the GNU 3 license. The documentation and test results at is based on the Creative Commons Licence. And if you need a CleanMachine for testing, for a very short period, you can use it free of charge. The only thing within extention testing were all rights are reserved is the extension testing logo. I hope you can live with that.

I am not really a blogger. I did start the extension testing. GerardM took the initiative to start this blog. I do thank GerardM also for his help to localise the extensions Wikiation has build.

There is still much to do. Please do your testing, and use the test results others have made. If quality is important to you, join.