提升接口测试覆盖率,都要考虑哪些点?

接口测试一般需要关注以下几点:

1.输入

2.输出

3.逻辑处理

4.数据库

5.安全性

6.性能

7.接口超时

8.兼容性

9.接口设计(较少关注)

下面我们来逐个介绍说明。

输入

输入,接口的入参,一般使用等价类和边界值设计用例。需要考虑输入的正常与异常情况,其中异常包括有参数异常以及数据异常。

A.正常的入参

根据接口设计文档的入参标准,输入正常的参数,接口按接口设计文档的描述,得到正常的响应返回。

B.参数异常

参数异常包括:

1)参数为空

2)多参

3)少参

4)错误的参数

C.数据异常

数据异常包括:

1)数据类型错误

2)长度不符合设计

3)非空参数为空

4)特殊字符或敏感字符

5)不在字典(接口设计)范围内的数据

6)非法参数(非常规参数的处理,如号码、邮箱的判断机制)

7)存在关联关系的参数数据异常

输出

在考虑接口异常时,不一定能覆盖所有错误码,可以通过接口定义返回的错误码补充异常情况的用例。

如:

A.网络异常

B.无效的规则

C.无效的参数

D.无效的业务ID

E.无效的任务

F.服务器异常

利用errorcode补充用例,可以发现前后端输出是否正常,敏感信息处理机制及提示信息是否符合规范等。

逻辑处理

接口测试一般会提供接口设计文档,另外还应获取或整理业务流程图,针对业务流程中的处理逻辑,结合接口的输入限制、业务状态等进行测试点的考虑。

A.限制条件

1)数值限制:字典,等级,行业相关限制,金额限制,分数限制等;

2)状态限制:在线或离线,是否开通服务等;

3)关系限制:如账号与个人信息的绑定;

4)权限限制:三权分立(管理员、操作员、监控员等),用户之间的信息隔离等。

B.对象分析

操作的对象是否合法,如对问题账号的转账,冻结用户的登录等。

C.状态转换的分析

在金融行业中状态转换的分析及处理较为重要,如商城购物,退款、付款中取消了订单、继续进行订单付款、是否可多次支付、业务流程跳转的状态处理等。

D.时序分析

时序分析多为针对业务流的处理分析。

对于一些复杂活动,如办理业务需要进行的流程顺序,其业务流的处理。如资料的填写、上传是否只能按顺序进行,是否可返回上一步,流程步骤之间的跳转如何处理?以及资料填写到一半,去办理其他事务或切换窗口会导致什么情况?

数据库

接口在进行数据传输交互时,都需要对数据库进行操作,因此亦需要关注数据库的以下内容:

A.数据读写是否正常

B.数据存储是否正常(乱码、重复数据等情况)

C.对资源的使用情况(CPU、内存等)

D.对线程的占用、释放情况(读写线程的处理机制等)

E.对数据的处理是否正常(增、删等操作)

安全性

对于接口的安全性测试,一般包含以下内容:

A.信息的加密(包括但不限于登录口令、用户身份信息等)

B.传输方式(http/https)

C.接口的鉴权方式

D.sql注入防范

E.越权访问

后续如有安全测试,可能还包括非正常接口的访问、DDoS防护等。

性能

接口的性能不佳,会影响用户使用,甚者还会影响业务的正常进行。在金融行业中更是最为注重的测试点。

接口的性能主要关注以下几点:

A.最大并发

B.响应时间

a)平均响应时间

b)最大响应时间

c)最小响应时间

C.吞吐量

D.资源使用情况

E.错误率

接口超时

接口测试的非正常情况处理包括接口超时,在金融行业中亦是较为注重的测试点,超时处理不当,可能会引起进程阻塞、逻辑混乱等情况。

如提交订单后限制多长时间内完成付款,超时则订单无效。网络问题导致的长时间未成功付款等。

与历史版本的兼容性分析

如软件系统为迭代发布,则需要考虑对旧版本的接口兼容或接口废弃处理。需要考虑以下几点:

A.废弃的协议或接口是否已注释,是否已不可使用;

B.新、旧接口之间是否兼容;

C.旧接口是否会影响新接口的使用;

D.接口的更新是否影响其他接口或外部系统的调用。

接口设计合理

对于接口的设计应遵循以下几点:

A.只提供必要的接口字段

B.只返回必要的期望信息

C.方便调用

D.可拓展

同时亦可关注以下内容:

a.接口定义是否满足所有调用者的需求

b.接口参数使用是否方便

c.接口的业务规则是否正确

d.接口对服务使用的影响

以手机银行基金买卖提交接口为例,进行简单的接口用例分析。

测试对象:手机银行基金买卖提交接口:

最后也给想软件测试的朋友们分享一份测试资料:

以上内容,对于软件测试的朋友来说应该是最全面最完整的备战仓库了,为了更好地整理每个模块,我也参考了很多网上的优质博文和项目,力求不漏掉每一个知识点,很多朋友靠着这些内容进行复习,拿到了BATJ等大厂的offer,这个仓库也已经帮助了很多的软件测试的学习者,希望也能帮助到你。关注我公众号:程序员二黑,免费获取!

机会只垂青有准备的人,这是一个靠本事的社会。有时候,你之所以发展得不好,不是因为没有机遇,而是因为你没有准备好,导致机遇与你擦肩而过。如果你想要学习,什么时候开始都不晚,而不是瞻前顾后,你只要用尽全力,剩下的交给时间!

加油吧,测试人!路就在脚下,成功就在明天!

推荐阅读

在职阿里6年,一个29岁女软件测试工程师的心声

当过服务员、快递员,现在年薪30W,历尽山河叛逆少年终会成长

公司新来的阿里p8,看了我做的APP和接口测试,甩给了我这份文档

Guess you like

Origin blog.csdn.net/weixin_54696666/article/details/121055258