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

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

其他通用 Checklist 包含的范畴

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

数据类型攻击 Checklist

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

序号 Checklist
1.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 总结

序号 Checklist
2.1 网页浏览
2.2 网页输入
2.3 网页首选项

2.1 网页浏览

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

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

2.2 网页输入

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

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

2.3 网页首选项

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

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

启发式测试 Checklist

表 3. 启发式测试 Checklist 总结

序号 Checklist
3.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 篇所述内容之外的一些通用测试思路,旨在为大家提供更加广阔的测试角度,从而提供更加完美的测试覆盖率。本文主要分为三个方面的内容:数据类型攻击、网页测试、启发式测试。


你可能感兴趣的:([置顶] Web 软件测试 Checklist 应用系列,第 7 部分: 其他通用 Checklist 介绍)