[sword-devel] linking / testsuite

Jonathan Marsden jmarsden at fastmail.fm
Wed Apr 22 18:21:51 MST 2009


Ben Morgan wrote:

> If you have 66 books of the Bible and many different ways of
> referencing them, testing every single way isn't necessarily all that
> easy. Then multiply that by every locale that is there.

A regression test doesn't (usually) try to give complete coverage of 
anything, just enough tests to convince the team that functionality that 
is now "correct" does not later become "incorrect" without someone 
quickly noticing the change.

In this case, testing (say) 3 common abbreviations for each book name 
followed by the first verse of the first chapter, for each of the 66 
books, is 66 * 3 = 198 tests, and just using a single very boring locale 
(either C or en_US.UTF-8) would catch what happened recently -- and so 
would notify developers by failing if the change were to accidentally 
disappear (the wrong revision is tagged/checked out of svn by mistake, 
say) between now and the official 1.6 release, for example.

In practice, a really "good" regression test for abbreviations might 
include a couple of other locales too, perhaps one Western European one 
that needs a few accented Latin characters (French or German or Spanish, 
say), and one that needs its own non-Roman alphabet (Cyrillic, or 
Korean, or Arabic, maybe).

At this level of coverage, we'd be looking at a maximum of 66 * 3 * 3 = 
under 600 test items.  That's entirely doable, surely?

Beyond that, subject matter experts for each locale might come up with 
"special" "known to be peculiar" abbreviations they feel it would be 
good to add as additional tests... but that's moving away from the realm 
of basic regression testing, really, I think.

If I have time later tonight, once I have a sword 1.6.0RC2 package out 
for front end developers to test with, I'll see about creating the 198 
item single locale test and (if I succeed!) I'll contribute it to the 
SWORD codebase, just to demonstrate that creating such a test really is 
in fact doable :)

> I think the vk1 = vk2 change is
> more important to test than the other, really.

You provided no basis for this opinion.  I think that *any* significant 
change that happens after an rc release is worthy of a regression test, 
more or less by definition.  My reasoning: the developers thought the 
codebase was good enough to release, and it turned out not to be.  This 
most likely means that the bugs found were unexpected or subtle or hard 
to test for, and yet were deemed significant enough to warrant fixing 
before final release.  Therefore, surely, each such bug deserves a test 
in the regression test suite.

Basically, bugs you find in an RC release are often the "creme de la 
creme" of bugs... treat them with respect :)

Jonathan



More information about the sword-devel mailing list