当我们启动§§1§§§时,我们首先编写了许多单元测试来保护ImageJ 1.x基站回归错误的影响。在撰写论文项目时,已经对50个核心IJ1类进行了单元测试,旨在检测ImageJ开发过程中引入的错误。这些测试位于ij1-tests repository中。
最初,这些测试目的是为了我们正在开发的 IJ1 修改版本运行,以促进与 IJ2 的集成。然而,随着开发的继续,我们通过将 IJ1 按原样嵌入 IJ2 中来实现最大§§3§§§的设计,使 IJ1 能够与 IJ2 继续着力开发。我们取消了 IJ1 的修改版本,只保留了单元测试。不幸的是转换了,我们没有完全测试的,并且他们没有针对IJ1的库存版本进行编译。
目前,我们已经修复了针对 ImageJ v1.44 及更高版本的库存版本编译(r4092)和运行(r4096、r4098)的测试,并发布了instructions for running them。
然后我们对所有1.45开发版本进行了测试。结果如下。
随着时间的流逝,一部分但越来越多的测试失败,这些代码中的行为正在发生变化。当然,有时行为改变是好的,例如修复错误时。但有时这些变化表明引入了回归错误。唯一确定的方法是逐次检查每个故障。对于每一个,需要或者更新测试(在错误修复的情况下,在测试以前的错误时行为导致测试失败),或者需要修复代码保留以前的行为(在更新回归错误的情况下)。
一旦所有测试通过,Jenkins就可以在ImageJ 1.x新版本发布时自动运行它们,并通过电子邮件报告任何失败,以便我们在恢复错误时及时发现。
|
版本 |
结果 |
|---|---|
|
1.43u |
无法编译(版本太旧) |
|
1.44o |
全通行证 |
|
1.45a |
全通行证 |
|
1.45b |
2次失败:
|
|
1.45c - 1.45h |
4次失败:
|
|
1.45i - 1.45n |
5次失败:
|
|
1.45o - 1.45q |
7次失败:
|
|
1.45r+ |