谁为webkit写了250k测试?

amw*_*ter 22 javascript css testing webkit google-chrome

假设每小时产量为3,那就是83000小时.每天8小时制作10,500天,除以30来获得342个神话般的人月.我称之为神话故事,因为每人每周写125次测试是不真实的.

在那里,任何有智慧的灵魂都可以说明什么样的神话人物为大型软件项目编写了不真实的测试数量?谢谢.

更新 chrisw认为只有20k测试(请查看下面的解释).
PS我真的很想听听从事大型测试基地项目的人们的意见

Chr*_*isW 12

原始目录包含240K文件:

 Total Files Listed:
       243541 File(s)  1,062,470,729 bytes
       64718 Dir(s)
Run Code Online (Sandbox Code Playgroud)

其中许多是svn文件.如果我删除所有名为".svn"的子目录,那么文件数量将降至90K:

 Total Files Listed:
       90615 File(s)    537,457,618 bytes
        7190 Dir(s) 
Run Code Online (Sandbox Code Playgroud)

某些目录有一个名为"resources"和/或"script-tests"的子目录.我认为这些子目录包含辅助文件,这些文件由超级目录中的测试用例使用.如果我删除这些子目录(因为它们没有添加到测试总数),那么文件数量将降至87K:

 Total Files Listed:
       87672 File(s)    534,598,610 bytes
        6305 Dir(s)
Run Code Online (Sandbox Code Playgroud)

冷凝"类似"文件名(例如"arrow-keys-on-body.html"和"arrow-keys-on-body-expected.txt"是定义单个测试的两个文件)将总数从87K减少到43K.

包含超过1500个这些测试用例(如上所述计算)的唯一子目录是:

2761   LayoutTests\dom
10330  LayoutTests\fast (of which 5934 are in LayoutTests\fast\js)
22575  LayoutTests\platform (with various O/S-specific subdirectories).
Run Code Online (Sandbox Code Playgroud)

在平台子目录中,似乎在平台之间存在一些复制和粘贴.例如,该css3-modsel-37-expected.txt文件存在:

  • LayoutTests\platform\mac\css3子目录中
  • LayoutTests\platform\chromium-win\css3子目录中
  • LayoutTests\platform\qt\css3子目录中.

如果我丢弃复制到多个平台子目录中的文件名,那么只有5716(而不是22575)个独特的平台测试.

总而言之,我认为大约有18K的独特测试:这仍然是一个令人印象深刻的测试数量,但少于您在OP中估计的250K.


通过比较,我最近发现了CSS2.1 Test Suite:看起来像CSS的9000个测试用例.


Tho*_*nes 7

我刚在5分钟内完成了4次单元测试.并非所有单元测试都需要很长时间.有些很简单;)

  • `return true;`很简单. (19认同)

DVK*_*DVK 5

  • 有自动单元测试生成器之类的东西.对于复杂函数,您可能经常需要运行7个参数的可能值的所有排列.如果它们是布尔值,则得到2 7 = 128个测试.对于某些情况,这128个测试都是使用10行代码生成的.

  • 许多基于回归的单元测试可以通过获取大量输入,运行现有代码,记录相应输出,然后进行大量测试来生成新代码,在相同输入上运行并测试输出匹配来生成旧产出.

  • 编写单元测试是一项相当分散的工作.实习生/志愿者的军队可以并行完成.


Mat*_*att 5

来自webkit贡献指南

"对于影响布局引擎的任何功能,必须构建一个新的回归测试.如果你提供修复bug的补丁,该补丁还应该包括一个回归测试的补充,如果没有补丁就会失败,并且补丁会成功如果没有提供回归测试,审阅者会要求您修改补丁,这样您就可以通过预先构建测试并确保它附加到错误来节省时间.如果没有布局测试可以(或需要)为修复而构建,你必须解释为什么审阅者不需要新的测试."

问)谁写了这些测试?A)几乎所有为webkit做出贡献的.