最近站会时,经常听见开发人员说某Story已经开发完了,等待联调,然后就没有然后了。对于联调时间点近的,开发人员会等一等,一天的时间很快就过去了;时间点远的,开发就领新story了,等另一端开发完,已经若干天过去了。我总觉得其中有什么问题,但是说不出来。上周去QCon听了韩老师的分享,突然发现这种联调在以前团队的也是有的。只不过我们的解决方式不一样,所以问题没有这么突出。 产生问题的原因很简单,现在的软件开发,因为系统复杂性提升,模块拆分也很普遍,很难形成一个团队做端到端交付,没有任何外部依赖。典型场景是模块A由一个团队1开发,模块B由团队2开发。这时,团队A的功能开发完成后必须要和团队B开发的相应功能联调。目的是走一个端到端的流程,确认功能正确。 问题也来了,
之前的项目中我们使用一种契约测试(Contract Testing)的方法来解决这个问题。
这种方法,节省了开发人员的联调时间,QA直接测试端到端的功能。同时遇到问题时也很容易定位问题产生根源。 这种测试与模块A自身的单元测试不同,着眼点在确保模块外部依赖的正确性。有了这层保障,模块A的单元测试就可以使用Test Double(Fake、Mock等),构造出更关注于自身逻辑的测试集,提高测试的运行速度和稳定性。 采用这种方法时有两个问题需要考虑,
在写这个的时候,顺便搜了一下,发现了老马的这篇文章IntegrationContractTest,基本思想类似,实现上稍有不同。最后总结一下,手工联调这种费时费力的工作,能少做就少做,能自动化就自动化,搞软件的生命短暂,浪费在这上不值。 原文链接:http://www./article/42460 【编辑推荐】 【责任编辑:chensf TEL:(010)68476606】 |
|