在项目测试过程中,测试方案制定的好坏,会直接影响到项目的的质量。因此需要制定一份完善的测试方案,那么如何才能制定一份完善的方案呢?
5W1H原则
不管在任何场景下,制定计划时5W1H原则都是需要适用的。
how:如何去测?用什么资源?依据什么?工具如何选型、案例要执行到什么粒度。
why:为什么要实现这个功能,背景和目的是什么,能给用户或公司带来多大的价值。
what:我需要做什么?任务的目的是什么?
when:项目周期多长,开发时间和提交测试时间是什么时候?什么时候需要给用户?测试周期需多长?
who:项目各个环节的直接责任人、干系人是谁?谁来主导负责?需要多少人力来参与?
where:相关资源的位置和路径,版本、文档。
那么具体来讲,测试方案一般包含哪些内容呢?
测试目的
通常测试目的包含如下几种:
测试参考
还可以是一些参考文献和专业术语解释等等。
测试环境
一般项目中至少存在三套环境,开发环境(DEV)、测试环境(STG)、生产环境(PRD),有的项目中还存在预发布环境。
测试前要保证环境的连通性,因此要做一些前期准备,比如确认网络的墙是不是通的,测试的数据是不是提前准备好了。
测试平台
清楚要测试的平台及平台的特性,比如PC有PC的特性,Web和H5有各自的特性,Android和iOS有各自的特性。平台的特性也就决定了各个平台的兼容测试重点是不一样的,问题定位的方法和思路也是不一样的。
测试数据
提前针对要测试的环境准备数据,避免临时造数据造成不必要的测试时间影响。
测试案例
一般会区分前端、后端案例,后端案例一般还包含接口测试脚本。
测试工具
相关要用到的工具平台,比如缺陷管理平台、案例平台,接口测试工具Jmeter等。
测试版本
测试的版本号,版本下载的地址。
测试分工
需要多少个测试人力,是按功能模块划分,还是按照前后端测试来划分。
如果涉及到跨项目组的协作,那么各个项目组的研发内容,对应的测试分工。以及最下游端到端验收测试的标准。
测试范围
测试项及指标
测试项 |
执行完成情况 |
是否符合标准 |
备注 |
|
功能测试 |
功能清单 |
|
|
|
核心业务流程 |
|
|
|
|
测试案例 |
|
|
|
|
兼容测试 |
硬件兼容 |
|
|
|
软件兼容 |
|
|
|
|
网络兼容 |
|
|
|
|
数据兼容 |
|
|
|
|
性能测试 |
CPU |
|
|
|
内存 |
|
|
|
|
流量 |
|
|
|
|
耗电量 |
|
|
|
|
响应时间 |
|
|
|
|
安全测试 |
漏洞、防攻击能力、敏感数据加密处理等 |
|
|
|
安装测试 |
安装、卸载、本地缓存数据等等 |
|
|
|
埋点测试 |
|
|
|
|
功能测试内容
功能测试的方法,不管对于任何平台,软硬件测试,都是通用的。功能测试时除了要覆盖所有的功能清单,所有测试案例以外,也要重点测试核心业务场景和不稳定风险较高的模块。
性能测试内容
系统的CPU,内存,响应时间,流畅度,流量等。至于性能测试的指标可以参考这篇博文:
https://blog.csdn.net/alice_tl/article/details/79967932
兼容测试内容
主要包含硬件、软件、网络、数据四个方面。 可以参考这篇博文:
https://blog.csdn.net/alice_tl/article/details/75904056
稳定性测试内容
平均无故障时间达到X小时以上(android 8H,ios 2H),过程中身边应用无Force close、ANR、Native Crash,无因身边应用导致的手机freeze、shut down或power cycle。
安全测试内容
安全测试主要监测程序漏洞和抗攻击能力、敏感数据泄露等。
安装测试内容
安装测试主要看程序是否能够兼容到各个机型,安装后产生的文件缓存信息等等,以及卸载之后是否有残留文件。
埋点测试内容
看埋点是否符合产品数据统计的要求,以及埋点的准确性。至于埋点的测试方法,可以看这篇博文:
https://blog.csdn.net/alice_tl/article/details/78072830
测试风险
可能存在哪些风险,比如测试环境由于各种原因导致无法覆盖到的内容,或者测试环境和生产环境有差异的原因。