开发提测前测试的目的是什么

news2024/10/5 21:18:31
  •    📢专注于分享软件测试干货内容,欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!
  • 📢交流讨论:欢迎加入我们一起学习!
  • 📢资源分享:耗时200+小时精选的「软件测试」资料包
  • 📢 最困难的时候,也就是我们离成功不远的时候!

作为测试,经常会遇到倒排期的项目,当研发已经占用了很多资源的情况下,此时测试要想提高效率。就不得不在研发提测前多做准备,那么研发提测前测试到底能做些什么,我将根据我的经验,在本次文章中与大家一起分享。


需求分析
首先要做的就是要在熟读下 prd,这里面主要需要挖掘如下信息:


本次 prd 的业务背景是什么?
这个业务要实现的价值是怎样的?
这个业务的受益方(或者叫使用者)是谁?
本次业务都需要与哪些外部部门进行合作,联调方都有哪些?
本次功能的改造是否涉及了历史功能的改造?即需要明确下改造范围
本次功能的改造都涉及了哪些测试方向,除了功能、UI、易用性、接口、冒烟、回归,是否还需要数据测试、性能测试?
笔者认为,最起码应该明确了上面的问题,才算是一次合格的需求分析,它将为您了解整个待测系统的来龙去脉提供强有力的支撑。


研发设计分析
研发作为真正的项目落地方,他们输出的研发设计文档,我们同样需要花费时间进行通读分析,否则就会遗漏一些异常流程。看任何文档都必须带着问题进行,同样的,笔者个人去读研发的设计文档,主要想挖掘如下有价值的信息;


本次涉及到了哪些接口,这些接口中哪些是我们提供的服务,哪些我们是消费者。还需要梳理出每个 jsf 接口的:接口名称+别名+方法,方便在测试平台进行泛化调用,验证接口;
我们作为服务方的接口,还需要明确该接口支持的最大调用量以及响应时间是多少,评估是否需要进行性能测试;


本次涉及的这些接口是否都有测试环境,如果没有,需要提前整理好入参、出参对其进行 mock
本次是否涉及了 JMQ,是 JMQ4还是 JMQ2,并且 topic 是不是在测试环境都已存在,如果没有需要去对应的平台申请建立 topic
流程改造涉及的异常流程都有哪些?这些异常流程包括但不限于:
【1】针对接口,不同的异常响应码,程序应该如何处理?如果调用超时是否会重试?
【2】针对 jmq,如果消费异常,是否会重试?
【3】正常业务流程下的异常场景,这些场景应充分考虑用户习惯、用户常用功能、系统健壮性、异常输入输出等不确定因素。
流程改造是否包含了 jimdb,如果使用了 jimdb 务必梳理出:本次新增了哪些 key,这些 key 是否有时效?时效是多久?避免因为缓存过期导致的程序异常。
这里还有容易忽略的一点,需要明确下每个模块的研发负责人是谁,后面遇到问题、报BUG都需要准确对应哦。
以上即是笔者认为的研发设计分析中需要注意的事项,可能不够全面,欢迎补充。


测试用例编写
测试用例作为测试必备输出的文档、以及执行测试的必需依据,这里不做过多赘述,因目前所测试系统中接口测试偏多,但是很多时候又不清楚接口测试到底应该测试些什么,基于此,这里与大家分享下我是如何进行接口测试的,我测试接口时主要关注的点都在什么地方?


接口文档测试
对于接口接口文档是双方约定的最基础的约定,数据能否正常传输依赖于接口文档,接口文档定义的标准、规范。对于这个接口来说已经完成了大部分的工作。从接口文档中我们要剖析出以下的点展开测试:


首先明确请求的数据类型是什么,主流的有Json、http等请求。
对接口文档中定义的必录项一一进行测试,看某必录项缺失时,作为接收的一方是否有合理提示。
对于文档中定义的非必录项一一进行测试,看某非必录项缺失时,作为接收的一方是否可以正常接入信息。
对于日期格式进行测试。支持的是yyyy-MM-dd还是yyyyMMdd还是yyyy/MM/dd这种格式进行验证。
对于有效数字保留进行测试。一般接口文档要求保留最多两位小数,此时要验证整数、保留一位小数、保留三位小数时接收方的响应。(等价类划分)
对于常见的身份证号、手机号要进行长度、容错性测试。
对于枚举值,要一一进行测试。(运用等价类划分的方法)
对于请求方的数据还要对照接口文档确认是否完全按照接口文档定义的数据类型进行传输的。


内部业务逻辑
业务场景不同,入参组合不同,那么程序处理也不同,此时应该充分考虑业务场景,组织不同入参进行检查,下面列表两个最常见的场景进行表述:
遇到查询接口,肯定一方面需要尽可能控制入参参数少甚至没有,此时看是否能返回全部的业务数据,另一方面需要传尽可能多的参数,以验证所有的查询条件是否有有效,仅而查询结果按照所有查询条件的交集进行返回。


遇到金额想到是否存在等式和不等式的关系。拿借款人来银行借款这个例子来说:借款人借款之后,需要进行还款,还款请求中有还款总金额、还款本金还款利息金额。此时我们肯定要分析出:还款总金额、还款本金必须>0(不等式成立),才是正确的请求。
遇到权限、角色:不同的权限传递不同的权限码,能处理的业务也不尽相同;
对历史数据的兼容,有些接口不仅针对新业务,也必须包含老业务的处理,此时需要考虑对历史数据的兼容性处理。


数据库测试
针对接口数据库部分的测试其实占有很大的比重,我们应该着重注意测试以下方面:


业务流转如何映射在数据库。一般都是靠状态、流程节点进行区分。
各个表的更新如何映射业务流程。即一个接口的接入哪些表只是单纯的存储数据,哪些表是更新数据,更新的数据有哪些。一定要清晰。
各个表的流转之间是不是有异常处理。举个例子来说:接口A成功接收后,需要存储表tab1和tab2,且存储完tab1才去存储tab2,此时数据库发生异常,存储完tab1但是存储tab2失败,此时需要验证功能是否回滚,是否有这部分的异常处理。
后续业务对当前数据是否有强依赖关系,如果存在强依赖,那么当前表数据在哪些情况下会被更新、逻辑或物理删除,对后面的业务测试有什么影响,需要列举清楚;


jimdb测试
我们内部有很多的业务场景采用了 jimdb,基于此也需要进行详尽的测试;
一次接口的调用,都对哪些 jimdb 进行了操作,包括但不限于新增和更新
这个 jimdb 的 key 生成后,是否有业务操作会将其清除,是否有业务对其强依赖进行判断。
这个 jimdb 的 key 是否会过期,过期时间太短会不会影响后续业务?
这个 jimdb 缓存有没有被拉到本地缓存.
还需要关注一下数据库和jimdb同时存在的值,发生更新操作时,缓存与数据库是否同步,尤其库存相关的业务,为了性能经常采用先扣减缓存、在扣减数据库记录的操作,此时需要保证二者最终数据的一致性。


异常流程测试
关注重试,jsf jmq自身都有重试机制,但是重试到底对本业务的影响是好是坏,需要因需评估。
关注超时处理:一旦超时,会抛出异常。
关注异常响应处理,一般情况下接口中会列举成功的响应码、也会列举异常的响应码,我们需要关注异常响应时,程序是否按照预期处理,很多时候无法触发一些异常响应,此时进可能的 mock 会事半功倍。
关注临界处理:尤其对于数字类,最大与最小
关注异常等价类:有正数就要有负数、有长度限制就应该有0值等等。
好的测试用例是测试必不可少的一环,掌握一种测试的测试点显得尤为重要。


总结
其实研发提测前我们测试还能做了很多其他的事情,比如:风险评估、测试排期、自动化等,这里不在做过多描述,这里只列举最重要的三个方面:需求分析、研发设计分析、测试用例编写,可能最终的结果依然不尽人意,但是尽力就好,不是么?


行动吧,在路上总比一直观望的要好,未来的你肯定会感谢现在拼搏的自己!如果想学习提升找不到资料,没人答疑解惑时,请及时加入群,里面有各种测试开发资料和技术可以一起交流哦。

最后: 下方这份完整的软件测试视频教程已经整理上传完成,需要的朋友们可以自行领取 【保证100%免费】

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。在这里插入图片描述
在这里插入图片描述

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

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

相关文章

为什么修改IP和隐藏IP地址?修改IP地址带来哪些好处?

随着互联网的普及,越来越多的人开始依赖网络进行日常生活和工作。然而,在上网过程中,我们的IP地址是暴露无遗的,这就有可能导致一些安全问题。因此,修改IP和隐藏IP地址的需求应运而生。那么,为什么要修改IP…

【深度学习实验】图像处理(三):PIL——自定义图像数据增强操作(随机遮挡、擦除、线性混合)

文章目录 一、实验介绍二、实验环境1. 配置虚拟环境2. 库版本介绍 三、实验内容0. 导入必要的库1. PIL基础操作2. Cutout(遮挡)2.1 原理2.2 实现2.3 效果展示 3. Random Erasing(随机擦除)3.1 原理3.2 实现3.3 效果展示 4. Mixup&…

Spring-Mybatis源码解析--手写代码实现Spring整合Mybatis

文章目录 前言一、引入:二、准备工作:2.1 引入依赖2.2 数据源的文件:2.1 数据源: 2.3 业务文件: 三、整合的实现:3.1 xxxMapper 接口的扫描:3.2 xxxMapper 接口代理对象的生成:3.2 S…

分享83个简历竞聘PPT,总有一款适合您

分享83个简历竞聘PPT,总有一款适合您 83个简历竞聘PPT下载链接:https://pan.baidu.com/s/1iybRAisgWgXhelE1tGpzBw?pwd8888 提取码:8888 Python采集代码下载链接:采集代码.zip - 蓝奏云 学习知识费力气,收集整…

java学习part25多线程

132-多线程-程序、进程、线程与并行、并发的概念_哔哩哔哩_bilibili 1.概念 2.共享内容 只有线程间能通信,进程之间不共享内容。 3.继承thread的多线程 相当于golang里先写一个线程函数run(),子类对象调用start()相当于go关键字 相当于go run() package thread;/…

Target、沃尔玛撸卡、采退支付下单如何避免账号关联风险?

近年来,随着跨境电商平台的日益繁荣,越来越多的国内卖家涌入其中,导致竞争异常激烈。为了在竞争中脱颖而出,一些卖家采用自动脚本程序进行浏览和下单,然而这种行为很容易导致账号被批量关联、封号。本文将探讨养号下单…

算法面试题--树与对象数组的转化

1. Array -> Tree var arr [{ id: 12, parentId: 1, name: "朝阳区" },{ id: 241, parentId: 24, name: "田林街道" },{ id: 31, parentId: 3, name: "广州市" },{ id: 13, parentId: 1, name: "昌平区" },{ id: 2421, parentId:…

Java核心知识点整理大全24-笔记

22. 数据结构 22.1.1. 栈(stack) 栈(stack)是限制插入和删除只能在一个位置上进行的表,该位置是表的末端,叫做栈顶 (top)。它是后进先出(LIFO)的。对栈的基…

2023.11.12 阿里云产品全线故障

阿里云 11.12 故障原因曝光:访问密钥服务 (Access Key) 异常 (baidu.com) 故障原因竟然是因为生成白名单代码逻辑缺陷。

皮肤警告,羊大师讲解身体与环境的默契

皮肤警告,羊大师讲解身体与环境的默契 我们常常忽视身体皮肤所承受的压力和警告信号。皮肤是身体的第一道屏障,也是与外界环境直接接触的组织。我们的皮肤通过各种方式向我们传达信息,警告我们关于身体健康的重要问题。本文小编羊大师将带大…

堆栈_队列实现栈

//请你仅使用两个队列实现一个后入先出(LIFO)的栈,并支持普通栈的全部四种操作(push、top、pop 和 empty)。 // // 实现 MyStack 类: // // // void push(int x) 将元素 x 压入栈顶。 // int pop() 移除…

外汇天眼:CFTC修订了针对Logista Advisors的投诉

商品期货交易委员会(CFTC)修改了对Logista Advisors LLC及其首席执行官Andrew Harris Serotta的投诉。修改后的投诉于2023年11月28日提交给伊利诺伊州北区法院。 修改后的投诉声称,从至少2020年1月左右至少到2020年4月左右,Logis…

whatsapp信息群发脚本开发!

WhatsApp 作为全球广受欢迎的通讯应用,在我们的日常生活中扮演着重要角色,有时候,我们需要向大量联系人发送消息,比如营销推广、活动通知等。 一个个手动发送消息?那简直太落后了!今天,我们将探讨如何利用脚本开发实…

使用JAVA语言写一个排队叫号的小程序

以下是一个简单的排队叫号的小程序&#xff0c;使用JAVA语言实现。 import java.util.LinkedList; import java.util.Queue; import java.util.Scanner;public class NumberingSystem {public static void main(String[] args) {Queue<String> queue new LinkedList<…

探索使用Quarkus和MicroProfile 构建Kubernetes原生微服务的秘诀!

Kubernetes Native Microservices with Quarkus and MicroProfile 是一个基于Kubernetes原生微服务的开发框架&#xff0c;它结合了Quarkus和MicroProfile的优点&#xff0c;提供了一个高效、可扩展、易于管理的微服务解决方案。 Quarkus是一个针对Java虚拟机&#xff08;JVM&…

企业计算机服务器中了mallox勒索病毒如何解密,mallox勒索病毒文件恢复

随着网络技术的不断发展&#xff0c;网络安全威胁也在不断增加&#xff0c;勒索病毒攻击企业计算机服务器的事件时有发生&#xff0c;并且勒索病毒的加密形式也越来越复杂。近期&#xff0c;云天数据恢复中心陆续接到很多企业的求助&#xff0c;企业的计算机服务器遭到了mallox…

配电室无人值守方案

配电室无人值守一种应用先进技术实现配电室自动化运行、实时远程监控和管理的解决方案。力安科技配电室无人值守&#xff0c;加装小安值班机器人或边缘网关&#xff0c;完成配电室智能化升级&#xff0c;依托电易云&#xff0c;构建智慧配电室及运维系统。 设备选型和安装&…

数据结构-04-队列

1-队列的结构和特点 生活中我们排队买票&#xff0c;先来的先买&#xff0c;后来的人只能站末尾&#xff0c;不允许插队。先进者先出&#xff0c;这就是典型的"队列"。队列跟栈非常相似&#xff0c;支持的操作也很有限&#xff0c;最基本的操作也是两个&#xff1a;入…

问题记录-maven依赖升级或替换(简单版)

问题背景 项目被检测到有高危漏洞&#xff0c;需要对部分jar进行升级。以一个jar为例记录一下升级过程。 1 找到高危漏洞的包 如果装了maven helper插件则可以在下面查看当前模块依赖包 2 使用maven命令 执行下面这个命令&#xff0c;会将当前项目的信息打印出来&#xff0c;…

只有stm32基础,学嵌入式linux得几年?

只有stm32基础&#xff0c;学嵌入式linux得几年&#xff1f; 你这几句话基本把好几个方向都说了个遍&#xff0c;但是实际你没有这么多精力 这里32的基础意义不大&#xff0c;主要是C语言基础和之前项目中的经验&#xff0c;要是这俩个都不错&#xff0c;你可以直接上手 linux&…