Greetings Apertiumers!

TL;DR: I'm designing a regression testing framework and hope to use it
to improve testing across all of Apertium if no one objects.

I have recently been designing a regression testing framework for
Apertium language modules and translation pairs so that we can have a
measure of quality assurance in all repositories and have this measure
be consistent across the organization.

If Apertium participates in Google Summer of Code this year and my
project is accepted, I intend to implement this system and apply it to
all repositories, converting any existing tests in the process. If I
do not do this as part of GSoC, I still plan to work on it, barring
unresolvable objections, though it may take longer.

As this is a change that affects everyone, I thought it was probably a
good idea to get community input on this as early as possible.

The current version of my proposal can be found at
https://wiki.apertium.org/wiki/User:Popcorndude/Regression-Testing

In summary, the developer provides a file containing a list of inputs.
The testing framework passes these inputs through the translation or
analysis pipeline, recording the output of each step. These outputs
are compared to the outputs of previous runs and the ideal outputs (a
particular input need not have an ideal output and it may have
several).

Any differences that are found are presented to the developer. If
these differences are an improvement over the previous output, they
will become the new standard of comparison.

In this way, the test corpus will serve the function of a set of unit
tests which catch regressions while at the same time automatically
updating to reflect improvements.

I believe that all existing tests can be converted to this format
without loss of information. Doing so would also be an opportunity to
complete the transition from 2-letter codes to 3-letter codes and
ensure that all repos have good READMEs.

In addition, this could be set up with continuous integration
(probably through GitHub Actions) which would give us the ability to
automatically validate commits and PRs as not causing regressions and
also generate status badges for the READMEs to indicate things like
WER and coverage.

In any event, I welcome feedback on this proposal, whether by email,
on the wiki talk page, or on IRC (nick: popcorndude).

Daniel


_______________________________________________
Apertium-stuff mailing list
Apertium-stuff@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/apertium-stuff

Reply via email to