最近在研究软件工程中最佳实践,接触了TDD(测试驱动开发),BDD(行为驱动开发),ATDD(可接受性测试驱动开发)。有一天,在路上走的时候,突然想了一下,他们之间有什么共通点呢?TDD,BDD,ATDD的本质是什么呢?
带着这个问题,咱们先看看上面这张图,我们知道在软件开发或者维护过程中,基本的主流角色有,开发,测试,客户,用户,项目经理,运维人员等。 而我们知道,在生产和开发一个软件的过程中,处处充满风险,这个时候,从宏观角度来说,做正确的事是最重要的;从微观角度来说,正确的做事也很重要。
首先来看,做正确的事是最最重要的,如果大家看过玩过或者看过传递猜词语游戏的话,应该知道,第一个人看到一个正确的词语,然后用动作表达出来,然第二个人猜意思,然后,在动作表达给第三个人。。。。。 往往到了最后,意思可能大相径庭。
那么,在软件开发的需求分析和实现阶段又何尝不是这样呢?本来客户需要的是一辆自行车,
结果却得到了一辆摩托车,
这一切的一切都是沟通惹的祸,其实就是没有做正确的被期望的事情。而BDD(行为驱动开发),ATDD(可接受性测试驱动开发)就是为了解决这个问题。我们知道,BDD或者ATDD,就是先写需求功能点描述,这种描述客户,经理,开发,测试都能看懂,既是没有写过任何代码的人都能看懂,而且是基于文本的。目的说白了,就是让开发出来的系统正是客户需要的,做正确的事情,正如上面的图所示,客户需要的是自行车,就真正开发出来自行车,而不是开发出摩托车。
而TDD(先写测试,再写实现代码,然后不停的迭代重构,循环)最要是为了给开发人员自己看的,为了让程序员对自己的程序有信心,也就是说开发写的程序是在做正确的事情。
所以,其本质都是围绕,做正确的事和正确的做事。以上只是代表个人观点,不喜勿喷!!!!!新年的第一天,关机睡了,祝大家在新的一年里心想事成!!!!!
原文链接:https://www.f2er.com/javaschema/283428.html