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

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

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •   一、什么是回归测试  回归测试(regression test)是在程序被修改后启动的一个测试过程。其目的在于验证程序被修改后,程序仍然按照原有测试用例正常运行。在开发阶段,回归测试可用于发现缺陷并被修复后,重新验证带缺陷功能块这一阶段。  二、回归测试和普通测试的区别  许多人常以为回归测试只是普通测试的拓展,然而事实并非完全如此。回归测试与普通测试存在着以下几点区别。  1.测试计划有不同  普通测试的测试计划使用的测试用例全是新增未曾执行过的,常用于代码开发阶段;而回归测试测试计划中使用的测试用例为已经被执行过的。  2.测试范围不同  普通测试旨在于检测程序的正确性,包括单模块功能...
            12 12 3249
            分享
          • 1、请详细阐述接口测试和UI测试在测试活动中是如何协同测试的?UI与接口测试的协同可以从下面的方向考虑:UI的操作实际上就是用另一种方式调用接口,那么接口有多少种参数组合就要求UI用例要构造多少种操作进行调用;UI操作所需要的数据可以用接口来生成;接口测试可以保证数据和逻辑的准确性,UI测试需要考虑交互和界面展示的逻辑正确性;UI测试需要重视接口调用不成功或者接口异常情况下UI的呈现方式和用户体验;UI中可能会有一些状态的缓存信息(这样就不需要每次频繁调用接口去获取了),比如鉴权信息等,需要重点关注这些缓存的更新策略。2、接口测试中上下游接口有数据依赖如何处理?上下游接口的数据依赖无非就是准备...
            15 16 1595
            分享
          • 因为之前测试的的软件产品是一个系统的信息化平台,包含很多工具和服务。整体想要实现自动化在时间和成本上又不太允许,但是那时就想针对其中一个工具做GUI自动化,偶然就认识了AutoIt,虽然不是个流行的软件工具,但是特别符合我当时的需要。AutoIt 是一种类似于BASIC的脚本语言,旨在实现Windows GUI和通用脚本的自动化。我们当时的平台软件几乎都在Windows环境下运行,所以特别适合。它能模拟键盘按键、鼠标移动和窗口/控件等操作,而且 AutoIt小巧又免费,真的是一款不错的工具,就算是想自己学习了解的也可以尝试,也许会有惊喜的发现。 如何使用首先下载安装,下载地址:htt...
            0 0 10211
            分享
          • 什么是大数据?大数据是不能使用传统计算技术处理的大型数据集的集合。这些数据集的测试涉及各种工具,技术和框架来处理。大数据涉及数据创建,存储,检索和分析,在数量,多样性和速度方面都非常出色。您可以在这里了解有关大数据,Hadoop和Mapreduce的更多信息,在本教程中,我们将学习:大数据测试策略验证大数据应用程序的测试步骤架构测试性能测试测试环境需求大数据测试 传统数据库测试大数据场景中使用的工具大数据测试中的挑战测试大数据应用程序更多的是验证其数据处理,而不是测试软件产品的个别功能。当涉及到大数据测试时,性能和功能测试是关键。在大数据测试中,QA工程师使用集群和其他支持组件来验证TB级数据...
            15 15 1871
            分享
          •   测试人员为了测试某个特定场景,往往需要在测试环境数据库中插入特定的测试数据来满足需求;  性能测试时,常需要在测试环境生成大量可用测试数据来支持性能测试;  建设持续集成持续交付体系时,我们往往也需要在测试环境生成测试数据来保障自动化用例可以持续稳定的运行。  因此,如何在测试数据库批量生成大量可用的测试数据就成为了测试领域一个关键而难解决的问题,本文就来讲讲测试数据批量生成工具的一种实现方案。  测试数据生成的难点  测试数据生成主要难点大致可以归结为以下几个方面:  <1>编写大量的sql语句费事耗力。  <2>由于主键、外键和业务本身的逻辑约束,很难通过写sq...
            0 0 1688
            分享
      • 51testing软件测试圈微信