前言:
采用通用的测试流程,可以高效、高质量地完成软件测试工作,有助于降低沟通成本,对每个阶段的产出有清晰的认识。最终目标:实现软件测试的规范化、标准化。以下是非通用的标准,仅供大家参考。
1.软件测试流程图
2.各阶段详细解释:
1、需求分析:
主要目的是明确需求这一期必须完成什么工作,完成到什么程度,细节是怎样的,记录任何不清楚或者遗漏的需求;需求必须完整、准确、清晰、具体。很多时候,各个角色会私下做,不组织会议。主要参与者:RD、QA、UE。
2.需求评审:
PM对需求进行整体的阐述和补充,其他成员参与需求分析过程中提出的问题,目的是提前发现需求不明确、冲突、无法实现、不完整等问题。主要参与人员:项目经理、PM、RD、QA、UE。
3.规划和调度:
(1)RD规划与调度:RD根据评审后的需求,产生具体的开发计划与进度安排,包括人员安排、模块划分、开发设计文档输出、具体测试交付时间等。主要输出人员:RD接口人。
(2)UE规划与调度:根据评审的需求及RD进度,给出相应的计划与安排,包括:人力资源安排、模块划分、具体资源输出时间、根据测试提交时间规划检查时间点等。主要输出人员:UE接口人员。
(3)测试计划及进度安排:根据评审需求及研发进度,给出相应的测试计划及进度安排,包括:测试方式(是否单测、是否接口测试、是否性能测试、是否分模块测试等)、测试范围、人员安排、模块划分、案例输出时间、案例评审时间、测试完成时间、风险点。主要输出人员:QA接口人员。
注:所有计划及时间安排必须以邮件形式抄送给全体人员,并与相应同行确认,如有变动必须及时与相应同行联系。
4.测试环境搭建:
根据开发环境和测试计划搭建测试环境,可以由RD提供支持。一般维护至少两个稳定的测试环境,以满足项目并行和单项测试(例如压力测试、安全测试)的需要。
注意:环境搭建完成后最好能实现代码的自动部署,以减少回归测试时的代码部署时间。
5.测试用例:
(1)案例撰写:根据测试计划和修改后的需求文档撰写测试用例,并根据RD制作的概要设计文档和详细设计文档补充测试用例(若没有具体文档,可以向相应的RD询问代码逻辑和结构)。
(2)案例内部评审:案例完成后,QA首先要进行内部评审,如果评审不通过,则进行修改,如果评审通过,则会向全体员工发送邮件,帮助员工提前了解案例情况,并将问题带到案例评审中。
(3)全员案例评审:根据测试计划进行案例评审,找出项目成员之间不一致的点,以及案例中遗漏或遗漏的点。根据评审结果修改案例,并产生入口案例(入口案例:最核心的功能点和阻碍测试的点)。
注:a.提交测试前需将录取案例以邮件形式发送给对应RD,确保录取案例执行并通过,并要求RD以邮件形式回复执行结果。
b.案例应归档,并根据项目情况(例如,第二阶段要求后对第一阶段案例的改变)及时修改,确保案例是最新的,可以作为参考。
6.RD测试:
(1)提交测试前,RD需确保自己已经通过准入控制(主要确保RD已经完成自检,养成良好的开发习惯),PM已通过第一次走查(主要确保RD没有重大的功能遗漏,PM没有重大的功能点需要改动或添加,以减少进入正式测试阶段时的返工)。
(2)若RD自测、PM走查均通过,QA进行接入测试,若接入不通过,系统将不予通过,待RD修复问题后重新提交测试,系统将再次经过RD自测、PM走查、QA接入测试流程,若RD自测、PM走查、QA接入测试均通过,QA进入正式测试。
7.正式测试:
根据测试计划和测试用例执行测试,报告bug,RD修复后进行QA反馈。制作每日测试报告,明确具体测试进度,bug情况,项目风险等。根据风险情况及时进行策略调整,确保项目如期上线。
8. 展示和演练:
当所有功能测试完毕,bug基本收敛后,案例展示。此时PM进行详细排查,UE进行可视化排查。主要参与人员:PM、RD、UE、QA。如果测试/排查失败,提交bug,RD修复。修复后验证bug。如果测试/排查通过,软件就完全功能验证了。
9.完整功能验证:
这个主要针对还未进入第一阶段需求的产品,新增需求、修改需求可能会影响到原有功能,如果验证失败,就提交bug,RD修复完bug后再进行验证,重新进行全功能验证。这个阶段建议使用自动化提高效率,比如UI自动化、界面自动化等,如果全功能验证通过,再进行预发布验证。
10. 发布前验证:
主要是为了防止数据不同步导致的bug,此时要注意验证上线版本,以及当前版本和上线版本的交互,预发布验证通过后,再启动上线流程。
11.上网:
RD或OP发起上线,若上线失败,RD修复Bug,QA进行Bug回归、全功能验证、预发布验证,重启上线,上线成功后需要进行线上验证。
注意:上线过程中,请注意数据和版本隔离,避免影响上线进程。
12.网上验证:
若上线验证失败则进行回滚,RD修复bug,QA回归bug,全功能验证,预发布验证,再次进行上线验证流程。上线验证通过后实时跟进用户反馈,增加/修改监控。
注意:最好有一键回滚机制,并进行回滚演练,我确实遇到过上线后整个业务都崩溃的情况。
13.跟进用户反馈并添加/更新监控:
(1)产品成功上线后,实时跟进用户反馈,及时发现用户反映的问题,防止出现重大问题影响用户使用。梳理出最热门的需求点,反馈给PM,反向影响需求。
(2)及时添加/更新监控,实时监控线上服务,保障线上服务正常稳定运行,出现问题尽快响应。