媒体狂欢、大厂跟进,所有迹象都表明一个新时代正在到来。AIGC即AI Generated Content,是指利用人工智能技术来生成内容,AIGC也被认为是继UGC、PGC之后的新型内容生产方式。在这种生产方式变革的窗口期,将如何影响我们软件测试行业呢?下面我们一起展开探索。
行业内大家问得最多的问题就是:当前以ChatGPT为代表的新一代人工智能技术,是否能替代软件测试人员?
ChatGPT不是拉普拉斯妖,未来仍然无法百分百准确观测,相信大家都知晓答案:软件测试活动无法完全替代,至少目前是这样的!无法完全替代,即表示一部分是可替代,另一部分是不可替代,由此我们来探讨GPT能帮助测试人员做什么?以下是调研出可实践的方向:
更好地了解用户行为

通常情况下,测试人员覆盖需求所述场景时,但往往由于掌握或者分析的特征不全面,导致遗漏个别用户输入场景,进而将线下场景遗漏风险转为线上问题。GPT正是有着数百亿、千亿乃至万亿级参数规模的人工智能大模型来理解用户意图,由此顺理成章的也能帮助软件测试人员更好地了解用户行为。比如让GPT分析下面一段需求表述中含有的用户行为入口:

通过GPT列出来用户进入小程序可能的入口,便于我们设计与之对应的测试场景,并在此基础上补充功能场景是否还有遗漏。测试人员组织设计用例时,需要尽可能全的考虑用户输入场景,即使最终因评估无影响可以不纳入用例,也不应缺乏考虑功能使用的场景。
提炼需求的关键功能点

很多时候大段的需求功能描述,包含很多功能场景,需要通过拆分语句,归纳整理,才能提炼出功能测试场景,这一点正是GPT最擅长的文字整理工作:

以上是markdown文本,格式化成表格后展示如下:

通过GPT给我们提供的信息,分类整理成表格形式后,能更直观的列出内容的关键点,由此来帮我们快速的设计测试场景,并协助核对是否有遗漏的场景。
协助分析代码缺陷

作为一种对话式大型语言模型,GPT 最擅长的就是回答用户提出的问题,最关键的是 GPT 具备与编程相关的基础知识。这就让 GPT 成为类似于 Stack Overflow 的编程问答工具,只不过回答问题的是个 AI。我们试着让GPT分析一段java程序代码可能存在的缺陷:

以上最主要反馈给我们这些问题:空指针、异常处理、线程安全,和一些优化建议。因此,可以针对这些问题和上下文联系,设计相应的用例场景,从而暴露代码缺陷。再从研发流程回看这段问题代码,如果在Code Review、白盒测试中加入GPT审阅增量代码环节,就能给我们提供额外的改进建议。
协助编写测试工具



只需3秒钟,GPT就写了个邮件发送的简单工具代码,江湖人称:活Stack Overflow,名不虚传。为提升阅读的便捷性,还给我们增加代码行注释,代码规范可没少学。
技能的学习与补充
GPT虽不能做到苏轼大文豪那样“吾文如万斛泉源,不择地皆可出,在平地滔滔汩汩,虽一日千里无难”,但一定能帮你收集汇总到了相关技能学习大纲。毫无疑问,这点相当于科学上网。目前比较遗憾的是没有生动的图表,不方便理解,给出的大部分只是学习指南。

挤牙膏似的追问,让GPT生成更多我们想了解的方向。

AIGC产生的这些内容看起来觉得很有专业性,条理清晰,逻辑上也没有什么漏洞,显得四平八稳,中规中矩,但尽说些车轱辘话,感觉就是不说人话,说了这么多,又仿佛什么都没说。新知识还需通过科学的学习方法(费曼学习法,思维导图学习法,番茄学习法,西蒙学习法)才能高效掌握。



写在最后
GPT在一定程度上仍然是我们的助手,而不是完全取代我们。GPT可以利用深度学习技术来模拟人类的思维过程,但由于GPT仍然是机器,目前它不能和人类一样具备智慧、情感以及创造性思维能力。
GPT可以帮助人们处理大量的自然语言数据,但它仍然不能取代人类的判断力和决策能力。此外,它没有足够的知识库来解决复杂的问题,只能根据给定的数据来生成结果,仍不具备创造性思维。这就是说,如果数据库的内容水平越高,拼凑的算法规则越靠谱,那么输出的内容,其水平也就会越高,但永远也不可能超过数据库中原有的水平。它只能在自然语言处理(NLP)任务中发挥其优势,以帮助我们完成既定任务。
-- End --
点击下方的公众号入口,关注「技术对话」微信公众号,可查看历史文章,投稿请在公众号后台回复:投稿




