敏捷和TDD

网友投稿 669 2022-05-30

第一部分:敏捷实践

敏捷和TDD

敏捷:是一种应对快速变化的需求的一种软件开发能力。更强调程序员团队与业务专家之间的紧密协作、面对面的沟通(认为比书面的文档更有效)、频繁交付新的软件版本、紧凑而自我组织型的团队、能够很好地适应需求变化的代码编写和团队组织方法,也更注重软件开发过程中人的作用。

Story:可以理解为一张简单描述任务的卡片,由于敏捷迭代开发要求快速持续交付,所以要求每一个story是一个尽可能独立的小任务,最佳实践证明每个story1-2人做1-2天。

站会:一般时间早上或者下午,要求每个人称述三件事:1)昨天做了什么?2)有什么问题?3)今天做什么?

codeRevive:第一阶段:不是审代码,是集体听每个提交代码着的思路,方案,审设计问题;第二阶段:审查代码是否可以重构,是否用代码可以替代注释;第三阶段:挑剔,命名不规范,格式缩进等。

新人培养:pair,其实看资料是一个自学任务,重点是怎么快速上手,那就是pair,在做任务时,你写我看,我写你看,交叉。

工具使用:用过一次完整版的Idea,再也不想用eclipse,程序员学会三件事:命令行+免费软件+翻墙工具。

第二部分:TDD(测试驱动开发)

Test:包括UT(开发者)和AT(测试,开发,SE)+自动测试(测试,SE)+其他测试(其他人)

注意点:

1)   UT测试必须是幂等的;

2)   统一平台使用统一框架;

3)   写UT纳入代码监视(若纳入监视能够保证质量,但同时写UT必须纳入任务工作量)

4)   最佳实践证明:有用的UT覆盖率只能达到60%左右,若在高,有可能与AT重合,自动化重合等无用的。

测试驱动开发举例:

需求描述:

出租车两公里以内为6元,不超过8公里,每公里收费0.8元,超过后每公里多收0.4元,等待每分钟是0.25元,最终收费四舍五入,实现出租车收费系统。

需求用例分析

用例1:输入:miles=1.1km, waitTime = 2.1minutes 输出:7元

用例2:输入:miles=7km,waitTime = 0minutes 输出:10元

用例3:输入:miles=9km,waitTime=4minutes 输出:13元

用例4:输入:miles=-3km,waitTime= -5minutes,输出:Exception

用例写作(用例全部为红色)

代码实现(所有的用例完全变绿):

代码重构(在上面代码中if等判断可以单独处理),选中代码后快捷键:ctrl+alt+m 出现如下界面:

点击ok后,生成单独方法:

模式设计:

面向对象的三大特征,五项原则,23种设计模式,后面有时间补充。

开发者 敏捷开发

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:华为发布HiAI人工智能引擎:P20首发
下一篇:云声年终好礼来袭,你与华为AI音箱只差一条优化建议的距离
相关文章