1)空白用户名和密码均为空/用户名填写,密码为空/用户名为空,密码填写;
2)错误校验输入错误的用户名和密码/用户名错误密码正确/用户名正确密码错误;
3)大小写区分(如:用户名和密码都为小写时)用户名和密码均大写/用户名大写,密码小写/用户名小写,密码大写;
4)存在空格合法的用户名或密码前插入空格/合法的用户名或密码中间插入空格/合法的用户名或密码后插入空格;
5)已注销的用户名登录;
6)已禁止/锁住的用户名登录;
7)长短校验在给定的用户名和密码规则下,超出或少于指定的长度登录(测试临界值);
8)非法字符校验(如@#¥%等字符);
9)多次错误登录,是否锁住用户名或者密码在连续输错3次或者5次的情况下,账号要被锁定;
10)是否支持tab和enter键输入框是否支持tab键或支持Enter键登录;
11)多点登录/提示信息同一个用户不能同一时间在不同的位置登录;
12)登录是否记住用户名和密码;
13)密码明文;
14)切换用户,是否显示前一用户信息;
15)登陆后前进后退操作;
16)查看密码转码是否有规律,是否每次都是一样;
17)密码是否可以用MD5解密;
18)登录超时(经过一段时间自动退出);
19)SQL注入;
20)跨站;
21)COOKIE注入;
22)COOKIE加密检查;
23)提交用get方法(不安全)。
输入正确的用户名和密码登录成功;
输入错误的用户名密码登录失败;
用户名正确,密码错误,是否提示输入密码错误;
用户名错误,密码正常,是否提示输入用户名错误;
用户名和密码都错误,是否有相应提示;
用户名密码为空时,是否有相应提示;
如果用户未注册,提示请先注册,然后进行登录;
已经注销的用户登录失败,提示信息友好;
密码框是否加密显示;
用户名是否支持中文、特殊字符;
用户名是否有长度限制;
密码是否支持中文,特殊字符;
密码是否有长度限制;
密码是否区分大小写;
密码为一些简单常用字符串时,是否提示修改;如:123456
密码存储方式,是否加密;
登录功能是否需要输入验证码;
验证码有效时间;
验证码输入错误,登录失败,提示信息是否友好;
输入过期的验证码能否登录成功;
验证码是否容易识别;
验证码换一张功能是否可用,点击验证码图片是否可以更换验证码;
用户体系:比如系统分普通用户、高级用户,不同用户登录系统后可的权限不同;
如果使用第三方账号(QQ,微博账号)登录,那么第三方账号与本系统的账号体系对应关系如何保存,首次登录需要极权等。
登录页面显示是否正常,文字和图片能否正常显示,相应的提示信息是否正确,按钮的设置和排列是否正常,页面是否简洁壮观等。
页面默认焦点是否定位在用户名的输入框中
首次登录时相应的输入框是否为空,或者如果有默认文案,当点击输入框时默认方案是否消失。
相应的按钮如登录、重置等,是否可用;页面的前进、后退、刷新按钮是否可用。
快捷键Tab,Esc,Enter等,能否控制使用
兼容性测试:不同浏览器,不同操作系统,不同分辨率下界面是否正常
不登录:浏览器中直接输入登录后的地址,看是否可以直接进入;
登录成功后生成的Cookie,是否是httponly(否则容易被脚本盗取);
用户名和密码是否通过加密的方式,发送给Web服务器;
用户名和密码的验证,应该是用服务器端验证,而不能单单是在客户端用javascript验证;
用户名和密码的输入框,应该屏蔽SQL注入攻击;
用户名和密码的的输入框,应该禁止输入脚本(防止XSS攻击);
错误登陆的次数限制(防止暴力破解);
考虑是否支持多用户在同一机器上登录;
考虑一用户在多台机器上登录。
单用户登录系统的响应时间是否符合"3-5-8"原则,所谓3-5-8原则为:网站响应时间3-5-8原则,小于3秒是很好,3-5是好,超过8秒用户就容易跳失;
用户数在临界点时并发登录是否还能符合"3-5-8"原则;
压力:大量并发用户登录,系统的响应时间是多少,系统会出现宕机、内存泄露、cpu饱和、无法登录吗?
稳定性:系统能否处理并发用户数在临界点以内连续登录N个时的场景。
连续输入3次或以上错误密码,用记是否被锁一定时间(如:15分钟)时间内不允许登录,超出时间点是否可以继续登录;
用户session过期后,重新登录是否还能重新返回这前session过期的页面;
用户名和密码输入框是事支持键盘快捷键?如:撤销、复制、粘贴等等;
是否允许同名用户同时登录进行操作,考虑web和app同时登录;
手机登录时,是否先判断网络可用;
手机登录时,是否先判断app存在新版本;
是否支持单点登录;
是否有埋点接口。
一、输入框:
1、正常的字母/文字/数字(正常流程的测试);
2、重复提交(输入内容后,重复点击提交按钮);
3、纯异常字符/正常输入夹杂异常字符(!@#¥%……&**等等);
4、长度限制(边界值测试,假设最小长度为N,最大长度为M,则测试N-1,N,M,M+1);
5、重复输入(已经存在记录,重复输入);
6、空提交(什么都不输入直接提交,看程序如何处理);
7、含有空格(开头,中间,结尾);
8、含有回车(输入内容中含有回车,查看如何处理,如何保存,以及如何显示);
9、复制粘贴操作(如密码需二次确认验证,此时复制粘贴不可生效,其余的情况应该生效);
10、如有格式要求,请验证格式(如电话号码的格式要求,运营商号段的要求);
11、输入非法字符集,如:null,\n;
12、全/半角的符号是否区分;
13、对于搜索输入框:
若输入*是否能搜索出全部的内容;
若输入空格能否搜索出全部的内容;
若输入比要搜索的全部内容超长的字符,能否搜出相应的内容;
输入脚本/html语言,是否会过滤(此处涉及安全测试,可暂不考虑)。
二、提交/确定按钮:
1、对于提交/确定按钮,点击后,数据是否成功处理,页面跳转是否正确;
2、连续点击提交/确定按钮页面如何处理,注意连续提交时操作要快,达到签个提交尚未处理完成,点击下一个提交,程序如何处理,是否报错;
3、对于取消按钮,点击“取消”按钮后,查看数据有没提交。
三、后退按钮,返回键:
1、对于页面的操作,大家要注意测试下浏览器上的后退按钮操作,查看下做完操作后点击后退按钮后,之前的操作是否会撤销;
2、连续点击后退按钮,查看页面会做何种处理,是否会报错;
3、比如已经退出登录的页面,点击后退按钮,页面是否仍是登录状态;
4、对于有返回键的页面,对于已经成功提交的记录,点击返回键后,看如何处理之前的操作;
5、对于有连续返回键的页面,连续点击返回键,页面如何处理,是否报错。
四、链接测试:
1、首先,测试所有链接是否按指示的那样确实链接到了该链接的页面;
2、其次,测试所链接的页面是否存在;
3、最后,保证Web应用系统上没有孤立的页面,所谓孤立页面是指没有链接指向该页面,只有知道正确的URL地址才能访问。
要注意的是:未登录时各功能跳转页面的测试;对于网站测试各个页面的跳转都是需要点击测试的,以及需要登录的操作,在未登录的情况下去操作,跳转是否正常都需要验证;
五、session超时/失效:
1、登录后长时间不操作,session超时,查看页面跳转;
2、这涉及所有需要登录的才能操作的页面;
3、测试这种情况的简便方法:登录网站,将需要测试的页面Page1在另一个标签中打开,然后再在原来的页面中退出登录,此时session已经失效;这样再去操作Page1,即可达到session失效或超时的条件。
六、图形界面测试:
1、首先要确保图形有明确的用途。
2、网站的图片尺寸要尽量地小,并且要能清楚地说明某件事情,一般都链接到某个具体的页面。
3、其次验证所有页面字体的风格是否一致;在这要验证背景颜色应该与字体颜色和前景颜色相搭配。
七、操作流程测试:测试中不仅测试界面友好性,还要对操作流程易用性或者友好性做测试。
1、不仅要验证操作流程是否符合大部分用户的操作习惯;
2、是否有多余的操作流程,对于多余的流程是没有任何好处的,不仅使操作繁琐还有可能出现不必要的漏洞;
3、操作流程是否顺畅,会不会产生让用户误解的步骤;
4、每个步骤操作完以后,需要给出提示的是否明确给出。
八、列表及翻页功能测试:
1、对于页面中的各项列表,都要测试其翻页功能,不仅要注意测试各个翻页相关按钮(注意:tab键,enter键的测试),特别是首页,尾页;
2、还要测试当该列表中含有的页数超过5页,10页甚至更多页的情况;同时要验证5页以后,或者10页以后,或者很多也以后的页面是否正常;
九、页面提示语测试:
页面提示语不仅要友好,还要做到整个网站风格(字体大小,字体颜色,提示的排版,背景,提示语气等)要统一;
对于这种提示语的测试,在测试的过程分别提出来可能会比较繁琐,而且浪费时间和体力;
对于这一类问题,最好是统一提出,统一总结,因为此类情况大部分会是比较类似的情况,可统一整理出文档,反馈给开发人员,统一修改,这样能够提高双方的工作效率。
十、浏览器兼容性:
现在新开发的项目对浏览器的兼容性要求也是比较高的,比较主流的浏览器就是IE6,IE7,IE8以及FireFox,苹果的浏览器Safari等,通过我们测试的情况,IE6是最不容易兼容的浏览器,其次是IE7,Safari;IE8和FireFox差不多,一般问题不大。
在测试的时候大家最好用IE6浏览器,容易发现问题;对于其他IE的测试可以通过IETester工具,这个并不是完全精准的,但是鉴于一个电脑只能安装一个IE浏览器,只能退而求其次了;当然也可以用其他同事的浏览器确认测试。
十一、是否支持tab键,enter键:
在测试网站的按钮或者输入框时,要测试是否支持tab键和enter键,利用这两个键做操作是用户习惯性的操作;
十二、页面title测试:
一个网站的页面title是最好要统一的;
要验证页面title的显示是否正确;
风格是否统一;
类似操作的不同页面的title是否与对应的页面相一致。
十三、刷新键:点击浏览器上的刷新键,检查页面如何处理,是否报错。
十四、滚动条测试:对于滚动条的测试,要注意测试拉动滚动条是否异常。
作者:贾富程
链接:https://juejin.cn/post/684490379422492263