面试遇到登录功能测试用例设计,你回答对了吗

给你一个登录功能,如何设计测试用例

哪怕是最常用最小的一个登录功能,其实涉及到的测试用例也是非常多的,这个题目通常会通过面试来考察求职者的综合能力,尤其是测试用例的设计思维,因为你即使你背了各种测试用例设计方法,比如等价类、边界值、判定表等,真正实际工作中,不可能严格按照这种标准去设计,绝大多数情况下,由于受限于时间成本和经济成本,是不可能去穷尽所有可能的组合的,而是把这些设计方法融会贯通,用尽可能少的用例覆盖更多的场景和功能,针对性地选择测试范围和设计测试用例,以在缺陷风险和研发成本之间取得平衡。

假设有一个登录框,有账号、密码输入框,记住密码功能、登录按钮,请尽可能多的设计一些测试用例。

在这里插入图片描述

一、功能测试

  • 输入已注册用户名和正确密码,验证登录成功。

  • 输入已注册用户名和不正确密码,验证登录失败且提示信息正确。

  • 输入未注册用户名和任意密码,验证登录失败且提示信息正确。

  • 验证用户名和密码均为空时,登录失败且提示信息正确。

  • 验证用户名或密码为空时,登录失败且提示信息正确。

  • 如果启用了验证码功能,在正确的用户名、密码前提下输入正确的验证码,验证登录成功。

  • 如果启用了验证码功能,在正确的用户名、密码前提下输入错误的验证码,验证登录失败且提示信息正确。

  • 用户名和密码是否区分大小写。

  • 页面上的密码框是否加密显示。

  • 后台系统创建的用户首次登录成功时是否提示修改密码。

  • 忘记用户名和忘记密码的功能是否可用。

  • 前端页面是否按设计要求限制用户名和密码长度。

  • 如果登录功能需要验证码,点击验证码图片是否可以更换验证码,且新验证码是否可用。

  • 刷新页面是否会刷新验证码。

  • 验证时效性验证码的有效性,包括时效内和时效外的验证码。

  • 用户登录成功但会话超时后,继续操作是否会重定向到用户登录界面。

  • 不同级别用户(例如管理员和普通用户)登录系统后的权限是否正确。

  • 页面默认焦点是否定位在用户名的输入框中。

  • 快捷键Tab和Enter等是否可以正常使用。

二、UI测试

  • 验证布局是否合理,输入框和按钮是否对齐。
  • 验证界面的设计风格是否与UI的设计风格一致。
  • 验证界面的文字是否简洁易懂,是否存在错别字。

三、性能测试

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

四、安全测试

  • 验证用户密码是否在后台存储时进行了加密。

  • 验证用户密码在网络传输过程中是否加密。

  • 验证密码是否具有有效期,并在到期后提示需要修改密码。

  • 验证在未登录情况下,在浏览器中直接输入登录后的URL地址是否会重新定向到用户登录界面。

  • 验证密码输入框是否不支持复制和粘贴操作。

  • 验证密码输入框内输入的密码是否可以在页面源码模式下被查看。

  • 验证在用户名和密码输入框中分别输入典型的"SQL注入攻击"字符串后,系统的返回页面。

  • 验证在用户名和密码输入框中分别输入典型的"XSS跨站脚本攻击"字符串后,系统行为是否被篡改。

  • 验证在连续多次登录失败情况下,系统是否会阻止后续的尝试以应对暴力破解。

  • 验证同一用户在同一终端的多种浏览器上登录时,登录功能的互斥性是否符合设计预期。

  • 验证同一用户先后在多台终端的浏览器上登录时,登录是否具有互斥性。

五、兼容性测试

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

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

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

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

六、网络相关

  • 验证在网络延迟、弱网、切换网络或断网的情况下是否能正常登录。
  • 验证在无网络模式下登录时,是否正确给出"网络未连接"或"网络异常"的提示。
  • 验证在第一次登录请求超时后(服务器出问题,随后恢复正常),再次请求登录是否能成功。
  • 验证在第一次无网络情况下登录失败后,再次连接网络并登录。
  • 验证在正在登录过程中遇到网络切换(例如从4G切换到WiFi环境)时是否能正常登录。

我们看到,设计用例时,不仅要考虑功能,还要更多考虑性能、安全、兼容性问题,而这些非功能性需求是产品稳定、安全的关键。

看到上述这些测试用例的设计思路,哪些你想到了,哪些角度是你忽略了?我想很多人应该,总有些点,没有覆盖到,但我们应该应该尽可能去训练自己这种全局和多维度的思维。

如果想成为优秀的测试工程师,必须具有宽广的知识面,才能设计出非常完备的测试用例,提高测试覆盖率。

猜你喜欢

转载自blog.csdn.net/XingLongSKY/article/details/131489408