Resources

From Wikimedia Usability Initiative

Design

Tango Desktop Project

A project which defines a set of guidelines and resources for the design and naming of icons used in desktop software. The icons are licensed under a Creative Commons Attribution Share-Alike license and examples of the standard icon set can be seen on WikiMedia Commons. It's perhaps notable that the Tango Desktop Project uses MediaWiki for their own site, perhaps further indicating an alignment of objectives and values.

Gnome Art

A set of icons based on the Tango Desktop Project which have been tuned to the needs of the Gnome desktop. Examples can be seen WikiMedia Commons and also FreeDesktop.org.

Open Source Design Solutions

Wireframes

Other resources:

Vector Graphics

Requirements management

Testing

Wikiation extension testing

When software gets bigger, it becomes harder to maintain and support. Testing helps to get to grips with this. This environment's ultimate aim is to provide the best possible testing environment for MediaWiki usage. Both for developers, hosts and for users of the MediaWiki software. Extension testing does help to get a reproducable result of an extension. This does help the user to get a feeling of control.

MediaWiki Testing Environment

What was originally the "Wikiation Extension Testing Environment" has been forked into the "MediaWiki Testing Environment". It has been forked and the development has been continued. This software is Open Source and is available under the MIT license and is available from the WMF Subversion. Changes since the fork include new documentation including documentation that is delivered with the code. The software for environments is now using information from tables for improved maintainability and for consistent implementation of standards. It is now possible to create multiple instances of an environment in one go.

One important departure from the WETE is that we do not only concentrate on extensions. There is also a need to test MediaWiki itself and we have to be open for testing the underlying (LAMP et al) software as well.

Interaction testing automation

Selenium architecture diagram

An automated testing environment for multiple platforms using Selenium IDE, RC, and Grid. QA testers can do step based interaction testing using Selenium IDE, then output them as a Selenium script. The scripts can be run on Selenium RC servers, which will run the tests on different platforms and browsers. The process can be integrated into the development cycle to avoid regressions. See the Selenium architecture diagram for proposed implementation.

The idea of using Selenium for testing MediaWiki extensions was started a couple of years ago at Organic Design but was put on the back burner. There may be some useful ideas or code in it though, see OrganicDesign:Selenium and MW:Extension:Selenium for more information. Some example tests can be run here.

Setting up your environment to use the Selenium servers
  1. Ensure you have Java 1.6 or higher
  2. Download Selenium RC
Testing against the selenium servers

After unzipping the RC download:

  1. cd selenium-remote-control-<version>
  2. cd selenium-python-client-driver-<version>
  3. Add the below script as raskin-safari.py
  4. Run the script:
    python raskin-safari.py
from selenium import selenium
import unittest, time, re

class Untitled(unittest.TestCase):
    def setUp(self):
        self.verificationErrors = []
        self.selenium = selenium("raskin.usability.wikimedia.org", 4444, "*safari", "http://en.wikipedia.org/")
        self.selenium.start()

    def test_untitled(self):
        sel = self.selenium
        sel.open("/wiki/Main_Page")
        sel.wait_for_page_to_load(10000)

    def tearDown(self):
        self.selenium.stop()
        self.assertEqual([], self.verificationErrors)

if __name__ == "__main__":
    unittest.main()
Creating your own Selenium RC scripts

You can either create your scripts from scratch in selenese, or you can use Selenium IDE (a firefox plugin) to create the scripts through user interaction.

Test Cases

A page to summarize the automation test scope and cases are being built. Please help to make the test cases comprehensive.