测试在软件研发过程中是非常重要的一环,为软件的质量保驾护航,贯穿研发过程的始终,而非仅仅是中间的一环。
无论是web项目、APP 端,大型的电商或者小型的erp管理系统等,万变不离其中,包含以下:
需求分析->测试分析->测试设计->测试评审->测试执行->测试报告->质量复盘。
1、需求分析
所有的测试设计都是基于需求开展的,那么需求的评审和理解很重要。
需求文档:评审前需要精读文档,挖掘需求潜在的“需求”。除了功能需求,还有设计交互需求、性能需求、可靠性需求、安全需求,可测试性需求,兼容性需求。
测试评审PRD(产品需求文档)时,需要关注:
1、功能的准确性
2、功能的完整性
3、功能的可测性
4、一致性
2、测试策略
:需要考虑使用什么样测试技术:比如黑盒,自动化、性能、故障测试,每一种测试方法对应的具体测试手段,比如黑盒测试需要怎么安排测试,如何去覆盖保证测试的质量,以及如何安排测试的轮次。自动化投入的时间点,主要是接口测试,接口自动化测试的框架选型(如果有的话,只需要考虑新的需求的接口覆盖的问题),以及场景的设计,数据的准备,以及 执行的时间。性能测试是否需要,这个根据需求来确定,重要性和功能是否同等重要,是的话,则需要同时安排,比如上传与下载的功能。涉及到并发下载时间的问题,如果一个文件,一个用户操作没问题,5个就失败了,那么只验证一个用户通过,未考虑到真实场景,直接部署到用户侧,用户一操作就失败,这种也算未实现需求。所以需要深挖需求背后的一些需求,测试需要关注,需要对这些潜在的风险比较敏感。故障的测试可以安排在功能和性能之后,或者有时是和性能一起安排,功能稳定了,才可以去对组件进行故障,验证是否满足高可用,稳定性的 需求。
另外安全测试,也是需要考虑的,比如金融,支付类的是需要考虑到安全测试的。
3、测试计划的安排
主要是人力,工作量评估,环境资源、测试任务的拆分细化,以及开始时间,完成时间,测试的目标:测试的目标,主要是完成需求的验收,需要达到什么样的标准,比如:bug是否全部修改完成,如果未修改完,遗留的bug影响范围,以及对应的规避手段,无法遗留的bug,测试需要坚持自己的底线,给出问题的影响范围,给出不能遗留的原因,和开发负责人,项目经理、测试经理、版本经理一起开会决策。
另外一些风险的声明,临时插入的需求,或者是测试过程中出现的,延期提测,需求遗漏,质量差,等导致和测试计划发生很大的偏差,要及时识别出来并通知到项目组相关人员,找到消除和降低风险的解决办法。
4、测试设计
和开发的架构设计,接口设计等并行,进行评审接口和方案。
针对专项测试需要输出测试方案,下一步再进行测试设计,测试用例的设计。测试环境的测试数据准备。
5、测试用例和测试方案的评审
形势有两种:线上和线下,一般是提前一天将用例或者方案输出,通过邮件的方式发送到相关人员,进行review。大型的需求需要线下评审,或者是复杂场景的,专项测试方案线下评审(必选)。
针对评审的意见进行修改和补充,当天发出来,与会人员进行再次review,没问题,则归档,并拉出来冒烟用例,给到开发人员进行冒烟
6、测试执行
根据测试用例进行一轮测试,并结合经验进行发散补充测试,发现的bug后,在bug管理系统中记录并及时跟踪bug的状态。针对bug的严重程度比较高,影响比较大,比如阻塞测试执行的,需要立即解决,并配合开发进行问题的复现。
7、测试报告输出
测试报告主要是针对一轮回归后,对产品的质量通过数据的量化来说明
包含:
本次新需求,用例执行数,遗留bug个数。
1、bug的个数,bug的严重程度分布,bug的前后端占比,bug的模块占比,bug的类型(功能类、性能、ui类、配置类、环境类等)
2、是否有延期,是否有低级问题,是否有冒烟不通过被打回,是否有需求遗漏,是否有重开的问题。
3、遗留bug的严重程度,问题原因,影响范围,开发责任人,规避的手段。
测试结论,对本次回归的质量进行评价,是否需要进行二轮回归。
4、自动化完成的情况。是否有新增,自动化是否跑通。
5、专项测试:性能和故障是否执行。
8、每月的质量复盘。
通过分析线上和线下问题,来深挖项目中问题的根本原因,并找到可行合理可落地的解决措施,并通过建任务跟踪。最终能够闭环解决掉,同时能够举一反三,挖掘同类的问题,找到通用的解决办法。