建立开发目录和开发规范
开发流程
获得需求后,axure 画出程序界面沟通
针对某一功能,使用 EA 进行简单设计
列出开发清单(要开发的内容,不时将新功能加入)
对于清单每一项
考虑输入和返回 边界条件 , 产生单元测试
先从简单的测试(能够打开思路,且知道如何测试)开始编写
使用stub和Mock 隔离类和接口之间
尽量基于接口编写测试,不要因为只有一种实现,不写接口
在写测试可能会引入新的测试,写在清单上
使测试尽快运行
在开发中记下自己的收获,错误原因
进行重构
运行findbug
修改错误
先编写一个测试,将错误暴漏出来;
修改错误;
测试通过;
重构程序;
测试通过;
阅读代码
先操作学习功能
查看配合文件其基本结构
使用EA 逆向得到类图
查看具体代码
测试内容
正常测试:
正常流程
边界值测试:
小于,大于和等于边界值;
循环
0,1,n-1 n
越界数值
异常测试:
类型不匹配
测试注意事项
如果单元测试涉及到可变信息(如当前时间),需要将待测试数据也变为可变,否则无法回归测试
使用测试驱动开发必须从头开始,严格进行,否则到半中间会很费事的。
不要认为压力大,就不写测试代码。相反编写测试代码会使你的压力逐渐减轻,应为通过编写测试代码,你对类的行为有了确切的认识。你会更快地编写出有效率地工作代码
在 增加新功能,增加新测试,重构三顶帽子间切换
根据传入的参数组合和产生的结果,从action开始编写测试
学习开源框架
永远不要生搬硬套最佳实践和框架
要为了解决问题而学习框架,不同的框架只是为了解决不同领域的问题
方法:
1. 多看几遍 reference,第一遍浏览,目的是了解框架的整体结构和大致功能;第二遍重点章节仔细阅读,并进行一定的代码实践,目的是彻底掌握某分支领域的知识。第三遍带着问题阅读,在文档中寻找答案
2. 精度网络教程: 带着问题去读,而不要当做核心文档去读
3. 运行 sample项目 ,一般 xx-blank-xxx 是最小运行范例, 以struts为例 struts2-showcase 包含所有特性
4. 自己实践
5. 带着问题调试 开源框架的代码