Web 软件测试 Checklist 应用系列,第 7 部分: 其他通用 Checklist 介绍

来源:互联网 发布:淘宝网txt 编辑:程序博客网 时间:2024/05/29 21:30

本文为系列文章"Web 软件测试 Checklist 应用系列"中的第 7 篇,也是本系列的收官篇。前面 6 篇系列文章讲述的各个专题的 Checklist 介绍,本篇主要介绍之前 6 篇专题未能涵盖的一些较为零散的网页产品测试的 Checklist。本篇提到的 Checklist 虽较为零散,但对于开阔测试思路非常有效。本篇主要阐述的是一些测试思路,并不一定细化到非常具体的测试点,旨在为大家呈现多样化的测试角度。

其他通用 Checklist 包含的范畴

本文将阐述的其他通用的 Checklist,旨在通过列举各种不同的测试角度来开拓测试思路,从而杜绝产品缺陷,提高产品质量。本文将主要包含数据类型攻击、网页测试、启发式测试等多个方面的内容。本文没有太多的实例,主要是一些思路和角度的罗列,甚至说没有非常清楚的执行步骤,重点在思路。这些思路对拓展测试的范围很有帮助。

数据类型攻击 Checklist

表 1. 数据类型攻击 Checklist 总结

序号Checklist1.1路径、文件攻击1.2时间、日期攻击1.3数字攻击1.4字符串攻击1.5通用攻击

1.1 路径、文件攻击

长文件名(超过 255 字符的文件名);

文件名中的特殊字符(比如空格 * ? / \ | < > , . ( ) [ ] { } ; : ‘ “ !@ # $ % ^ &);

已经存在的文件名;没有存储空间;只读模式;文件被锁定;文件位于远程机器上;文件损坏。

1.2 时间、日期攻击

超时测试;两台机器上存在不同的时间;跨越不同时区;闰日;绝对非法的日期(如 2 月 30 日、9 月 31 日);非闰年的 2 月 29 日;不同的日期格式(如 07/02/2013, 07/02/13, 07-02-13, 7/2/2013 19:39)。

1.3 数字攻击

0; 32768(2^15); 32769(2^15-1); 65536 (2^16); 65537 (2^16 +1); 2147483648 (2^31);

2147483649 (2^31 + 1); 4294967296 (2^32); 4294967297 (2^32 + 1); 1,234,567.

1.4 字符串攻击

长字符串(255, 256, 257, 1000, 1024, 2000, 2048 或更多字符);带音标的字符(àáâãäåçèéêëìíîðñòôõöö等);亚洲字符(比如中文字符);分隔符和特殊字符(“ ‘ ` | / \ , ; : & < > ^ * ? Tab );单空格;多空格;字符串打头的空格。

1.5 通用攻击

违反特定区域的规则(比如:数字区域输入的字母,ip 地址 999.999.999.999,未包含@符号的 email 地址,年龄-1);违反唯一性限制。

通用性的限制虽然听上去比较笼统,但是它在产品中几乎无处不在,在用户的体验中更是起着举足轻重的作用。提供合理准确的通用性约束,可以为用户提供更加良好的用户体验,也增加用户对产品的满意度和忠诚度。

网页测试 Checklist

表 2. 网页测试 Checklist 总结

序号Checklist2.1网页浏览2.2网页输入2.3网页首选项

2.1 网页浏览

后退;刷新;将当前 URL 添加到收藏夹;登出之后选择收藏夹里的链接;利用多个浏览器打开链接。

这是用户使用产品中最基本的操作,除了需要保证用户可以通过浏览器操作完成以上功能外,另一个很重要的方面就是完善用户操作一致性,就是保证在产品的设计与用户的惯用操作保持一致,最好能够让用户不看用户手册就可以上手使用产品,让用户能自由无隔阂的使用我们的产品。

2.2 网页输入

检查文本输入框的最大输入长度;尝试输入超过 5000 个字符到文本区域。

通常测试人员需要检查输入的最小和最大长度,比如不输入(输入长度为 0)和输入超长时的情况。需要测试各种不同的输入方式,包括键盘输入、复制粘贴输入、拖拽输入、利用工具栏操作“文件-导入”、“文件-打开”等操作实现。

2.3 网页首选项

关闭 Cookie;设置高安全性;更改字体大小。

针对网页的首选项,需要检查首选项中的设置是否正常工作,并查看首选项的更改能否正常保存。

启发式测试 Checklist

表 3. 启发式测试 Checklist 总结

序号Checklist3.1变量3.2边界值3.3跟随数据3.4权限选择3.5数量3.6多用户3.7流量泛滥3.8限制3.9输入方法3.10操作顺序3.11排序

3.1 变量

找出所有可以修改数值的区域,其中变量可能是显式的、隐藏的或者不明显的。

在对变量的测试过程中,可以从很多个角度进行攻击。首先,不做任何改变时,看产品如何响应,是否有合理的默认值生效;尝试输入空格、0 等值来查看产品是否处理得当。有些隐藏的变量值可能是通过其他页面设置生效,这时候我们需要探寻该数值的源头并尝试修改,查看该隐藏数据是否生效,并查看生效时间有无滞后现象,如果数值的改变并非实时抓取,而是定期更新的,测试人员需要查看更新的间隔是多少,并检查该更新间隔是否清楚的告知了用户。

3.2 边界值

靠近边界值(有效范围内尽量大、有效范围内尽量小);处于边界值。

边界值是软件测试中非常重要的一类测试用例,通过检查测试边界值,可以更快速的发现潜在的缺陷。

3.3 跟随数据

执行一个包含数据的序列操作,在每一步均验证数据的完整性(例如:数据输入-搜索-报告-导出-导入-更新-查看)。

数据的完整性对于特定用户来说具有很高的优先级,比如说对于银行客户,数据必须要保证一致性和完整性,用户的银行账户决不允许出现差错,否则将会引起极大的恐慌。测试人员需要确保在各种交易流程中,数据均能保持一致性,尤其是存在一定交易压力、出现异常等情况下,依然能做到数据完整一致。

3.4 权限选择

测试以下几种权限情况:部分权限、无权限、全部权限。

权限控制在当今互联网时代显得尤其重要,只有权限控制得当,才能保证用户的数据安全。测试过程中,需要严格检查各级权限等级,要做到该有的权限必须有,不该有的权限绝不能有。也要考虑中途改变用户权限的情况,查看更改权限前后产品是否都可以控制得当。

3.5 数量

0,1,很多(0 条交易,1 条交易,多条交易)。

交易数量首先包括“有”跟“没有”的区别,也就是 0 和非 0 的区别,其次又包括交易量大和量小的问题。众多的软件产品在交易量不大时都可以正常运行,但一旦交易量增大,会出现各种各样的问题,比如交易响应时间会急剧增加甚至导致无法完成交易的情况,更严重的可能导致整个系统瘫痪。

3.6 多用户

两个用户同时进行创建、更新、删除操作,或者同一个用户两次登陆进行此类操作。

并发性在业务量较大的应用环境中非常重要,当大量的并发交易发生时,需要保证数据的一致性。举例,比如一个产品允许用户买入和卖出一件商品,用户首先以 10 元价格买入商品,然后该用户通过多个连接同时发出卖出该商品请求,如果产品对此类卖出请求处理不当,就会出现多次卖出成功的现象,比如用户提交的并发请求有 3 次成功,这样就会导致有 3*10=30 元的退款到账。这是不可接受的,这将会是产品的严重漏洞。

3.7 流量泛滥

利用大量并发交易或请求充满整个队列。

这里测试是的是当交易以正常的方式充满整个队列时,产品是否工作正常,是否存在正确的溢出保护机制。比如,当消息队列变满时,溢出的消息是否会丢失,当队列重新获得空间之后,溢出的消息是否能重新载入队列实现正常处理,这都是测试人员需要考虑的问题。

3.8 限制

违反限制约定(不输入需要的区域,在相互依赖区域输入非法的组合,输入同名的用户名和名字)。

3.9 输入方法

敲击输入,复制粘贴,导入,拖拽放下,各种各样的接口(GUI 或者 API)。

3.10 操作顺序

改变操作的顺序,撤消操作、重新执行,反转操作,结合,颠倒顺序,同步执行。

3.11 排序

字母顺序对比数字顺序,多页面排序。也要考虑多级排序,也就是首先根据属性一进行排序,当属性一的值相同时,根据属性二进行排序,以此类推,还可以有更多的属性参与排序。


总结

本文作为本系列文章的收官篇,总结了前 6 篇所述内容之外的一些通用测试思路,旨在为大家提供更加广阔的测试角度,从而提供更加完美的测试覆盖率。本文主要分为三个方面的内容:数据类型攻击、网页测试、启发式测试。


0 0
原创粉丝点击