Skip to content

Latest commit

 

History

History
366 lines (178 loc) · 12 KB

test_automation.md

File metadata and controls

366 lines (178 loc) · 12 KB

自动化测试

1. 静态代码检查

静态代码检查是持续交付流水线中的一个重要环节,利用商用/开源/自研的代码检查工具在开发阶段发现缺陷,让缺陷在最短路径闭环。

应包含以下基本功能:

——对代码进行静态扫描,发现代码缺陷、安全漏洞及编程规范、重复代码、复杂度高等代码坏味道问题

——能够自动触发/立即分析/定时开展,实时展示扫描进展状态,及时反馈代码检查结果

——方便查看告警及错误代码片段,提供规则描述及告警修复指导

——检查结果有优先级/严重程度的划分,能跟踪到状态

——支持检查规则配置,支持单个告警/批量告警/告警路径屏蔽等功能

——自动生成代码检查报告,有新增/修复/遗留告警等质量度量指标

可以包含以下高级功能:

——能够开展增量代码扫描,自动识别问题引入者

——能够集成进IDE中在编码更前端开展检查

——根据项目实际场景支持检查规则定制

——支持和缺陷管理系统打通,具备跟踪和驱动修复的能力

——代码检查报告中自动生成新增/修复/遗留告警趋势量化展示项目代码质量状态

——代码检查工具支持集成到持续交付流水线中自动运行实施

——支持配置项目代码质量符合度标准,在流水线中自动化实施,作为下一个环节的准入条件

——多种工具检查结果能够整合展示在报告中便于开发团队修复

2. 单元测试

单元测试是项目的开发质量管理活动。单元测试具备自动化、独立性、可重复执行的特点。

应包含以下基本功能:

——单元测试工具支持断言功能。

——单元测试用例支持手工编写和自动化生成,并可以区分。

——支持对单元测试用例的超时管理。

——支持单元测试的报告管理功能,包括成功执行总数、执行跳过总数、执行时间、失败总数、异常总数、用例总数和分支覆盖率等。

——支持单元测试和源代码目录结构区分

——支持多种单元测试框架

——支持排除目录文件

——支持单元测试用例管理

——支持基于注解的分类执行

可以包含以下高级功能:

——单元测试框架支持挡板功能

——支持根据规则生成测试数据并管理的能力

——支持测试用例生成和管理

——支持并行执行单元测试用例

——支持自然语言分析

——支持远程单元测试

——支持集成到IDE中进行单元测试

——支持独立增量代码单元测试报告

——支持配置项目代码质量符合度标准,在流水线中自动化实施,作为下一个环节的准入条件

——支持缺陷自动发现并修复

3. 接口/服务测试

接口测试是通过直接在消息层向测试软件接口,确定功能、性能、可靠性、安全等是否满足预期的软件测试方法

应包含以下基本功能:

——支持测试主流接口形式

——支持编辑报文内容

——支持多种报文格式,包括但不限于表单、文本、JSON、XML等

——支持接口鉴权认证,包括但不限于Basic认证、Token认证和CA证书等方式

——支持针对报文响应的响应报文、响应头、响应码定义测试断言

——支持提取报文响应的内容并基于上下文创建后续请求报文

——支持测试流程逻辑控制,包括但不限于循环、判断、暂停等

——支持接口测试公用参数化管理

——支持多种自动化风格,包括但不限于关键字驱动、数据驱动

——支持复用测试逻辑

——支持接口报文调试功能

——支持挡板功能

——支持集成平台内部服务调用接口测试执行,包括但不限于流水线服务

——支持统计接口测试覆盖率和通过率

可以包含以下高级功能:

——支持第三方工具辅助编写接口测试逻辑

——支持基于录制或监听的接口请求和响应生成测试逻辑

——支持缺陷自动发现并修复

——支持接口消息交互过程的可视化展示

4. UI测试

UI测试通过浏览测试对象可正确反映业务的功能和需求,这种浏览包括窗口与窗口之间、字段与字段之间的浏览,以及各种访问方法 (Tab 键、鼠标移动和快捷键)的使用,且窗口的对象和特征都符合需求。

应包含以下基本功能:

——支持多种类型控件识别,包括但不限于输入框、按钮、下拉框等

——支持控件内容的获取

——支持控件操作,包括但不限于点击、下拉、输入等。

——支持数据驱动

——支持测试脚本调试功能

——支持测试过程截屏功能

可以包含以下高级功能:

——支持测试脚本的断点调试

——支持测试过程录制和回放

——支持数据库文件对比

——支持脚本在容器中执行

——支持第三方控件识别

——支持关键字驱动

——支持不同操作系统和不同浏览器

——支持控件坐标的识别与操作

——支持脚本执行录像功能

——支持外部硬件设备的模拟功能

5. 移动应用测试

移动应用测试是指针对市场主流移动端(Android、iOS、H5、小程序等)利用自动化技术进行功能性和各项非功能性专项测试。包含适配兼容测试、移动自动化测试、客户端性能测试三大类测试。

适配兼容测试

适配兼容测试利用移动终端真机实验室,移动应用需要在各种参数搭配的机型上进行测试,以确保移动应用兼容用户使用的手机机型, 最大化客户群体。

应包含以下基本功能

——按需的机型选择

a)Android/iOS操作系统版本

b)主流厂商的定制ROM

c)屏幕分辨率

d)硬件配置(CPU、GPU、内存)

e)市场Top用户占比机型

f)支持自选机型

针对H5

g)各大厂商的浏览器和内核

h)WebView(如微信)

——支持不同机型的安装、拉起、随机遍历和卸载

——支持适配问题的检测能力,包括但不限于崩溃、无响应、安装失败、拉起失败、卸载失败、UI异常、Exception等。

——支持测试执行步骤的还原,包括但不限于操作和截图

——支持基础性能指标采样,包括但不限于安装时间、启动时间、CPU使用率、内存占用量、流量、和FPS等

——支持手机系统日志的收集

——支持API接口提交任务和接口文档

可以包含以下高级功能:

——支持用户账户自动登录

——支持运行主流自动化框架和自定义框架编写的兼容测试脚本

——支持自定义应用日志上报和导出

——支持对出现具体问题的设备进行远程调试

移动自动化测试:

移动自动化测试,英文名为Mobile Test Automation的简称,它是将移动应用作为测试对象,把以人为驱动的测试行为转化为机器执行的一种过程。通常,在设计与编写用例脚本后,由测试人员上传至移动终端真机实验室自动执行测试,得到实际结果与期望结果的对比评估。在此过程中,达到节省人力、时间或硬件资源,增强测试深度,提高测试效率等效果。

应包含以下基本功能

——支持通用的自动化测试框架

——支持模拟用户对应用的操作,包括但不限于点击、滑动、长按、轨迹操作、文本输入等

——支持基本的识别能力,比如标准控件识别

——支持测试信息管理能力,包括但不限于测试用例、日志、缺陷、报告等

——支持移动设备的管理运维能力,包括但不限于故障等重连、重测机制和设备稳定性等

可以包含以下高级功能:

——支持用户修改过的开源框架

——支持提供插件集成到开发IDE中

——支持统一开发接口,包括但不限于设备信息获取,筛选,提测,结果拉取等灵活,详细的API能力

——支持在云端设备上进行脚本调试

——支持进阶的识别能力,包括但不限于OCR识别,UI识别,游戏引擎层控件识别等

——支持脚本录制及精准回放能力

——支持任务运行可视化及灵活干预能力(以单台设备为粒度进行终止、重测等干预操作)

——支持性能数据采集调试能力,包括但不限于FPS、内存等通用性能,以及引擎层的性能等

——支持云端设备灵活配置和高效调度能力

——支持设备和环境初始化

客户端性能测试:

客户端性能测试利用移动终端真机实验室,通过在不同参数搭配的各档机型上利用性能测试工具获得各项性能指标,定位性能瓶颈和问题根本原因,提升移动应用的性能表现,以保障用户获得流畅、稳定的最佳使用体验。

应包含以下基本功能

——支持测试机型性能分级

——支持基础性能指标采样,包括安装时间、首屏时间、响应时间(启动、滑动、界面切换等)、CPU、内存、流量、FPS、耗电量、温度、IO等客户端必要的指标

——支持测试执行步骤的还原,包括操作和截图

——支持系统日志的收集

——支持测试报告的导出

可以包含以下高级功能:

——支持运行主流自动化框架和自定义框架获取性能数据

——支持版本对比、竞品对比

——支持API接口批量获取性能数据

——支持过度绘制检测

——支持性能问题根因分析

——支持多性能指标组合分析

——针对游戏提供主流引擎的深度性能数据

——针对H5提供瀑布流视图,连接视图,提供实时抓包、修改功能

6. 性能测试

性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。评价系统或部件与规定的性能需求的依从性的测试行为。;

应包含以下基本功能:

——支持性能测试项目的测试脚本、测试结果、测试数据和测试报告的基本管理功能;

——支持主流测试协议;

——支持数据集读取数据文件功能,读取方式支持顺序和随机;

——支持数据集自动生成序列数字、随机数字等功能;——支持脚本逻辑控制功能,脚本编辑功能;

——支持性能测试结果数据输出,包括测试发送数据及服务端响应数据等;

——支持思考时间设置功能,包含常规等待和逻辑等待时间设置功能。

——支持请求超时、响应超时设置功能;

——支持性能测试执行过程中服务端回送数据正确性检查的功能;

——支持长连接、短连接设置;

——支持上下文关联功能;

——支持性能测试场景设置功能;

——支持性能测试指标数据实时输出及采集的功能;

——支持性能测试报告及仪表盘内容的查看和导出功能;

——支持性能测试过程中各类错误显示、聚合的功能;

——支持集成平台内部服务调用性能测试执行,包括但不限于流水线服务

可以包含以下高级功能:

——支持多个测试用户同时动态调用压力源发起性能测试直到压力资源满载;

——支持混合协议的性能测试;

——支持自定义协议的性能测试;

——支持灵活生成复杂数据集的功能;

——支持数据集分段读取数据文件的功能

——支持按需自动扩充压力源的功能;

——支持压力源节点调用公网资源和局域网资源;

——支持相同测试场景执行报告比对功能;

——支持性能测试挡板功能;

——支持通过工具本身或第三方接口采集并分析各种性能指标的功能,包括但不限于网络通信指标、中间件指标、数据库指标等;

——支持可配置的性能测试挡板。

——支持数据定向输出接口;

——支持脚本自动化录制、回放功能