• 0
  • 0
分享
  • 想要搞懂接口测试和功能测试有什么区别——软件测试圈
  • TIMI 2022-10-24 15:26:34 字数 2136 阅读 1022 收藏 0

本文主要分为两个部分:

第一部分:主要从问题出发,引入接口测试的相关内容并与前端测试进行简单对比,总结两者之前的区别与联系。但该部分只交代了怎么做和如何做?并没有解释为什么要做?

第二部分:主要介绍为什么要做接口测试,并简单总结接口持续集成和接口质量评估相关内容。

第一部分:

首先,在做接口测试的过程中,经常有后端开发会问:

  1. 后端接口都测试什么?怎么测的?

  2. 后端接口测试一遍,前端也测试一遍,是不是重复测试了?

于是,为了向开发解释上述问题,普及基本的测试常识,特意梳理了接口测试的相关内容以及其与前端测试的区别,使开发团队与测试团队在测试这件上达成基本的共识,提高团队协作效率,从而更好的保证产品质量。

然后,我们试着回答上面的问题:

后端接口都测试什么?

回答这个问题,我们可以从接口测试活动内容的角度下手,看一下面这张图,基本反应了当前我们项目后端接口测试的主要内容:

1.png

我们怎么做接口测试?

由于我们项目前后端调用主要是基于http协议的接口,所以测试接口时主要是通过工具或代码模拟http请求的发送与接收。工具有很多如:postman、jmeter、soupUI、java+httpclient、robotframework+httplibrary等。

后端接口测试一遍,前端也测试一遍,是不是重复测试了?

回答这个问题,我们可以直接对比接口测试和app端测试活动的内容,如下图为app测试时需要覆盖或考虑内容:

2.png

从上面这两张图对比可以看出,两个测试活动中相同的部分有功能测试、边界分析测试和性能测试,其它部分由于各自特性或关注点不同需要进行特殊的测试,在此不做讨论。接下来我们针对以上三部分相同的内容再进行分析:

1、基本功能测试:

由于是针对基本业务功能进行测试,所以这部分是两种测试重合度最高的一块,开发同学通常所指的也主要是这部分的内容。

2、边界分析测试:

在基本功能测试的基础上考虑输入输出的边界条件,这部分内容也会有重复的部分(比如业务规则的边界)。但是,前端的输入输出很多时候都是提供固守的值让用户选择(如下拉框),在这种情况下测试的边界范围就非常有限,但接口测试就不存在这方面的限制,相对来说接口可以覆盖的范围更广,同样的,接口出现问题的概率也更高。

3、性能测试:

这个比较容易区分,虽然都需要做性能测试,但关注点确大不相同。App端性能主要关注与手机相关的特性,如手机cpu、内存、流量、fps等。而接口性能主要关注接口响应时间、并发、服务端资源的使用情况等。两种测试时的策略和方法都有很大区别,所以这部分内容是需要分开单独进行测试的,理论上来说这也是不同的部分。

综论:

1、接口测试和app测试的活动有部分重复的内容,主要集中在业务功能测试方面。除此之外,针对各自特性的测试都不一样,需要分别进行有针对性的测试,才能确保整个产品的质量。

2、接口测试可以关注于服务器逻辑验证,而UI测试可以关注于页面展示逻辑及界面前端与服务器集成验证

第二部分:

1、什么是接口测试?

3.png

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

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

a)如今的系统复杂度不断上升,传统的测试方法成本急剧增加且测试效率大幅下降,接口测试可以提供这种情况下的解决方案。

b)接口测试相对容易实现自动化持续集成,且相对UI自动化也比较稳定,可以减少人工回归测试人力成本与时间,缩短测试周期,支持后端快速发版需求。接口持续集成是为什么能低成本高收益的根源。

c)现在很多系统前后端架构是分离的,从安全层面来说:

1、只依赖前端进行限制已经完全不能满足系统的安全要求(绕过前面实在太容易),需要后端同样进行控制,在这种情况下就需要从接口层面进行验证。

2、前后端传输、日志打印等信息是否加密传输也是需要验证的,特别是涉及到用户的隐私信息,如身份证,银行卡等。

3、接口测试持续集成:

对接口测试而言,持续集成自动化是核心内容,通过持自动化的手段我们才能做到低成本高收益。目前我们已经实现了接口自动化,主要应用于回归阶段,后续还需要加强自动化的程度,包括但不限于下面的内容:

a)流程方面:在回归阶段加强接口异常场景的覆盖度,并逐步向系统测试,冒烟测试阶段延伸,最终达到全流程自动化。

b)结果展示:更加丰富的结果展示、趋势分析,质量统计和分析等

c)问题定位:报错信息、日志更精准,方便问题复现与定位。

d)结果校验:加强自动化校验能力,如数据库信息校验。

e)代码覆盖率:不断尝试由目前的黑盒向白盒下探,提高代码覆盖率。

f)性能需求:完善性能测试体系,通过自动化的手段监控接口性能指标是否正常。

4、接口测试质量评估标准:

a)业务功能覆盖是否完整

b)业务规则覆盖是否完整

c)参数验证是否达到要求(边界、业务规则)

d)接口异常场景覆盖是否完整

e)接口覆盖率是否达到要求

f)代码覆盖率是否达到要求

g)性能指标是否满足要求

h)安全指标是否满足要求


作者:字节测试开发

原文链接:https://blog.csdn.net/m0_68405758/article/details/126413849

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •   前言  接口测试是我们在测试工作中经常见到的,我们工作中常用到的接口工具有jmeter,postman,soupUI等工具,那么在通过代码做接口测试呢?或者通过代码的方式做接口自动化呢?  requests  requests属于python的第三方库,通常用来发送http和https的请求,既然能向http和https发送请求,那么就能来做接口测试。  安装pip install requests  官方文档  https://requests.readthedocs.io/en/master/  requests使用方法  了解requests是如何安装的了,也知道...
            12 12 2560
            分享
          • 今天一起来谈一谈敏捷模式下的大QA团队建设。敏捷,相对传统瀑布式模式,角色名称边界较之前,模糊了很多。 我们大概都知道,严格意义上讲,QA不等于测试,但是在很多公司,名称是混淆的。 而另外有一种说法是:QA分3类,配管型,过程型,测试型。而在敏捷研发过程中,有些测试,兼职了QA角色, 更有往Scrum Master转型的趋势,我在实际的工作中,就主持研发流程改进工作,近8年的时间。 在传统意义上,我们经常会质疑QA如何做到公正公平,不去偏袒测试团队,但是却带来了业务系统、流程难以落地的情况。如图,为了标准统一、工具平台统一,我们架构可以尝试如下:法治、人治的情况下...
            2 2 2187
            分享
          •   1.什么是测试用例?  测试用列(Test Case)是为了实施测试而向被测试的系统提供的一组集合,这组集合包含:测试环境、操作步骤、测试数据、预期结果等要素。  2.测试用例的要素  测试用例的标题、测试思路、预设条件、步骤、预期输出  一个好的测试用例是一个不熟悉业务的人也能依据用例来很快的进行测试。  评价测试用例的标准:  ·用例表达清楚,无二义性  ·用例可操作性强  ·永猎的输入与输出明确,一条用例只有一个预期结果  ·用例的可维护性好  ·用例对需求的覆盖率高  ·暴露程序bug的能力强  3.测试用例的好处  ·它是测试执行者的依据  ·它使得工作可重复,自动化测试的基础 ...
            12 12 1998
            分享
          • 1、概述(1)无线网络性能测试分类DT车载测试 开着车在路上测试,在室外进行。CQT通信质量测试定点测试(2)测试主要工具硬件工具:笔记本USB接口、硬板读写速率。GPS外用USB的GSP。测试终端分析工具:LMT:本地维护终端LMT是一个逻辑概念。LMT连接到RNC外网,提供NODE B操作维护的用户界面。在NODE B操作维护子系统中,是用户对NODE B进行操作维护的终端。LMT 提供图形化用户界面,使用户可以通过Web 页面对BSC6900 进行操作和维护,实现MML 命令的输入、命令执行结果的显示、告警显示、消息跟踪、性能监测和设备维护等功能。OMC:操作维护中心ATP:自...
            13 13 2371
            分享
          •   场景法用例设计  现在的软件几乎都是由事件触发来控制流程的,事件触发时的情景便形成了场景,而同一事件不同的触发顺序和处理结果形成事件流。  这种在软件设计方面的思想也可被引入到软件测试中,生动的描绘出事件触发时的情景,有利于测试设计者设计测试用例,同时测试用例也更容易的得到理解和执行。  用例场景用来描述流经用例的路径,从用例开始到结束遍历这条路径上所有基本流和备选流。  场景说明  基本流:是流经用例的最重要路径,图中的黑线。  备选流:自基本流开始,之后会在某特定条件下执行。  可能重新加入基本流(备选流1和3)  可能起源于另一备选流(备选流2)  终止用例不再重新加入某个流(备选流...
            0 0 1372
            分享
      • 51testing软件测试圈微信