软件测试并不是大家理解的只是"点点点"的简单操作,而是要有计划、有组织和有系统的软件质量保证活动,而不是随意的、松散的、杂乱的实施过程。
为了规范软件测试内容、方法与过程,在对软件进行测试之前,必须创建测试计划。
是对测试的活动范围(测试的功能模块)、测试资源(软硬件)等,对产品的需求文档梳理功能点,然后有规划和时间节点、任务分配等进行相关计划。
测试计划一般包括:项目概述、测试策略、测试范围、测试资源、时间安排、风险分析等内容。
在需求评审之后,对产品需求已经清晰明确,一般都是由对应项目测试同学编写测试计划。
该项目的具体描述,包括该项目的基本功能模块,解决哪类用户的需求。
当前项目版本号、该版本需求功能描述,解决哪类用户的需求。
为保证项目测试更充分、更有规则,特编写测试计划、对测试人员安排、测试方法、性能测试、测试风险分析等,确保测试项目平稳有序的运行。
测试策略的目的是对被测的软件或硬件进行有规划、有目标、有方案的测试。
(1)选择测试方法
根据产品需求通过掌握的各种测试方法,进行测试用例设计和编写。
(2)测试工具使用
比如Postman、Charles、MySQL连接、Redis连接等。
(3)自动化测试策略
基于Python或Java的脚本编写,对接口或UI自动化进行功能测试回归,涉及测试的功能、编写脚本时间、回归的时间等等。
(4)性能测试需求
当前版本需求的性能测试要求是什么,使用JMeter或LR性能测试工具,设计测试方案。
1)功能测试范围的分析功能点的拆分、接口测试、UI测试;
2)系统测试范围的分析 容错处理、兼容性要求、配置要求、性能要求、安全性要求、可靠性、日志文件。
测试人力资源包含两个维度:
1)测试人员数量;
2)测试人员经验、能力。
环境资源一般包括:
-- 测试服务器环境;
-- 终端环境(PC配置,手机型号);
-- 测试工具(bug管理工具,Postman、性能测试工具等)。
在我们的测试计划中,测试人员分配、测试环境资源、网络资源、工具使用都要明确写出来。
测试工作的进度安排依赖于开发工作的节点和提交测试进度的时间,并且直接影响预期的上线时间。
我们需要根据当前产品需求影响范围、业务的复杂度、所需要测试的功能复杂度、测试人员的数量、能力和经验这些因素,以及当前测试的资源来评估不同阶段、不同类型的测试工作的工作量。
可以用工作分解结构表方法评估工作量:
-- 列出本项目需要完成的各项任务;
-- 细化每个任务,尤其是测试阶段,需要对模块进行拆分,拆分到可衡量和细化的维度;
-- 预先设计测试点,按照测试点来估算;
-- 给每个维度估算时间,需要优化和重复操作的部分;
-- 在已估算结果上浮动10%-15%。
测试风险分类:
-- 测试同学对当前版本需求影响范围估计不足,有些功能点没有想到;
-- 产品临时改需求、加需求、换其他需求等等,都需要重新进行测试需求分析,导致测试同学的需求分析和预估时间会不足;
-- 开发提测质量很差,提测功能缺失,导致测试提bug、回归bug,测试进度延后,还有可能测试加班加点,无法测试完的情况。
测试风险的控制方法:
-- 根据风险发生的概率和带来的影响确定风险的优先级,然后才去措施避免那些可以避免的风险;
-- 开发提测质量差,可以砍掉一部分功能,或者将上线时间推迟,避免测试时间不足。
-- 加强用例评审,扩大测试覆盖范围。
-- 做计划时,要留有余地,同样还是把测试时间多预估一到两天时间。