精准测试新玩法の基于犯罪心理学挖掘代码风险
副标题[/!--empirenews.page--]
前言 ? 犯罪心理学还能用于挖掘代码风险? 挖掘出来的东西是什么? 挖掘出来的东东长什么样子? 挖掘出来能用来做什么? 具体怎么样挖掘呢? 这是本文的主要探讨的内容. ? 在大型的项目中,代码和模块的复杂度在很大程度上决定了测试任务的时间,? 在项目快速迭代而测试时间比较短的情况下,怎么样高效的完成测试并且保证测试质量?? 如果我们能找到这些经常出问题还有潜在可能出问题的代码和功能区域,我们的测试就能更高效. ? 犯罪心理学还能用于挖掘代码风险? - 答案: 是的? 地理罪犯分析调查法基于了这样一个原则:罪犯的老窝往往就在他/她作案地点的边界之内.那么,软件测试是否有这样的属性呢? 犯罪分析心理学能够指导我们测试么?? 是的,?本文介绍的就是如何从代码本身挖掘出代码的问题从而指导测试的一种思路和方法. ? 如果我们把代码当成犯罪现场,我们测试中所发现的问题和缺陷有什么地域属性(此地域指的是代码和功能区域) 么? 很多问题是不是会有相似的属性,是否某些文件和功能会经常出现问题.? 我们能否用某种方式定位出这样的热点区域呢?答案是可以的. ? 那么我们是否可以用历史数据挖掘出代码本身的问题么? 事实上,我们从版本控制工具,bug数据信息,或者其他历史信息里面能找到很多有用的信息,文章后面会讲述如何为代码创造地理呈现。区域和建筑物映射代码的结构,如包或类。代码属性(如代码行数或方法数量)决定区域和建筑物的尺寸. 再结合代码版本工具既能呈现出代码高风险区域即代码热区. 再结合代码和功能之间的对应关系,就可以找到需要重点测试的功能区域(高风险的代码对应的功能模块),从而提高测试效率,这和精准测试的目的是一样的. 挖掘出来的东西是什么? - 答案:代码热区代码热区指的是被频繁改动的代码文件, 这个改动有可能是因为代码复杂度过高或者代码耦合性太强而造成新增功能都需要改动这些代码文件, 也有可能仅仅是因为代码实现的有问题需要频繁改动来修复bug 挖掘出来的东东长什么样子? - 即代码热区长什么样子?下图是几种已有工具展示的热区: CodeCity (红色的就是代码热区)CirclePacking展示 (红色的就是代码热区, 后文会讲怎么得到这个图)此工具支持缩放 ? 其实展现形式并不是最主要的,我们关注的是用代码热区能做什么. 挖掘出来能用来做什么?- 即代码热区能用来做什么?? 如前言里面讲的,精准测试的主要目的是在测试之前缩小测试的范围, 从而提高测试的效率,而如果我们能通过某种方式从历史数据中找到容易出风险的代码区域也就是所谓的代码热区,这样也可以锁定重点测试的区域,从而达到提高测试效率的目的。 ? 从版本控制工具,不仅能过滤出代码风险,还能得到代码耦合度和代码复杂度关系. ? 对于开发人员,代码热区能提供十分有用的信息,我们可以通过代码热区再加上代码复杂度,代码耦合度等信息来衡量代码的架构和质量,有效的指导软件代码重构。 ? 对于测试人员, 不同的测试阶段的使用方式稍微有些不同, 具体可参照下面的表格(最后一部分也会进一步探讨怎么使用): ? ? 具体怎么样挖掘呢?- 即怎么样得到代码热区?要找到代码热区进行测试,我们需要如下步骤:
具体要怎么做可参考下面的步骤: 需要安装下面工具:
Windows:?download link OSX/Linux:?download link 安装完后请将执行路径加到系统变量path
http://cloc.sourceforge.net/ 安装完后请将路径加到系统变量path
https://tortoisesvn.net/downloads.zh.html 安装完后请将路径加到系统变量path 如果是git的话请安装对应的工具
|