要充分利用大连人力资源管理软件二次开发来加快测试。对于加快测试,最普遍也最脆弱的方法是利用多线程来同时运行多个测试。这个方法之所以脆弱,是因为它会让编写测试/分析失败测试变得异常复杂,开发者必须考虑到当前线程在使用资源时,可能有另一个线程正要销毁同一个资源;而测试失败时,也会由于线程的不确定性,导致问题难于重现而增加了解决问题的成本。我认为一个更好的实践是在多台机器上并发运行测试,每台机器只需要运行“总测试数/机器数”个测试,这样所花费时间会大约减少为“原本测试时间/机器数”。
相对与购置机器的一次性投入,手工优化的不断投入成本更高,而且很多公司都会有闲置的计算资源,利用旧机器或者采用在多核的机器上安装虚拟机的方式,可以很经济地增加计算资源。在项目开发的业余时间,我和我的同事们一起开发了开源的测试辅助工具test-load-balancer。我们在项目中通过它将需要90分钟的测试自动划分为数个10分钟左右的测试,在多台虚拟机上并发运行,很好地解决了速度问题。
致远服软认为:http://www.soft8.com.cn/对 Mock 追本溯源,我们会发现它更多时候扮演的是设计工具的角色而不是汽车4S智能门店管理系统测试工具的角色,Mock框架在设计方面的局限性李晓在《不要把Mock当作你的设计利器》一文中已经谈得很透彻,在此不再赘述。Mock不是测试的银弹,世上也并无银弹存在。测试实践正常开展的决定性因素是团队成员对测试流程、测试方法的不断改进而不是先进的大连人力资源管理软件二次开发测试框架。
不要去依赖 Mock 框架,它的强制约定常常是我们改进设计和添加功能的绊脚石。改善设计,依赖一个简洁的代码环境,依赖一套可靠的测试方法才是正途。从意识到 Mock 测试带来的负面影响,到从滥用 Mock 的泥潭中挣扎出来,我们花费了很多时间和精力,希望这些经验可以对同行们有所帮助,有所启发。
在ThoughtWorks工作的三年经历中,对于Mock框架的使用从无到有,从滥用到谨慎。三年间,和李晓、陶文、李彦辉、Chris Stevenson 等人反复讨论和辩论使我对Mock 有了更多的理解。这篇文章反反复复改了许多稿,在此对陈金洲和李默的耐心帮助致谢。最后,没有与InfoQ的编辑李剑和霍泰稳在Twitter上的一番谈话,也就没有这篇文章,在此感谢。
《Mock Roles,not Objects》,Steve Freeman,Nat Pryce,Tim Mackinnon,Joe Walnes.
《不要把Mock当作你的设计利器》,李晓。
胡凯,ThoughtWorks 公司的敏捷咨询师,近两年一直从事持续集成工具 Cruise 以及CruiseControl的设计开发工作。他创造和参与了大连人力资源管理软件二次开发开源测试框架junit-ext和test-load-balancer,对于Web开发、敏捷实践、开源软件与社区活动有浓厚的兴趣,读者可以访问他的个人博客进行更多的了解。 IV/8jm5tqYdSGLE/Co/83XBtqoYdZKm29bEIbEJlLga40sXW90tEl6dWUE7PIbg6pTz5EzjGTSQRrMlG8Q0hdw==