WEB测试要点小结

标题:web测试学习要点小结

一、功能性测试

1、功能测试通常从以下几个角度对软件测试进行评价:
1)软件是否实现了需求规格说明书(SRS)中明确定义的需求;
2)软件是否遗漏了SRS中明确定义的需求;
3)软件是否将SRS中未定义的需求实现;
4)软件是否对异常情况进行了处理;
5)软件是否满足用户使用的需求;
6)软件是否满足用户的隐形需求
以上内容仅供参考,在我们实际工作中要看实际情况灵活运用

2、web系统通用的一些测试点
1)、链接测试
A 、原理:
从待测网站的根目录开始,遍历整个网站所有的网页文件,并对网页文件中所有的超链接、图片文件、文件包含、CSS文件、页面内部链接等进行读取。以求最大程度的发现被测网站不存在或不完整的资源,并提交给相关人员进行修改,使得网站更加完整。
B、链接测试可以分为以下几个方面:
a、测试所有的链接是否链接到预期的页面;
b、测试所有的链接是否有效;
c、测试是否有孤立的页面。孤立页面是指除了URL地址能够访问到以外,没有其他的链接指向该页面。
C、 链接测试常用的工具: XENU
2)表单测试
表单测试我们可以从以下几个角度考虑:
A、输入框的长度限制;
B、输入框的类型限制;
C、输入框的模式匹配(比如日期的格式);
D、按钮的有效性(即点击按钮,按钮具备预期的功能)。
3)Cookie测试
Cookie测试我们可以从以下几个角度考虑:
A、Cookie的作用于是否合理;
B、Cookie中保存的一些关键数据是否加密;
C、Cookie过期时间是否正确(查看服务端设置的Cookie过期时间是否正确);
D、Cookie的变量名与 值是否相对应;
E、Cookie是否必要,是否缺少。
4)Session测试
A、Session不能过度的使用,否则会增加服务器维护Session的负担;
B、Session过期时间设置是否合理(具体根据需求而定);
C、Session的键值对是否对应;
D、Session过期后客户端是否形成新的SessionID;
E、Session与Cookie是否存在冲突。
5)脚本测试
A、客户端的脚本测试(如:JavaScript相对应的JSunit)
B、服务端的脚本测试(如:PHP相对应的PHPunit)
6)文件上传测试
A、只能上传允许的附件类型;
B、不能上传脚本和可执行文件(exe文件);
C、不能只以后缀来判断文件类型(别人可以将exe文件伪装成符合要求的文件进行上传);
D、浏览好文件后,将目标文件删除这种异常情况可以正常处理(比如;将文件上传到服务器,在服务器删除文件,再去点击文件能够正常的处理,而不会因为服务端找不到文件而影响服务器);
E、上传超大文件可以正常处理(比如给出提示等);
F、上传的文件提供查看的接口(入口);
G、上传的文件应当保存在服务器硬盘而不是直接保存在数据库中(数据库保存文件的基本信息);
H、文件上传到服务器端后应该被重命名,以免文件名冲突。
7)数据库测试
A、数据库表结构是否合理;
B、表与表之间的关系是否明确,主外键是否合理;
C、列的数据类型和长度定义是否 满足功能和性能方面的需求;
D、索引的创建是否合理;
E、存储过程功能是否完整(可以适应SQL语句进行详细的测试,可以使用DBunit、SQLunit等常用的数据库测试工具)。
注意;数据库的测试要在设计数据库之前就参与进来,否则等到数据库设计完成后再进行测试,修改的成本将大大提升。

二、可用性测试

可用性测试实际上更贴近于用户体验,我们在测试的时候主要还是要多站在用户的角度去考虑用户的体验。网上有关于局长使用BS系统的文章就很形象的说明了用户在使用软件时遇到的一些苦恼。下面就对于可用性的测试点提供一些测试思路,供大家做一个参考。
1、站点整体布局;
2、页面导航直观;
3、图形内容风格统一;
4、页面内容准确;
5、注意快捷方式;
6、满足区域文化;
7、考虑用户群体;
8、其他一些关注点。

三、安全性测试

1、认证与授权
认证的目的是为了认出用户是谁,而授权的目的是为了决定用户能够做什么。认证实际上就是一个验证凭证的过程。打个比方,最为常见的认证手段是用户名和密码,好比是进入一间屋子的锁和钥匙,认证就是确认锁锁的是哪间屋子,钥匙能不能打开这把锁,只有当钥匙和锁都匹配才能进入屋子,进入屋子以后,能够决定做什么的就是授权,如果进入屋子的是主人,那么他拥有着这个屋子的最高权利,如果是客人,那么他的权限就受到限制,有些事可以做而有些事是不能做的。我想通过上面这个例子能够很好的帮助我们理解认证和授权的概念。

认证的测试点:
1)密码策略:长度、复杂度要经过不可逆的加密后保存在数据库中,尤其是一些对于信息安全特别重要的软件;
2)登录失败的提示消息不应明确的提示给用户,避免客户端使用暴力破解;
3)登录失败后的限制策略,比如连续输入五次错误密码,停止用户登录,将信息发送给系统管理员,并发送客户端的IP地址;
4)登录时使用图片验证码,避免使用工具发送数据包;
5)必须登录后才能访问的页面都需要对客户端的session进行验证。避免客户端直接在URL地址栏输入地址直接进行访问。

授权的测试要点:
1)用户只能访问被授权的模块和功能;
2)用户不能通过直接输入URL的方式进行越权访问;
3)权限的控制只能由管理员来维护,其他用户不能做任何修改;
4)权限控制上要细,最好能细到增删查改这种功能,并且不同模块有不同的权限。

2、session和cookie
测试要点:
1)对客户端生成Session ID时最好与IP地址进行绑定,避免非法用户获得session ID进行非法访问;
2)Cookie的信息时保存在客户端的,是公开的,所以要对关键信息进行加密;
3) 一些重要的控制功能的数据不能保存cookie中,而必须将它保存在session中,避免人为的篡改session非法获取到系统控制权。

3、文件上传漏洞

测试要点:
1)对文件类型进行过滤,比如只能上传图片或压缩文件。不能允许用户上传可执行的程序或代码;
2)不能单纯的以文件的后缀名判断,比如将一个PHP文件的后缀名改为txt的后缀名;
3)不能单纯的只在客户端使用JavaScript对文件类型进行判断,而应在服务器端进行;
4)文件上传的大小必须有限制。

4、SQL注入
注入的本质是把用户输入的数据当成代码执行。
测试要点:
1)测试是否对用户的输入进行校验,可以通过正则表达式或限制长度;
2)测试是否使用动态SQL拼接;
3)测试每个应用是否使用单独有限的权限对数据库连接;
4)测试机密文件是否加密;

四、兼容性测试

1、服务器平台
指同一个软件需要测试不同的web服务器版本,连接不同的数据库,或者使用不同的网路环境时,能否正常工作。

2、客户端平台
客户端平台主要指浏览器版本的兼容性,还有客户端的硬件平台。比如现在的大多数客户使用手机访问互联网,那么就要考虑到这一类群体的使用需求。

以上是学习web测试理论知识的小结,后面再抽时间总结一下之前的学习内容,方便自己以后查阅,也希望看到这篇文章的大神们能够指点指点。

你可能感兴趣的:(WEB测试要点小结)