软工实践专题——介绍测试工具
构建之法——6.5个人博客
作业要求:在软件测试章节中中,我们介绍了不少VSTS的软件测试工具,请使用一些其他平台上的测试工具,并写博客介绍如何在你的项目中具体使用。
ZZA示例:使用覆盖分析与SourceMonitor进行测试
一.首先要从github上把代码下载至本地
二.选取测试示例
三.植入eclipse
四.覆盖分析
1.通过测试覆盖率我们可以知道测试是否充分,还存在哪些潜在的风险和弱点,指导测试人员有目的补充增加覆盖率的测试用例。当然,也不用一味的追求100%的覆盖率,因为这不仅提高了成本,而且即便覆盖率达到了100%也仍会有未被用例设计到潜在BUG
2.在eclipse官网下载EclEmma
它是一个基于Eclipse的Java代码覆盖率检测工具,它正因为如下特性备受测试人员青睐:
高速的开发/测试周期:
A.像JUnit测试一样可以直接在工作台运行来分析代码覆盖
B.丰富的覆盖率分析:EclEmma会实时在Coverage布局中总结覆盖率报告,并在Java源代码中高亮显示覆盖结果
C.非侵入性:EclEmma无需修改测试项目内容或执行任何其他操作。
3.EclEmma安装
A.下载EclEmma
B.解压缩到任意目录
C.打开Eclipse,按如下流程操作:Help -> intsall New Software -> Add -> Local -> 选择EclEmma解压的目标目录 -> 确定 -> OK -> 选中EclEmma -> Finished
此时Eclipse会提醒重启,若没有提醒则自行重启,之后如果在工具栏看到Coverage标志,则表明安装成功!4.点击图标即可使用
五.SourceMonitor分析代码复杂度
1.代码的环复杂度(Cyclomatic complexity,有时也翻译成圈复杂度)是一种代码复杂度的衡量标准,在1976年由Thomas J. McCabe, Sr. 提出。
计算公式:
代码环复杂度 = E − N + 2
E = 程序控制流图中边的个数
N = 程序控制流图中点的个数
很容易得出这样的结论:代码环复杂度越高,越容易出bug。
可以想象如果需要开发人员自己去把一段代码的控制流图画出来,然后去数图中边和点的个数,这种做法效率太低了也容易出错。
Source Monitor能够帮我们来度量Java代码的环复杂度。当然这款软件也支持C++和C#。
1.在官网下载安装成功后,使用方法也是比较简单的:新建项目,选择语言,选择测试对象,选择保存路径,即可
2.红色线表示当前的情况,在绿色范围(所推荐的java良好代码,如平均复杂度在2.0-4.0之间)表示良好
右下是代码行数和代码深度(嵌套的层数)的比较
3.根据检验报告,就可以知道项目中那些class或者函数需要重构,相比起人工进行阅读代码,并确认重构代码部分,简单了很多
也算对代码质量有了最初步的量化概念,而不仅仅只是停留在过去只是在编码习惯优劣的认识。
数据会说话,程序员之间用这种方式更好沟通,talk is cheap, show me code and show me data。