今天面试的时候,面试官问了一个事后看起来特别简单的问题,但是当时由于紧张答得是乱七八糟的,接下来我就来总结一下。
给你一个简单的登陆页面进行测试测试:
一个页面有两个输入框(一个输用户名,一个输入密码),一个登陆框,如果让你负责这个模块的测试,你会从哪些方面来入手。
你看到这个题,你会想到测试哪些方面?功能测试?兼容性测试?这就完了?好了接下来我就系统的说一下。
首先,我们需要了解一下这个登录界面是弹出窗口式的,还是直接在网页里面的。对用户名的长度,密码的强度(密码长度是否是固定的,是否必须是数字字符特殊符号混合)等。再比如用户对该页面是否有界面要求,比如是否要每个,大小等(即是否需要进行UI测试)。然后就是设计用例,等价类,边界值等。
功能测试:
- 输入为空,点击提交,看是否会有提示信息。(非空检查)
- 输入正确的用户名和密码,点击提交,验证是否正确登录。(正常登录)
- 输入错误的用户名或错误的密码,验证登录失败,并提示相应的错误信息。(错误校验)
- 用户名和密码中有特殊的字符(如空格)。
- 用户名和密码,如果太长或太短,应该如何处理。(安全性,密码太短会不会出现提示)
- 登录成功后能否正常跳转页面。
- 用户名和密码前后有空格的处理。
- 密码是否加密显示。
- 有无记住用户名的功能。
- 登录失败后,只记录用户名,不记录密码。
- 登录页面中的注册,忘记密码,退出后用另一账号登录等跳转页面是否正常。
- 输入密码时,键盘的大小写是否开启是否有提示。
- 当有验证码的时候,需要考虑文字是否扭曲过度导致辨认难度大,考虑颜色(色盲、色弱使用者),刷新或换一张图片的按钮是否正常。
性能测试:
- 打开登录界面,需要多长时间。
- 输入正确的用户名和密码后,页面跳转需要多久。
界面测试(UI测试):
- 界面布局是否合理,两个testbox和一个按钮排版是否合理。
- testbox和按钮的长度,高度是否合理。
- 界面中的文字简洁,无错别字。
- 界面设计风格是否与UI的设计风格统一。
兼容性测试:
- 不同的浏览器下能否正常显示功能。
- 不同的平台是否能够正常工作。
- 移动设备上是否正常工作。
- 不同的分辨率。
安全性测试:
- 登录成功后生产的Cookie,是否是httponly (否则容易被脚本盗取)。
- 用户名和密码是否是加密方式发生给服务器的。
- 考虑同一用户在多态机器上登录。
- 是否支持多用户在同一机器上登录。
- 错误登录的次数限制。(防止玻璃破解)
- 用户名和密码的输入框,应该禁止输入脚本。(防止XSS攻击)
- 用户名和密码的输入框,应该屏蔽SQL注入攻击。
- 用户名和密码的验证,应该用服务器端验证,而不简单的在客户端用JavaScript验证。
可用性测试:
- 是否可以用回车键代替登录框,按回车直接登录。
- 是否可以全用键盘操作,是否有快捷键。
- 输入框是否可以使用Tab间进行切换。
本地化测试:
- 不同语言环境下,页面的显示是否正常。
好了,以上就是我总结的一个简单的测试用例的设计。