软工实践专题——介绍测试工具

构建之法——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。

 

 

posted @ 2019-06-05 08:45  AnnZoe  阅读(133)  评论(0编辑  收藏  举报