下午好。 是否有关于自动化(单元和集成)测试的好处的研究。 我试图向我的同事证明这是有用的,并且会 为公司带来利润,但在论点中,我会 喜欢参考研究结果。
答案 0 :(得分:0)
在我以前的一位雇主中,我们自己进行过这样的研究。但是,它尚未发布,但是结果清楚地表明,单元测试是有益的-从某种意义上说,考虑到整个开发周期,单元测试的价值不菲。但是,参与研究的人员在单元测试方面受过训练和经验,并渴望不断改进。这意味着,他们提出了如何以一种明智的方式(包括处理依赖关系等)来应用单元测试的方法,并且可能更重要的是,他们在单元测试没有意义的地方进行了新的设置。也没有正式的覆盖目标,因此没有压力将单元测试应用于没有意义的区域。
在衡量成本和收益时,我们会尽量保持中立,并考虑所有涉及的工作,包括编写和运行测试以及分析结果的时间,重构可测试性的时间,培训时间,讨论时间(向同事询问如何单元测试(某些功能),SUT更改时的测试维护时间等。在好处方面,我们记录了由于进行单元测试而较早发现的错误的数量。
但是,我们看到,无论单元测试是否正确,它都会产生巨大的影响。这意味着,您可以以不增加预期缺陷的方式增加开发工作量的方式来应用它。例如,在另一个组织单位中,开发团队被迫进行单元测试。但是,他们在已经对代码进行了大量调试的 之后进行了单元测试。毫不奇怪,他们发现在进行单元测试时,他们发现的错误并不如预期的那么多。 Meszaros在http://xunitpatterns.com/Goals%20of%20Test%20Automation.html也很好地讨论了“正确做事”的重要性。
因此,我们的研究表明,如果单元测试是由熟练且有干劲的人“正确地做”的人执行的,那么正确的行为包括“非教条地”。如果由仅仅因为被迫而做的人执行此操作,可能是受到正式覆盖目标的驱动,那么您可能会发现单元测试是无益的。