Chinaunix首页 | 论坛 | 博客
  • 博客访问: 4036947
  • 博文数量: 626
  • 博客积分: 10
  • 博客等级: 民兵
  • 技术积分: 11080
  • 用 户 组: 普通用户
  • 注册时间: 2012-08-23 13:08
文章分类

全部博文(626)

文章存档

2015年(72)

2014年(48)

2013年(506)

分类: IT业界

2013-09-13 09:27:48

章五 带上眼罩测试软件


一、等价类划分
选择测试用例是软件测试员最重要的任务。选择测试用例的方法是等价类划分(equivalence partitioning),有时称为等价分类(equivanlence classing)。等价类划分是指分步骤地把海量的测试用例集减得很少,但过程同样有效。
注意:一个等价类或者等价划分是指测试相同目标或者暴露相同软件缺陷的一组测试用例。
如果为了减少测试用例的数量过度划分等价类,就有漏掉那些困难暴露软件缺陷的测试的风险。
等价类划分可能主观。测试同一个复杂程序的两个软件测试员可能会得出两组不同的等价划分间。只要审查等价划分的人认为它们足以覆盖整个测试用例即可。
二、数据测试
软件最简单的划分:数据和程序。
数据包括键盘输入、鼠标单击、磁盘文件、打印输出等。
程序是指可执行的流程、转换、逻辑和运算。
软件测试常用的一个方法是把测试工作按同样的形式划分。
对数据进行软件测试,就是在检查用户输入的信息、返回的结果以及中间计算结果是否正确。
使所有数据得以测试的技巧是,根据一些关键的原则进行等价类划分,以合理减少测试用例,这些关键的原则是:边界条件、次边界条件、空值和无效数据。
1、边界条件(boundary condition)
描述边界条件是测试的最佳方式。边界条件是特殊情况,编程从根本上说在边界上容易产生问题。
2、边界条件类型
边界条件是指软件运行在计划操作界限的边界的情况。
每一个软件测试问题各不相同,可能包含各种不同的数据以及其独特的边界。
3、测试边界
提出边界条件时,一定要测试临近边界的有效数据,测试最后一个可能有效的数据,同时测试刚超过边界的无效数据。
越界测试的做法通常是简单地对于最大值加一或者很小的数,以及对于最小值减一或者很小的数。
注意:在软件的每一个部分不断寻找边界是极为重要的,寻找做得越多,边界就会发现得越多,可能找出的软件缺陷也就越多。
注意:缓冲区溢出(buffer overrun)是由边界条件缺陷引起的,它是造成软件安全问题的头号原因。
4、次边界条件
普通边界条件是很容易找到的,它们在产品说明书中有定义,或者在使用软件的过程中明显。有些边界在软件内部,最终用户几乎看不到,但软件测试员仍有必要进行检查,这样的边界条件称为次边界条件(sub-boundary conditions)或者内部边界条件(internal boundary conditions)。
寻找次边界条件不要求软件测试员成为程序员或者具有阅读源代码的能力,但是确实要求大体了解软件的工作方式。所以软件测试员应该和开发小组的程序员交流这方面问题。
(1)在建立等价划分时,要考虑等价划分中是否需要包含2的幂的边界条件。
(2)另一种可能的软件缺陷来源是当软件要求输入时——比如在文本框中——不是没有输入正确的信息,而是根本没有输入任何内容,可能单单按了Enter键。
好的软件会处理这种情况,它通常将输入内容默认为边界内的最小合法值,或者在合法划分中间的某个合理值,或者返回错误提示信息。
理想情况是软件取某个合法的宽度和高度作为默认值来处理。如果没有这样做,就应该返回错误提示信息作为执行结果。
技巧:一定要考虑建立处理默认值、空白、空值、零值或者无输入等条件的等价划分。
(3)非法、错误、不正确和垃圾数据
数据测试的最后一种类型是垃圾数据。这是失效性测试的对象。
经过边界测试、次边界测试和默认值测试等通过性测试证实软件能够工作之后,就该进行垃圾数据测试了。
非法、错误、不正确和垃圾数据测试是很有意思的。如果软件要求输入数字,就输入字母;如果软件只接受正数,就输入负数;如果软件对日期敏感,就看它在公元3000年是否能正常工作;假装有“肥胖的手指”,同时按下多个键。
此类测试没有实际的规则,只是设法破坏软件。要发挥创造力,要会走偏门。
 

阅读(1012) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~