记“用户登录”的案例设计

内容来源《软件测试52讲》https://time.geekbang.org/column/intro/103

“用户登录”的案例设计分为:显示功能性需求、非功能性需求(安全、兼容、性能)

功能测试案例:

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.同一用户先后在多台终端的浏览器上登录,验证登录是否具有互斥性;

12.如果有移动端,同一用户先后在app和浏览器登录,验证登录是否具有互斥性。

性能压力测试用例:

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.登录失败后二次登录:

  a.输入正确的用户名,不输入密码,点击登录,登录失败后,再次输入正确的密码,验证是否登录成功;

  b.输入正确的用户名和错误的密码,登录失败后,再次输入正确的密码,验证是否登录成功;

  c.输入未注册的用户和任意密码登录失败后,再次输入正确的用户名和正常的密码,验证是否登录成功;

12.修改密码后:

  a.修改完密码后是否重定向到登录界面;

  b.修改完密码后,分别用原密码和新密码登录,验证登录情况;

  c.在其他终端修改密码后,本终端是否自动下线?下线后,使用原密码是否能继续登录;

13.退出登录后:

  a.退出登录是否有记住账号和密码功能;

  b.退出登录后,再次输入密码,验证是否登录成功。

14.数据同步:

  a.第一次登录时,数据的同步情况,如个人头像,好友列表等;

  b.本终端切换其他账号登录后,数据的同步情况,日志记录情况,如用户文件夹是否自动创建;

15.账号互踢:

  a.不同页面下被踢,如:后台运行是被踢,进入前台查看反应;前后运行时一级,二级页面下被踢能否提示正确并重定向到登录界面;

  b.本终端被踢下线后点击登录是否能再次登录;

16.密码错误限制次数:

  a.密码输入错误是否有最大次数限制?分别测试最大值-1、最大值、最大值+1时的输错密码情况;

  b.超过最大次数限制后,是否采取强制手段限制登录或对账号暂时冻结处理;

  c.超过最大次数限制后,分别输入正确的密码和错误的密码再次登录。

17.安全性:

  a.本终端用户已登录,在其他终端尝试登录本用户账号,登录失败时,本终端是否有账号异常操作的安全提示;

  b.输入密码时是否有安全键盘模式?点击密码输入框是否能调起安全键盘?

18.网络相关:

  a.无网络模式下登录,是否给出“网络未连接”或“网络异常”的提示及提示是否正确;

  b.第一次登录请求超时后(服务器出问题,随后恢复正常),再次请求登录是否成功;

  c.第一次无网络情况下登录失败后,再次连接网络并登录;

  d.正在登录过程中,遇到网络切换,验证能否登录成功。

19.app登录后,杀死app进程后,再次打开app是否依然为已登录状态。

20.用户登录后存储在数据库中的用户个人信息是否加密?用户登录过程中的log是否有个人信息明文打印?控制台是否可以看到请求的密码;

21.登录用户限制,比如同时支持10个用户登录,同时9人或者11人登录是否正常或提示是否正确;

22.还应包括未激活用户、被停用用户验证是否登录失败,并且验证提示正确;

23.登录的操作日志记录是否准确;

24.登录有实时性是否控制正确;

25.为空和输入空字符串时的校验是否一致;

26.使用中文键盘输入字母和使用英文键盘输入字母时传给后端的字符长度是否一致;

27.是否允许第三方工具平台存储密码;

28.是否用到缓存,页面缓存或者redis缓存;

29.输入账号密码时对键盘格式是否有要求比如数字键盘;

30.密码一栏是否需要设置明暗密码切换按钮;

31.输入账号密码格式不规范时是否将按钮设置为不可点击;

32.输入栏是否设置快速删除按钮;

33.用户名和密码是否对空格敏感;

34.一个用户是否具备多种登录方式:用户名,手机号,邮箱。。。

35.若支持手机号+验证码登录,验证码是否有时间限制?移动端设备是否可以直接获取验证码;

 

posted @ 2020-05-15 00:14  菇凉303  阅读(241)  评论(0)    收藏  举报