“用户登录”测试你真的会吗?

年后,进入金三银四招聘旺季,相信不少参加测试相关岗位面试的时候,会遇到设计测试的题目。用户登录测试属于老生常谈问题了,如果面试时能先概述一下你的设计思路、考虑的维度,再开始逐个写出用例的设计,应该会更有条理。

给你一个“用户登录”功能你会如何测试它?

设计测试用例,通常主要有 2 个大类:功能性需求和非功能性需求。

一、功能需求

功能需求其实就是软件本身需要实现的具体功能,通常它们是这个功能的最直接体现。

在设计这种用例的时候,我们基本会用【等价类】和【边界值】这两种方法。

  1. 用户名和密码都为空,验证是否登录失败,并提示信息(“用户名为空”)

  2. 用户名为空或密码为空,验证是否登录失败,并提示信息(“用户名/密码为空”)

  3. 输入已注册的用户名和正确的密码,验证是否登录成功

  4. 登录成功后,链接能否跳转至正确的页面

  5. 输入已注册的用户名和错误的密码,验证是否登录失败,并提示信息(“密码错误”)

  6. 输入未注册的用户名和随意密码,验证是否登录失败,并提示信息(“用户名错误”)

  7. 如果登录功能启用验证码功能,在用户名和密码正确的前提下,输入正确的验证码,验证是否登录成功

  8. 如果登录功能启用验证码功能,在用户名和密码正确的前提下,输入错误的验证码,验证是否登录失败,并提示信息正确(“验证码错误”)

  9. 如果登录功能启用验证码功能,考虑验证码的辨认难易程度,是否可以点击验证码图片(“换一个”),更换验证码

  10. 记住用户名和密码的功能是否正确,且登录失败后不记录密码

  11. 必填项为空时,功能是否正确

不合法的用户名:空的用户名,不正确的用户名,使用了字符大于用户名的限制;正常用户名不允许的特殊字符;系统的保留字段;

不合法的密码:空密码;错误的密码;字符大于密码的限制;正常密码不允许的特殊字符;系统的保留字段。

二、非功能性需求

很多时候,仅做了功能性需求的测试覆盖还是不够的,因为还存在一些其他"隐藏"的需求,比如:界面UI、安全性、性能、兼容性。这些往往是决定软件质量的关键因素。

这些需求往往不容易优先想到,需要仔细深入场景、设身处地的考虑才能很好的构思出来。

1、界面测试(UI Test):

  1. 布局是否美观、合理

  2. 控件是否美观、对齐

  3. 界面设计风格是否统一

  4. 界面文字无错别字

2、安全性测试

考虑登录的安全性,可能需要用到以下测试用例:

  1. 用户名和密码的后台存储是否加密

  2. 用户名和密码是否加密后,发给web服务器

  3. 用户名和密码的验证,应该通过服务器验证,而不单单在客户端用javascript验证

  4. 登录成功后生成的cookie,是否是httponly(否则容易被脚本盗取)

  5. 密码框内输入的密码是否可以在页面源码模式下被查看

  6. 密码是否具有有效期,有效期到期后,是否提示修改密码

  7. 未登录的情况下,在浏览器中直接输入登录后的URL地址,是否会重定向到登录界面

  8. 用户名和密码输入框中分别输入典型的“SQL注入攻击”字符串,验证系统的返回页面(防止SQL注入攻击)

  9. 用户名和密码输入框中分别输入典型的“XSS跨站脚本攻击”字符串,验证系统行为是否被篡改(防止XSS攻击)

  10. 连续多次登录失败后,系统是否会阻止后续的尝试,错误登录的次数限制,以应对暴力破解(防止暴力破解)

  11. 考虑多用户在同一终端上的登陆

  12. 考虑同一用户在不同终端登录的互斥性

  13. 同一用户在同一终端的多种浏览器上登录,验证登录功能的互斥性

3、 性能压力测试

考虑到性能,可能还需要增加以下的测试用例:

  1. 单用户登录的响应时间是否小于 3 秒

  2. 单用户登录时,后台请求数量是否过多

  3. 高并发场景下用户登录的响应时间是否小于 5 秒

  4. 高并发场景下服务端的监控指标是否符合预期

  5. 高集合点并发场景下,是否存在资源死锁和不合理的资源等待

  6. 长时间大量用户连续登录和登出,服务器端是否存在内存泄漏

4、兼容性测试

  1. 不同浏览器下,验证登录页面的显示以及功能正确性

  2. 相同浏览器的不同版本下,验证登录页面的显示以及功能正确性

  3. 不同移动终端的不同浏览器下,验证登录页面的显示以及功能正确性

  4. 不同分辨率的界面下,验证登录页面的显示以及功能正确性

  5. 不同平台(Windows、Mac)、不同移动设备(iPhone、Andriod),登录界面的显示及功能是否正确

  6. 不同语言环境下,登录界面的显示及功能是否正确 (本地化测试 Localization Test)

5、弱网测试

1、网络延迟或者弱网或者切换网络、断网是否登录正确

2、未激活或者冻结的用户登陆

3、登录的日志是否记录正确

4、密码强弱行校验

5、有没有对登陆设备和地区进行检测

三、测试的不可穷尽性

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

对于高质量的软件测试,用例设计不仅需要考虑明确的功能性需求,还要涉及兼容性、安全性和性能等一系列的非功能性需求,这些非功能性需求对软件系统的质量有着举足轻重的作用。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值