关于软件测试:分析-diff-上下游调用的工具想法

119次阅读

共计 1026 个字符,预计需要花费 3 分钟才能阅读完成。

本文由 williamfzc 发表于 TesterHome 论坛,点击原文链接可查看作者的更多文章并与 ta 在线交换。

背景与成果

在研发流程中无论是 code review、MR 根本都绕不开 code diff 的存在,而人眼很难精确评估 diff 的影响规模。

linkediff 能够在无需编译的状况下对你的代码进行解析,指出 diff 的影响范畴:

通过脑图能够看到:

  • 对 UTGen.java 产生了三块变更
  • 64-216 行这块影响了 methodsToCases 办法
  • 这个办法调用了近 40 个办法,并被 2 个办法调用

他同时也生成易解决的 JSON 文件便于与其余零碎(如 CI)配合。

应用

以后只反对 java 我的项目。

进入你本人的工程

git clone https://github.com/jacoco/jacoco
cd jacoco

执行剖析

通过 docker

docker run --rm -v `pwd`:/usr/src/app williamfzc/linkediff:v0.2.1 linkediff run

惯例形式

你须要装置 Python3 及 coca。

pip3 install linkediff
linkediff init

你会在你的我的项目目录下看到 .linkediff.json 配置文件,将其中 coca_cmd 指向 coca 可执行文件 的门路即可。

linkediff run

后果

在运行实现后你能够看到一些后果文件,如 ldresult.json, ldresult.xmind。联合本身须要进一步解决即可。

设计与探讨

智能 diff 性能存在我的 TODO 里很久了,之前的设计是:

  • tree-sitter(这里选型有很多)转 ast graph
  • ast graph -> 更高层级的、通用 graph
  • raw diff 生成
  • 代入 graph 抠出整条调用上下游

而起初偶尔发现了 coca,发现曾经将第二步与第四步实现了。所以趁着休息日摸鱼把这个最小可体验版本写(拼)进去了。

这个版本可能只会被用于验证价值与试水,如果有肯定应用场景再思考具体选型与适配。以后版本自在参加,构造也非常简单,欢送 PR 但请不要破费太多工夫。欢送各类倡议。

我的项目地址

https://github.com/williamfzc…

本文由 williamfzc 发表于 TesterHome 论坛,点击原文链接可查看作者的更多文章并与 ta 在线交换。

想要学习更多对于测试 / 测试开发技术、测试治理和品质保障的干货常识?
想要结识品质行业大牛和业界精英?
欢送关注第十届中国互联网测试开发大会·深圳站 >>

正文完
 0