持续稳定的交付产品提案No.7
目标:在每次版本发布时,保障产品的稳定可靠。
在软件开发中,从用户需求到交付可用的功能通常需要经过:需求分析、软件设计、需求拆分、任务拆分、编码、测试、验收交付等步骤。由于需求理解的偏差、设计的缺陷、编码错误等等原因,Bug会以各种形式出现在各个阶段出现。
我们如何能最大限度的降低Bug出现的频率和所带来的影响?
什么是TDD
TDD,英文全称Test Driven Development (测试驱动开发),是一套用于敏捷开发的方法论。简单来说,TDD是在编写业务代码之前,先实现测试用例,然后通过编写业务代码来满足测试用例的要求。
TDD的基本流程如下:
ATDD和UTDD都是TDD的实践。
ATDD,英文全称Acceptance Test Driven Development(验收测试驱动开发)
ATDD强调客户、产品、研发和测试之间的相互配合,对需求进行沟通、分解和确认,让团队中所有人对需求的理解达成一致。由测试定义能够满足业务需求的验收标准。再由研发根据验收标准编写业务代码,并确保业务代码能满足验收标准。ATDD的目标是确保交付的功能满足客户的业务需求,与客户保持紧密的联系和协作。
UTDD,英文全称Unit Test Driven Development(单元测试驱动开发)
UTDD强调在编写业务代码之前先实现单元测试。在UTDD中,同样要求产品、研发和测试参加需求评审,要保证团队所有人对需求的理解达成一致,并对需求进行差分成更小的需求点,由测试根据需求点来编写单元测试,然后研发编写业务代码来实现这些测试要求。通过不断实现可通过单元测试的需求点,团队可以确保每个需求点的稳定可交付状态。UTDD的目标是通过单元测试来驱动业务需求的开发,提高了业务逻辑的稳定性。
ATDD适合满足客户的定制开发需求,保证交付的功能满足客户业务需求。UTDD适合在产品功能持续交付过程中,为业务逻辑的稳定运行提供可靠的保障。