这在很大程度上取决于项目类型(例如,科学软件与银行系统还是游戏)?如果是的话,差异在哪些方面是最高的和最低的?根据您的经验,可以肯定地说,作为一项规则,运行单元测试所需的时间至少比构建软件的时间长一个数量级吗?
发布于 2011-07-23 10:17:17
不是关于项目的类型,而是与项目相关的问题。
如果你正在开发一款用于控制核电站的软件,你很可能需要做大量的测试、代码评审等等。对于那些涉及到巨额资金和生命的项目来说,花上几天时间来决定是否必须编写,如果是的话,如何添加测试等等,这是很正常的。这也意味着你将有大量的测试代码,与一个相当小的代码库的编译时间相比,运行起来会慢一些。
另一方面,如果您正在为您的个人网站编写一段代码,您的家人或朋友最多只会访问这些代码,那么您很可能会将所有的时间都用于开发新功能,而根本没有测试,所以运行单元测试的时间总是为零。
尽管如此,我不明白为什么要将运行测试的时间与编译代码库的时间进行比较。这是两个完全不同的过程,没有任何共同之处。假设你想测试一个简单的Hello应用程序,它必须等待10秒,然后显示"Hello“。测试可能会运行大约20秒,甚至更长,而编译时间则是几毫秒。
发布于 2011-07-23 10:45:46
根据您的经验,可以肯定地说,作为一项规则,运行单元测试所需的时间至少比构建软件的时间长一个数量级吗?
不是的。这取决于太多的事情,比如有多少测试,需要多少设置,使用什么语言(C++编译速度慢,但运行速度快),编译器的效率等等。
此外,由这个比率可以得出甚麽有意义的结论呢?
发布于 2011-07-23 12:02:36
我们正在制作一个游戏引擎,我们的单元测试运行的时间和编译引擎的时间差不多。但是:
我想,大多数应用程序都不适用这一点。所以是的,我认为你提到的比率取决于应用程序的类型(不完全,但它确实取决于)。
https://softwareengineering.stackexchange.com/questions/95400
复制