资源描述
十大异常测试用例(转载)2008-08-15 08:41十大异常测试用例(转载)此文乃转载,原名为十大负面测试用例,我觉得负面测试不如异常测 试来的好理解,自己改了改。恩,先说一说我自己的心得。前八个用例都是原来 已经在我的思维体系中的, 也是测试中常常覆盖的部分。 第九个会话测试, 有这 个概念,但是没有很系统的做,以后要在工作中尽量的融合进来。第十个,性能 改变测试,原文表述的有点罗嗦,我自己理解之后对此的总结是对增、删、改、 查等操作,从用户输入、点击触发了请求之后,到响应、输出这样的一个时间, 或者称为速度, 需要有一套综合测量体系。 并对每次的版本进行统计, 纵向比较, 以发现由此可能造成的潜在性能问题。 这在我之前的测试中也会涵盖一部分, 比 如响应时间一下子明显超长了之后, 会作为一个BUG来提出,但是纵向的版本比 较,这个是我的盲点之一,需要改进。原文如下:负面测试( Negative testing )是相对于正面测试( Positive testing ) 而言的。它们也是测试设计时的两个非常重要的划分。 简单点说, 正面测试就是 测试系统是否完成了它应该完成的工作; 而负面测试就是测试系统是否不执行它 不应该完成的操作。 形象一点, 正面测试就象一个毕恭毕敬的小学生, 老师叫我 做什么,我就做什么;而负面测试就象一个调皮捣蛋的孩子,你叫我这样做,我 偏不这样做,而且和你对着干。开发人员也是最讨厌修改此类 bug 的。正面测试主要根据需求, 功能说明书, 设计文档等相关参考文档来执行 测试,而负面测试则主要根据错误猜测, 逆向思维来测试系统, 一定程序上的的 依赖测试人员的经验积累。执行负面测试时, 不单单要测试系统是否处理了用户的异常操作, 还要 检查系统对于这些异常操作是否给予了正确的错误提示。 它是系统对用户进行继 续正确操作的指引。简而言之负面测试的三部曲就是:1 检查程序中的屏幕或页面是否给出了清晰且充分的提示或约束;2 测试系统是否处理了用户的异常操作;3 检查系统的错误提示是否清晰且充分。以下是 Steve Miller 的Top 10 Negative Test Cases ,概括性的 提到了一些做负面测试时经常需要注意的测试。负面测试用例被设计于用软件未意欲被使用的方式测试软件, 它也应该 是测试工作的一部分。以下就是在设计测试工作量时你应该考虑的 1 0大负面测 试用例。1. 植入的单引号。大多数基于SQL的数据库系统在用户存储包含一个单 引号的信息时会出现问题,例如 Johns car 。每一个可以接受文字数字型数据 条目的屏幕都要试试输入包含一个或多个单引号的文本。【Kiki 补充】其实不只是单引号,基本上测试人员应该测试所有的特殊字符和空 / 空格(单纯的空格和文本前后的空格)。单引号,逗号, / , (对于web的应用程序)都是很容易引发错误的。在开发早期测试组就可以建议 开发组写一个通用的函数来处理这些特殊字符, 然后在处理用户的输入时套用这 个函数就可以避免此类错误了。2. 必需输入的数据条目。 功能说明书上应该清楚的指出屏幕上必须输入 数据条目的字段。 测试屏幕上每一个被说明为必须输入的字段以保证它强制要求 你在字段中输入数据。【Kiki 补充】对于强制输入的字段,在屏幕上最好有些标识以说明其 为必须输入的字段。一般在字段前或后用红色的 *号表示。测试时必须要检查有 标识的字段是否和功能说明书或其他参考文档一致, 错误信息提示是否正确, 强 制输入的字段是否真的必须输入。3. 字段类型测试。 功能说明书上应该清楚的指出要求特定数据输入要求 (日期字段,数字字段,电话号码,邮编等等)的字段。测试屏幕上每一个被指出有特定类型的字段以保证你输入了基于字段类型的符合正确格式的数据 (数字 型字段应该不允许字符或特殊字符, 日期型的字段应该允许输入一个正确的日期【Kiki 补充】其实这里还有一个字段格式和字段内容的测试。有些字 段对输入的格式有要求, 这些字段的格式一般在屏幕上也有相应的提示。 所以在 测试时需要测试提示的格式是否合理 (和功能说明书或其他参考文档相一致) 以 及系统是否正确识别输入的格式。 有些字段对字段的内容有限制, 如常见的用户 名,不能包含特殊字符, 首字不能未数字等要求。 所以在测试时需要测试提示的 格式是否合理 (和功能说明书或其他参考文档相一致) 还有不符合内容要求的数 据输入时系统是否正确的处理。4. 字段长度测试。 功能说明书上应该清楚的指出可以在字段中输入的字 符数(例如,first name必须是50个或更少的字符)。写测试用例以保证你只 可以输入特定的字符数。 防止用户输入比允许范围更多的字符比因用户已输入过 多的字符而给出的错误信息更加的文雅些。【Kiki 补充】一般对于限制长度的字段,现在开发大多采用限制输入 的方法(设置字段的长度) 来处理。所以测试时需要测试限制的长度是否合理 (和 功能说明书或其他参考文档相一致) ,对于没有限制长度的字段, 要测试无穷输 入时是否出错,有问题报 bug 时建议开发人员根据需要限制长度。5. 数字型的边界测试。 对于数字型的字段, 测试上下边界是非常重要的。 例如,如果你正在计算某个账户的利息时, 你永远不会输入一个负的利息数给应 该赢取利息的账户。因此,你应该尝试用负数测试。同样,如果功能说明书上要 求字段在某一个特定的范围(如从 1050),你就应该尝试输入9或51,它应 该给出一个得体的信息表示失败。6. 数字的约束测试。 大多数数据库系统和编程语言允许数字条目被识别 为整数或长整数。通常,整数的范围是从 -32,76732,767 ,长整数的范围从 -2,147,483,6482,147,483,647 。对于那些没有特定边界限制的数字数据条目, 用这些限制测试以确保不会出现数字的溢出错误。【Kiki 补充】小数型的数字字段同样也需要格外的测试。一般对于未 指出数字类型的字段,尝试输入负整数,负小数, 0,正整数,正小数进行测试。不管是哪种数据库系统, 对于数字一般都有多种数字类型。 所以测试人 员一定要测试的全面。7. 日期边界测试。对于日期型的字段,测试上下边界是很重要的。 例如, 如果你正在检查一个出生日期的字段, 很大可能出生日期不能早于 150 年前。同 样,出生日期应该不是将来的某一天。【Kiki 补充】一般来说,每种数据库系统的日期都有个范围,如 SQL Server 最小日期是 1753年 1月 1日,所以如果是输入型的日期字段同样也应该 测试早于 1753 的日期。8 。日期的有效性。对于日期字段,确保不允许无效的日期是很重要的 ( 04/31/2007 是一个无效的日期)。测试用例也应该检查闰年(每个第 4 年和 第 400 年是一个闰年)。9。 web会话测试。很多的web应用程序依赖浏览器的会话来追踪已登录的用户,应用程序的设置等等。 应用程序的大多数屏幕不被设计为没有首次登 录就可以被运行。 应用程序应该确保在打开应用程序的某一页面之前会话里有一 个有效的登录。10. 性能的改变。当发布产品的最新版本时,应该有一套运行于识别屏 幕(列出信息的屏幕, add/update/delete 数据的屏幕等等)速度的性能测试。 测试包里应该包括比较先前版本和现有版本性能统计值的测试用例。 这个可以帮 助识别那些可以证明是随着对现有版本的代码变更而引起的潜在的性能问题。【Kiki 补充】从第一条到第八条是我们在测试字段时常常需要做的测试,一般的测试人员都不陌生。第九条在测试web应用程序中会作为检查应用程 序的安全性而做的一项测试。 而第十条估计很多公司都不会将它考虑到测试的范 畴中,一般最多也就是在测试用例中添加校验某一个操作是否在系统允许的响应 时间里,很少去做这样的比较,除了一些有针对性的性能测试。
展开阅读全文