Wiki regression testing

From Apertium
Revision as of 07:21, 8 December 2009 by Jacob Nordfalk (talk | contribs)
Jump to navigation Jump to search

Regression testing[1] is the way of testing (translating) a lot of "test phrases" and compare the result to the expected output. This is very useful if you want to change a rule or word and want to get an overview of the consequences. Along with testvoc and corpus test it is a good way to test that your translator works, and that your changes haven't broken anything.

The regressions tests work by downloading a wiki page with the phrases and the expected output like the page English_and_Esperanto/Regression_tests and then running the translator.

Installation and invocation

You could simply copy the script regression-tests.sh from an existing language pair and change the names in it.

To start, type sh regression-tests.sh on a Unix box.

Troubleshooting

If you get output like: regression-tests.sh: 28: [[: not found then try bash regression-tests.sh or make the script executable (chmod a+x regression-tests.sh) and execute it by ./regression-tests.sh .

Output

For each test, the scipt prints 1) source language 2) expected (correct) output 3) actual output from Apertium. In some test scripts it will only print out the "failed" test (where the expected and actual output is diverging), and in other test scripts it will print out all of the tests, and a summary.

All printing style

Example
$ sh regression-tests.sh 
sv-da	  Jag vill gå en tur
WORKS	  Jeg vil gå en tur

sv-da	  Du vill gå en tur
WORKS	  Du vil gå en tur

 ....

sv-da	  Maten är äten
	- Maden er spist
	+ #Mad er spist

sv-da	  Äpplet är ätet
WORKS	  Æblet er spist

22 / 23
~95.65%

No-printing style

Example
en-eo	  In the 'Boards' section you can change the list of activities. 
	- En la sekcio 'Tabuloj' vi povas ŝanĝi la liston de aktivecoj. 
	+ En la 'Tabuloj' sekcio vi povas ŝanĝi la listo de aktivecoj.

en-eo	  Just untoggle them in the treeview. 
	- Simple malelektu ilin en la arbaspekto. 
	+ Nur *untoggle ilin en la *treeview.

en-eo	  You can save multiple configurations, and switch between them easily. 
	- Vi povas sekurigi multajn agordojn, kaj ŝalti inter ili facile. 
	+ Vi povas savi *multiple *configurations, kaj ŝanĝo inter ilin facile.

en-eo	  You can add multiple profiles, with different lists of boards, and different languages. 
	- Vi povas aldoni plurajn profilojn, kun diversaj listoj de tabuloj, kaj diversaj lingvoj. 
	+ Vi povas aldoni *multiple profiloj, kun diferencaj listoj de tabuloj, kaj diferencaj langoj.

See also

  • See the Wikipedia article Regression testing