接口测试

✍ dations ◷ 2025-06-10 13:20:41 #软件测试,计算机技术,软件

接口测试是软件测试的一种,它包括两种测试类型:狭义上指的是直接针对应用程序接口(下面使用缩写API指代,其中文简称为接口)的功能进行的测试;广义上指集成测试中,通过调用API测试整体的功能完成度、可靠性、安全性与性能等指标。

API的调用没有用户图形界面(下称GUI)操作,是一种发生在信息层的测试, 在由于敏捷开发广泛应用而使得GUI经常有变化的当下,利用GUI执行大批量自动化测试几乎不可能,因而针对相对稳定不变的API进行的测试有着极高的重要性,将其自动化也是一个很重要的工作。

API测试包括直接针对API本身进行的测试和将API置于实际应用环境,将API与其服务的用户逻辑一同进行集成测试两种。 此类测试包括针对表现层状态转换(SOAP)应用程序接口、Web服务,企业服务总线、数据库、大型机、网页(及其UI),以及 企业资源计划等相关系统的测试。

API测试的执行者除开发此API的开发人员外,还包括使用此API构建应用程序的人。

API测试用于测试API收到合理参数,被调用后是否能够以预期的格式返回正确的结果。在测试中尤其需要关注API对服务虚拟化(英语:Edge case)是否能够作出适当的处理:比如对一个不合理的输入抛出合适错误、对极端的输入也能够在可以接受的响应时间内给出正确应答或是能够妥善应对潜在安全攻击(如XSS攻击)。 虚拟化则是在API测试中常用的一种模拟广泛用户场景的方法。

相比于GUI测试,业界广泛认为API测试更适合应用自动化测试和持续测试(英语:Continuous testing)连续测试方法(尤其与敏捷软件开发方法和DevOps方法结合时)。 原因如下:

由于这些原因,API被认为是待测系统中最稳定的界面,开发人员应当减轻他们对GUI测试的依赖,更多的向API测试中投入精力。

将API测试自动化的一大优点便是测试覆盖面可以变得非常大,绝大多数的测试都可以自动化,这样更多的边缘就能被测试覆盖到,可以有效地减轻边缘缺陷造成的软件问题。 这样之后,也可以保留一部分GUI测试来针对系统级典型用户场景进行迁移、可用性的测试。

API测试通常应用在下列测试当中:

在计算机编程中,单元测试(英语:Unit Testing)又称为模块测试,是针对程序模块(软件设计的最小单位)进行函数级正确性检验的测试工作。程序单元是应用的最小可测试部件。在过程化编程中,一个单元就是单个程序、函数、过程等;对于面向对象编程,最小单元就是方法,包括基类(超类)、抽象类、或者派生类(子类)中的方法。

通常来说,程式设计师每修改一次程式就会进行最少一次单元测试,在编写程式的过程中前后很可能要进行多次单元测试,以证实程式达到软件规格书要求的工作目标——没有程序错误。

功能测试是一种质量保证流程,是一种基于测试用例的软件组件规范的黑盒测试。在这种测试当中,被测函数是通过检查输入和输出是否合理来测试的,很少考虑内部程序结构(不像白盒测试)。它是一种比单元测试规模更大的的测试,针对由多个单元构成的某一特定功能进行的测试, 包括测试用例的定义、执行、验证和回归测试。

负载测试有时称为极限测试(Extreme),这个术语在专业软件测试社区中以不同的方式使用 。它通常是指通过模拟多个用户同时访问软件程序来模拟软件实际使用场景中会遇到的情况并对其进行测试。因此,这种测试在测试多用户系统时很常见。这种测试通常使用客户机/服务器模型(如web服务器)构建。然而,其他软件也可能需要进行负载测试。例如,文字处理器或图形编辑器可能遇到读取非常大文档的情况;而一个金融方案可能会被要求按照总共几年以上的数据生成一份报告。因此负载测试广泛应用于各中软件的开发中。负载测试最好模拟实际使用情况直接进行测试,而不是使用理论或分析模型“模拟”。

运行错误指的是尽管程序可以通过编译开始执行,但是在执行过程中发生异常,提前退出程序。最常见的是指针越界,打开文件失败继续读取文件,资源泄露(如内存泄漏、死锁)等。总而言之是让计算机执行一些不能执行的语句时抛出的错误。

包括 渗透测试 和 模糊测试 以及验证认证、加密和访问控制API运行是否正常等测试内容,。

是集成测试的一部分,也涵盖API测试的内容。

互操作性(英文:Interoperability;中文又称为:协同工作能力,互用性)作为一种特性,它指的是不同的系统和组织机构之间相互合作,协同工作(即互操作)的能力。系统工程设计方面常常会用到这条术语。通过测试在不同环境下调用API时,API给出的功能反馈是否符合预期来测试待测系统的兼容性则是互操作性测试侧重的内容。

测试待测系统(一般针对应用SOAP协议的系统)是否符合WS-*规范。

渗透测试是指一个具备资安知识与经验、技术人员受雇主所托,为雇主的网路设备、主机,模拟骇客的手法对网路或主机进行攻击测试,为的是发掘系统漏洞、并提出改善方法。这种攻击通常是出于善意的。对于API而言,这种测试则指的是通过渗透手段测试某个API中是否有可以利用漏洞。

模糊测试 (fuzz testing, fuzzing)是一种软件测试技术。其核心思想是将自动或半自动生成的随机数据输入到一个程序中,并监视程序异常,如崩溃,断言(assertion)失败,以发现可能的程序错误,比如内存泄漏。模糊测试常常用于检测软件或计算机系统的安全漏洞。对于API而言,模糊测试指的是将大量随机数据(或称“噪声”或“模糊”)强制输入到API中以试图引起系统崩溃、内存溢出或者其他负面情形来测试API应对“最坏的情况”时的极限处理能力。

相关

  • 离子离子 (英语:Ion)是指原子或原子基团失去或得到一个或几个电子而形成的带电荷的个子。得失电子的过程称为电离,电离过程的能量变化可以用电离能来衡量。在化学反应中,通常是金属元
  • 来苏糖来苏糖是一种戊醛糖,在自然界罕见。例如,细菌糖脂质的成分就含有来苏糖。果聚糖:菊粉 · 果聚糖β2→6甘露聚糖:低聚木糖:半乳聚糖:
  • 连接酶连接酶(英语:Ligase,或称连结酶和结合酶)是一种催化两种大型分子以一种新的化学键结合一起的酶,一般会涉及水解其中一个分子的团。一般连结酶催化以下的反应:或有时是:其中小阶的字
  • 生物地质化学循环生物地质化学循环(英语:Biogeochemical Cycle,又称作生态系统的物质循环)在生态学上指的是化学元素或分子在生态系统中划分的生物群落和无机环境之间相互循环的过程。这使得相关
  • 红海红海(阿拉伯语:البحر الأحمر‎;希伯来语:.mw-parser-output .script-hebrew,.mw-parser-output .script-Hebr{font-size:1.15em;font-family:"Ezra SIL","Ezra SIL S
  • IBM360IBM System/360(S/360)是美国IBM公司于1964年推出的大型机。System/360的问世代表着世界上的电脑有了一种共同的交互方式,它们都共享代号为OS/360的操作系统,而并非每种产品都用
  • 清舌唇擦音清舌唇擦音是一种辅音,使用于一些口语中。国际音标记作⟨θ̼⟩或⟨ɸ̺⟩。清舌唇擦音的特征包括:当符号成对出现时,左边的是清音,右边的是浊音。阴影区域表示被认为是不可能的
  • 魏道密魏道密(1923年-),号藏之。生于福建福州市。世居福州祖籍河南,为唐名相魏徵之七十六世孙,清闽中名士魏杰之五世孙。为当地望族之后,诗礼传家,幼受熏陶嗜爱绘画自然写生,数十年孜孜不倦
  • 索拉雅·伊凡迪亚利-巴克提亚利索拉雅·伊凡迪亚利-巴克提亚利(波斯语:ثریا اسفندیاری بختیاری‎,英语:Soraya Esfandiary-Bakhtiari,1932年6月22日-2001年10月26日)是伊朗末代沙王穆罕默德
  • 教宗玛策林教宗圣玛策林(拉丁语:Sanctus Marcellinus PP.;250年-305年4月1日)于296年6月30日-305年4月1日为教宗。 本条目出自公有领域:Chisholm, Hugh (编). 大英百科全书 第十一版. 剑桥大