测试组织应用程序接口与第三方API之间的集成点会产生一个可能问题的雷区。让开发者和质保专业人员紧密协作可为排除集成缺陷创造最好的成功机会,因为需要这两者的技能组合。
质保(QA)要做的第一件事情是理解在用的API或服务的类型,以及使用原因。类型不同,API的运行方式也很不一样,非常复杂。用基本术语来说,API建立了这样一些规则,这些规则能允许两个或更多的应用相互沟通。不同类型的应用需要不同类型的接口才能有效地互操作。
在它决定与任何特定的第三方API集成之前,开发团队应该已经计划好担负起开放API测试包的责任了。不要指望未知或未经验证的第三方测试实践。如果这个东西对API运行方式是重要的,那就要建立测试。开发团队不能假定自己关心的功能已经由原先的API开发者进行过彻底的测试。
如果可以的话,问问第三方API提供者是否提供发行说明,是否存在测试钩子或任何输出日志等对你有用的东西。如果对方不知道或不响应,对于要做出是否使用API的商业决策来说这不是什么好兆头。主要防线是要开发出一个必要的API测试包。
开发包装器
Noel Rappin是总部位于芝加哥的Obtiva的高级顾问,据他说,最有效的隔离第三方API进行测试的办法是创建一个包装器。这使得开发者可以增加代码日志并让问题更容易隔离和调试。包装器还增加了对第三方API的控制,以便集成单元测试可进行编码,令测试不需要主要依靠人工对API行为进行验证。毕竟,测试者是无法知道第三方API何时发生变化的,这意味着它随时会导致系统受破坏。
设计得当的包装器会把一个组织的应用与要集成的第三方API之间的差异抽象掉。它会允许开发团队把API集成器和其余的代码逻辑一起加以管理。包装器还可以用在需要对Web服务进行模拟或存根的测试中。
开发者独立及作为创建的集成自动单元测试的一部分对包装器进行验证并测试是必要的。这样的话,第三方API的变动问题会在代码部署或用户经历到负面事件之前就被出错消息侦测到。
创建自动单元测试
测试第三方API调用及功能的最好方式是通过使用自动化单元测试在代码内部进行。自动化单元测试的目的就是要在每次新代码被嵌入到发布版时执行。未来让团队•成员更有效地开发这些测试,可考虑为使用的外包API的每一项功能创建学习测试。
学习测试是针对API的公约撰写的集成测试。这样的话,一旦API改变并影响到代码的话,集成单元测试马上就会失效。此外,开发团队还能学习到API的功能。
通过使用QA资源去理解API如何运行以及映射失效点,还可以给单元测试增加深度。每个失败点都会增加测试。可行的话,然后可以对负责源代码的QA测试员进行培训,在每次验证API如何运行的部署前遍历单元测试。这位测试员还启动自动化执行并迅速检查结果。
通过监控自动单元测试结果来监控第三方API。如果团队使用多个第三方API,他们就应该利用单元测试来创建一个综合的自动化回归包。通过单元测试来监控外包API,可确保问题在用户感知到或报告之前被捕捉到。
最后以人工测试通过
跳过人工测试是诱人的。然而,观察系统以及原生和第三方API的行为,对于验证系统功能是否如预期是必不可少的。比方说,如果因为文档里面没有而缺失某个字段会怎么样?单元测试是通过了,但当用户访问代码时却失败了。人工测试应该能捕捉到这类的缺陷。
开发或QA运行人工测试并验证结果只需要花费一点点时间。这样做客户就不会受到第三方API未知变动的影响,而系统才会如用户预期那样运转。
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
翻译
相关推荐
-
数字化转型:如何更好地利用API和微服务
API,即应用程序编程接口,它提供给应用程序、开发人员访问其它应用的能力,而又无需访问源码,无需理解内部工作机制细节;简单地说,API就是实现应用与应用连接的一种隐形的桥梁。
-
金融行业数字转型:利用API构建新IT基础
从制造业、物流业,银行业到零售业,各行各业的根基都因应用经济的兴起发生着深刻的变革。在互联网和智能手机普及化的推动下,这种现象变得司空见惯。到2021年 ,蓬勃发展的全球应用经济的预估总值将达到6.3万亿美元,相比2016年的1.3万亿美元,增长近5倍。
-
如何使用Azure API管理服务?
在云和微服务架构时代,API是数字化业务的通用语言。根据分析公司Forrester Research预测,仅在美国,API管理工具的支出将在未来5年内达到近30亿美元。
-
私有存储云如何构建?
如何构建自己的私有存储云呢?在这之前,我们要先退后一步,思考一下云计算到底意味着什么。