Chinaunix首页 | 论坛 | 博客
  • 博客访问: 4133148
  • 博文数量: 70
  • 博客积分: 5010
  • 博客等级: 大校
  • 技术积分: 1400
  • 用 户 组: 普通用户
  • 注册时间: 2007-09-27 15:06
文章存档

2011年(2)

2010年(23)

2009年(21)

2008年(24)

我的朋友

分类: 项目管理

2010-10-14 15:42:28

软件测试定义:
软件测试是为了发现错误而执行程序的过程,即根据软件开发阶段的规格说明和程序的内部结构而精心设计一批测试用例(即输入数据及预期的输出结果),并利用这些测试用例去运行程序,以发现错误的过程。
软件测试的目的:
1.测试是运行程序的过程,目的在于发现错误,在用户使用之前发现问题;
2.一个好的测试用例在于能够发现至今未发现的错误;
3.一个成功的测试是发现了至今未发现的错误的测试。
基于不同的立场,存在着两种完全不同的测试目的:
1.从用户的角度出发,普遍希望通过软件测试暴露软件中隐藏的错误和缺陷,以考虑是否可接受该产品。
2.从软件开发者的角度出发,则希望测试成为表明软件产品中不存在错误的过程,验证该软件已正确地实现了用户的要求,确立人们对软件质量的信心。
换言之,测试的目的是:
 1.想以最少的时间和人力,系统地找出软件中潜在的各种错误和缺陷。如果我们成功地实施了测试,我们就能够发现软件中的错误。
 2.测试的附带收获是,它能够证明软件的功能和性能与需求说明相符合。
 3.实施测试收集到的测试结果数据为软件的可靠性分析提供了依据。
 4.测试不能表明软件中不存在错误,它只能说明软件中存在错误。
软件测试的对象:
1.软件测试并不等于程序测试。软件测试应贯穿于软件定义与开发的整个期间。
2.需求分析、概要设计、详细设计以及程序编码等各阶段所得到的文档,包括需求规格说明、概要设计规格说明、详细设计规格说明以及源程序,都应成为软件测试的对象(需求规格说明、概要设计规格说明、详细设计规格说明都可以做静态测试的文档测试,程序源码则可以做白盒的单元测试,以及后续的集成测试、系统测试等)。
软件测试中有两种常用的测试方法:
1.黑盒测试
2.白盒测试
黑盒测试又叫做功能测试或数据驱动测试,不考虑内部的逻辑结构,只依据程序的需求规格说明书,检查程序的功能是否符合它的需求规格说明。
黑盒测试方法是在程序接口上进行测试,主要是为了发现以下错误:
1. 是否有不正确或遗漏了的功能?
2. 在接口上,输入能否正确地接受? 能否输出正确的结果?
3. 是否有数据结构错误或外部信息(例如数据文件)访问错误?
4. 性能上是否能够满足要求?
5. 是否有初始化或终止性错误?
白盒测试又称为结构测试或逻辑驱动测试,它允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序所有逻辑路径进行测试。通过在不同点检查程序的状态(类似于程序员设置断点调试程序、跟踪变量的值的功能),确定实际的状态是否与预期的状态一致。
软件人员使用白盒测试方法,主要想对程序模块进行如下的检查:
1. 对程序模块的所有独立的执行路径至少测试一次;
2. 对所有的逻辑判定,取“真”与取“假”的两种情况都至少测试一次;
3. 在循环的边界和运行界限内执行循环体;
4. 测试内部数据结构的有效性,等。
 
黑盒测试的测试用例,常用的设计方法有:等价类划分、边界值分析、错误推测法和因果图。
等价类划分:
等价类划分是一种典型的黑盒测试方法,使用这一方法时,完全不考虑程序的内部结构,只依据程序的规格说明来设计测试用例。
等价类划分方法把所有可能的输入数据,即程序的输入域划分成若干部分,然后从每一部分中选取少数有代表性的数据做为测试用例。
使用这一方法设计测试用例要经历划分等价类(列出等价类表)和选取测试用例两步。
等价类是指某个输入域的子集合。在该子集合中,各个输入数据对于揭露程序中的错误都是等效的。测试某等价类的代表值就等价于对这一类其它值的测试。
等价类的划分有两种不同的情况:
1.有效等价类:是指对于程序的规格说明来说,是合理的,有意义的输入数据构成的集合。
2.无效等价类:是指对于程序的规格说明来说,是不合理的,无意义的输入数据构成的集合。
在设计测试用例时,要同时考虑有效等价类和无效等价类的设计。
划分等价类的原则:
1.如果输入条件规定了取值范围,或值的个数,则可以确立一个有效等价类和两个无效等价类。例如,在程序的规格说明中,对输入条件有一句话:
 “…… 项数可以从1到999 ……”
则有效等价类是“1≤项数≤999”;两个无效等价类是“项数<1”或“项数>999”。
2.如果输入条件规定了输入值的集合,或者是规定了“必须如何”的条件,这时可确立一个有效等价类和一个无效等价类。
例如,在Pascal语言中对变量标识符规定为“以字母打头的……串”。那么所有以字母打头的构成有效等价类,而不在此集合内(不以字母打头)的归于无效等价类。
3. 如果输入条件是一个布尔量,则可以确定一个有效等价类和一个无效等价类。
4. 如果规定了输入数据的一组值,而且程序要对每个输入值分别进行处理。这时可为 每一个输入值确立一个有效等价类,此外针对这组值确立一个无效等价类,它是所有不允许的输入值的集合。
例如,在教师上岗方案中规定对教授、副教授、讲师和助教分别计算分数,做相应的处理。因此可以确定4个有效等价类为教授、副教授、讲师和助教,一个无效等价类,它是所有不符合以上身分的人员的输入值的集合。
5.如果规定了输入数据必须遵守的规则,则可以确立一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则)。
例如,Pascal语言规定 “一个语句必须以分号‘;’结束”。这时,可以确定一个有效等价类 “以‘;’结束”,若干个无效等价类 “以‘:’结束”、“以‘,’结束”、“以‘ ’结束”、“以LF结束”等。
边界值分析:
边界值分析也是一种黑盒测试方法,是对等价类划分方法的补充。
人们从长期的测试工作经验得知,大量的错误是发生在输入或输出范围的边界上,而不是在输入范围的内部。因此针对各种边界情况设计测试用例,可以查出更多的错误。
比如,在做三角形计算时,要输入三角形的三个边长:A、B和C。 我们应注意到这三个数值应当满足
    A>0、B>0、C>0、
    A+B>C、A+C>B、B+C>A,才能构成三角形。但如果把六个不等式中的任何一个大于号“>”错写成大于等于号“≥”,那就不能构成三角形。问题恰出现在容易被疏忽的边界附近。
这里所说的边界是指,相当于输入等价类和输出等价类而言,稍高于其边界值及稍低于其边界值的一些特定情况。
使用边界值分析方法设计测试用例,首先应确定边界情况。应当选取正好等于,刚刚大于,或刚刚小于边界的值做为测试数据,而不是选取等价类中的典型值或任意值做为测试数据。
错误推测法:
人们也可以靠经验和直觉推测程序中可能存在的各种错误,从而有针对性地编写检查这些错误的例子。这就是错误推测法。
错误推测法的基本想法是:列举出程序中所有可能有的错误和容易发生错误的特殊情况,根据它们选择测试用例。
因果图:
如果在测试时必须考虑输入条件的各种组合,可使用一种适合于描述对于多种条件的组合,相应产生多个动作的形式来设计测试用例,这就需要利用因果图。
阅读(1030) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~