等价类划分和边界值分析都是最常用、典型、重要的黑盒测试方法
等价类划分:把所有的输入数据划分成若干个子集,在每个子集中,如果任意一个输入数据对于揭露程序中潜在错误都具有相同等价效果,那么这样的子集就构成了一个等价类,后续只要从每个等价中任意选取一个值进行测试,就可以用少量具有代表性的测试输入取得较好的测试覆盖结果
边界值分析法:选取输入输出的边界值进行测试,因为大量的软件错误发送在输入或输出范围的边界上,所以需要对边界值进行重点测试,选取正好等于、公共大于或者刚刚小于边界的值作为输入测试数据
边界值分析是对等价类划分的补充,所以经常结合起来使用
现在,针对“用户登录”功能,有密码登录和验证码登录两种方式,基于等价类划分和边界值分析方法,设计测试用例包括:
功能测试场景:
- 输入已注册的用户名和正确的密码,验证是否登录成功;
- 输入已注册的用户名和不正确的密码,验证是否登录失败,并且提示信息正确
- 输入未注册的用户名和任意密码,验证是否登录失败,并且提示信息正确
- 用户名和密码都为空,验证是否登录是吧,并且提示信息正确
- 用户名和密码两者之一为空,验证是否登录是吧,并且提示信息正确
- 如果登录功能启用了验证码功能,输入正确的验证码,验证是否登录成功
- 如果登录功能启用了验证码功能,输入错误的验证码,验证是否登录失败,并且提示信息正确
安全性测试用例包括:
- 用户密码后台存储是否加密
- 用户密码在网络传输过程中是否加密
- 不登陆的情况下,在浏览器中直接输入登录后的URL地址,验证是否会重新定向到用户界面
- 密码输入框是否不支持复制和粘贴
- 密码输入框内输入的密码是否都可以在页面源码模式下被查看
- 用户名和密码的输入框中分别输入典型的“SQL 注入攻击”字符串,验证系统的返回页面
- 连续多次登录失败情况下,系统是否会阻止后续的尝试以应对暴力破解
- 同一用户在同一终端的多种浏览器上登录,验证登录功能的互斥性是否符合设计预期
- 同一用户先后在多台终端的浏览器上登录,验证登录是否具有互斥性
性能压力测试
- 单用户登录的响应时间是否小于 3 秒
- 单用户登录时,后台请求数量是否过多
- 高并发场景下服务端的监控指标是否符合预期;
- 高集合点并发场景下,是否存在资源死锁和不合理的资源等待;
- 长时间大量用户连续登录和登出,服务器端是否存在内存泄漏。
兼容性测试:
- 不同浏览器下,验证登录页面的显示以及功能正确性;
- 相同浏览器的不同版本下,验证登录页面的显示以及功能正确性;
- 不同移动设备终端的不同浏览器下,验证登录页面的显示以及功能正确性;
- 不同分辨率的界面下,验证登录页面的显示以及功能正确性。