On every release of WPML, we add new and cool features, fix bugs and… create new ones. This is very disturbing for us, as well as for the thousands who depend on WPML for their sites and we’ve decided to do something about it.
The next step in WPML development is to add a full test suite to it. The plan is to use the Automated Testing framework used by WordPress core itself. This way, we can add new features without running the risk of breaking existing functionality.
Background and some figures
WPML started as a pretty large plugin and over time evolved into a huge project (20,000 lines of code). It provides much of the functionality you can find in other, mature, content management systems.
For instance, in Drupal, the same functionality is achieved by no less than 8 modules – i18n, country flags, translation tables, translation overview, l10n server, potx, ICanLocalize Translator and menus.
Instead of complaining about how complex it is, we better create robust tests that allow us to develop it without having to manually test dozens of scenarios on every release.
We need your help to the test suite complete
By now, you must be wondering why I’m explaining all this.
We’re making a long list of tests, which we hope will cover as much as possible. However, I’m pretty sure that we’re going to miss out on many important things that need to be tested. And here is where you get to help.
Over the next week, we’re going to set up a bug tracking system. In order to report bugs, you will need to:
- Provide access to a place where the bug can be validated.
- Supply information about how to duplicate it in our testing environment.
Then, we’ll be able to add this case to the bug-tracking system and track its progress. Every bug will be added to the test suite, making sure that once it’s fixed, it stays fixed and doesn’t surface up again.
Ready to help? We know that reporting bugs this way is going to be harder, but the end results would be much better. By reporting bugs in a way we can track and fix, you’ll help make WPML better.