目录
功能性用例设计点:
1.输入已注册的用户名和正确的密码,验证是否成功登录
2.输入已注册的用户名但不正确的密码,验证是否登录失败,且提示信息正确
3.输入未注册的用户名和任意密码,验证是否登录失败,且提示信息正确
4.输入未激活的用户登录,验证是否登录失败
5.用户和密码两者都为空,验证是否登录失败,且提示信息正确
6.用户和密码之一为空,验证登录是否失败,并且提示信息正确
7.在用户名和密码都正确的情况下,输入正确的验证码,验证是否登录成功
8.在用户名和密码都正确的情况下,输入错误的验证码,验证是否登录失败,且提示信息正确
点击验证码图片或者点击换一张是否可以更换验证码,更换后的验证码是否可用
刷新页面是否会刷新验证码
如果验证码有时效性,需要分别在失效性内和失效性外验证码的有效性
用户名和密码是否大小写敏感
页面上的密码框是否加密显示,或者是否需要有明暗码切换按钮
前端页面是否根据设计需求限制用户名和密码长度
用户登录成功但是会话超时后,继续操作是否会重定向到用户登录界面
不同级别的用户,比如管理员和普通用户,登录系统后权限是否正确
页面默认焦点是否定位在用户输入框内
使用中文键盘字母和使用英文键盘输入字母传入后端的字符长度是否一致
成功登录后的session的时效设置
用户名和密码是否支持特殊字符和中文
浏览器的前进后退按钮,是否有效
操作错误提示信息是否简单明了
兼容性测试用例设计点
不同浏览器下,验证登录页面的显示以及功能正确性
相同浏览器的不同版本下验证登录页面的显示以及功能正确性
不同移动设备终端的不同浏览器下,验证登录页面的显示以及功能的正确性
不同分辨率的界面下,验证登录页面的显示以及功能的正确性
安全性测试用例设计点:
用户名和密码后台存储是否加密
用户密码在网络传输过程中是否加密
密码是否具有有效期,密码有效期到期后,是否提示需要修改密码
不登录的情况下,在浏览器中直接输入登录后的URL地址,验证是否会重新定向到用户登录界面
密码输入框是否不支持复制粘贴
密码输入框内输入的密码是否都可以在页面源码模式下被查看
用户名和密码输入框分别输入典型的SQL注入攻击字符串,验证系统的返回页面
用户名和密码输入框分别输入典型的XSS跨站脚本攻击字符串,验证系统的返回页面
连续多次登录失败的情况下,系统是否会阻止后续的尝试以应对暴力破解
同一用户先后在同一终端的多种浏览器上登录,验证登录是否具有互斥性
同一用户先后在多台终端的浏览器上登录,验证登录是否具有互斥性
是否可以记住密码,记住的密码保存是否加密,记住的密码是否有有效期,过了有效期后是否清空密码
是否支持第三方登录
密码的强弱性,复杂度校验
性能压力测试
单用户登录的响应时间是否小于 3秒
单用户登录时,后台请求数量是否过多
高并发场景下用户登录的响应时间是否小于5秒
高并发场景下服务端的监控指标是否符合预期
高集合点并发场景下,是否存在资源死锁和不合理资源等待
长时间大量用户连续登录和登出,服务器是否存在内存泄漏
输入内容校验是否加入了函数防抖
函数防抖
让我们先来看看在事件持续触发的过程中频繁执行函数是怎样的一种情况。
html 文件中代码如下
<div id="content" style="height:150px;line-height:150px;text-align:center; color: #fff;background-color:#ccc;font-size:80px;"></div>
<script>
let num = 1;
let content = document.getElementById('content');
function count() {
content.innerHTML = num++;
};
content.onmousemove = count;
</script>
在上述代码中,div 元素绑定了 mousemove 事件,当鼠标在 div(灰色)区域中移动的时候会持续地去触发该事件导致频繁执行函数。在没有通过其它操作的情况下,函数被频繁地执行导致页面上数据变化特别快。
防抖(debounce)
所谓防抖,就是指触发事件后在 n 秒内函数只能执行一次,如果在 n 秒内又触发了事件,则会重新计算函数执行时间。
防抖函数分为非立即执行版和立即执行版。
非立即执行版的意思是触发事件后函数不会立即执行,而是在 n 秒后执行,如果在 n 秒内又触发了事件,则会重新计算函数执行时间。
立即执行版:立即执行版的意思是触发事件后函数会立即执行,然后 n 秒内不触发事件才能继续执行函数的效果。