测试面经——以登录为例讲解什么是全面的测试设计
在面试时,面试官往往会出一个简单的场景让大家进行测试点设计来考察大家的测试设计能力,题目看似简单实则蕴藏杀机,测试人员需要根据自己的工作年限做出不同的回答方可过关。如果你工作1-2年,那么你只需要回答功能方面的测试点就OK,但是考虑的功能点一定要全面;如果你工作3-4年,除了功能你还需要考虑性能方面和用户体验方面;如果你工作4年以上,那么就需要考虑的更为全面了,还需要考虑安全测试和兼容性测试。在这里我先抛砖引玉,以web系统的登录为例进行用例设计,让大家看看最最常用的登录究竟可以设计出多少个测试点。(我们只考虑以用户名和密码方式登录web系统,没有考虑手机验证码方式,手机扫码,以及第三方登录的情况)
功能性用例设计点:
1.已注册的用户名和正确的密码,验证是否成功登录
2.已注册的用户名和不正确的密码,验证是否成功失败,且提示信息正确
3.未注册的用户名和任意密码,验证是否登录失败,且提示信息正确
4.未激活账户登录,验证是否登录失败
5.被停用用户登录,验证是否登录失败
6.用户名和密码两者都为空,验证是否登录失败,且提示信息正确
7.用户名和密码两者之一为空,验证是否登录失败,并且提示信息正确
8.页面上的密码框是否加密显示
9.用户登录成功但是会话超时后,继续操作是否会重定向到用户登录界面
10.不同级别的用户,比如管理员和普通用户,登录系统后权限是否正确
11.浏览器页面默认焦点是否定位在用户输入框中
12.快捷键Tab和Enter,是否可以正常使用
13.用户名和密码是否支持特殊字符和中文
14.成功登出后,点击浏览器回退按钮,是否可以继续操作系统
15.不同浏览器下,验证登录页面的显示以及功能正确性
16.校验登录UI页面设计的是否美观
安全性测试用例设计点:
- 用户密码数据库中存储是否加密
- 用户密码在网络传输过程中是否加密
- 密码是否具有有效期,密码有效期到期后,是否提示需要修改密码
- 不登录的情况下,在浏览器中直接输入登录后的URL地址,验证是否会重新定向到用户登录界面
- 密码输入框是否不支持复制粘贴
- 密码输入框内输入的密码是否可以在浏览器开发者码模式下被查看
- 用户名和密码输入框是否存在sql注入漏洞
- 用户名和密码输入框是否存在XSS跨站脚本攻击漏洞
- 连续多次登录失败的情况下是否锁定账号
- 同一用户先后在多台终端(浏览器\手机\其他)上登录,验证登录是否具有互斥性
12.是否可以记住密码,记住的密码保存是否加密,记住的密码是否有有效期,过了有效期后是否清空密码
13.密码的强弱性和复杂度校验
性能压力测试的用例设计点:
- 单用户登录的响应时间是否符合需求
- 高并发场景下用户登录的响应时间是否符合需求
- 高并发场景下服务端的硬件资源是否符合预期(考虑网络、磁盘、CPU和内存的资源利用率)
推荐使用工具:
功能和安全测试:Eolinker——www.eolinker.com
性能测试:Jmeter——https://jmeter.apache.org
上述测试点设计也会存在遗漏,但是如果大家在面试时能够说出这些测试点,我相信一定会让面试官满意!以后大家在谈及测试设计时切忌只谈功能设计,还要注意对场景的性能、安全、易用性进行整体设计!