黑盒设计测试用例方法

简介:
 日常的 测试 工作中都在有形无形的应用各种测试方法进行测试,只是没有形成完整的体系概念。这几天将  测试用例设计方法进行汇总,将测试思想运用于实际工作中,从而更好的指导测试工作。
  首先汇总日常最常用的三种方法:等价类划分、边界值分析法、错误推断法。
   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或字符为空
  各种情况在产品说明中常常被忽视,也可能被程序员遗忘,但在实际使用中却经常发生。测试人员要站在用户的角度,考虑他们要输入的信息,而不管这些信息看起来是合法的输入还是非法的输入。
最新内容请见作者的GitHub页:http://qaseven.github.io/

目录
打赏
0
0
0
0
159
分享
相关文章
浅谈网页端IM技术及相关测试方法实践(包括WebSocket性能测试)
最开始转转的客服系统体系如IM、工单以及机器人等都是使用第三方的产品。但第三方产品对于转转的业务,以及客服的效率等都产生了诸多限制,所以我们决定自研替换第三方系统。下面主要分享一下网页端IM技术及相关测试方法,我们先从了解IM系统和WebSocket开始。
70 4
「ximagine」业余爱好者的非专业显示器测试流程规范,同时也是本账号输出内容的数据来源!如何测试显示器?荒岛整理总结出多种测试方法和注意事项,以及粗浅的原理解析!
本期内容为「ximagine」频道《显示器测试流程》的规范及标准,我们主要使用Calman、DisplayCAL、i1Profiler等软件及CA410、Spyder X、i1Pro 2等设备,是我们目前制作内容数据的重要来源,我们深知所做的仍是比较表面的活儿,和工程师、科研人员相比有着不小的差距,测试并不复杂,但是相当繁琐,收集整理测试无不花费大量时间精力,内容不完善或者有错误的地方,希望大佬指出我们好改进!
59 16
「ximagine」业余爱好者的非专业显示器测试流程规范,同时也是本账号输出内容的数据来源!如何测试显示器?荒岛整理总结出多种测试方法和注意事项,以及粗浅的原理解析!
AxBench:斯坦福大学推出评估语言模型控制方法的基准测试框架
AxBench 是由斯坦福大学推出,用于评估语言模型可解释性方法的基准测试框架,支持概念检测和模型转向任务,帮助研究者系统地比较不同控制技术的有效性。
35 5
AxBench:斯坦福大学推出评估语言模型控制方法的基准测试框架
API测试方法
【10月更文挑战第18天】API测试方法
95 1
北大李戈团队提出大模型单测生成新方法,显著提升代码测试覆盖率
【10月更文挑战第1天】北京大学李戈教授团队提出了一种名为“统一生成测试”的创新方法,有效提升了大模型如GPT-2和GPT-3在单一测试中的代码生成覆盖率,分别从56%提升至72%和从61%提升至78%。这种方法结合了模糊测试、变异测试和生成对抗网络等多种技术,克服了传统测试方法的局限性,在大模型测试领域实现了重要突破,有助于提高系统的可靠性和安全性。然而,该方法的实现复杂度较高且实际应用效果仍需进一步验证。论文可从此链接下载:【https://drive.weixin.qq.com/s?k=ACAAewd0AA48Z2kXrJ】
110 1
软件测试中的“灰盒”方法:一种平衡透明度与效率的策略
在软件开发的复杂世界中,确保产品质量和用户体验至关重要。本文将探讨一种被称为“灰盒测试”的方法,它结合了白盒和黑盒测试的优点,旨在提高测试效率同时保持一定程度的透明度。我们将通过具体案例分析,展示灰盒测试如何在实际工作中发挥作用,并讨论其对现代软件开发流程的影响。
在数据驱动时代,A/B 测试成为评估机器学习项目不同方案效果的重要方法
在数据驱动时代,A/B 测试成为评估机器学习项目不同方案效果的重要方法。本文介绍 A/B 测试的基本概念、步骤及其在模型评估、算法改进、特征选择和用户体验优化中的应用,同时提供 Python 实现示例,强调其在确保项目性能和用户体验方面的关键作用。
72 6
TypeScript 与 Jest 测试框架的结合使用,从 TypeScript 的测试需求出发,介绍了 Jest 的特点及其与 TypeScript 结合的优势,详细讲解了基本测试步骤、常见测试场景及异步操作测试方法
本文深入探讨了 TypeScript 与 Jest 测试框架的结合使用,从 TypeScript 的测试需求出发,介绍了 Jest 的特点及其与 TypeScript 结合的优势,详细讲解了基本测试步骤、常见测试场景及异步操作测试方法,并通过实际案例展示了其在项目中的应用效果,旨在提升代码质量和开发效率。
76 6
Java一分钟之-PowerMock:静态方法与私有方法测试
通过本文的详细介绍,您可以使用PowerMock轻松地测试Java代码中的静态方法和私有方法。PowerMock通过扩展Mockito,提供了强大的功能,帮助开发者在复杂的测试场景中保持高效和准确的单元测试。希望本文对您的Java单元测试有所帮助。
596 2
软件测试中的探索性测试:一种高效且灵活的测试方法
本文将深入探讨探索性测试的核心概念、优势及其在实际项目中的应用。我们将从探索性测试的基本定义入手,逐步解析其在不同场景下的具体实施方法和最佳实践。通过详细的案例分析和方法对比,帮助读者全面了解这种既高效又灵活的软件测试技术。

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等