点击蓝字
关注我们
第10章 测试新动力
AI在软件测试工作中的应用
10.3.2 用AI由代码自动生成流程图
在产品的研发过程中,我们经常会遇到时间紧、任务多的情况,此时很多开发人员会先写代码再补设计方案,或者不写设计方案。
这种情况对于软件测试人员是一个很大的挑战,因为如果想要深入理解设计,只能根据代码分析,例如一边看代码一边画出对应的逻辑流程图。而现在,AI 工具可以很轻松地帮我们完成这件事。
下面结合案例,介绍如何让 AI 工具分析代码并生成流程图,助力我们进行代码分析。
第 1 步 准备好让 Kimi 生成流程图的代码
下面是用 Python 写的判断闰年的代码,以它为例进行讲解。
def is_leap_year(year):# 判断是否为闰年if( year % 4 == 0and year % 100 != 0 )or( year % 400 == 0):return True else :return Falsedef main ( ):try :# 输入年份year = int( input( " 请输入年份:")) if is_leap_year(year):print( f"{year} 是闰年。") else :print( f"{year} 不是闰年。")except ValueError :print( " 输入错误,请输入一个有效的年份。")if name == " main " :main ( )
上面的代码是可以正常运行的(将上面的代码保存为 .py 文件,在命令行执行即可),

图 10-2 展示了代码的运行结果
第 2 步 把代码文件上传给 Kimi
并要求它生成流程图与 Kimi 的对话如下
用户:请读取并分析 leapyear.py 文件中的 Python 代码,用 Mermaid 语法生成对应的流程图。Kimi :以下是根据您提供的 Python代码使用 Mermaid 语法生成的流程图代码。丶丶丶mermaidgraph TDA[开始]--> B[输入年份] B --> C{ 年份是否为整数 }C - · 是 --> D{ 年份 % 4 == 0 且 年份 % 100 != 0 或 年份 % 400 == 0}C - · 否 --> E[输出错误信息]D - · 是 --> F[输出“是闰年”]D - · 否 --> G[输出“不是闰年”] E --> H[ 结束]F --> HG --> H丶丶丶这个流程图描述了程序的主要逻辑。(1)开始。(2)输入年份。(3)检查年份是否为整数。●如果不是整数,输出错误信息并结束运行。●如果是整数,继续判断是否为闰年(4)根据闰年的规则(年份能被 4 整除且不能被 100 整除,或者能被 400 整除),判断年份是否为闰年。●如果是闰年,输出“是闰年”。●如果不是闰年,输出“不是闰年”。(5)结束。
复制 Kimi 生成的流程图代码(需把节点名称中的双引号去掉,因为这不符合 Mermaid 语法)到绘图工具中后,得到的判断闰年的流程图如图 10-3 所示。

图 10-3 判断闰年的流程图
当作者第一次用 Kimi 快速生成流程图时,作者感到很震惊。软件测试人员要读懂开发人员写的代码,可不是一件容易的事,更何况还要绘制流程图。现在,Kimi 却不费吹灰之力,几秒间就完成了这两件事。下面,进一步思考与探索 Kimi 生成的结果。
第 3 步 进一步思考与探索
从图 10-2 所示的运行结果看,代码的输出符合预期。但判断闰年的流程图中年份的判断很重要,继续运行代码,输入一些异常年份进行测试,测试结果如图 10-4 所示。

图 10-4 输入异常年份后的测试结果
“-2000 是闰年”这个结果说明代码有明显的 Bug。“+2024”是正整数,代码运行时把前面的“+”省略了,输出“2024 是闰年”,这从表面上看好像没什么问题,但输入“+”是不正确的,应报错。
Kimi 生成的流程图大大降低了我们理解代码的门槛,使进一步思考与探索代码的 Bug 变得更容易。这能助力我们在代码层面进行测试分析,协助快速定位 Bug。
本书作者:肖利琼 陈晓鹏
... ...
点击阅读原文,查看独家连载
如果有小伙伴
想要分享技术、出版图书
欢迎进入公众号后台
发送“出书”联系我们~

夜雨聆风