在面试的过程中,经常会有面试提问“登录都有哪些测试点?”
面试官的初衷是想了解求职者的测试思维,看看求职者能回答出多少测试点。
其实笔者并不认为这是一个好的面试问题,笔者并不认为能根据这道题判断出求职者的真实水平。
有的人回答的很“漂亮”,能分别从UI、功能性、容错性、兼容性、安全、易用性、性能等等方面去回答了这个问题,但这能说明这个求职者做工作就能做好吗?
有的人回答时可能只说了功能方面的问题,没有提到类似UI、性能、安全等方面需要怎么去测试,这能表示这位求职者真正做工作时考虑不周吗?
回答的“漂亮”可能只是看过这道面试题的“参考答案”而已。
有的求职者回答时没有提到UI类的测试点,面试官可能就觉得测试思维不缜密,但是可能却忘记了,若是真给到这个测试一个UI有问题的登录页面,他即使没有写对应的用例,也可以发现UI的bug。
吐槽归吐槽,鉴于这个问题仍然被广泛的使用,给大家分享一下所谓的“参考答案”吧。
问题:登录界面,包括用户名、密码、验证码和登录按钮,说一下测试点。
这里需要注意一下:
有的同学可能会回答说,用户名输入不同字符组合、或者不同长度的字符串,然后去看看能否登录——若是这样想,那是没有搞清楚注册和登录的区别。
还有的同学可能会搞不清楚测试点是什么意思,回答的时候跟说用例似的,这也会给面试官留下糟糕的印象——测试点,简单来说就是测试用例的标题。
下面说一下测试点:
功能测试
1.正确的用户名和密码能正常登录。
2.输入错误的用户名或者密码, 登录会失败,并给出相应提示
3.登录成功后跳转到正确的页面
4.用户名和密码空格trim
5.密码掩码显示
6.验证码切换
界面测试
1.布局是否合理、美观,输入框是否对齐
2.风格和提示信息用语是否符合语境
性能测试
1.响应时间
安全性测试
1.登录成功后生成的Cookie,是否是httponly (否则容易被脚本盗取)
2.用户名和密码是否通过加密的方式,发送给Web服务器
3.用户名和密码的验证,应该是前端验证+服务器端验证, 而不能单单是在客户端用javascript验证
4.用户名和密码的输入框,无SQL 注入攻击风险
5.用户名和密码的的输入框,不能输入脚本 (防止XSS攻击)
6.错误登录的次数限制(防止暴力破解)
7.验证码不能被轻易破解、欺骗
兼容性测试
1.主流的浏览器下能否显示正常
2.不同的操作系统是否能正常工作
3.移动设备上是否正常工作
4.不同的分辨率
易用性测试
1.根据场景,考试是否提供记住用户名密码、自动登录的功能
2.输入账号后,回车登录