APP下载

软件测试中接口测试概述与实践

2021-04-04何琼月

电子测试 2021年2期
关键词:测试报告测试人员测试用例

何琼月

(江苏省软件产品检测中心,江苏南京,210012)

1 接口测试定义

接口测试主要是对被测系统的各个组件功能性和稳定性进行验证,整个测试包括了系统内部及外部之间的功能执行情况。接口测试核心在于对数据的传递、控制和交互进行全面的验证,同时还要对各子系统、功能的逻辑关系进行查验。

2 接口测试的范围

通常情况下,多个系统之间的信息传递、交互与控制或者系统存在多个子系统时,就会对其接口进行测试。接口测试主要是为验证服务系统对外提供支持的各类接口,功能是否齐全、稳定等。对于上层系统中的服务层接口,也可以进行接口测试,但是这种难度就会相对较大,且难度与层级成正比关系。通过对多系统多平台架构的接口进行测试,能够大大提高系统的成本收益率。通过接口测试的方式,可以识别复杂系统中存在的各种功能问题,从而确保其稳定性。在软件接口测试过程中,可使用的接口测试工具较多,多数测试工具只是对单一的接口进行测试,且测试报告查看不是很直观和方便。因此,开发一个高效、易用的通用软件接口测试平台可以节省测试资源,提高测试效率。平台功能需求如下:(1)具有通用性、灵活性等特点;(2)易于管理接口,便于维护;(3)具有接口自动化测试功能;(4)具有生成与查看测试报告功能。

3 接口测试的目标

(1)实现自动化的检测,同时能够保持集成性;

(2)应该从客户的角度出发,更加全面的、高效的对软件系统中的各个接口进行测试;

(3)系统越庞大,平台越复杂,底层存在的问题会引起上层出现更多的问题,利用接口测试可以有效的控制测试费用,为测试人员提供一种高效的解决方案。

平台功能分析:架构设计通用软件接口测试平台采用前后端分离的模式。后端模块使用当前流行的Spring boot+Mybatis框架进行开发,前端模块采用Vue.js框架进行开发,接口自动化测试框架使用Java+Http Client+Test NG,基于Maven部署项目和管理依赖包,采用Jenkins持续集成构建项目,使用GitHub对项目版本进行控制管理。功能分析(1)项目管理模块。提供对项目及产品模块的管理,包括名称、状态等配置。(2)接口管理模块。提供对接口信息的管理。可配置接口信息,包括接口URL、请求参数信息、预期响应参数等。(3)接口测试用例模块。提供测试集、测试用例的管理。包括管理测试集,测试集再关联添加测试用例。创建接口测试用例时,将接口信息模块的数据之间从数据库中引入,更便于用例的编写。(4)接口测试管理模块。通过前端添加的测试用例数据,经过一系列封装和处理之后,构造接口请求的URL,使用Http Client工具发送URL来请求Web应用,校验返回相应的数据,检验接口是否有效。(5)报告管理模块。测试报告以Html的形式生成在test-output目录下,使用Report NG框架优化测试报告,相比于Test NG生成的报告,Report NG生成测试报告的更加的美观、易读。报告包含通过/失败的用例统计数、测试结果等。(6)消息通知模块。用户操作已有的接口信息时,包括编辑、删除接口信息,平台将记录用户操作后的结果,并以文本的形式,通过站内信的形式通知相关用户。

4 频繁变化下接口测试的对策

计算机技术的高速发展,推动软件应用的全面开发,客户对软件的需求也越来越多。系统应用软件的功能在开发过程中,会受到客户需求变更的影响,其目标和功能也会随之发生改变。为了降低需求变化对接口测试产生的影响,可以从几个方面开展工作:

(1)团队之间的要加强沟通,及时掌握需求的变化。系统开发、测试人员之间要密切协作,当发生需求变更时,及时制定对应的解决措施。

(2)合理分配各项工作。项目开展过程中,要明确项目组个成员的工作要求和工作职责,当需求发生变化时,开发和测试人员要开展协助,提高团队的合作力。接口测试人员一旦掌握开发代码发生调整,则相应改变测试用例,最大限度控制修改的范围。

(3)测试人员设计用例代码要保障其灵活性的特点。为确保测试的顺利开展,测试人员应该制定详细的策划方案,同时还要充分考虑到可能发生的需求变更,另外用到的测试用例要带有灵活性,以满足新需求可能引起的调整,最大限度控制所产生的影响。

5 接口测试中测试与开发的配合

在对接口的功能进行测试的过程中,测试人员与开发人员之间的工作交集较多,因此在制定测试计划开始,一直到系统问题暴露出来,测试人员要加强与开发人员的协作,提高团队的配合度。当平台上没有接口管理时,只能通过word来管理接口,这会消耗开发人员大量的时间和精力,也会消耗测试人员的大量时间。使用该平台后,测试人员可以与开发人员同步工作,为一些信息完善的接口编写测试用例,并进行接口测试。测试时间大大缩短。测试用例执行后,检查测试报告,解决功能测试前的接口问题,提高测试后的产品质量,保证上线质量。

(1)测试需求要充分调研开发的需求,不能只站在产品需求的角度。对于测试工作而言,产品需求是其工作的主要来源,可是全部以产品需求作为蓝本,往往注重的是产品的功能性,系统的各个环节无法全面考虑到,而各个环节又直接决定了整个系统的稳定性和功能性。所以在对系统开发前,测试人员应该全面评估和汇总开发的需求。

(2)测试人员和开发人员之间的工作沟通要紧密联系在一起。开发工作和测试工作的进展及内容,对应的技术人员要相互了解和掌握。只有测试和开发工作的相互贯通,开发人员才会注意到提高测试代码的质量,以保障代码的可测性;测试人员才会配合开发工作的开展,全面验证系统的功能,从中识别系统中的问题,这样才会提高彼此的工作效率,保障项目达到目标要求。

(3)明确各个岗位的职责,测试工作涵盖代码、配置及工作环境,开发人员不得改变和调整。对于测试工作,测试工程师主要维护测试代码及环境配置,其对整个测试结果承担责任。测试方面发现的问题都需要与测试工程师进行沟通和确定,开发人员不能随意的进行变更。

(4)项目开展的整个过程中,测试与开发工作要密切结合起来。项目开发过程中,开发工作与测试工作应该紧密的关联在一起,确保双方技术人员为共同的目标而努力,以保障项目的顺利开展。

(5)测试人员要对测试结果进行全面分析,充分识别系统中暴露出的缺陷,及时向开发人员反馈。为了确保系统功能的稳定性和全面性,测试人员要对测试结果进行全面的分析,从中找到系统存在的所有问题,为开发人员修复和完善系统提供有力支持。测试人员通过对接口的分析确定接口需测试的类别后,根据测试分类编写接口测试用例就可以进行接口测试。无论是接口的哪一类测试都需要借助第三方工具来进行执行。不同的工具测试的接口分类不同。在未有安装类接口测试工具的情况下,可以通过在线类工具或一些第三方浏览器的插件(谷歌,火狐等)来进行接口测试,但未能进行接口的性能测试,也不能进行并发类测试,当然也无法进行一些隐性需求的判断。开发人员常用的一般是开发工具的插件进行接口调试,只能简单的调试,也无法达到真正测试的要求。Jmeter 工具基本可以满足于所有接口分类测试的一般需求,且开源的工具是免安装,界面简单,易操作,初学者都可以使用。但在服务器资源方面的性能测试时,需另外安装一个监控器进行查看资源的消耗情况。

6 如何简单设计接口测试用例

项目测试中接口测试是非常关键的一环,接口是测试的对象,其目的是对被测系统各个部件之间的功能性、稳定性进行全面验证。测试的核心内容是对数据的传递、控制和交互进行全面的查验,并验证各子系统、功能的逻辑关系。接口测试用例设计可以按几个步骤开展:(1)测试应该确定目标,测试的目的在于找出程序中的缺陷和问题部分,基于此,设计测试方案要本着查找错误出发,这样才能最大限度发挥出测试的作用和价值。(2)测试对象选择要合理。接口测试的核心是要选择合适的测试对象,由于系统中的接口数量庞大,在选择测试对象时尽量选择易于出差的程序,以提高测试的效率。通常将外层的接口分为两种,一种为数据输出接口,另一种为数据输入接口。调试这些接口的参数,就能够查看到数据的输入和输出情况,从达到验证系统功能的作用。(3)对测试对象的整体功能进行确认。要明确用户需求和系统所要实现的目标,才能确保系统具备这些功能,同时还可以稳定运行。依据测试对象功能设计,制定用例代码,才可以找准目标,提高测试的精准度。(4)重视用例内容的设计。其内容应该涵盖测试数据、功能点、环境和结果。

设计接口测试用例要注意几点:(1)对于接口功能较多,系统较为复杂的测试时,要划分系统的结构,这样设计出的用例才具备较好的维护性及可读性,结构划分可以结合接口具备的功能点差异来开展,其通过划分粒度来实现。另外,还要充分考虑到测试环境、具体数据,采用相同功能点的用例。(2)根据测试环境的不同,可以分为程序内部环境和程序外部环境。(3)用例执行数据、接口参数数据共同构成了接口测试数据。测试用例数据需要耗费大量的时间和精力去设计。合理的、科学的、高效的测试数据才能确保系统中的问题暴露出来。测试数据的目的是为了对系统的各项功能进行验证,并从中识别出系统功能可能存在的一些缺陷以及系统之间的逻辑关系错误等。(4)接口用例设计中验证预期结果是重要的一环,其结果要详细,且不冗余。各个用例都要通过验证。

猜你喜欢

测试报告测试人员测试用例
移动应用众包测试人员信誉度复合计算模型研究
关于户外体育游戏对幼儿体能影响的调查研究
基于SmartUnit的安全通信系统单元测试用例自动生成
基于混合遗传算法的回归测试用例集最小化研究
高校分析测试中心测试队伍建设方案初探
浅析软件测试中的心理学应用
百变星君:ROLLINGSTONE 变色龙紫破风车架测试报告
SSAB Hardox悍达450材料轻型自卸车厢体测试报告
基于依赖结构的测试用例优先级技术
浅谈软件测试工作的开展流程