缺陷种类
- 遗漏,指规定或预期的需求为体现在产品种
- 错误,需求是明确的,在实现阶段未将需求的功能正确实现
- 冗余,需求说明文档中未涉及的需求被实现了
- 不满意,用户对产品的实现不满意也成为缺陷
缺陷等级划分
- 致命,造成系统或应用程序死机、崩溃、非法退出等问题,会导致用户数据丢失或被破坏,功能设计与需求严重不符
- 严重,功能和特性没有实现,导致模块功能失效或异常退出,还有程序接口错误或数据流错误等问题
- 一般:主要功能丧失,提示信息不太正确,用户界面设计太差以及删除未提示等问题
- 提示:对功能几乎没有影响,产品及属性仍可使用的问题
- 建议:测试人员提出的建议、质疑等问题、
缺陷报告
- 编号,用数字惊醒唯一标识缺陷
- 状态,描述缺陷当前状态,如修复、延期等
- 标题,通常用一句比较简洁的话描述Bug
- 类型,主要为了进一步描述缺陷产生的原因
- 所属版本,描述当前Bug所在的测试版本
- 所属模块,描述Bug所在的业务模块
- 严重级别,指Bug验证程度
- 优先级,按Bug严重级别来确定处理的优先级
- 发现人,Bug提交者
- 发现日期
- 复现概率
- 指定处理人,根据Bug类型指定处理人
- 详细描述,详细描述缺陷引发的原因及复现步骤,需包含测试环境、前提条件、测试数据、复现步骤、预期结果、实际结果等
- 附件,一般为截图、录屏、Log日志等
Bug定位方法
通常Bug分为四种类型,功能、性能、安全和专项质量。
功能关注系统业务流程是否正确
性能关注系统业务员流程是否流畅
安全关注系统是否存在漏洞,是否符合安全标准与规范
专项质量关注系统的用户体验(UX)、兼容性、稳定性、可靠性
Bug表现层
- 条件:测试数据
- 过程:测试步骤
- 结果:测试结果
技术架构层次
软件从技术上分为3层,视图层(View)、控制层(Controller)、模型层(Model)
视图层:网页开发(HTML、CSS等),移动应用App(Activity页面、View组件等)
控制层:网页开发工具(Chrome Devtool),移动应用使用的工具
模型层:模型的传递方式(HTTP、TCP、RPC串口),模型的形式(JSON XML binary)
MVC三层分析法
Bug的定位往往也会按照软件技术架构层次采用MVC三层分析法。
1、View层常用分析法
View层常见的问题是用户界面(UI)和用户体验(UE)。目前常采用人工测试和自动化测试,通过人工校验为主,自动化校验为辅的方法检验界面交互的准确性以及用户的体验感受。
2、Controller层常用分析法
Controller层通过平台自主提供的日志以及应用程序本身提供的应用调试日志分析代码层次的逻辑问题
3、Model层常用分析方法
Model层根据运行平台的log、App调试机制以及链路来具体分析出现的问题。
Web Bug分析方法
1、Web UI View层Bug分析方法
界面展示主要依赖于HTML、CSS、JS,可以使用Chrome开发者工具的elements和style两个板块来分析界面。
2、Web Controller层分析方法
底层逻辑的错误在Console板块hi展示出详细的出错信息。而Source模块可以对错误进行定位,并通过Debug分析问题存在的上下文,找到代码问题的根源所在。
3、Web Model层分析方法-分析数据传递方式与结构
Model层分析方法是基于运行平台的log。例如Chrome的network模块分析请求方式和数据的具体情况。链路分析使用代理工具,常用的有Fiddler、Charles和Mitmproxy以及网络层的嗅探(常用工具Tcpdump和Wireshark)
App Bug分析方法
1、App View层Bug分析
App的UI界面交互和UX/UE用户体验目前常用的是人工校验方式,以自动化作为辅助手段,用UI Diff的方式分析,尝试发现界面中存在的问题,其中人工测试能够发现未知特征的Bug,自动化测试可以断言常用功能是否正常,通过UI Diff可以发现界面结构细节的问题。
2、App Controller层分析
通过logcat分析App runtime日志。
3、App Model层分析方法
根据平台本身提供的log或者运行平台调试工具,利用应用的日志,通过追踪模式分析链路问题。可以使用代理工具抓包分析,也可使用Wireshark、Tcpdump分析链路,从而找到Bug相应的日志,定位问题。
4、Android Profile网络分析
Android提供的工具对App交互发生的网络请求进行中间过程的分析。
5、使用代理工具分析
当工具本身不可调式时,可以使用代理分析工具。
6、网络层协议分析
通过Tcpdump对程序抓包,并导入Wireshark分析。
性能Bug分析方法
1、H5性能分析方法
H5的性能分析方法通常对网页加载的过程进行分析,通过W3C定义的Performance API对程序每个阶段发生的问题进行统计,需要各个浏览器支持对性能方面的分析。
2、利用Chrome分析Web性能
3、分析性能瓶颈,使用Profile进行代码剖析
4、代码覆盖率分析方法
测试环境搭建
被测系统(Application Under Test,AUT)包括需要被测试的App、网页、后端服务。大致分为两个方面--移动端测试、服务端测试。
常见的被测系统类型
- UI:一般有Web、App和IOT里面的用户界面交互
- Service:对互联网各个端提供的服务,包括RESTful、WebService和RPC
- code:直接以代码形式提供的被测系统,如SDK和lib
部署方法
测试部署包括脚本部署、容器部署。脚本部署说基于自动化脚本和自动化平台,通过自动化脚本完成对软件的分发、配置和启动。容器部署基于容器镜像Docker
脚本部署
- 通过bash、Python脚本实现自动化的构建与部署
- 通过持续集成平台,如Jenkins,完成测试流程管理
容器部署
- 自动化构建bash
- 容器构建Docker
- 容器编排K8S
- 持续集成Jenkins