SQLite的测试代码与生产代码的比率

kop*_*per 7 c sqlite testing automated-tests

SQLite声称测试代码比生产测试代码多679倍. http://www.sqlite.org/testing.html

有谁知道它是如何可能的?他们是否自动生成任何测试代码?这些"45678.3 KSLOC"测试代码的主要部分是什么?

Mus*_*sis 3

如果开发人员编写测试代码的时间是编写生产代码的 679 倍,那么这大概是可能的。试想一下:如果他们选择 339 倍的测试代码,他们可能拥有两个完整的数据库引擎,每个引擎的测试覆盖率仍然高得离谱。

我曾经看到一位开发人员同事试图安抚一位愤怒的客户,告知他们他编写的测试代码是生产代码的 5 倍,从而安抚了他们未能按期完成的情况。如果你能想象的话,顾客并没有安抚。至少我认为 5 倍覆盖范围不再极端了。

  • 编写测试代码的人可能比编写生产代码的人多。例如,本文描述了他们关于回归测试的政策 - 您根本不必了解 SQLite 代码即可为您刚刚发现和报告的错误编写回归测试(尽管必须有人将其放入测试工具中)。即便如此,45 个 MLOC 对我来说听起来还是一个令人难以置信的数字:即使它全部在存储库中,因此“不是自动生成的”,但其中很多可能首先是机器生成的,如果只是通过 emacs 宏的话...... (2认同)
  • 我怀疑很多测试(尤其是 TH3)是由手机制造商贡献的。他们对他们所提供的数据库引擎的*非常*彻底的测试有一点既得利益...... (2认同)