




已阅读5页,还剩48页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
软件测试基本方法 软件测试方法 三种常用的测试方法 黑盒测试 白盒测试 灰盒测试 黑盒测试 黑盒测试 这种方法是把 测试对象 看做 一个黑盒子 ,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能说明。 黑盒测试又叫做 功能测试 或 数据驱动测试 。 黑盒测试方法是在程序接口上进行测试,主要是为了发现以下错误 : 是否有不正确或遗漏了的功能 ? 在接口上, 输入能否正确地接受 ? 能否输出正确的结果 ? 是否有数据结构错误或外部信息(例如数据文件 )访问错误 ? 性能上是否能够满足要求 ? 是否有初始化或终止性错误 ? 用黑盒测试发现程序中的错误,必须在 所有可能的输入条件和输出条件 中确定测试数据,来检查程序是否都能产生正确的输出。 但这是 不可能 的。 假设一个 程序 入量 及 输出量 Z。若 X、 黑盒方法进行穷举测试: 可能采用的 测试数据组: 232 232 264 如果测试一组数据需要 1毫秒,一年工作 365 24小时,完成所有测试需 5亿年。 黑盒测试的技术方法 等价类划分 边界值分析 错误推测法 因果图 比较测试法 决策表法 等价类划分 等价类划分是一种典型的黑盒测试方法,使用这一方法时, 完全不考虑程序的内部结构 ,只依据程序的规格说明来设计测试用例 。 等价类划分方法 把所有可能的输入数据 ,即程序的输入域 划分成若干部分 ,然后 从每一部分中选取少数有代表性的数据做为测试用例 。 在进行等价类划分之前,需要先从程序的功能说明书中找出各个输入条件,然后为每个输入条件划分两个或多个等价类,形成若干的互不相交的子集,这称之为等价类。所谓等价类是指输入域的某个子集合,所有等价类的并集就是整个输入域 使用这一方法设计测试用例要经历划分等价类 (列出等价类表)和 选取测试用例 两步。 划分等价类 等价类是指某个输入域的子集合。在该子集合中, 各个输入数据对于揭露程序中的错误都是等效的 。测试某等价类的代表值就等价于对这一类其它值的测试。 等价类的划分有两种不同的情况: 有效等价类 :是指对于程序的规格说明来说,是合理的,有意义的输入数据构成的集合。 举例:测试 a、 :边为 a、 b、 :边为 a、 b、 :边为 a、 b、 :边为 a、 b、 4个标准等价类测试用例 测试用例 a b c 预期输出 0 10 10 等边三角形 0 10 5 等腰三角形 4 5 一般三角形 2 1 非三角形 7个健壮性等价类测试用例 测试用例 a b c 预期输出 6 7 一般三角形 1 5 5 5 -1 01 5 5 101 5 5 101 边界值分析 边界值分析也是一种黑盒测试方法,是对等价类划分方法的补充。 人们从长期的测试工作经验得知, 大量的错误是发生在输入或输出范围的边界上,而不是在输入范围的内部 。因此针对各种边界情况设计测试用例,可以查出更多的错误 。 比如,在做三角形计算时,要输入三角形的三个边长: A、 。 我们应注意到这三个数值应当满足 A 0、 B 0、 C 0、 A B C、 A C B、 B C A, 才能构成三角形。但如果把六个不等式中的任何一个大于号“”错写成大于等于号“ ”,那就不能构成三角形。问题恰出现在容易被疏忽的边界附近。 这里所说的边界是指,相对于输入等价类和输出等价类而言,稍高于其边界值及稍低于其边界值的一些特定情况。 使用边界值分析方法设计测试用例,首先应确定边界情况。 应当选取正好等于,刚刚大于,或刚刚小于边界的值做为测试数据 ,而不是选取等价类中的典型值或任意值做为测试数据。 在应用边界值分析法进行测试用例设计时,应遵循的原则: 1、如果输入条件对取值范围进行了界定,则应以边界内部以及刚超出范围边界外的值作为测试用例。若范围的下界为条件 X,上界为 Y,则测试用例应当包含 X、 和稍大于 2、如果对取值的个数进行了界定,则应当分别以最大、最小个数及稍小于最小、稍大于最大个数作为测试用例。 3、对于输出条件,同样可以应用上面提到的两条原则来进行测试用例设计。 4、如果程序规格说明书中指明输入或输出域是一个有序的集合,如顺序文件、表格等,就应当注意选取该有序集合中的第一个和最后一个元素作为测试用例。 下例是三角形问题用边界值分析法设计的测试用例 测试用例 a b c 预期输出 0 60 1 等腰三角形 0 60 2 等腰三角形 0 60 60 等边三角形 0 50 99 等腰三角形 0 50 100 非三角形 0 1 60 等腰三角形 0 2 60 等腰三角形 0 99 50 等腰三角形 0 100 50 非三角形 60 60 等腰三角形 60 60 等腰三角形 9 50 50 等腰三角形 00 50 50 非三角形 错误推测法 人们也可以靠经验和直觉推测程序中可能存在的各种错误,从而有针对性地编写检查这些错误的例子。这就是错误推测法。 错误推测法的基本想法是: 列举出程序中所有可能有的错误和容易发生错误的特殊情况,根据它们选择测试用例 。 因果图 因果图的适用范围 如果在测试时必须考虑 输入条件的各种组合 ,可使用一种适合于描述对于多种条件的组合,相应产生多个动作的形式来设计测试用例,这就需要利用因果图。 因果图方法最终生成的就是判定表。它适合于检查程序输入条件的各种组合情况。 (1) 分析软件规格说明描述中,哪些是原因 (即输入条件或输入条件的等价类 ),哪些是结果 (即输出条件 ),并给每个原因和结果赋予一个标识符。 (2) 分析软件规格说明描述中的语义,找出原因与结果之间,原因与原因之间对应的是什么关系 ? 根据这些关系,画出因果图。 (3) 由于语法或环境限制,有些原因与原因之间,原因与结果之间的组合情况不可能出现。为表明这些特殊情况,在因果图上用一些记号标明约束或限制条件。 (4) 把因果图转换成判定表 。 (5) 把判定表的每一列拿出来作为依据,设计测试用例。 在因果图中出现的基本符号 通常在因果图中用 结点表示状态,可取值 “ 0”或 “ 1”。“ 0”表示某状态不出现, “ 1”表示某状态出现。 主要的原因和结果之间的关系有 : 表示约束条件的符号 为了表示原因与原因之间,结果与结果之间可能存在的约束条件,在因果图中可以附加一些表示约束条件的符号。 测试方法的选择 为了最大程度地减少遗留的缺陷,同时也为了最大限度地发现存在的缺陷,在测试实施之前,测试工程师必须确定将要采用的测试策略和测试方法,并一次为依据制定详细的测试方案。通常,一个好的测试策略和测试方法必将给整个测试工作带来事半功倍的效果,从而充分利用有限的人力和物力资源,高效率、高质量地完成测试。 如何才能确定好的测试策略和测试方法呢?通常,在确定测试方法时,应遵循以下原则: 1、根据程序的重要性和一旦发生故障将造成的损失来确定测试等级和测试重点; 2、认真选择测试策略,以便能尽可能少地使用测试用例,发现尽可能多的程序错误 。 确定测试策略 5条参考原则 1、在任何情况下都必须采用边界值分析法。这种方法设计出的测试用例发现程序错误的能力最强。 2、必要时采用等价类划分法补充测试用例。 3、采用错误推断法再追加测试用例。 4、对照程序逻辑,检查已设计处的测试用例的逻辑覆盖程度。如果没有达到要求的覆盖标准,则应当再补充更多的测试用例。 5、如果程序的功能说明中心含有输入条件的组合情况,则应该在一开始就选用因果法。 白盒测试 何谓白盒测试? 白盒测试与前面我们所讲的黑盒测试恰好相对,黑盒测试的重点是不关注程序的内部实现,仅从程序的执行表现,根据需求规格说明书来判断是否符合。白盒则是从程序控制结构设计导出测试用例,主要用于程序的验证。 一般来说,白盒测试需要深厚的开发功底,以及对程序内部结构相当熟悉。 白盒测试的基本方法 白盒测试主要有程序结构分析,逻辑覆盖,基本路径测试等方法,但我们较为常用的方法是逻辑覆盖方法,逻辑覆盖方法主要有以下几点: 1、语句覆盖; 2、判定覆盖; 3、条件覆盖; 4、判定 /条件覆盖; 5、组合覆盖; 6、路径覆盖 1、语句覆盖 语句覆盖方法选择足够多的测试用例,使程序中的每个可执行语句至少执行一次。他关注的是一个结果的实现,只要能够有测试用例使得本次测试走通,那么就可以说达到了一个语句覆盖。他可以保证程序中每个语句都得到执行,但是他并不能全面地检验每一个语句,他并非一种充分的检验方法。 2、判定覆盖 判定覆盖是比语句覆盖较强一些的方法,通过执行足够的测试用例,使得程序中的每个判定至少都获得一次“真”或“假”的值,也就是使程序中的每个取“真”分支和取“假”分支至少均经历一次,也称为“分支覆盖”。 3、条件覆盖 与前面两种覆盖方法相比,条件覆盖是一种更强的覆盖标准,他的目的是设计若干测试用例,在执行被测程序以后,要使每个判定中每个条件的可能值至少满足一次。 满足条件覆盖不一定满足判定覆盖。 4、判定 /条件覆盖 判定 /条件覆盖要求设计足够的测试用例,使得判定中每个条件的所有情况(真 /假)至少出现一次,并且每个判定本身的判定结果(真 /假)也至少出现一次。 5、组合覆盖 组合覆盖的目的是通过执行足够的测试用例,使得每个判定中条件的各种可能都至少出现,因此,满足条件组合覆盖的测试用例一定满足判定覆盖,条件覆盖和判定 /条件覆盖。 6、路径覆盖 路径覆盖的目的是设计足够多的测试用例,要求
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论