一、测试工具
1.静态代码分析:FindBugs、PMD
1) FindBugs:
a.检测基本的错误,如空指针;
b.仅限java
c.多种方式都可运行使用,如GUI、命令行、Ant、Eclipse插件集成、Maven
2)PMD:
a.
静态分析获知代码错误,即在不运行Java程序的情况下报告错误
b.JavaCC解析器生成器,检查是否含有未使用的变量、是否含有空的抓取块、是否含有不必要的对象等
c.仅限java
d.适用:
JDeveloper、Eclipse、JEdit、JBuilder、
BlueJ
、CodeGuide、NetBeans/Sun Java Studio Enterprise/Creator、IntelliJ IDEA、TextPad、Maven、Ant,、Gel、
JCreator
和Emacs
2.代码规范:CodeStyle
1)作用:
a.Formatter,格式化代码为有序的格式,形成良好代码风格
b.Code Template,辅助生成模板代码,提高编码效率;
c.Clean Up,格式化代码并清理或补全代码的相关项,统一代码风格
2)适用:
Java、JavaScript
3.测试用例+单元测试:Junit
1)简介
a.程序员测试,即所谓白盒测试
b.Junit是一套框架,继承TestCase类,就可以用Junit进行自动测试了
c.极限编程:构思-> 编写测试代码-> 编写代码-> 测试
注:编写测试和编写代码都是增量式的,写一点测一点,在编写以后的代码中如果发现问题可以较快的追踪到问题的原因,减小回归错误的纠错难度
4.代码覆盖率:coverage
1)简介
a.反映测试用例对被测软件覆盖程度的重要指标,也是衡量测试工作进展情况的重要指标
b.分类:语句覆盖、判定覆盖、条件覆盖、路径覆盖以及循环覆盖等等
c.敏捷开发团队而言,代码覆盖率是每个Sprint要完成的硬性质量标准(Exit Criteria)之一
d.代码覆盖率驱动的测试(CCDT,Code Coverage Driven Test):获取覆盖率 –> 发现未覆盖的代码 –> 添加新测试用例
e.用户场景覆盖驱动的测试:测试人员应该从用户真实使用场景出发,思考要测试的内容和设计测试用例
注:CCDT是对USCDT的必要补充,以发现其中未覆盖的场景(Test Hole)