软件测试面试:如何测试网站的登录页面
有一个登陆页面, 上面有2个textbox, 一个提交按钮。 请针对这个页面设计30个以上的test case.
此题的考察目的:面试者是否熟悉各种测试方法,是否有丰富的Web测试经验,是否了解Web开发,以及设计Test case的能力。
作为测试人员,首先要明确测试的目的,我们为什么要做测试?
为了保证产品顺利运行,排查软件的缺陷等,总结一点就是:保证质量、质量、质量。
所以我们要将自己代入到用户角色,想象你就是一个刁钻的客户,找BUG,找不足,并且从多个维度去思考去分析。
回到面试题,可以总结分为以下几个测试点:
功能测试(Function test)
- 输入正确的用户名和密码,点击提交按钮,验证是否能正确登录
- 输入错误的用户名或者密码, 验证登录会失败,并且提示相应的错误信息
- 登录成功后能否能否跳转到正确的页面
- 用户名和密码,如果太短或者太长,应该怎么处理
- 用户名和密码,中有特殊字符,和其他非英文的情况
- 记住用户名的功能
- 登陆失败后,不能记录密码的功能
- 用户名和密码前后有空格的处理
- 密码是否以星号显示(隐藏)
界面测试(UI Test)
- 布局是否合理,2个testbox 和一个按钮是否对齐
- testbox和按钮的长度,高度是否符合要求
- 界面是否好看
- 图片,颜色,字体,超链接,是否都显示正确
性能测试(performance test)
- 打开登录页面,需要几秒
- 输入正确的用户名和密码后,登录成功跳转到新页面,不超过5秒
- 能支持多少个用户同时登陆
安全性测试(Security test)
- 登录成功后生成的Cookie,是否是httponly (否则容易被脚本盗取)
- 用户名和密码是否通过加密的方式,发送给Web服务器
- 用户名和密码的验证,应该是用服务器端验证, 而不能单单是在客户端用javascript验证
- 用户名和密码的输入框,应该屏蔽SQL 注入攻击
- 用户名和密码的的输入框,应该禁止输入脚本 (防止XSS攻击)
- 错误登陆的次数限制(防止暴力破解)
易用性测试(Usability Test)
- 是否可以全用键盘操作,是否有快捷键
- 输入用户名,密码后按回车,是否可以登陆
兼容性测试(Compatibility Test)
- 主流的浏览器下能否显示正常以及功能正常(IE,6,7,8,9, Firefox, Chrome, Safari,等)
- 不同的平台是否能正常工作,比如Windows, Mac
- 移动设备上是否正常工作,比如I phone, Android
- 不同的分辨率
- 不同的浏览器大小 (浏览器最大化, 和非最大化)
软件辅助性测试 (Accessibility test)
软件辅助功能测试是指测试软件是否向残疾用户提供足够的辅助功能
- 高对比度下能否显示正常 (视力不好的人使用)