如何编写一个测试方案?---她是这样做的!

news2024/11/19 0:29:08

1、背景

        工作上的项目规范要求:测试排期大于3D的项目要编写测试方案。调研了部分同学的情况,在此流程规范要求的基础上,对于需求的逻辑复杂或技术实现复杂等情况也会准备测试方案。

        我个人主要负责OMS系统测试,它是整个履约流转中一个重要的节点,系统的定位是管理履约中的订单数据,业务中系统是用户与履约能力流程中的衔接点,是订单与履约间的流转的核心。由于系统对业务整体流程影响较大,所以要对系统的流程结构十分清晰,质量要严格保障。想根据个人视角结合系统的情况来简单分享一下我编写测试方案的小习惯。


2、编写的方式

        每个人编写测试方案的方法都各有差异,做了部分人员统计,大部分同学的测试方案是在技术方案评审完成后开始。由于系统特性、系统了解程度、以及个人编写的习惯等原因,我编写测试方案的时间节点在需求评审完成后,再在技术设计,技术评审后等阶段不停的优化完善。

2.1 第一阶段:在需求评审开始前

        初步了解本次需求是什么?

        产品会将需求提前发出,要前置查看需求背景,目标,需求设计。针对需求看是否有不清晰的地方,比如:是否有二期?是临时方案吗?通用性?是否有业务流程缺失?需求边界是否清晰?功能是否符合系统定位?流程是否完善合理?等等。带着这些问题进行需求评审,有助于协助分析需求,对一些业务上的模糊细节前置。尽量在一次评审中将可以确认的事情全部确认清楚。

2.2 第二阶段:在需求评审开始后,技术方案设计中

需求评审后:

        1.填写测试方案:填写测试方案中的项目背景、目标等需求层面的明确信息。

        2.初步沟通:清晰本次需求变动是否涉及多个业务系统,前置沟通明确需求边界与关联系统的负责人。相关问题可以快速定位负责人。

        3.清晰需求流程,绘制初版流程图:用QA视角绘制需求流程图,涉及流程上的最好是自己再画一遍。此节点的开发才开始设计技术方案,可以先用需求角度,纯业务流程的思维初步绘制流程图,有疑问的地方记录下来。

        关于流程图还是有话说的:一般来说产品在需求中是会有个流程图的。一开始想的是,产品有就用产品的就好了。直到有一次测试方案评审中,产品说:“这个流程图‘抄袭我’”。也是一时“好面子”,想不就是个图嘛!我自己画。第一次画的时候发现,原来产品的流程图对QA来说是有些“盲点的”,如:状态的流转不够清晰,逻辑处理都不够细化等。在绘画流程图的过程,以QA测试视角去详细了解业务流转的流程、逻辑上的处理、不同场景下的结果等。

技术方案设计中:

        1.首次完善流程图:

        初步流程图绘画完成后,大概率会有一些流程的问题,比如状态的流转实现方式、逻辑处理等情况上的理解差别,或实现出入。我们需要和开发进行讨论不断完善。这就是牵动需求与开发结合的过程,也是联动监督的过程。以业务视角牵动技术实现,防止开发盲目设计,造成缺少需求逻辑或理解偏差等情况的“返工”。

        2.进一步沟通,初步明确信息:

        (1)需求边界,里程碑等确认:涉及多系统联合的需求过程中,清晰需求边界要有主人翁意识。需求测试负责人不是自己的情况下,也要主动了解关联系统的节奏,多系统的测试负责人,需求功能拆分等。清晰各个系统的边界等信息。在测试过程中才不会“无头苍蝇”。

        (2)诉求同步确认,初步分析。自身是否依赖其他系统提供配合或是否需提供给其他系统一些能力,如:数据准备、数据构造、信息配置等。

        (3)节奏沟通:初步了解其他系统的提测节奏,可更好的规划测试计划与测试策略。

比如:

  • 依赖的服务提测时间较晚,此功能相关的测试任务就要往后排;
  • 如果上层依赖本服务功能,若是节奏统一可以上层发起场景覆盖;上层提测较晚的,可以自行接口测试;
  • 若自身被多个系统依赖,要前置做好内部测试从而不影响其他系统节奏等等。了解这些可以对有强依赖且节奏差异过大等风险前置提出。

2.3 第三阶段:技术方案设计后

        要将涉及的配置,库表设计,流程实现都清晰起来。功能实现方案的二次矫正,更新测试方案对应内容。

1.流程逻辑的确认:

  •  技术方案评审后再校验流程图是否与实现一致;
  • 多方交互的功能依赖,顺序依赖

2.配置确认:

        如阿波罗,页面配置,一些涉及了线上流程都都要与产品和开发做好线上数据配置的确认,做好沙箱检查 3.库表设计:        

  •  库表设计关注是否影响线上流程和数据;
  • 是否对大量级数据表有字段变动这种SQL只能在晚上执行,需要在沙箱前要提醒开发前一天执行SQL语句,防止因为没执行影响验证进度;
  • 状态机是否变动,OMS若状态机变动,部署沙箱后线上不可以重启,否则服务无法启动要与运维前置沟通。同时期需求不可以合并上线。

4.接口变动:

        是否对原有接口有增减字段处理,若有要清晰接口调用方,是否都会随之升级jar包。以增加字段为例,增加字段且有校验逻辑时,调用方未升级jar,这个字段就是null有逻辑的时候会出现空指针。此种情况要做好兼容回归。

2.4 第四阶段:测试方案评审前

        这个节点,若有其他关联系统的情况下,各方向应该已经很明确需求设计与技术设计了。这个时候要与各系统QA负责人,做最终的确定,完善测试方案初稿中模糊的内容;

        1.是否有数据构造依赖

        2.系统功能交互的场景,同步关联场景用例的牵头方与关注方;

        3.对于依赖其他系统的情况,根据其他系统提测节奏,评估影响,分析是否需要调整自身测试计划与测试策略;

        4.我对其他系统需要提供什么,期望的时间节点等。

2.5 第五阶段:测试方案评审

        测试方案评审的时间,我一般会与技术方案同一天完成,趁需求“热度”还在,更好可以拉齐视角,统一节奏和差异点。大家更清晰接下来要做的事情,项目节奏更加明确。


3、关注点的变化

        真正理解测试方案内容后发现,我们公司所用的测试方案模板包含了每个系统的特性。项目中测试需要关注的内容,就像一份详细的提纲一样,提醒我们关注一些没有考虑到的内容。认真的完成每一项,更可以协助我们详化测试的方法与节奏。个人从刚接触测试方案到理解测试方案,心态变化也是有一定的过程的。

按规章办事:      

     最开始按照项目规范的要求,对大于3D的项目进行测试方案编写。编写测试方案的过程也是“不知所以然”的“填空”。写了几个测试方案的过程中发现,测试方案中测试计划模块可以细化排期,方便清晰需求的节奏。清晰节奏里程碑于测试计划,有助于合理规划测试节奏。

        关注重点: 项目里程碑,项目计划

多方调研,知己知彼:      

        一段时间后,OMS在此期间开始收拢业务接入随着零食,门店等多个业务的不断接入,过程的累计自己也开始去关注系统的测试边界、多系统交付中的衔接功能节点、系统对接人、以及相关系统的实现和系统依赖顺序等,在多系统的配合的过程中,这些信息是很重要的。可以更快捷定位问题与所属系统和系统联系人,更快排查问题。清晰自身的业务,减少对其他系统的功能盲点,业务思维更完善。

      关注重点: 需求边界,需求拆分,多方系统对接人,前期准备等

战术清晰:

        测试手段安排就如同战场制定战术一样重要。提高这个模块的重视程度在一次OMS内部技术优化的需求中。在业务大范围介入OMS系统后,OMS内部开始了系统内部优化,最大的核心变动就是库存模型的调整。这个需求是对外部业务无感知,但内部结构变动极大的需求。这个测试方案内容也是在负责人要求的过程中多次优化。要对技术方案深入了解,完善测试方案内容如:灰度策略,配置相关,测试策略和测试手段等。还对回归范围,影响的系统,以及协助回归的负责人做好确认与前置沟通。将风险降至最低,将需要确认的方向持续矫正,保障质量。

     关注重点: 技术方案流程,测试策略,测试手段,配置与检查项相关等

贴近业务:

        随着工作时长的累加,意识到若想真的了解系统,就要贴近业务。明白系统的定位,发展的方向和接下来的计划都是很重要。这样在一些大需求中可以针对业务方向、长期的目标、系统定位、是否长期发展来分析需求的设计,技术的设计方向协同分析是否适合长期的迭代。要重视需求的目标、背景、实现才能更好的做好质量把控,项目的前提一定是业务。

        关注重点: 项目背景,项目目标等

> 转转研发中心及业界小伙伴们的技术学习交流平台,定期分享一线的实战经验及业界前沿的技术话题。

> 关注公众号「转转技术」(综合性)、「大转转FE」(专注于FE)、「转转QA」(专注于QA),更多干货实践,欢迎交流分享~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/563046.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

HTTPS的加密技术——中间人攻击

HTTPS的加密技术 文章目录 HTTPS的加密技术认识HTTPS对称加密和非对称加密①只使用对称加密方式②只使用非对称加密③两种加密算法联合使用🧛‍♂️中间人攻击📖引入证书总结https加密技术🐱‍👤 http和 https之间相差一个字母&a…

基于springboot+mybatis-plus+mysql+vue在线考试系统

基于springbootMybatis-plusmysqlvue在线考试系统 一、系统介绍1.系统主要功能:2.涉及技术框架:3.本项目所用环境: 二、功能展示三、其它系统四、获取源码 一、系统介绍 1.系统主要功能: 权限控制 本系统存在三个不同的角色&…

Linux 提权前信息搜集

linux前期提权也是要信息搜集 linux信息搜集可以使用软件进行,这里写四个脚本 (我们拿到webshell或者普通用户时,上传第三方软件的目录应该是Linux的tmp目录,tmp目录是临时目录,每次linux重启后该目录内容就会清除,而…

Dubbo源码篇05---SPI神秘的面纱---使用篇

Dubbo源码篇05---SPI神秘的面纱---使用篇 引言Jdk提供的SPI机制基本流程缺陷 Dubbo的SPI机制实例演示 Dubbo VS JDK SPI 小结Adaptive自适应扩展点demo演示如何做到动态适配的 按条件批量激活扩展点小结 引言 SPI全称是Service Provider Interface,其中服务提供者定…

全面提升测试效率,一键实现多文件、多Sheet的WEB自动化测试!

目录 前言: 设计目标 框架结构 实现 总结 前言: 在WEB开发中,自动化测试框架是一个不可或缺的组件。封装一个既能支持多文件,又能支持多Sheet的WEB自动化框架,将会极大地提升我们的开发效率。下面我将会详细介绍…

GPT-4平替版:MiniGPT-4,支持图像理解和对话,现已开源

项目地址:https://minigpt-4.github.io/ 论文链接:https://github.com/Vision-CAIR/MiniGPT-4/blob/main/MiniGPT_4.pdf 代码:https://github.com/Vision-CAIR/MiniGPT-4 视频:https://youtu.be/__tftoxpBAw 数据集&#xff…

el-dialog 关闭再打开后窗口内容不刷新问题

页面中有增加和编辑两个功能,由于弹窗样式都是一样的,于是将它拆分成一个子组件,父组件把状态传给子组件,子组件根据这个状态判断是做编辑操作还是新增操作. 编辑 添加 问题一:但是这样遇到了一个问题,在编辑时,只有第一次点编辑时,回显的数据才能正确显…

大学生就业工资低,想转行IT?0基础培训班学习半年云计算出来可以就业吗?挑战高薪职业!

大学生就业工资低,想转行IT?0基础学习云计算可以就业吗? 大学生就业工资低,想转行IT?0基础培训班学习半年云计算出来可以就业吗?这是一个很常见的问题,也是很多大学毕业生关心的话题。根据我了解…

探索2023年海外网红营销合作方式:提升品牌曝光度的创新策略

随着社交媒体的崛起和用户对网红的追捧,海外网红营销已经成为品牌推广的不可忽视的一部分。在2023年,有7种最火爆的海外网红营销合作方式备受瞩目。本文Nox聚星将和大家一起来详细了解这7种方式,为品牌提供更多营销灵感和策略。 1、跨平台合作…

Codeforces Round 834 (Div. 3)

题集链接 Codeforces Round 834 A. Yes-Yes?B. Lost PermutationC. Thermostat A. Yes-Yes? Example input 12 YES esYes codeforces es se YesY esYesYesYesYesYesYe seY Yess sY o Yesoutput NO YES NO YES NO YES YES NO NO YES NO YES题意&题解: 其实就…

Windows环境下安装及部署Nginx教程(含多个站点部署)

目录 一、下载安装Nginx 二、部署Nginx 三、多站点部署的情况 1、nginx域名解析,虚拟主机: 四、带https的站点如何部署,与http的有何不同点? 一、下载安装Nginx 1、官网下载地址:https://nginx.org/en/download.h…

2022 年第四届河南省 CCPC 大学生程序设计竞赛vp补题

Dashboard - 2022 CCPC Henan Provincial Collegiate Programming Contest - Codeforces Problem B. Hash 思路: 发现31的次幂取模的答案,所以如果一段太长肯定不如拆成2段。首先如果一段长度为7,那么无论他的开头是a,eh,n的谁,都有val>31^6887503…

0基础学习VR全景平台篇第29章:场景功能-音乐解说

本期为大家带来蛙色VR平台,场景管理模块-音乐功能! 功能位置示意 一、本功能将用在哪里? 优秀VR全景作品不仅注重视觉的体验,接入契合场景的背景音乐与解说; 可将音乐与解说进行全局播放或进行分场景播放&#xff0…

前端学习--Vue(4) 生命周期

一、组件的生命周期 一个组件从创建-运行-销毁的真个阶段,强调的是一个时间段 1.1 生命周期函数 1.1.1 创建 (只执行一次) created() 阶段任务:最早可以使用methods中的方法发起ajax请求获取数据,并将数据挂载到d…

论文阅读笔记(三)——有监督解耦+信息瓶颈

论文信息 《Disentangled Information Bottleneck》 论文地址:https://ojs.aaai.org/index.php/AAAI/article/view/17120 代码地址:GitHub - PanZiqiAI/disentangled-information-bottleneck inproceedings{pan2021disentangled, title{Disentangled in…

vue3与vue2共存环境搭建

1、全局安装vue2 npm install vue-cli -g2、自行在任意位置创建一个文件夹,局部安装vue3 npm初始化 npm initnpm初始化 提示: 初始化后 出现文件package.json 如果没有初始化 会报错,且文件夹中不会新增内容 3、局部安装vue3 npm install …

一名优秀的黑客,具备的有哪些特质

想要成为网络hacker黑客?十个必会的特质 一、基本的计算机知识 把它列为第一条,相信很多人肯定会觉得不以为然,其实掌握必要的计算机知识对黑客入门非常重要。这些包括:计算机硬件的组成、操作系统的安装、Windows批处理命令、命…

LeetCode_DFS_困难_1377.T 秒后青蛙的位置

目录 1.题目2.思路3.代码实现(Java) 1.题目 给你一棵由 n 个顶点组成的无向树,顶点编号从 1 到 n。青蛙从 顶点 1 开始起跳。规则如下: 在一秒内,青蛙从它所在的当前顶点跳到另一个未访问过的顶点(如果它…

apt remove purge的区别 删除包的同时删除配置文件

1、apt remove purge的区别 查看 man apt apt remove:删除软件包,不删除配置文件。这么做的目的是将来再次安装这个包时 原来的配置文件会自动加载供使用。也可以避免误删除包,配置文件还在的话,重新安装一次软件包就可以恢复到…

亚马逊云科技出海日6月9日盛夏盛启

向全球价值链上游奋进 中国企业增强国际竞争力的关键,是努力朝全球价值链上游奋进,发力技术出海。中国的出海新机遇,背后曾是疫情在全球按下数字互联和数字化升级的快进键,跨境电商、在线社交、移动支付、数字服务等数字经济迎来…