软件测试的调用接口怎么调用,逻辑是什么?

news2024/12/24 10:11:11

一、什么是接口测试?

接口测试是测试系统组件之间接口的测试。接口主要用于检测外部系统和内部子系统之间的交互点。测试的重点是检查数据交换、传输、控制和管理过程,以及系统之间的相互逻辑依赖。

二、为什么要做接口测试?

在淘宝系统的历史上,功能测试和性能测试最早出现,随后是自动化测试。但是今天,淘宝的架构已经不再是传统的MVC结构,系统正在朝着分布式、以业务为中心、高可用的方向发展。今天的系统架构很复杂,系统之间有很多接口。传统的功能测试、性能测试和自动化测试已经不能满足系统开发的需要,迫切需要一种更加有效、实用和可持续的测试方法。

界面测试就是在这种需求下产生的。首先,随着系统复杂度的不断增加,传统测试方法的测试成本急剧增加,测试效率急剧下降(根据数据模型,一个底层的bug可以造成8个左右的顶层bug,底层的bug很容易导致整个网络的宕机。相反,当系统复杂性增加时,接口测试可以提供低成本、高效率的解决方案。

其次,界面测试不同于传统的单元测试,是从用户的角度对系统界面进行全面、高效、持续的测试。

最后,接口测试是自动化和持续集成的,这就是为什么接口测试可以是低成本、高收益的根源。

总之,接口测试是高复杂度系统质量和低成本经济效益内在要求驱动下的最佳解决方案。接口测试是一个完整的系统,包括功能测试和性能测试。

三、接口测试的流程

根据以往的实践经验,接口测试可以分为以下几个步骤:需求分析与设计评审、测试框架与技术选择、测试计划制定、测试环境构建、测试用例设计与评审、测试实施与执行、持续集成。接下来,将详细描述每个步骤。

1、需求分析和设计评审

几乎所有的软件活动都是从需求分析开始的,接口测试也是如此。在这个阶段,我们有两个任务:第一,充分理解需求,确保所有人对需求有相同的理解;第二,尽量找出需求本身存在的问题。

需求分析结束后,进入系统设计阶段。系统设计不应该仅仅是系统设计者或开发者的事情。作为接口测试人员,应该能够从测试的角度为系统设计提供一些解决方案或建议,优化设计,提高系统的可测试性。

2、测试框架和技术选型

在系统设计审查之后,应该已经选择了实现系统所需的所有技术。在这个阶段,接口测试人员需要根据系统设计选择自己的测试框架和要使用的技术。当然,这不是必须的。如果你正在测试的项目的技术框架和你之前测试过的项目的技术框架相似,可以沿用之前的测试框架和技术,或者在此基础上做一些调整。如果被测试的项目采用了不同的技术架构,那么就需要仔细考虑如何选择合适的测试框架和技术。

界面框架和技术的选择有很多因素。原则是选择最能满足你测试需求的框架和技术,尽量让你的项目成员熟悉。不需要单纯为了提高测试的技术含量而选择功能多但复杂难懂的工具。

3、试验计划的制定

接口测试的测试规划基本类似于功能测试。在这个阶段,需要明确哪些测试资源可用,如何分配测试资源,整个测试过程需要做什么,每个时间点应该做什么,最重要也是最容易被忽视的一点就是风险评估。虽然我们不可能识别所有风险,但我们可以识别大多数潜在风险,并根据经验值进行管理。良好的风险管理是软件团队成熟的体现。

4、测试环境的构建

测试框架和技术选择完成后,就可以开始构建测试环境了。在界面测试中构建环境的典型过程可能如下:首先,您将为界面测试构建一个基础项目,并为该项目设计一个良好的结构。在这个项目中,你将引入你选的测试框架和依赖项,为这些框架和依赖项准备必要的配置文件,并以某种形式(通常是项目依赖)将这个项目与要测试的系统的项目相链接。在这种环境下,能做到运行通过一个最基本的测试。

5、测试用例的设计和评审

接口的测试用例设计是以接口为单元设计测试。在设计过程中,我们重点关注接口可能的输入参数以及预期的输出结果是什么。当然,必要的时候也要考虑界面的表现和预期的压力。在这个过程中,区分不同测试的优先级是非常重要的,这会指导你哪些测试应该先完成,哪些测试在测试资源不足时可以延迟。也就是在测试资源充足的情况下,也可以按照优先级完成测试,这样一旦出现一定的风险,基本上可以保证高优先级的工作已经完成,不会出现恐慌。

测试用例设计完成后,要进行评审,评审的结果要以某种形式记录下来,作为测试实施的最终方案。评估最好由以下人员参加:需求方、设计方、开发方、功能测试方、接口测试方及其直接主管。不同的角色会从不同的角度考虑测试设计,所以测试设计在这个过程中会有很大的提升。

6、测试实施和执行

一旦设计完成并通过评审,测试实现就相对简单了。没有什么意味着一个测试用例是通过编程语言实现和运行的。

在测试实现的过程中,可能会发现测试设计不完善,或者因为需求的变化,需要增加新的测试用例。不管什么原因,在实施测试的过程中,一旦发现有完善的地方,就要立即记录下来,这样才能更有效地保证测试的完整性。

在这个过程中,我们还应该制作测试报告(包括每日报告和最终报告),让整个团队能够及时掌握项目的质量,让不同的角色能够正确安排工作。

7、持续集成

持续集成是接口测试实现全面自动化回归测试的重要技术手段。简单来说,持续集成就是持续运行编写好的测试代码,并使用版本控制技术,使测试代码始终测试最新版本的系统接口。

当接口测试进行到这个阶段,我们的目标是让测试代码持续运行,保证当测试代码失败时,能够及时定位并解决问题。当开发人员维护系统时,我们也会根据持续集成的结果来维护我们的测试代码。

最后,需要注意的是,虽然上面提到的步骤是我们的接口测试人员遵循的规范,但与其他测试(如功能测试)不同,接口测试需要与开发同时进行。项目开始的时候我们就应该参与,编码完成的时候测试基本完成。中间的每一步也与开发息息相关。因此,我们的接口测试工程师也被称为测试开发工程师,我们既需要测试知识,也需要编码能力。

8、质量评价标准

接口覆盖率是否符合要求。

1)所有外部调用的接口都必须有相应的测试用例,覆盖率要达到95%以上。

2)所有内部使用的、涉及产品主要功能的接口测试用例覆盖率应在90%以上。

3)对于所有内部使用的、涉及二级功能的接口,测试代码的覆盖率会随着接口复杂度和重要性的增加而增加。

测试测试用例中接口业务规则的验证是否完成。

1)测试用例应该覆盖接口的主要业务规则。接口的主要业务规则是接口的主要功能,影响接口的业务实现和调用状态。

如果发布一个宝贝,那么发布一个全新的、二手的、拍卖的、闲置的宝贝等等就是主要功能。

2)测试用例应该覆盖接口的通用业务规则。或者一个发布宝贝的例子,80%的卖家会添加图片、想要想要的链接等。根据描述。这生意

规则不会影响接口的正常调用。但是会影响用户的使用习惯。因此,测试用例必须在描述字段中包括图片链接和想要的链接的验证。

3)参数验证应涵盖边界值和参数特定业务规则的验证。许多接口对其参数有一定的限制,例如,字段长度限制为。

对于该字段长度为4,5的测试用例。

是否覆盖测试用例中接口之间的相关性测试。例如,在添加的接口的关联测试中,其他关联应该以添加的接口的返回值作为参数来调用。

例如,修改和删除接口,并验证它们是否可以被调用和成功调用。

遗留bug对系统的影响程度:

1)频繁调用的接口不得包含与主要业务规则和常见业务规则相关的bug,次要业务规则的bug遗留率应在0.2%以下。

2)不经常调用的接口不能包含主要业务规则的bug,常见业务规则的bug漏报率为2%以下,次要的业务规则的bug漏报率在5%以下。

测试用例与测试代码是否一致。

测试案例是否可以持续回归。

被测接口是否符合调用者的标准,调用者能否使用该接口开发产品设计规范设计的应用。

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

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

相关文章

Java8新特性---Stream流

什么是Stream 是数据渠道,用于操作数据源(集合、数组等)所生成的元素序列。集合讲究的是数据,流讲的是计算 注意: Stream不会自己存储元素Stream不会改变源对象,相反,他们会返回持有结果的新…

GPT-4耗尽全宇宙数据!OpenAI接连吃官司,竟因数据太缺了,UC伯克利教授发出警告

穷尽「全网」,生成式AI很快无数据可用。 近日,著名UC伯克利计算机科学家Stuart Russell称,ChatGPT和其他AI工具的训练可能很快耗尽「全宇宙的文本」。 换句话说,训练像ChatGPT这样的AI,将因数据量不够而受阻。 这可能…

五、修改官方FreeRTOS例程(STM32F1)

1、官方源码下载 (1)进入FreeRTOS官网:FreeRTOS官网 (2)下载FreeRTOS。(选择带示例的下载) 2、删减目录 (1)下载后解压的FreeRTOS文件如下图所示。 (2)删除下图中红框勾选的文件。 FreeRTOS-Plus,FreeRTOS的生态文件,非必需的。tools&…

esp8266+电压检测模块检测电池电压

该模块5v时输出1v&#xff0c;因esp8266 ADC引脚(A0)支持电压范围是0v-1v&#xff0c;所以该方案仅支持0-5v电压检测 接线&#xff1a; - 接 esp8266GND 可不接 S 接 ADC esp8266 为 A0 VCC 被检测直流电 GND 被检测直流电- #include <Wire.h>const int adcPin A0; // …

Redis五大基本数据类型及其使用场景

文章目录 **一 什么是NoSQL&#xff1f;****二 redis是什么&#xff1f;****三 redis五大基本类型**1 String&#xff08;字符串&#xff09;**应用场景** 2 List&#xff08;列表&#xff09;**应用场景** 3 Set&#xff08;集合&#xff09;4 sorted set&#xff08;有序集合…

excel逻辑函数篇1

1、AND(logical1,[logical2],…)&#xff1a;用于测试所有条件是否均为TRUE 检查所有参数均为true&#xff0c;如果是则返回true 2、OR(logical1,[logical2],…)&#xff1a;用于测试是否有为TRUE的条件 如果任意参数值为true&#xff0c;即返回true&#xff1b;只有当所有参数…

223、仿真-基于51单片机温湿度PH值二氧化碳(C02)报警Proteus仿真设计(程序+Proteus仿真+配套资料等)

毕设帮助、开题指导、技术解答(有偿)见文未 目录 一、硬件设计 二、设计功能 三、Proteus仿真图 四、程序源码 资料包括&#xff1a; 需要完整的资料可以点击下面的名片加下我&#xff0c;找我要资源压缩包的百度网盘下载地址及提取码。 方案选择 单片机的选择 方案一&…

机器学习笔记 - 基于keras + 小型Xception网络进行图像分类

一、简述 Xception 是深度为 71 层的卷积神经网络,仅依赖于深度可分离的卷积层。 论文中将卷积神经网络中的 Inception 模块解释为常规卷积和深度可分离卷积运算(深度卷积后跟点卷积)之间的中间步骤。从这个角度来看,深度可分离卷积可以理解为具有最大数量塔的 Inception 模…

学习笔记230804---restful风格的接口,delete的传参方式问题

如果后端提供的删除接口是restful风格&#xff0c;那么使用地址栏拼接的方式发送请求&#xff0c;数据放在主体中&#xff0c;后端接受不到&#xff0c;当然也还有一种可能&#xff0c;后端在这个接口的接参设置上是req.query接参。 问题描述 今天遇到的问题是&#xff0c;de…

windows子系统wsl2备份(迁移D盘)还原系统

windows子系统wsl2备份还原系统 1.查看wsl版本 wsl -l -v2.停止wsl子系统 wsl --terminate Ubuntu-22.043.导出子系统备份 wsl --export Ubuntu-22.04 D:\Ubuntu_bak.tar4.删除原有系统 wsl --unregister Ubuntu-22.045.还原系统 wsl --import Ubuntu-22.04 d:\Ubuntu-ws…

Jenkins-发送邮件配置

在Jenkins构建执行完毕后&#xff0c;需要及时通知相关人员。因此在jenkins中是可以通过邮件通知的。 一、Jenkins自带的邮件通知功能 找到manage Jenkins->Configure System&#xff0c;进行邮件配置&#xff1a; 2. 配置Jenkins自带的邮箱信息 完成上面的配置后&#xf…

【0基础入门Python笔记】三、python 之函数以及常用内置函数

三、python 之函数以及常用内置函数 函数函数定义函数调用函数参数返回值 常用内置函数input()函数range()函数其它 函数 函数是一种用于封装可重复使用代码块的工具&#xff0c;能够将一系列操作组织成一个逻辑单元。 函数定义 在Python中&#xff0c;函数通过def关键字进行…

Python可视化在量化交易中的应用(12)_Seaborn柱状图

Seaborn中柱状图的绘制方法 seaborn中绘制折线图使用的是sns.barplot()函数&#xff1a; sns.barplot(x,y,hue,data,order,hue_order,estimator,ci95,n_boot1000,units,seed,orient,color,palette,saturation0.75,errcolor‘.26’,errwidth,capsize,dodgeTrue,ax,**kwargs,) …

linux RabbitMQ-3.8.5 安装

软件版本操作系统CentOS Linux release 7.9.2009erlangerlang-23.0.2-1.el7.x86_64rabbitMQrabbitmq-server-3.8.5-1.el7 RabbitMQ的安装首先需要安装Erlang,因为它是基于Erlang的VM运行的。 RabbitMQ安装需要依赖:socat和logrotate&#xff0c;logrotate操作系统已经存在了&…

内网穿透技术之神卓互联如何检测本地环境

在使用神卓互联Windows版客户端的过程中添加和编辑映射通道默认会自动生效&#xff0c;如您遇到无法访问的情况&#xff0c;可通过客户端上的检测工具进行环境检测。 Windows客户端检测本地环境&#xff0c;登录神卓互联客户端&#xff0c;在主界面下方的按钮组里选择【环境检…

《Python入门到精通》os模块详解,Python os标准库

「作者主页」&#xff1a;士别三日wyx 「作者简介」&#xff1a;CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者 「推荐专栏」&#xff1a;小白零基础《Python入门到精通》 os模块详解 1、文件目录操作os.stat() 获取文件状态os.utime() 修改文件时间os.r…

PostgreSQL父子建表查询所有的子数据-利用自定义函数查询

pgsql 函数查询代码 select find_space_tree_list_by_nodeid(1,1) 查询结果示意图 获取子集函数代码 CREATE OR REPLACE FUNCTION "public"."find_space_tree_list_by_nodeid"("nodeid" varchar, "viewid" varchar)RETURNS "…

8.19论文阅读

文章目录 Graph-Segmenter: Graph Transformer with Boundary-aware Attention for Semantic Segmentation方法 SCSC: Spatial Cross-scale Convolution Module to Strengthen both CNNs and Transformers方法 Deformable Mixer Transformer with Gating for Multi-Task Learni…

KFC玩具HelloKitty风扇改造——ESP32蓝牙blinker、1404无刷电机、双18650

改装KFC玩具——ESP32蓝牙无刷风扇 ESP32代码&#xff1a; 使用NodeMCU-32S #define BLINKER_BLE#include <Blinker.h>#include <Arduino.h>// PWM通道 int channel_PWM 3; // PWM频率&#xff0c;那么周期也就是1/50&#xff0c;也就是20ms &#xff0c;PWM一…

2.创建小程序

创建 在开发工具中,选择小程序,点击加号 填写小程序信息,模板使用的是TS+Sass 编辑器的工作区 目录结构 项目使用的是ts的模板,目录结构和js的有一点差异,目录结构如下: miniprogram:小程序根目录 —pages:小程序页面目录 ——xxx:页面目录,一个页面对应一个目…