Re: [问题] 没有明确的结果,如何写UnitTest?

楼主: littleshan (我要加入剑道社!)   2014-11-26 22:57:27
※ 引述《lovesnake (LoyalDog)》之铭言:
: 重新问好了,发现这样的东西似乎不适合提到算法。
: 我现在的程式有三个步骤 , 其中 1 2 3 各个步骤接会有一个资料输出。
: 但只有三个步骤皆完成后,产出的资料才有办法自动化判断正确与否。
: 其余1 2 3 步骤各别的输出,都一定需要人工判别,现在没办法自动化的东西有很多,倒
: 没什么争议。
: 那请问,针对 1 2 3各个步骤的个别输出,需要写UnitTest吗?
: 还是我的Unit的范围要扩大到整个系统呢?
: 因为个别的步骤的子系统也满大的,所以会想要针对各个子系统皆做UnitTest,
: 但又发现个别的输出无法自动化判别,这种情况会怎么做呢?
我认为 unit test 是手段,而不是目的。
也就是写出明显bug时,你可以在很短的时间内发现它,
自动化的 unit test 可以很有效率地解决这个问题,
但是当你的 test 没办法、或是很难自动化时,
你的目标应该转移到“如何缩短测试时间”。
也就是说,人工判别是 ok 的,但你可以试图让这个判断过程变得更有效率。
最好的情况就是你按下 build test,测试程式会马上把中间步骤的结果秀在萤幕上。
当然,资料量增加时你会需要更有技巧的测试,
比如说适度处理输出让出错的地方可以更明显被肉眼看到、
或是把人工判断为正确的资料 cache 下来,只显示有差异的部份等等。
当然这些方法适不适用是 case by case,
但有技巧的测试就可以让你的开发效率比完全不做测试、或暴力测试要好很多。

Links booklink

Contact Us: admin [ a t ] ucptt.com