接口测试

✍ dations ◷ 2025-07-23 06:15:47 #软件测试,计算机技术,软件

接口测试是软件测试的一种,它包括两种测试类型:狭义上指的是直接针对应用程序接口(下面使用缩写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应对“最坏的情况”时的极限处理能力。

相关

  • 免疫抗原性人体免疫系统对于特定抗原能够产生免疫反应,则称其有免疫原性。与反应原性不同之处在于人体在对某些抗原本身不会直接产生免疫反应,而要在类似的另一种抗原刺激下,获得对前一种
  • 异丙苯异丙苯(化学式:C9H12),俗称枯烯、
  • BBC NewsBBC新闻(BBC News)是英国广播公司旗下负责新闻节目的部门 。在BBC第一台,除了早上的《BBC早餐》之外,还在下午1点和傍晚6点以及晚上10点播出约30分的新闻。BBC在英国各地的分支
  • 妯娌姻亲指基于婚姻关系而生之亲属型态,一方配偶与他方配偶之亲属间,因双方缔结婚姻后,成为相互具法律上亲属关系的情况。《中华民国民法》第969条规定,包括配偶的血亲、血亲的配偶
  • 海森堡绘景海森堡绘景(Heisenberg picture)是量子力学的一种表述,因物理学者维尔纳·海森堡而命名。在海森堡绘景里,对应于可观察量的算符会随着时间流易而演化,而描述量子系统的态矢量则与
  • 西宁西宁市(藏语:.mw-parser-output .uchen{font-family:"Qomolangma-Dunhuang","Qomolangma-Uchen Sarchen","Qomolangma-Uchen Sarchung","Qomolangma-Uchen Suring","Qomolangm
  • 西伯利亚历史西伯利亚的早期历史受到游牧民族的影响。人类最早出现在西伯利亚地区大约是在公元前45000年。蒙古人与西伯利亚森林地区的人们长期保持着联系。1206年,成吉思汗征服了所有蒙
  • 孝庄文皇后孝庄文皇后(满语:ᡥᡳᠶᠣᠣᡧᡠᠩᡤᠠ ᠠᠮᠪᠠᠯᡳᠩᡤᡡ ᡤᡝᠩᡤᡳᠶᡝᠨ ᡧᡠ ᡥᡡᠸᠠᠩᡥᡝᠣ,穆麟德:hiyoošungga ambalinggū genggiyen šu hūwangheo,太清:hiyouxung
  • 澳门镜湖护理学院澳门镜湖护理学院(葡萄牙语:Instituto de Enfermagem Kiang Wu de Macau),原为镜湖护士助产学校,于1923年成立,是澳门其中一所护理学院。澳门镜湖护理学院新校址位于离岛医疗综合
  • 全球绿色宪章全球绿色宪章是2001年4月,在澳洲堪培拉举行的第一次全球绿党集会中,由72个国家共800位代表共同决定的文件。.签署“全球绿色宪章”的政党和政治运动,彼此建立起全球伙伴关系,并