摘要:干测试的各位同学们,你们在工作中还在大量进行手工操作吗?其实从UI/UE 操作、功能验证,到生成测试报告,都可以通过自动化技术来完成,节约大量时间成本。
干测试的各位同学们,你们在工作中还在大量进行手工操作吗?其实从UI/UE 操作、功能验证,到生成测试报告,都可以通过自动化技术来完成,节约大量时间成本。
不少同学表示道理都懂,但有一个很现实的问题摆在眼前,就是实现自动化技术需要扎实的编程技能,这对于一些测试人员来说要求确实偏高。所以有同学开玩笑说“都能写代码了,谁还干测试呢?”
即使具备编程能力,要从零开始为业务构建自动化测试框架,也很难在繁重的测试工作中获得工期预算。因为点两下鼠标就能完成的事,总会被质疑是否值得花几个小时去写代码。
如果有一套适合业务的代码模板,只要修改一下配置参数就能实现自动化测试,这该多好。好消息是现在测试人员不必苦学编程,也不必花时间写代码,只要把工作交给 ChatGPT 就好。
只要使用自然语言描述清楚需求,ChatGPT 就能生成符合要求的代码模板,手工操作真的可以抛到一边了。接下来我们将通过一个登录页面的自动化测试实战,来演示 ChatGPT 的妙用。
我们将使用行为驱动开发(Behavior-Driven Development,BDD)工具 Cucumber 来编写可执行测试用例,使用 Selenium 来模拟浏览器操作。
让我们开始 AI 辅助软件自动化测试之旅。
在使用 ChatGPT 开展工作之前,同学们要先了解一下提示词(Prompt)的编写技巧。提示词可看作驱动 ChatGPT 大模型工作的指令,对于编写代码来说,使用代理模式指定专业角色可以获得更精准的结果,例如“你是一名资深测试工程师,……”
首先,我们将需求通过自然语言描述,向 ChatGPT 发出指令:“你是一名资深软件测试工程师,请基于 Cucumber 使用 Python 语言生成一个登录页面的测试框架。要求使用页面对象模型和类变量作为元素定位器。”
然后,ChatGPT 就为提示内容生成了完整的登录页面自动化测试框架。我们将生成结果分为三个部分来查看。
安装库与编写 BDD 测试用例
可以看到,尽管我们在提示词中并未说明要使用浏览器模拟工具,但 ChatGPT 主动选择 selenium WebDriver,而且还贴心地给出了安装 selenium 和 behave 的步骤。
在“login.feature”文件中,以 gherkin 语言描述了登录测试的正向与反向测试用例,接下来就是使用 Python 测试功能逻辑。
实现测试步骤
在“login_steps.py”文件中,前提条件(given)为打开登录页面,执行动作(when)包括输入正确参数、输入错误参数、点击登录按钮,预期结果(then)包括成功验证与失败验证。
页面元素和操作
在“login_page.py”文件中,对用户名、密码、登录按钮、错误提示信息等内容,以元素 ID 号的方式进行提取。当然,这是一个通用测试框架,同学们要根据自己的实际测试页面进行调整,可以选择 Name、xpath 等字段来提取。
测试工程文件目录如下:
上述三部分就是 ChatGPT 生成的所有内容,按照提示在 Linux 系统中构建测试环境,在代码中修改参数,执行“behave”命令运行,就能看到自动化测试结果。
即使对于一名新手来说,在 ChatGPT 的辅助下,顶多半小时就能跑通自动测试流程。有了测试框架,后续就可以方便地添加测试逻辑。
虽然现在我们有了一个能用的自动化测试框架,但仍然不甚完美,还可以借助 ChatGPT 实现进一步的优化。
观察现有的测试代码,我们发现 URL、用户名、密码等参数都是硬编码在 login_page.py 文件中。如果将来测试用例扩张,参数增多,这种方式会对工程化管理带来麻烦,所以考虑将参数提取出来放置在配置文件中。
编写提示词:“请将上述登录页面测试框架中的 URL、username、password、Login 相关参数提取出来,放置在配置文件中,重新生成 login_page.py 代码。”
ChatGPT 按照要求提取了 url、valid_username、valid_password、invalid_username、invalid_password 五个参数,并使用 config.ini 文件存储配置。
随后,重写了 login_page.py 代码,展示了使用 configparser 库加载 config.ini 文件,并读取相应参数的方法。
这一次优化,使得测试代码更加通用,只要变更配置文件,就能实现对多个用例的测试,而不必频繁修改代码。
同学们也可以在此基础上持续优化,你们将会发现 ChatGPT 使用越多,输出的结果也会愈加精准。
使用 AI 工具实现自动化测试,这是一个具体的运用。那么,在 AI 时代,测试工作的指导思想是什么?还有更多的玩法吗?
《现代软件测试技术之美》这本书就揭示了在测试领域新的观念和思维,以及诸多实用技巧。我们来了解一下本书的具体内容。
《现代软件测试技术之美》首先从革新观念入手,提出“软件质量全员负责制”的观点,强调“软件的任何问题,我都有责任”,从而论述了测试左移与测试右移的思想,对测试人员的技能提出了新的要求。
接着提出了 5 种测试新方法,包括契约测试、测试驱动开发、探索式测试、低代码测试、混沌工程。还对全链路压测、安全测试、移动测试、大数据测试、人工智能测试等 11 种新技术进行了介绍。最后剖析了 4 则软件测试行业典型案例。
所以本书的特点是内容全面,涵盖了当前软件测试领域的主流方法论与技术应用,是测试人员在 AI 时代的行动指南。
本书作者团队也由业界大佬与一线技术专家组成,从高屋建瓴的体系建设到技术运用的细节,展现了作者团队多年的技术积累与丰富的大厂实践经验。
茹炳晟 腾讯 Tech Lead,腾讯研究院特约研究员,中国计算机学会技术前线委员会研发效能 SIG 主席,《软件研发效能度量规范》标准核心编写专家,中国商业联合会互联网应用工作委员会智库专家,腾讯云、阿里云、华为云“最具价值专家”,出版过《测试工程师全栈技术进阶与实践》。公众号“茹炳晟聊软件研发”的主理人。
吴骏龙 某大型互联网公司质量与效能团队技术总监,腾讯云“最具价值专家”,曾任 Wish 中国测试总监、阿里巴巴本地生活高级测试经理。在软件质量体系、服务容量保障、服务稳定性建设、软件研发效能等领域深耕多年,善于通过创新手段解决工程难题。他是测试行业优秀的实践者和前沿技术的传播者,多次受邀参加 QCon、QECon、CCF 等行业峰会并进行演讲。
刘冉 现任 Thoughtworks 软件测试和质量专家,具有 20 年软件开发和测试工作经验,对Web 应用测试、服务器性能测试、移动测试、安全测试、敏捷测试、测试驱动开发、测试分层一体化解决方案,以及代码管理、持续集成、持续交付和 DevOps 等有深入研究,曾是多个行业峰会的演讲嘉宾。
作者们在写作本书时尽力以简洁易懂的语言进行描述,还精心绘制了大量图示,以将复杂的概念和流程形象化表达。
精彩图示
除了软件测试从业人员,软件开发人员、架构师和企业管理人员都可以从这本书中获得启发。
来源:天哥教育