一文搞定「登录」的测试用例设计点
测试开发 20+ 企业级项目实战进阶,对标阿里 P6+,文末加群!
前言
对登录功能的测试是常见的测试面试考核题目之一。
实际工作中,做好对登录测试的用例设计也绝非易事,有许多需要注意的点,绝对超乎你的想象。
本文整理了实际工作中踩坑经验以及与多位大佬请教交流的思路,总结成文,供大家参考,也请多批评指正。
功能性用例设计点
- 输入已注册的用户名和正确的密码,验证是否成功登录;
- 输入已注册的用户名和不正确的密码,验证是否成功失败,且提示信息正确;
- 输入未注册的用户名和任意密码,验证是否登录失败,且提示信息正确;
- 使用未激活账户登录,验证是否登录失败;
- 使用被停用用户登录,验证是否登录失败;
- 用户名和密码两者都为空,验证是否登录失败,且提示信息正确;
- 用户名和密码两者之一为空,验证是否登录失败,并且提示信息正确;
- 如果登录功能启用了验证码功能,在用户名和密码正确的情况下,输入正确的验证码,验证是否登录成功;
- 如果登录功能启用了验证码功能,在用户名和密码正确的情况下,输入错误的验证码,验证是否登录失败,且提示信息正确;
- 用户名和密码是否大小写敏感;
- 页面上的密码框是否加密显示、或者是否需要有明暗码切换按钮;
- 后台系统创建的用户第一次登录成功时,是否提示修改密码;
- 忘记用户名和忘记密码的功能是否可用;
- 前端页面是否根据设计需求限制用户名和密码长度;
- 如果登录功能需要验证码,点击验证码图片或者点击换一张是否可以更换验证码,更换后的验证码是否可用;
- 刷新页面是否会刷新验证码;
- 如果验证码有时效性,需要分别时效性内和时效性外验证码的有效性;
- 用户登录成功但是会话超时后,继续操作是否会重定向到用户登录界面;
- 不同级别的用户,比如管理员和普通用户,登录系统后权限是否正确;
- 页面默认焦点是否定位在用户输入框中;
- 快捷键Tab和Enter等,是否可以正常使用;
- 为空和输入空格字符串的校验是否一致;
- 使用中文键盘输入字母和使用英文键盘输入字母传入后端的字符长度是否一致;
- 成功登录后的 session 的时效设置;
- 输入栏是否设置快速删除按钮;
- 用户名和密码是否支持特殊字符和中文;
- 浏览器的前进后退按钮,是否有效;
- 成功登出后,点击浏览器回退按钮,是否可以继续操作系统;
- 需求中是否有登录时间限制,如果有验证时间限制是否有效;
- 验证不同登录方式的正确性:扫码、账号密码、第三方……;
- 若支持手机号+验证码登录,验证码是否有时间限制,移动设备是否可以直接获取验证码;
- 操作错误提示信息是否简单明了;
兼容性测试用例设计点
- 不同浏览器下,验证登录页面的显示以及功能正确性;
- 相同浏览器的不同版本下验证登录页面的显示以及功能正确性;
- 不同移动设备终端的不同浏览器下,验证登录页面显示以及功能的正确性;
- 不同分辨率的界面下,验证登录页面的显示以及功能正确性;
安全性测试用例设计点
- 用户密码后台存储是否加密;
- 用户密码在网络传输过程中是否加密;
- 密码是否具有有效期,密码有效期到期后,是否提示需要修改密码;
- 不登录的情况下,在浏览器中直接输入登录后的URL地址,验证是否会重新定向到用户登录界面;
- 密码输入框是否不支持复制粘贴;
- 密码输入框内输入的密码是否都可以在页面源码模式下被查看;
- 用户名和密码输入框分别输入典型的“SQL注入攻击”字符串,验证系统的返回页面;
- 用户名和密码输入框分别输入典型的“XSS跨站脚本攻击”字符串,验证系统行为是否被篡改;
- 连续多次登录失败的情况下,系统是否会阻止后续的尝试以应对暴力破解;
- 同一用户在同一终端的多种浏览器上登录,验证登录功能的互斥性是否符合设计预期;
- 同一用户先后在多台终端的浏览器上登录,验证登录是否具有互斥性;
- 是否可以记住密码,记住的密码保存是否加密,记住的密码是否有有效期,过了有效期后是否清空密码;
- 是否支持第三方登录;
- 密码的强弱性,复杂度校验;
- 异地登录校验、更换设备登录校验、登陆信息异常是否考虑账户冻结停用、是否允许第三方平台存储密码;
- 是否可以使用登录的api发送登录请求,并绕开验证码校验;
- 是否可以用抓包工具抓到的请求包直接登录;
- 截取到的token等信息,是否可以在其他终端上直接使用,绕开登录,token过期时间校验;
- 登录错误后的提示是否存在安全隐患;
性能压力测试的用例设计点
- 单用户登录的响应时间是否小于3秒;
- 单用户登录时,后台请求数量是否过多;
- 高并发场景下用户登录的响应时间是否小于5秒;
- 高并发场景下服务端的监控指标是否符合预期;
- 高集合点并发场景下,是否存在资源死锁和不合理资源等待;
- 长时间大量用户连续登录和登出,服务器是否存在内存泄露;
- 输入内容校验是否加入了函数防抖;
最后要说明的一点是,要根据不同的系统的实际情况进行分析,最后根据自己的需求借鉴设计点,并非所有系统都能涉及到所有的设计点。
本文的设计点只是一个针对大多数登录可能会涉及到的用例设计点,仅供参考借鉴,同时欢迎大家在下方提出完善意见。
本文原链接:https://blog.csdn.net/sinat_41392571/article/details/80885242
来霍格沃兹测试开发学社,学习更多软件测试与测试开发的进阶技术,知识点涵盖web自动化测试 app自动化测试、接口自动化测试、测试框架、性能测试、安全测试、持续集成/持续交付/DevOps,测试左移、测试右移、精准测试、测试平台开发、测试管理等内容,课程技术涵盖bash、pytest、junit、selenium、appium、postman、requests、httprunner、jmeter、jenkins、docker、k8s、elk、sonarqube、jacoco、jvm-sandbox等相关技术,全面提升测试开发工程师的技术实力