为什么测试API可保护企业应用的声誉?

日期: 2015-05-07 作者:Amy Reichert翻译:崔靖雯 来源:TechTarget中国 英文

当测试开放API时,测试专家约Johanna Rothman建议要测试API的功能性、端点安全性,尤其是连接的正确性。

为什么要测试新开发的或者成熟的开放API?这个问题的答案和测试应用软件的原因是相同的:确保连接和流程能正常工作。测试和验证某个API可以成功连接,并能够提供可靠的安全性和预期的功能,这点对于软件开发公司的声誉很重要。

API测试不是一个简单的任务,涉及的人员要比单元测试多得多。为了保护和提高公司应用的声誉,必须要对API做全面测试。在规划和开发针对开放API测试时,务必要验证系统间的连接性。通常情况下,验证连接性都很棘手,要找到能够满足业务需求的方法。连接性测试是API测试的基本前提,同时也有其他很多方面需要考虑。

清楚测试内容

测试团队需要决定具体哪些方面需要测试。和其他测试一样,风险、优先级和可访问性都会影响要在API上执行的测试类型。最起码,需要测试端点的功能性,是否能够正确地接受或者转发信息。如果有条件,也需要测试端点安全性和业务逻辑的功能性。有些测试人员不喜欢测试端点安全性,但是可以和开发人员一起确保令牌和证书无法轻易被绕开。

业务逻辑功能性的测试非常关键。即使API端点是安全的,并且已经成功建立链接,确认API能够按照设计工作,仍然非常重要。API功能性测试包括模拟客户行为使用所有可供选择的功能。测试团队必须决定他们是否需要创建一个虚拟的用户实例,或者是否更适合试点测试,或是和真实客户一起完成测试。测试深度取决于业务需求以及可用于测试和开发的时间。

创建API测试数据

应用所服务的领域决定了需要多少时间和技能来创建测试数据。比如,在医疗软件领域,不违反HIPAA病例信息披露原则很重要;否则,不仅可能面临巨额的政府罚款,而且任何形式的数据泄露都不可避免地损伤企业的公众形象。但是不管API所服务的是什么领域,都需要花费时间为API测试创建简洁或者广义的数据。

简洁数据是有效的真实数据,但是不可识别或者跟踪到真实的某个人。一组数据也可以手动转化成一系列数据,用于开发人物角色,用于五个不同的客户场景。比如,针对药物记录的数据转换API,一个人物角色可能是主动去看初级医生,和肺、心脏病和风湿病专家的病人。要创建这个人物角色需要个人数据、医疗记录信息,以及每个医生的地址,电话号码和病人到访信息。根据就诊场景的需要,测试人员使用满足需求的最小数据集填充数据库。可以使用这些数据测试API,验证返回的数据是否正确。

测试端点安全性

测试API时,测试API端点的安全性至关重要。测试确保端点只会回复有效链接的请求。测试消息安全性也很重要。很多API使用JWT令牌和证书来保证收到的消息来自于授权的发送方。尝试使用无效令牌发送未经授权的消息,或者确保能够使用有效令牌。API的功能决定了是否需要使用公司外第三方的安全测试服务,或者公司内现有的测试人员和开发人员能否完成充分的测试。

测试API功能性

创建出的测试数据主要用来测试API的功能性。一种有效的方法是创建模拟的API系统,模拟真实的业务伙伴来使用API。当然,创建模拟系统需要时间,取决于对API使用的理解程度,但是这仍然是一种测试API功能性的有效方式。如果没有时间开发模拟应用来连接测试API的功能性,那么可以考虑和真实的业务伙伴合作。

和试点测试类似,和真实的业务伙伴一起测试有很多优势。主要的优势是使用的是真实的数据实例。这时花在测试和开发上的时间不像花在模拟系统上显得被浪费了,因为最终创建了能提供价值的可以工作的业务伙伴系统。已经证明数据传输的可靠性对于API的成功至关重要,没有试点系统也很难对此进行测试。试点测试同样也使用真实的客户系统来完整测试商业逻辑。

保护已有客户并维持客户信任对于业务增长而言至关重要,因此花费时间和精力来测试开放API是很值得的。客户可能是个人用户和大型或小型公司,得到客户的信任和尊重会直接带来商业上的成功。开放API的测试也提供了初级的安全测试和业务逻辑认证。软件公司都必须在此领域深度测试来确保API的质量。

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

作者

Amy Reichert
Amy Reichert

Amy Reichert具有16年的软件测试经验。

相关推荐