软件测试面试题之接口测试那点事?

软件测试工程师在面试的过程中,尤其是一些中级岗位的面试中,总会被问到:给你一个接口,如何进行测试?说实话,这个问题难么?会者不难,难者不会!大家的想法和态度肯定都不会相同。接下来,我们用一个面试中的实例进行好好的分析,看看到底接口该怎么进行测试!下面请看面试题:

有如下用户登录的的API接口:

/userLogin?userName={user_id}&password={passwd}

对应的数据库的user表字段如下:

在这里插入图片描述

该api接口的需求如下:

1.用户名和密码,只能是数字和字母,当不满足时,接口需要返回400的http response code

2.用户名和密码不匹配,登录应该失败,这时接口需要返回403的http response code,且需要将user表的该user这行记录下面的failed_count字段加1

3.用户名和密码匹配,登录应该成功,接口需要返回200的http response code,且在body里需要返回一个长度是36位加密的token,且需要将user表的该user这行记录下面的failed_count字段置为0, last_login_time字段置为当天的时间

请完成以下两个题目:

1.写出该接口的测试用例。

2.当该接口出现bug时写出需要提交的信息。

在这里插入图片描述

题目就是上面的内容,看上去挺复杂的,但是我们只需要静下心来好好的分析一下,从题目、表述和要完成的内容等多个方面去分析:

首先,就是要看清楚人家要我们出什么样的东西。根据题目要求:我们需要出以下两个东西:

1、设计测试用例(读API接口和规则,提取需求点)

2、提交bug(需要什么信息)

只有搞清楚了要完成的东西,我们才不至于所答非所问,才能按照准确的目标高效的完成。

其次,我们要分析题目,看看从题目中,我们能分析出来什么有价值的信息:

1、从API的接口地址中,可以初步判断,该接口的请求方式为:Get。因为参数名和参数值在URL中可见。(这个大家可以参考HTML表单数据提交的过程中的表现,这里就不多说了。)当然也有其他可能,毕竟我们还不知道是什么接口传输协议。

2、根据数据表中字段,可以知道每一个的含义、数据类型以及该数据类型的边界。

3、接口测试,一定要跟数据库中的对应数据做查询和对比,数据的变化作为测试的重点。

4、针对需求1,考虑等价类,用户名和密码这两个参数如果不是字母和数字的数据请求,响应码就是400

5、针对需求2,用户名必须是在数据库中存在的,密码必须是错误的,响应码就是 403,且该用户条目中Failed_count字段值加1(必须结合数据库,进行数据的比对)

6、针对需求3,请求参数正确,数据和数据库比对正确了,响应码:200,Body信息为36位加密的token。该用户对应的Failed字段设置为0,最后登录日期为当天日期。

7、通过上面的分析,我们还有可能发现需求中有不完善之处。用户名符合要求、密码也符合要求,但是用户名不存在时,系统的响应是什么,这个在需求里面没有提及和说明。

8、int类型是有取值范围:-2147483648------2147483647.,int型会不会在最大值再加1的情况下,变成最小值,然后继续增长,直到又变成0,Failed_count为0,但是last_login_date没有对应的数值存在?。(这是测试中数据类型的边界值的应用,我们应该不仅从业务的边界出发,还应该从技术、语言的角度出发考虑。)

9、用户名、密码的字符类型varchar,可变长度。过长怎么办?(测试中边界值的应用。)

10、性能方面,请求的频率可以有多快?请求的间隔时间是多长?请求的并发是多少?同一个IP能不能多账户请求?这些在接口需求中都没有。

做到了足够的分析后,我们就可以设计测试用例了:把我们所想的内容全都设计和编写出来。下面看几个相关的用例设计的案例:(其余的大家可以想一想)

在这里插入图片描述

最后,关于Bug提交需要什么信息?最基本的:缺陷标题、编号、 所属模块、缺陷类型、复现步骤(步骤、预期结果、实际结果)、前提条件、优先级、严重程度、接口系统版本、用到的接口工具及版本。

总结:

感谢每一个认真阅读我文章的人!!!

作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

 

          视频文档获取方式:
这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方小卡片即可自行领取。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值