这个面试问题在我几次的面试过程中碰到了三次,我想虽然是老问题了但是哟哟把它答好才对。在我第一次碰到这个问题时我觉得挺简单的,我的回答是根据我在登录页面的使用经验去答的,第一次的面试我没有全新的对待,到了第二次面试碰到这个问题后我回来决定要好好专研这个问题(因为我觉得我回答后面试官并不是很满意这个问题。。。so 要好好的对待才是)。
(以下的内容纯属借鉴)
原博客地址:https://blog.csdn.net/dml1220/article/details/44150807
- 这个 面试考察的目的:首先你要先了解客户的需求(当然客户的需求基于项目的类型和用户使用的需求)比如:这个登录界面应该是弹出窗口式的还是直接在网页里面的。用户名的长度、和密码的强度(就是密码组合起来后的简单程度)等。还有比如用户对界面的美观是不是有特殊的要求(UI界面的测试)。剩下的就是设计用例了,等价类,边界值等等。请记住一点,任何测试不管是什么要需要从了解需求开始(了解需求后你才会更清楚更及时的发现项目中的bug!)
一、功能测试(function test)
- 什么都不输入操作提交按钮后代码的处理动作是如何的(非空检查)
- 输入正确的用户名和密码,点击提交按钮后验证是否正确登录。(正常输入)
- 输入错误的用户名或者密码(原作者这个“或者”很严谨啊)验证点击登录后时候会提示失败(错误校验)
- 登录成功后是能否跳转到正确的页面(功能校验)
- 用户名和密码输入内容是否支持特殊字符(比如表情字符类空格)和其他非英文的情况(是否做了过滤)
- 记住用户名的功能
- 登录失败后不能记录密码的功能
- 用户名和密码前后有空格的处理、
- 密码是否加密显示(使用星号或者圆点等)
- 牵扯到验证码的还要老驴文字是否扭曲过度导致辨识度南孚过大,考虑颜色(色盲使用者)刷新或换一个按钮是否好用
- 登录页面中的注册忘记密码,登出用另一账号登陆链接是否正确
- 输入密码的时候大写键盘开启的时候是否要有提示
二、界面测试(UI test)
- 页面布局是否合理等
- 输入正确的用户名个密码后登陆成功跳转到新页面的不能超过5秒
三、性能测试(performance test)
- 打开登陆页面后需要几秒
- 输入正确的用户名和密码后登陆成功跳转到新页面不超过的上限时间
四、安全性测试(security test)
- 登陆成功后生成的cookie是否会HTTPonly(否则容易被脚本盗取)
- 用户名和密码是否通过加密的方式发送给web服务器
- 用户名和密码的验证用该是服务器端的验证而不能单单是在客户端用JavaScript验证、
- 用户名和密码的输入框应该是服务器段验证,而不能单单是在客户端用JS来验证
- 用户名和木马的输入框应该禁止输入脚本(防止XSS的攻击)
- 错误登录的次数限制(防止暴力破解)
- 考虑是否支持多用户同时登录
- 考虑是否支持在多台机器上登录
五、可用性测试(usability test)
- 是否可以全用键盘操作 是否有快捷键
- 输入用户名和密码后按回车是够可以登录
- 输入框能否可以以tab键切换
六、兼容性测试(Compatibility Test)
- 主流的浏览器能否显示正常以及功能正常(常见的浏览器有:TE6789、Firefox、Chrome、Safari、等)
- 不同的平台是否正常工作,比如windowS MAC 等、
- 不同的移动设备上是否能够正常工作,如iOS、Android等环境
- 不同的分辨率下的UI显示是否正常
七、本地化的测试(localization test )
- 不同语言环境下页面的内容是否有跟随性
八、软件辅助性测试(accessibility test)
- 软件辅助功能测试是指软件是否向残疾用户提供足够的辅助功能
- 高对比下是否显示正常(视力不好的人使用)