自动化工具生成代码,高效框架助力
发表时间:2023-09-15 21:00:38
文章来源:炫佑科技
浏览次数:163
菏泽炫佑科技
自动化工具生成代码,高效框架助力
用例框架的代码生成自动化
一些框架代码应该由自动化工具生成,而不是由开发人员手动完成。
自动生成部分测试输入数据
自动化工具箱可以根据不同的变量类型自动生成测试输入数据。
例如,如果函数的参数是指针,则测试数据自动生成技术会自动为输入参数生成“空”和“非空”两个指针。
自动生成存根代码
存根代码是用于替换真实代码的临时代码。
自动化工具可以扫描和分析被测代码,自动生成被测函数内调用的其他函数的可编程存根代码,提供基于测试用例的存根代码,并提供基于测试用例的存根代码管理机制。 单元测试开发人员只需要关注代码内的具体逻辑实现和存根代码的返回值。
必要时自动化软件开发自动化工具生成代码,高效框架助力,自动化工具还需要实现“权益抽取”,以满足后续代码级集成测试的需求。
:在单元测试阶段,如果函数A内部调用的函数B是存根代码,那么在代码级集成测试阶段,我们希望函数A不再调用假函数B,而是调用真正的函数B。这种用真实函数B替换原始存根代码函数B的操作就是“权益提取”。
被测代码的自动静态分析
静态分析主要是指对代码进行静态扫描,目的是识别违反编码规则或编码风格的代码行。 通常这部分工作是由自动化工具根据项目的具体编码规则和编码风格,通过内置规则和用户自定义规则自动完成。 目前比较常用的代码静态分析工具有Sonar和.
测试覆盖率自动统计分析
单元测试用例执行后,自动化工具可以自动统计各种测试覆盖率,包括代码覆盖率、分支覆盖率、MC/DC覆盖率等。
其重点是软件模块之间的接口调用和数据传输。
代码级集成测试与单元测试*大的区别在于,代码级集成测试函数内部调用的其他函数必须是真实的,不允许使用存根代码代替。 在单元测试中,允许使用存根代码来模拟内部调用的其他函数。
代码级集成测试对测试框架的要求非常高。 除了能够成功加载自己的软件模块之外,这个框架还必须能够加载其他相互依赖的模块,以便被测试的软件模块能够运行。
由于代码级集成测试主要应用于早期的非互联网传统软件公司,当时的软件大多是在“单位”中使用。 一个软件包含大量的功能,每个软件功能都是通过不同的内部模块来实现的。 那么这些内部模块在集成的时候就需要进行代码级的集成测试。
Web测试主要指两类API测试,SOAP API和REST API。 *典型的是使用或类似的工具。 但这类测试工具基本都是手动发起和验证接口操作,很难与CI/CD集成,于是API自动化测试框架应运而生。
对于基于代码的 API 测试用例,通常有三个主要步骤:
准备API调用所需的测试数据。 准备API调用参数并发起API调用。 验证API调用的返回结果。
目前*流行的API自动化测试框架是REST,它可以轻松发起API调用并验证返回结果。
Web测试“自动化”不仅包括API测试用例执行的自动化,还包括以下四个方面:
自动生成测试脚手架代码
与单元测试阶段自动生成用例框架代码类似,当你开发API测试时,你更关心的是如何设计测试用例的输入参数和组合,以及不同参数组合下的验证,并做不希望精力浪费在非测试任务上,例如如何在代码级别组织测试用例以及如何实现测试数据驱动程序。
测试脚手架代码自动生成技术生成的测试脚手架代码通常包括被测API的调用、测试数据与脚本的分离、验证的空实现等。
自动生成部分测试输入数据
这与自动生成单元测试的测试输入数据非常相似。 唯一的区别是,单元测试针对的参数是函数输入参数和函数内部输入,而API测试对应的是API参数和API调用。 数据生成的原理也遵循边值原理。
验证自动化
对于API调用返回结果的验证,通常关注的焦点是返回状态码(code)、结构体和具体字段值。 字段值的验证相当麻烦。 只有那些显式写入的字段才会被验证,但通常不可能写入所有字段。 在这种情况下,就需要自动化验证技术。
该技术的核心思想是自动化两次相同的API调用的返回结果,并自动识别不同的字段值。 比较过程可以通过规则配置去除时间戳、会议ID等动态值。
基于or的自动脚本生成
在使用或其他工具进行Web测试时,这些工具中已经积累了大量的测试用例。 那么,引入基于代码实现的API测试框架后,就意味着这些测试用例需要用代码重写,而这种额外的工作量是难以接受的。
因此,可以开发一个自动代码转换生成工具。 该工具的输入是测试用例元数据(即测试用例的JSON元文件),输出是基于符合API测试框架规范的代码,使得原始测试用例积累可以直接转化为自动化测试可直接在 CI/CD 上访问的案例。
对于新的测试用例,可以继续使用或者做初步的测试验证。 初步核实无误后,没有问题。 直接转换为符合API测试框架规范的测试用例。 对于复杂的测试用例,也可以直接基于代码实现,灵活性会更好。
对于传统网页浏览器的GUI自动化测试,采用业界主流的开源解决方案,商业解决方案采用Micro Focus的UFT(原HP的QTP)。
对于移动原生应用,通常采用主流应用,集成了iOS环境,环境集成
。