前文说过了测试计划的编写要点和计划文档的内容构成。本篇来介绍另一个测试工作中的重要文档 - 测试方案。也有称作测试策略文档。
测试计划和测试方案的区别
有时候大家可能会把测试方案和测试计划看作一份文档。确实,从内容上看,两者有一些重复的部分,而且测试计划中也会包含测试策略。但两者的作用是完全不同的。
- 测试计划:是软件研发过程中测试工作的指导性文件,总体考虑测试过程中的各项要素。
- 测试方案:是针对产品如何开展测试的手段和方法的总体设计。
对于有的不是非常复杂的软件项目,测试方案也会直接体现在测试计划中,而不会单独
编写一份独立的文档
主要区别如下表:
对比项 | 测试计划 | 测试方案 |
---|---|---|
文档类型 | 项目组织性的文档 | 产品技术性文档 |
作用 | 指导测试工作"做什么" | 说明测试工作"怎么做" |
编写阶段 | 计划阶段,需求确认后 | 设计阶段,测试计划完成 |
编写输入 | 项目计划、需求文档 | 需求文档、软件概要设计 |
撰写人 | 测试负责人 | 主测人员 |
测试方案的主要内容
测试方案作为单独文档存在时,主要包含的内容如下(有些内容和测试计划重复,本篇就不再详细介绍):
文档信息
本部分和测试计划类似,不赘述
引言
本部分和测试计划的总体介绍部分作用基本类似。主要包含的内容:
- 编写目的
- 项目背景
- 测试目标
- 参考文档
- 输出文档清单
- 术语、缩略语对照表
配置要求
这部分是对执行测试需要的相关配置的详细说明,如环境的配置要求。一般以表格形式,如:
配置项 | 配置要求 |
---|---|
操作系统 | 版本要求... |
服务器配置 | 型号,数量,CPU、MEM、Disk... |
网络要求 | |
浏览器配置 | 型号、版本 |
移动设备要求 | 型号、系统版本、分辨率等 |
对于复杂的测试环境,还需要说明环境拓扑图。
测试范围
这里参照测试计划中的测试范围。主要是列明In Scope的部分,因为后续的具体测试策略主要是跟待测内容相关。
测试方法和工具
总体说明在本次测试中采用到的测试方法,以及主要应用场景。比如黑盒测试、白盒测试、等价类法、因果图法、错误推定法、边界值分析法等。
工具部分则说明需要准备的测试工具,自动化测试框架等。
测试数据
说明测试过程中需要准备的测试数据要求,数据来源和数据产生方案。
测试类型和策略
这部分是测试方案文档的重点内容。这里建议将本软件产品相关的测试类型都列出,不牵涉的可以说明本次测试不涉及,但相关小节最好保留(好处是避免了测试方案编写的内容遗漏)。
对于每一个测试类型,均需考虑对应的测试范围、测试目的、优先级、使用的技术、方法、工具、测试要点(可使用表格)
功能测试
重点验证版本中需要重点验证的功能特性。 一般关注以下要点:
- 功能错误或遗漏: 这个就是说需要提供给用户的功能出现了错误或者出现了遗漏。举个夸张点的例子,比如一个聊天类的软件,做出来以后,发消息的功能失效或者根本就没有。
- 界面问题: 这个在软件缺陷的清单中绝对是一个占比很大的问题。包括系统界面上各种控件的位置、显示、交互等方面的问题
- 数据结构及访问性错误: 不能正常获取到正确的数据
- 性能错误: 这里的性能错误一般指的是软件本身的性能问题,而不是类似大量用户并发访问导致的问题。比如大数据量加载导致的问题
- 初始化及终止错误: 一般指软件启动和退出过程中出现的问题。
性能测试
根据项目的性能需求确认需要执行的测试内容。
- 负载测试:确定负载性能是否满足需求要求
- 容量测试:确认系统能承载的最大容量,一般以后台监控指标达到警戒线为准
- 压力测试:确定系统的极限承压能力,一般压到系统崩溃,无法正常提供服务
- 稳定测试:以稍高于正常流量的负载对系统持续施压,观测系统长时间可用性的能力。施压期限一般524或724 以需求为准
性能测试一般都需要借助一定的测试工具来执行,目前主流的测试工具一般有:LoadRunner,Jmeter,Locust等
兼容性测试
兼容性测试主要是看软件产品的兼容情况,这里又分多个维度:
- 平台兼容性:比如是否兼容不同的系统平台,包括操作系统版本、中间件版本这些。
- 硬件兼容性:对不同硬件设备的兼容,如软件运行在64位、32位设备上,小型机、PCserver、普通PC,甚至平板,手机、电视盒子等等
- 软件自兼容性:软件产品本身的前向兼容,后发的版本一般需要兼容历史版本
- 软件互操作兼容:这个维度比较特殊,很多软件产品存在家族产品,那么跟自己家族的其他产品不产生互斥就很重要。甚至对一些主流地位的常用软件的兼容也是重点需要验证的部分
- 浏览器兼容:对于web类的软件产品,浏览器兼容也是个重要的测试类别。因为目前常用的浏览器存在多种不同内核,常常因此产生兼容性问题
文档测试
文档测试重点针对产品的附加文档类功能进行测试。测试要点包括:
- 完整性,文档的内容是否齐全,有无内容遗漏
- 正确性,文档编写有无错误,除内容外,还包括格式、语法、拼写都是检查重点。
- 一致性,文档中相同的内容,前后是否存在不一致甚至矛盾的地方
- 易理解性,主要是看文档是否能让人比较容易读懂。典型的,一些技术类文档中,喜欢用大量的缩略语,这个如果没有说明,不是非常内行的人是很难搞清楚的
- 易浏览性,这个则主要是文档结构了。比如文档的内容经常跳转,再比如文档中嵌有很长的表格,但表头又不跟页,浏览起来就很不方便。
安装部署测试
安装和部署重点考虑:
如果软件是有不同平台下运行的要求,则我们再不同平台下都需要分别进行验证。
参照部署文档,确定我们安装过程的合理和正确性。考虑安装过程中对一些异常情况如网络中断、存储空间不足,不同的组网拓扑结构等。
基于不同数据样本的安装部署
安全测试
安全测试区别于渗透测试,安全测试重点在于确认系统的防御能力。渗透测试的目的是攻破目标系统以证明系统安全问题。
安全测试需要一定的专业能力,可以参考OWASP的安全测试白皮书进行参考。
本地化测试
本地化测试一般是针对我们的软件产品存在不同地区的差异化版本要求时的测试。测试要点包括:
- 语言: 语言的语义翻译、翻译的字段长度、不同语言的书写习惯(如阿拉伯语从右向左)等对软件界面的影响。
- 本地化格式:货币单位、日期、分隔符
- 当地风俗和法规:这个一般需要合规部门参与提供建议,考虑到当地的风俗。
- 政治敏感内容:同上,一些政治性的敏感内容,典型的如一些争议地区的归属划分等。
可靠性测试
确认软件产品在一些异常情况下的可靠性。比如高可用,一些灾害场景和极端情况如断电断网情况的软件可靠性。
测试资源
说明参与测试的人员分配和职责。参照测试计划
通过标准
说明版本测试通过的标准,参照测试计划的准出
测试用例
一般以附件文档或路径的方式存在。列出测试执行中使用的用例
补充说明
这是个容易忽略但其实非常重要的章节。主要阐述在后续测试流程及测试过程中需要重点关注的注意事项。如:
本版本测试存在版本迁移场景,需要重点验证数据迁移脚本和文件迁移的有效性。需要提前准备迁移数据样例集
本版本后端技术架构存在重大重构,关联影响模块和范围需要开发团队出具验证方案
附录
列出文档中引用的其他参考文档和附属内容
以上就是编写软件测试方案的主要考虑的内容。遵循一定的方案设计思路,可以使制定测试策略时更为全面,避免遗漏,为后续的测试细节设计提供更好的指导。