黑盒设计测试用例方法

日常的 测试 工作中都在有形无形的应用各种测试方法进行测试,只是没有形成完整的体系概念。这几天将 测试用例设计方法进行汇总,将测试思想运用于实际工作中,从而更好的指导测试工作。
  首先汇总日常最常用的三种方法:等价类划分、边界值分析法、错误推断法。
   1.等价类划分
  在 软件测试中,穷举法虽然是最安全最保险的一种方法但成本代价高,一般是不可取的。我们可以通过等价类划分方法花费最小的代价来完成最高效的测试。
  等价类划分是把程序输入域划分成若干子集,然后从子集中选取少数具有代表性的数据进行测试。在子集集合中,各个输入数据对于揭露程序中的错误是等价的。等价类分为有效等价类和无效等价类。
   1.1有效等价类
  对于程序规格来说合理的、有意义的输入数据的集合,检验程序是否实现了规格说明中的功能和性能。
   1.2无效等价类
  不合理的、无意义的输入数据集合,验证程序处理意外数据的能力。
   1.3划分方法
  划分等价类时,可分为按区间划分、按数值划分、按数值集合划分、按限制条件和规则划分、按处理方式划分。除了应掌握必须使同类数据的处理过程及处理结果完全一致的大原则,可参考以下划分方法:
  1) 输入条件规定了取值范围或值的个数的情况下,可以确定一个有效等价类和两个无效等价类,如合格成绩取值范围为[60,100],则范围内取值为有效等价类,范围外<60和>100为无效等价类
  2) 输入条件规定了输入值的集合或“必须如何”的情况下,可以确定一个有效等价类和一个无效等价类,如:规定 数据库类型必须选择oracle,则选择oracle时为有效等价类,否则为无效等价类
  3) 输入条件是一个布尔量的情况下,可以确定一个有效等价类和一个无效等价类
  4) 输入条件规定必须遵守某种规则的情况下,可以确定一个有效等价类和若干个无效等价类(从不同角度违法规则),如:规定输入必须为非0正整数,则无效等价类可以分为空、0、负整数、小数、字符等
  5) 在规定了输入数据的一组值(假定N个),并且程序要对每个输入值分别处理的情况下,可以确立N个有效等价类和一个无效等价类。如下列框选择“科目”,每个科目所显示的信息不同。
  6) 在确知已划分的等价类中各元素在程序处理镇南关的方式不同的情况下,则应再将该等价类进一步的划分为更小的等价类
   1.4等价类表
  在确立了等价类后,可以建立等价类表,列出所有划分出的等价类
  1.5设计测试用例
  然后从划分出的等价类中按以下原则设计测试用例:
  1)为每个等价类规定一个唯一编号
  2)设计一个新的测试用例,使其尽可能多得覆盖尚未被覆盖的有效等价类,重复这一步,直到所有的有效等价类都被覆盖为止
  3)设计一个新的测试用例,使其仅覆盖一个尚未被覆盖的无效等价类,重复这一步,直到所有无效等价类都被覆盖为止
   2.边界值分析法
  以往的测试经验表明,由于需求界定不准确、设计不严密、程序书写手误等等原因,对于这些数据范围边界的判断是软件极容易出错的地方。大量的错误往往发生在输入或输出范围的边界上,因此针对各种边界情况设计测试用例,可以检查出更多的错误。
   2.1边界值适用场景
  边界值法多被应用于以上几个场景中:
  输入(输出)条件规定了取值范围
  输入(输出)条件规定了值的个数
  程序规格说明书中提到的输入或输出是一个有序的集合
  程序中使用了一个内部数据结构
  边界值取值应当选取正好等于、刚刚大于最大边界值和刚刚小于最小边界值最为测试数据。
   2.2边界值选择测试用例原则
  1) 如果输入条件规定了值的范围,则应取刚达到这个范围的边界值、以及刚超越这个范围边界的值作为测试输入数据
  2) 如果输入条件规定了值的个数,则选取最大个数、最小个数、比最大个数多一、比最小个数少一的数作为测试数据
  3) 根据规格说明的每个输出条件,使用规则1)
  4) 根据规格说明的每个输出条件,使用规则2)
  5) 若输入域是有序集合,则选取集合的第一个元素和最后一个元素作为测试用例
  6) 如果程序使用了一个内部数据结构,则应当选择内部数据结构上得边界值作为测试用例
  7) 分析规格说明,找出其他可能的边界条件
   3.错误推断法
  错误推断法一般基于以往的测试经验和直觉,参照以往的软件系统出现的错误,推测程序中可能存在的各种错误,列出程序中所有可能有的错误和容易发生错误的情况,有针对性的设计测试用例。
   例如:
  单元测试用例中列出许多在模块中常见的错误、以前产品测试中曾经发现的错误等
  输入数据为0或字符为空
  各种情况在产品说明中常常被忽视,也可能被程序员遗忘,但在实际使用中却经常发生。测试人员要站在用户的角度,考虑他们要输入的信息,而不管这些信息看起来是合法的输入还是非法的输入。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
第一章 (判断) 1 程序测试是为了验证程序的功能而执行程序的过程× 2 软件测试是从编码开始,到开发结束× 3 软件缺陷的最大来源是产品说明书 √ 4 软件测试是软件质量保证的重要手段√ 5 软件测试是软件生命周期中的一个阶段性工作× 6 烟雾测试(冒烟测试) 目的是确认软件基本功能正常,可以进行后续的正式测试工作√ 7 测试脚本是使用程序设计语言编写的可执行的程序× 8 软件测试在软件开发过程中是可选的,在项目时间比较紧时,可以省略测试的过程× 软件测试的误区 误区一:如果发布去的软件有质量问题,都是软件测试人员的错 误区二:软件测试技术要求不高,至少比编程容易多了 误区三:有时间就多测试一些,来不及就少测试一些 误区四:软件测试测试人员的事,与开发人员无关 误区五:根据软件开发瀑布模型,软件测试是开发后期的一个阶段 软件测试的原则-1 1 所有测试的标准都是建立在用户需求之上。 2 软件测试必须基于“质量第一”的思想去开展各项工作,当时间和质量冲突时,时间要服从质量。 3 事先定义好产品的质量标准,只有有了质量标准,才能根据测试的结果,对产品的质量进行分析和评估。 4 软件项目一启动,软件测试也就是开始,而不是等程序写完,才开始进行测试。 5 穷举测试是不可能的。甚至一个大小适度的程序,其路径排列的数量也非常大,因此,在测试中不可能运行路径的每一组合 软件测试的原则-2 1 第三方进行测试会更客观,更有效。 2 软件测试计划是做好软件测试工作的前提。 3 测试用例设计来的,不是写来的,所以要根据测试的目的,采用相应的方法设计测试用例,从而提高测试的效率,更多地发现错误,提高程序的可靠性。 4 对发现错误较多的程序段,应进行更深入的测试。一般来说,一段程序中已发现的错误数越多,其中存在的错误概率也就越大。 5 重视文档,妥善保存一切测试过程文档(测试计划、测试用例测试报告等) 软件测试的原则-3 1 应当把“尽早和不断地测试”作为测试人员的座右铭 2 回归测试的关联性一定要引起充分的注意,修改一个错误而引起更多错误现的现象并不少见 3 测试应从“小规模”开始,逐步转向“大规模”。 4 不可将测试用例置之度外,排除随意性。 5 必须彻底检查每一个测试结果。 6 一定要注意测试中的错误集中发生现象,这和程序员的编程水平和习惯有很大的关系 7 对测试错误结果一定要有一个确认的过程 第二章 (判断) 1 需求评审和设计评审是静态测试方法√ 2 最正式的评审方法是会议审查√ 3 需求评审的参与者当中,必须要有用户或用户代表参与 √ 4 每次的需求会议评审都需要测试人员、业务人员、业务主管等相关人员参与× 5 需求评审需要确定评审的标准√ 6 需求评审中最重要的是“从用户的角度”进行评审√ 7 系统架构评审重点在系统的耦合度和内聚力上× 第三章 (填空) 1 测试用例的概念:是可以被独立执行的一个过程,一个最小的测试体 2 测试用例的三状态:通过,未通过,未进行测试 3 测试用例的分类:正面,负面 4 由一系列的测试用例并与之关联的测试环境组合而构成的集合称为:测试套件 测试自动化 1 误区:自动化测试可以取代手工测试 2 Jmeter使用的自动比较技术的验证模式是Assert: 断言 3 掌握Jmeter的简单使用方法和概念,如下图,如做如下测试:模拟20个用户并发访问1次www.suse.edu.cn, Jmeter的使用 要测试网站负载,应在“线程组”下添加…. TestComplete的使用 1 使用TC测试网站www.baidu.com的搜索功能(搜索“四川理工学院”),搜索结果的网页中应该有“四川理工学院…”的链接文本 2 脚本的类型: 线性脚本、结构化脚本、关键字脚本、数据驱动脚本第一章 (判断) 1 程序测试是为了验证程序的功能而执行程序的过程× 2 软件测试是从编码开始,到开发结束× 3 软件缺陷的最大来源是产品说明书 √ 4 软件测试是软件质量保证的重要手段√ 5 软件测试是软件生命周期中的一个阶段性工作× 6 烟雾测试(冒烟测试) 目的是确认软件基本功能正常,可以进行后续的正式测试工作√ 7 测试脚本是使用程序设计语言编写的可执行的程序× 8 软件测试在软件开发过程中是可选的,在项目时间比较紧时,可以省略测试的过程× 软件测试的误区 误区一:如果发布去的软件有质量问题,都是软件测试人员的错 误区二:软件测试技术要求不高,至少比编程容易多了 误区三:有时间就多测试一些,来不及就少测试一些 误区四:软件测试测试人员的事,与开发人员无关 误区五:根据软件开发瀑布模型,软件测试是开发后期的一个阶段 软件测试的原则-1 1 所有测试的标准都是建立在用户需求之上。 2 软件测试必须基于“质量第一”的思想去开展各项工作,当时间和质量冲突时,时间要服从质量。 3 事先定义好产品的质量标准,只有有了质量标准,才能根据测试的结果,对产品的质量进行分析和评估。 4 软件项目一启动,软件测试也就是开始,而不是等程序写完,才开始进行测试。 5 穷举测试是不可能的。甚至一个大小适度的程序,其路径排列的数量也非常大,因此,在测试中不可能运行路径的每一组合 软件测试的原则-2 1 第三方进行测试会更客观,更有效。 2 软件测试计划是做好软件测试工作的前提。 3 测试用例设计来的,不是写来的,所以要根据测试的目的,采用相应的方法设计测试用例,从而提高测试的效率,更多地发现错误,提高程序的可靠性。 4 对发现错误较多的程序段,应进行更深入的测试。一般来说,一段程序中已发现的错误数越多,其中存在的错误概率也就越大。 5 重视文档,妥善保存一切测试过程文档(测试计划、测试用例测试报告等) 软件测试的原则-3 1 应当把“尽早和不断地测试”作为测试人员的座右铭 2 回归测试的关联性一定要引起充分的注意,修改一个错误而引起更多错误现的现象并不少见 3 测试应从“小规模”开始,逐步转向“大规模”。 4 不可将测试用例置之度外,排除随意性。 5 必须彻底检查每一个测试结果。 6 一定要注意测试中的错误集中发生现象,这和程序员的编程水平和习惯有很大的关系 7 对测试错误结果一定要有一个确认的过程 第二章 (判断) 1 需求评审和设计评审是静态测试方法√ 2 最正式的评审方法是会议审查√ 3 需求评审的参与者当中,必须要有用户或用户代表参与 √ 4 每次的需求会议评审都需要测试人员、业务人员、业务主管等相关人员参与× 5 需求评审需要确定评审的标准√ 6 需求评审中最重要的是“从用户的角度”进行评审√ 7 系统架构评审重点在系统的耦合度和内聚力上× 第三章 (填空) 1 测试用例的概念:是可以被独立执行的一个过程,一个最小的测试体 2 测试用例的三状态:通过,未通过,未进行测试 3 测试用例的分类:正面,负面 4 由一系列的测试用例并与之关联的测试环境组合而构成的集合称为:测试套件 测试自动化 1 误区:自动化测试可以取代手工测试 2 Jmeter使用的自动比较技术的验证模式是Assert: 断言 3 掌握Jmeter的简单使用方法和概念,如下图,如做如下测试:模拟20个用户并发访问1次www.suse.edu.cn, Jmeter的使用 要测试网站负载,应在“线程组”下添加…. TestComplete的使用 1 使用TC测试网站www.baidu.com的搜索功能(搜索“四川理工学院”),搜索结果的网页中应该有“四川理工学院…”的链接文本 2 脚本的类型: 线性脚本、结构化脚本、关键字脚本、数据驱动脚本
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值