开通CSDN博客的第一天

本人作为一个java开发工程师,前几天萌生了转测试的想法,这个博客就作为一个开端吧,记录下我的转型

昨天买了一个测试课程,睡前看了其中一讲,里面关于“用户登陆”功能说到了很多我之前不会去考虑的测试用例,在此跟大家分享。
用户登陆,顾名思义,找个用户,在界面上输入用户名、密码,然后点击“确认”,验证下是否登陆成功。课程中讲了很多我之前很少考虑或者根本不会去考虑的东西,我誊抄一遍,顺便也加深下印象。

及格标准的测试用例:

1、输入已注册的用户名和正确的密码,验证是否登陆成功
2、输入已注册的用户名和不正确的密码,验证是否登陆失败,并且提示信息正确
3、输入未注册的用户名和任意密码,验证是否登陆失败,并且提示信息正确
4、用户名和密码两者都为空,验证是否登陆失败,并且提示信息正确
5、用户名和密码两者之一为空,验证是否登陆失败,并且提示信息正确
6、如果登陆功能启用了验证码功能,在用户名和密码正确的情况下,输入正确的验证码,是否登陆成功
7、如果登陆功能启用了验证码功能,在用户名和密码正确的情况下,输入错误的验证码,是否登陆失败,并且提示信息正确

有经验的测试工程师会增加的测试用例

1、用户名和密码是否大小写敏感
2、页面上的密码框是否加密显示
3、后台系统创建的用户第一次登陆成功时,是否提示修改密码
4、忘记用户名和忘记密码的功能是否可用
5、前端页面是否根据设计要求限制用户名和密码长度
6、如果登陆功能需要验证码,点击验证码图片是否可以更换验证码,更换后的验证码是否可用
7、刷新页面是否会刷新验证码
8、如果验证码具有时效性,需要分别验证时效内和时效外验证码的有效性
9、用户登陆成功但是会话超时后,继续操作是否会重定向到用户登陆界面
10、不同级别的用户,比如管理员用户和普通用户,登陆系统后的权限是否正确
11、页面默认焦点是否定位在用户名的输入框中
12、快捷键Tab和Enter等,是否可以正常使用

上述说的测试用例设计都是围绕显示功能性需求的验证展开的,但是一个质量过硬是我软件系统,除了显示功能性需求外,其他的非功能性需求即隐式功能性需求也是极为关键的。我们先来理解下显示功能性需求和隐式功能性需求。

显示功能性需求:指的就是软件本身需要实现的具体功能。
隐式功能性需求:主要涉及安全性、性能以及兼容性三大方面。

下面就来说一下针对隐式功能性需求可以写的测试用例。

安全测试用例

1、用户密码后台存储是否加密
2、用户密码在网络传输过程中是否加密
3、密码是否具有有效期,密码过期后,是否提示需要修改密码
4、不登陆的情况喜爱,在浏览器直接输入登陆后的URL地址,验证是否会重定向到用户登陆界面
5、密码输入框是否不支持复制和粘贴
6、密码输入框内输入的密码是否不可以在页面源码模式下被查看
7、用户名和密码的输入框中分别输入典型的“SQL注入攻击”字符串,验证系统的返回页面
8、用户名和密码的输入框中分别输入典型的“XSS跨站脚本攻击”字符串,验证系统行为是否被篡改
9、连续多次登陆失败情况下,系统是否会阻止后续的尝试以应对暴力破解
10、同一用户在同一终端的多种浏览器上登陆,验证登陆功能的互斥性是否符合设计预期
11、同一用户先后在多台终端的浏览器上登陆,验证登陆是否有互斥性

性能压力测试用例

1、单用户登陆的响应时间是否小于3秒
2、单用户登陆时,后台请求数量是否过多
3、高并发场景下用户登陆的响应时间是否小于5秒
4、高并发场景下服务端的监控指标是否符合预期
5、高集合点并发场景下,是否存在资源死锁和不合理的资源等待
6、长时间大量用户连续登陆和登出,服务器端是否存在内存泄漏

兼容性测试用例

1、不同浏览器下,验证登陆页面的显示以及功能正确性
2、相同浏览器的不同版本下,验证登陆页面的显示以及功能正确性
3、不同移动设备终端的不同浏览器下,验证登陆页面的显示以及功能正确性
4、不同分辨率的界面下,验证登陆页面的显示以及功能正确性

上面的测试用例,会有一些测试点没有覆盖到,还不够全面。这就涉及到测试的不可穷尽性,即绝大多数情况下,是不可能进行穷尽测试的。

所谓的“穷尽测试”是指包含了软件输入值和前提条件所有可能组合的测试方法,完成穷尽测试的系统里应该不残留任何未知的软件缺陷。 因为如果有未知的软件缺陷,你可以通过做更多的测试来找到它们,也就是说你的测试还没有穷尽。

但是,在绝大多数的软件工程实践中,测试由于受限于时间成本和经济成本,是不可能去穷尽所有可能的组合的,而是采用基于风险驱动的模式,有所侧重的选择测试范围和设计测试用例,以寻求缺陷风险和研发成本之间的平衡。

课程总结

首先,对于高质量的软件测试,用例设计需要既考虑到显式功能的需求,也需要考虑到隐式功能需求:安全性、性能、兼容性等方面。
其次,要想成为一个优秀的测试工程师,知识面必须广,要对被测系统的设计有深入的理解,要明白安全攻击的基本原理,掌握性能测试的基本设计方法,这样才会设计出更多的测试用例。
最后,软件测试是不可穷尽的,工程实践中难免受制于时间成本和经济成本,所以要兼顾缺陷风险和研发成本之间的平衡。

网友评论总结

针对以上用户登陆功能,网友还提供了很多测试用例:
1、网络延迟或者弱网或者切换网络或者断网时登陆状况
2、是否支持第三方登陆
3、是否可以记住密码,记住密码的保存是否加密,记住密码是否有有效期,有效期过期后是否会清空密码
4、用户名和密码是否支持特殊字符和中文等
5、是否可以使用登陆的API发送登陆请求,并绕开验证码校验
6、是否可以使用抓包工具抓到的请求包直接登陆
7、截取到的token等信息,是否可以在其他终端上直接使用,绕开登陆。token过期时间校验
8、除了前端校验格式长度等,后端是否也校验
9、登陆后输入登陆URl,是否还能再次登陆。如果能,原登陆用户是否变的无效
10、登陆错误后的提示是否有安全隐患
11、GDPR相关的测试:用户登陆后存储在数据库中的用户个人信息是否加密,用户登陆过程中的log中是否有个人信息明文打印
12、登陆用户限制:比如同时支持10个用户登陆,同时9个或者11个用户登陆是否正常或者提示信息是否正确
13、密码强弱性校验,数据库设计和数据库操作合理性等
14、未激活的用户登陆
15、被停用的用户登陆
16、登陆的操作日志是否正确
17、登陆如果有时效性,是否控制正确
18、涉及到资产风险的,对登陆设备和地区检测
19、为空和输入空字符串时的校验是否一致
20、使用中文键盘输入字母时和使用英文键盘输入字母时传给后端的字符长度是否一致
21、登陆成功后的session时效设置
22、安全性方面异地登陆校验、更换设备登陆校验、登陆信息异常是否考虑账户冻结停用、是否允许第三方工具平台存储密码
23、是否用到缓存
24、密码是否有明暗文模式
25、更改密码后,之前密码是否还能登陆
26、一个用户是否具备多种登陆方式(用户名、手机号、邮箱)
27、若支持手机号+验证码登陆,验证码是否有时间限制,移动端设备是否支持可以直接获取验证码
28、输入栏是否设置快速删除按钮
29、断开网络连接,输入正确的账号和密码,点登陆是否会有网络提示

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值