http://blog.csdn.net/kerryzhu/article/details/1944172

http://51it.ca/bbs/thread-383-1-1.html

1、植入的单引号。 2、必需输入的数据条目。 3、字段类型测试。 4、字段长度测试。 5、数字型的边界测试。
6、数字的约束测试。
7、日期边界测试。 8、日期的有效性。 9、web会话测试。
10、性能的改变。

负面测试(Negative testing)是相对于正面测试(Positive testing)而言的。它们也是测试设计时的两个非常重要的划分。简单点说,正面测试就是测试系统是否完成了它应该完成的工作;而负面测试就是测试系统是否不执行它不应该完成的操作。形象一点,正面测试就象一个毕恭毕敬的小学生,老师叫我做什么,我就做什么;而负面测试就象一个调皮捣蛋的孩子,你叫我这样做,我偏不这样做,而且和你对着干。开发人员也是最讨厌修改此类bug的。

正面测试主要根据需求,功能说明书,设计文档等相关参考文档来执行测试,而负面测试则主要根据错误猜测,逆向思维来测试系统,一定程序上的的依赖测试人员的经验积累。

执行负面测试时,不单单要测试系统是否处理了用户的异常操作,还要检查系统对于这些异常操作是否给予了正确的错误提示。它是系统对用户进行继续正确操作的指引。

简言之负面测试的三部曲就是:

1、检查程序中的屏幕或页面是否给出了清晰且充分的提示或约束;
2、测试系统是否处理了用户的异常操作;
3、检查系统的错误提示是否清晰且充分。

以下是Steve Miller的《Top 10 Negative Test Cases》,概括性的提到了一些做负面测试时经常需要注意的测试。

负面测试用例被设计于用软件未意欲被使用的方式测试软件,它也应该是测试工作的一部分。以下就是在设计测试工作量时你应该考虑的十大负面测试用例。

1、植入的单引号。大多数基于SQL的数据库系统在用户存储包含一个单引号的信息时会出现问题,例如John's car。每一个可以接受文字数字型数据条目的屏幕都要试试输入包含一个或多个单引号的文本。

【补充】其实不只是单引号,基本上测试人员应该测试所有的特殊字符和空/空格(单纯的空格和文本前后的空格)。单引号,逗号,/,<,>(对于web的应用程序)都是很容易引发错误的。在开发早期测试组就可以建议开发组写一个通用的函数来处理这些特殊字符,然后在处理用户的输入时套用这个函数就可以避免此类错误了。

2、必需输入的数据条目。功能说明书上应该清楚的指出屏幕上必须输入数据条目的字段。测试屏幕上每一个被说明为必须输入的字段以保证它强制要求你在字段中输入数据。

【补充】对于强制输入的字段,在屏幕上最好有些标识以说明其为必须输入的字段。一般在字段前或后用红色的*号表示。测试时必须要检查有标识的字段是否和功能说明书或其他参考文档一致,错误信息提示是否正确,强制输入的字段是否真的必须输入。

3、字段类型测试。功能说明书上应该清楚的指出要求特定数据输入要求(日期字段,数字字段,电话号码,邮编等等)的字段。测试屏幕上每一个被指出有特定类型的字段以保证你输入了基于字段类型的符合正确格式的数据(数字型字段应该不允许字符或特殊字符,日期型的字段应该允许输入一个正确的日期等等)

【补充】其实这里还有一个字段格式和字段内容的测试。有些字段对输入的格式有要求,这些字段的格式一般在屏幕上也有相应的提示。所以在测试时需要测试提示的格式是否合理(和功能说明书或其他参考文档相一致)以及系统是否正确识别输入的格式。有些字段对字段的内容有限制,如常见的用户名,不能包含特殊字符,首字不能未数字等要求。所以在测试时需要测试提示的格式是否合理(和功能说明书或其他参考文档相一致)还有不符合内容要求的数据输入时系统是否正确的处理。

4、字段长度测试。功能说明书上应该清楚的指出可以在字段中输入的字符数(例如,first name必须是50个或更少的字符)。写测试用例以保证你只可以输入特定的字符数。防止用户输入比允许范围更多的字符比因用户已输入过多的字符而给出的错误信息更加的文雅些。

【补充】一般对于限制长度的字段,现在开发大多采用限制输入的方法(设置字段的长度)来处理。所以测试时需要测试限制的长度是否合理(和功能说明书或其他参考文档相一致),对于没有限制长度的字段,要测试无穷输入时是否出错,有问题报bug时建议开发人员根据需要限制长度。

5、数字型的边界测试。对于数字型的字段,测试上下边界是非常重要的。例如,如果你正在计算某个账户的利息时,你永远不会输入一个负的利息数给应该赢取利息的账户。因此,你应该尝试用负数测试。同样,如果功能说明书上要求字段在某一个特定的范围(如从10~50),你就应该尝试输入9或51,它应该给出一个得体的信息表示失败。

6、数字的约束测试。大多数数据库系统和编程语言允许数字条目被识别为整数或长整数。通常,整数的范围是从-32,767~32,767,长整数的范围从-2,147,483,648~2,147,483,647。对于那些没有特定边界限制的数字数据条目,用这些限制测试以确保不会出现数字的溢出错误。

【补充】小数型的数字字段同样也需要格外的测试。一般对于未指出数字类型的字段,尝试输入负整数,负小数,0,正整数,正小数进行测试。

不管是哪种数据库系统,对于数字一般都有多种数字类型。所以测试人员一定要测试的全面。

7、日期边界测试。对于日期型的字段,测试上下边界是很重要的。例如,如果你正在检查一个出生日期的字段,很大可能出生日期不能早于150年前。同样,出生日期应该不是将来的某一天。

【补充】一般来说,每种数据库系统的日期都有个范围,如SQL Server最小日期是1753年1月1日,所以如果是输入型的日期字段同样也应该测试早于1753的日期。

8、日期的有效性。对于日期字段,确保不允许无效的日期是很重要的(04/31/2007是一个无效的日期)。测试用例也应该检查闰年(每个第4年和第400年是一个闰年)。

9、web会话测试。很多的web应用程序依赖浏览器的会话来追踪已登录的用户,应用程序的设置等等。应用程序的大多数屏幕不被设计为没有首次登录就可以被运行。应用程序应该确保在打开应用程序的某一页面之前会话里有一个有效的登录。

10、性能的改变。当发布产品的最新版本时,应该有一套运行于识别屏幕(列出信息的屏幕,add/update/delete数据的屏幕等等)速度的性能测试。测试包里应该包括比较先前版本和现有版本性能统计值的测试用例。这个可以帮助识别那些可以证明是随着对现有版本的代码变更而引起的潜在的性能问题。

【补充】从第一条到第八条是我们在测试字段时常常需要做的测试,一般的测试人员都不陌生。第九条在测试web应用程序中会作为检查应用程序的安全性而做的一项测试。而第十条估计很多公司都不会将它考虑到测试的范畴中,一般最多也就是在测试用例中添加校验某一个操作是否在系统允许的响应时间里,很少去做这样的比较,除了一些有针对性的性能测试。

附记【原文】:

-James

------



Negative test cases are designed to test the software in ways it was not intended to be used, and should be a part of your testing effort.  Below are the top 10 negative test cases you should consider when designing your test effort:



1. Embedded Single Quote - Most SQL based database systems have issueswhen users store information that contain a single quote (e.g. John'scar). For each screen that accepts alphanumeric data entry, tryentering text that contains one or more single quotes.



2. Required Data Entry - Your functional specification should clearly indicate fields that require data entry on screens.  Test each field on the screen that has been indicated as being required to ensure it forces you to enter data in the field.



3. Field Type Test - Your functional specification should clearly indicate fields thatrequire specific data entry requirements (date fields, numeric fields,phone numbers, zip codes, etc).Test each field on the screen that hasbeen indicated as having special types to ensure it forces you to enterdata in the correct format based on the field type (numeric fieldsshould not allow alphabetic or special characters, date fields shouldrequire a valid date, etc).



4. Field Size Test - Yourfunctional specification should clearly indicate the number ofcharacters you can enter into a field (for example , the first name mustbe 50 or less characters). Writetest cases to ensure that you can onlyenter the specified number of characters. Preventing the user fromentering more characters than is allowed is more elegant than giving anerror message after they have already entered too many characters.



5. Numeric Bounds Test - For numeric fields, it is important to test for lower and upper bounds. For example, if you are calculating interest charged to an account, you would never have a negative interest amount applied to an account that earns interest, therefore, you should try testing it with a negative number.   Likewise, if your functional specification requires that a field be in a specific range (e.g. from 10 to 50), you should try entering 9 or 51, it should fail with a graceful message.



6. Numeric Limits Test - Most database systems and programming languages allow numeric itemsto be identified as integers or long integers. Normally, an integer hasa range of -32,767 to 32,767 and long integers can range from

-2,147,483,648 to 2,147,483,647. For numeric data entry that do nothave specified bounds limits, work with these limits to ensure that itdoes not get an numeric overflow error.



7. Date Bounds Test - For date fields, it is important to testfor lower and upper bounds. For example, if you are checking a birthdate field, it is probably a good bet that the person's birth date isno older than 150 years ago. Likewise, their birth date should not be adate in the future.



8. Date Validity - For date fields, it is important

to ensure that invalid dates are not allowed (04/31/2009 is an invalid date).  Your test cases should also check for leap years (every 4th and 400th year is a leap year).



9. Web Session Testing - Many web applications rely on the browsersession to keep track of the person logged in, settings for theapplication, etc. Most screens in a web application are not designed tobe launched without first logging in. Createtest cases to launch webpages within the application without first logging in. The webapplication should ensure it has a valid logged in session beforerendering pages within the application.



10. PerformanceChanges - As you release new versions of your product, you should havea set of performance tests that you run that identify the speed of yourscreens (screens that list information, screens that add/update/deletedata, etc). Yourtest suite should include test cases that compare theprior release performance statistics to the current release. This canaid in identifying potential performance problems that will bemanifested with code changes to the current release.

十大负面(异常)测试用例相关推荐

  1. 调皮捣蛋的孩子--十大负面测试用例

    负面测试(Negative testing)是相对于正面测试(Positive testing)而言的.它们也是测试设计时的两个非常重要的划分.简单点说,正面测试就是测试系统是否完成了它应该完成的工作 ...

  2. 10大负面测试用例 -转

    10大负面测试用例 [2007-12-30] 负面测试(Negative testing)是相对于正面测试(Positive testing)而言的.它们也是测试设计时的两个非常重要的划分.简单点说, ...

  3. java中什么时候应用异常_生产Java应用程序中的十大异常类型-基于1B事件

    java中什么时候应用异常 Pareto记录原理:97%的记录错误语句是由3%的唯一错误引起的 在最新的数据整理帖子之后,我们收到了很多反馈和问题,我们发现97%的记录错误是由10个唯一错误引起的 . ...

  4. 生产Java应用程序中的十大异常类型-基于1B事件

    Pareto记录原理:97%的记录错误语句是由3%的唯一错误引起的 在最新的数据整理帖子之后,我们收到了很多反馈和问题,在该文章中,我们显示97%的记录错误是由10个唯一错误引起的 . 根据普遍的需求 ...

  5. 2020年十大开源漏洞回顾

     聚焦源代码安全,网罗国内外最新资讯! WhiteSource 公司基于 NVD.安全公告和开源项目问题追踪工具等回顾了2020年出现的十大开源漏洞.如下: 1.Lodash CVE-2020-820 ...

  6. 嵌入式软件测试的十大秘诀

    嵌入式软件测试的十大秘诀 <script type="text/javascript"> </script><script language=&quo ...

  7. 蜗牛学院:项目管理十大TION法

    作者:蜗牛学院CEO邓强 我个人从事技术管理工作十多年,对于项目管理有一些自己的理解.在给学员做培训和分享的过程中总结了一些项目管理的法则,姑且标题党一回,称作十大TION法(心法). 1. Orga ...

  8. 2016年十大事件盘点:这一年我们经历了什么?

    2016年十大事件盘点:这一年我们经历了什么?(转) 文/费倩文 2016年,对于互联网从业者来说经历了很多.青年魏则西.创业者张锐突然离世的悲痛:乐视因资金问题陷入困境的惶恐:摩拜.ofo等共享单车 ...

  9. 年终总结:2021年征信行业十大关键词及2022年展望

    孟凡夫 值此2022年初之际,企业征信机构备案服务团队延续2017年至今对征信行业年终总结习惯,基于2021年对征信行业的观察和思考梳理出2021年征信行业十大关键词,并对2022年进行展望,具体内容 ...

最新文章

  1. [Inside HotSpot] UseParallelGC和UseParallelOldGC的区别
  2. Java学习day2
  3. 如何用Vue实现简易的富文本编辑器,并支持Markdown语法
  4. HDU 5228 ZCC loves straight flush( BestCoder Round #41)
  5. Spring Cloud总结
  6. 人生永无止境的意思是什么_《永无止境》中艾迪真的成功改进了NZT吗?
  7. isight2019安装教程_DS SIMULIA Suite 2019 (Abaqus/Isight/Fe-safe/Tosca) Win/Linux x64
  8. excel多级联动和不规则分组转置
  9. 十四、中国为什么没有自己的指令集
  10. html的网页制作需要哪些知识,网页制作之HTML基础知识
  11. matlab求球的体积,【matlab计算不规则物体体积资讯】matlab计算不规则物体体积足球知识与常识 - 足球百科 - 599比分...
  12. 安徽大学电气工程及自动化学院本科实验报告(MATLAB)——六、七章
  13. 【第66篇】行人属性识别研究综述(一)
  14. 信息学奥赛一本通 题解目录
  15. solidworks2020绿色精简版
  16. 暴雪战网服务器维护时间,暴雪战网登录不上去2021
  17. python暴力破解压缩包密码(python暴力破解zip压缩包)
  18. 人脸识别系统设计实现:P-NET的基本原理
  19. 爬取豆瓣网前一百名电影
  20. EASY 实现mqtt实验

热门文章

  1. R语言 类别数据可视化(2)
  2. 改进StyleGAN的人脸融合系统
  3. AssertValid和Dump函数的应用
  4. Linux进阶_时间同步服务
  5. SAS500系列高性能信号采集存储分析仪
  6. python词云制作--三步制作属于和对象的聊天专属词云
  7. vc++网络安全编程范例(19)实现数字信封打包与拆解
  8. 推荐一款好用的程序托管软件AlwaysUp
  9. 数据库系统理论知识 (一)
  10. 2019年计算机考研408操作系统真题(客观题)