软件测试-----黑盒测试

简介:

白盒测试计划书着重测试软件的源代码,黑盒技术着重测试软件功能。因此,设计测试用例时,需要研究需求说明和总体设计说明中的相关程序功能或输入,输出之间的关系等信息,从而与测试后的结果进行分析比较。

  在实际测试中,常常把黑盒测试常常与白盒测试联合使用,它是与白盒测试互补的测试方法。它很可能发现白盒测试不易发现的其他类型的错误。

  用黑盒技术设计测试用例一般有等价类划分,边界值分析,错误推测和因果图4中方法,现在咱们分别来看看吧!

  一、等价类划分法

  咱们在前面曾经说过,完全的黑盒测试通常是不现实的。因此,只能选取少量最有代表性的输入数据作为测试数据,用较少的代价暴露出较多的程序错误。等价类划分法将不能穷举的测试过程进行合理分类,从而保证设计出来的测试用例具有完整性和代表性,从而减少必须设计的测试用例的数目。

  等价类划分法是把所有可能的输入数据或有效的和无效的划分成若干个等价类。测试每个等价类的代表值就等于对该类其他值的测试。也就是说,如果从某个等价类中任选一个测试数据未发现程序错误,该类中其他数据也不会发现程序的错误。相反地,如果一个测试用例测出一个错误,那么,这一等价类中的其余测试用例也能发现同样的错误。这样就把漫无边际的随机测试改变为有针对性的等价类测试,用少量有代表性的测试数据代替大量测试目的相同的例子,能有效提高测试效率,并取得良好的测试结果。

  在划分等价类时,我们可以将其划分为两类:

  1)有效等价类。是指输入完全满足程序输入的规范说明,合理的,有意义的输入数据所构成的集合,利用有效等价类可以检验程序是否满足规格说明书所规定的功能和性能。

  2)无效等价类。指完全不满足程序输入的规格说明,不合理,无意义的输入数据所构成的集合。使用无效等价类可以检验程序的容错性能。

  在划分等价类的时候,我们可以借鉴以下几个原则,可以让你事半功倍,同样咱们还需要丰富的经验。

  (1)如果某个输入条件规定了取值范围或者输入数据的个数,则可划分出一个有效等价类和两个无效等价类。

  (2)如果输入条件规定了输入数据的一组值,而且程序对不同输入值做不同处理,则每个允许的输入值是一个有效等价类,此外,还有一个无效等价类。

  (3)如果规定了输入数据必须遵守的规则,则可以划分出一个有效等价类和若干个无效等价类。

  (4)如果规定了输入数据位证书,则可划分为正整数/零/负整数三个有效等价类,其他为无效等价类。

  (5)如果在已划分出的等价类中个元素在程序中的处理方法不同,则应再将该等价类进一步划分为更小的等价类。

  等价类划分好了,那么如何测试用;例呢?你会了吗?不管你会不会,我们一起来看看吧!

  (1)为一个等价类规定一个唯一的编号

  (2)设计一个新的测试用例,使其尽可能多地覆盖尚未被覆盖的有效等价类,重复这一步,直到所有的有效等价类都被测试用例覆盖为止,即将有效等价类分割到最小。

  (3)设计一个新的测试用例,使它覆盖一个而且只能覆盖一个尚未被覆盖的无效等价类,重复这一步,直到所有无效等价类都被覆盖为止。

  二、边界值分析法

  大量实践表明,程序在处理边界情况时最容易发生错误。边界情况值输入等价类和输出等价类边界上的情况。因为在测试过程中,可能会忽略边界值的条件,大量的错误是发生在输入或输出范围的边界上。因此,设计是程序运行在边界情况的测试用例,查出程序错误的可能性更大一些。

  使用边界值分析方法设计测试用例时,一般与等价类划分方法结合起来,通常测试输入等价类和输出等价类的边界情况作为重点目标,应该选取刚好等于,小于或大于边界值的数据来进行测试,有较大可能发现错误。

  在实际的软件设计过程中,会涉及到大量的边界值条件和过程,用边界值分析设计测试用例时,可以参考以下原则。

  1)如果输入条件规定了值的范围,则选择刚好等于边界值的数据作为合理的测试用例,同时还要选择刚好超过边界的数据作为不合理测试用例。

  2)如果输入条件规定了输入值的个数,则按最大个数,最小个数,比最大个数多1,比最小个数少1等情况分别设计测试用例。

  3)度每个输出条件分别按照上述两条原则确定输出值的边界情况。

  4)如果程序的输入或输出范围是有序集合,则应选取集合的第一个元素和最后一个元素作为测试用例。

  三、错误推测法

  在软件 的测试用例设计中,人们根据经验,直觉和简单的判断来推测程序中 可能存在各种错误,从而有针对性地设计测试用例,此就是错误推测法。

  由于错误推测法是基于经验和只觉得,因而没有确定的设计测试用例的步骤,其基本思想是:列举出程序中可能出现的错误和容易发现的错误的症状。在咱们平常测试系统的是,这个方法用的比较多。

  四、因果图法

  等价类划分法和边界值分析法都只是孤立地考虑各个输入数据的测试功能,而没有考虑多个输入数据的组合引起的错误,因果图法能有效地检测输入条件的各种组合可能会引起的错误,即在测试中使用因果图,可提供对逻辑条件和相应动作的简洁表示。因果图的基本原理是通过画因果图,把因果图转换为判定表,然后为制定表的每一列至少涉及一个测试用例。

  在这咱们介绍了四种黑盒测试法的方法,它们各自都有偶自己的长处和短处。使用某一种测试法涉及出来的一组测试用例,可能发现某种类型的错误,但可能对另一类错误发现不了。

  因此,在实际测试中,经常是联合使用各种测试方法,通常是选用黑合法设计基本的测试用例,再用白盒法来补充一些必要的测试用例。








====================================分割线================================



最新内容请见作者的GitHub页:http://qaseven.github.io/

目录
相关文章
|
20天前
|
机器学习/深度学习 人工智能 监控
提升软件质量的关键路径:高效测试策略与实践在软件开发的宇宙中,每一行代码都如同星辰般璀璨,而将这些星辰编织成星系的过程,则依赖于严谨而高效的测试策略。本文将引领读者探索软件测试的奥秘,揭示如何通过精心设计的测试方案,不仅提升软件的性能与稳定性,还能加速产品上市的步伐,最终实现质量与效率的双重飞跃。
在软件工程的浩瀚星海中,测试不仅是发现缺陷的放大镜,更是保障软件质量的坚固防线。本文旨在探讨一种高效且创新的软件测试策略框架,它融合了传统方法的精髓与现代技术的突破,旨在为软件开发团队提供一套系统化、可执行性强的测试指引。我们将从测试规划的起点出发,沿着测试设计、执行、反馈再到持续优化的轨迹,逐步展开论述。每一步都强调实用性与前瞻性相结合,确保测试活动能够紧跟软件开发的步伐,及时适应变化,有效应对各种挑战。
|
20天前
|
测试技术 UED
软件测试的艺术:探索性测试的力量
【10月更文挑战第6天】在软件开发的世界中,测试是确保产品质量的关键步骤。传统的测试方法往往遵循严格的脚本和预定义的路径进行,但探索性测试(ET)则提供了一种更为灵活、创造性的替代方案。通过模拟真实用户的行为和思考过程,ET能够揭示那些传统测试可能遗漏的问题。本文将深入探讨探索性测试的核心原则、实施策略以及它如何提高软件测试的效率和有效性。
|
3天前
|
测试技术
探索软件测试中的“思维侧翼”——如何以创新思维引领测试策略###
本文旨在探讨软件测试领域中,如何通过培养与运用创新思维,提升测试策略的有效性与效率。不同于传统的技术解析或理论阐述,本文将以“思维侧翼”为喻,启发读者从不同维度审视软件测试,寻找突破常规的思路与方法。我们相信,在快速迭代的软件开发周期中,灵活多变且富有创造力的测试思维,是发现潜在缺陷、保障产品质量的关键。 ###
|
4天前
|
测试技术 定位技术 UED
软件测试的艺术:探索性测试的深度与广度
【10月更文挑战第22天】在软件开发的广阔舞台上,测试扮演着不可或缺的角色。本文将带领读者深入理解探索性测试(Exploratory Testing)的精髓,揭示其在现代软件质量保证中的价值。我们将通过实际案例、生动比喻和具体步骤,展现如何像艺术家一样进行软件测试,确保产品质量的同时,提升测试的效率和乐趣。文章不仅适合初学者建立测试基础,也能帮助资深测试人员深化对探索性测试的理解和应用。
|
2天前
|
监控 安全 jenkins
探索软件测试的奥秘:自动化测试框架的搭建与实践
【10月更文挑战第24天】在软件开发的海洋里,测试是确保航行安全的灯塔。本文将带领读者揭开软件测试的神秘面纱,深入探讨如何从零开始搭建一个自动化测试框架,并配以代码示例。我们将一起航行在自动化测试的浪潮之上,体验从理论到实践的转变,最终达到提高测试效率和质量的彼岸。
|
26天前
|
测试技术
软件质量保护与测试(第2版)学习总结第十章 黑盒测试
本文是《软件质量保护与测试》(第2版)第十章的学习总结,介绍了黑盒测试的基本概念和方法,包括等价类划分、边界值分析和因果图法,并通过具体例子展示了如何设计测试用例来验证软件的功能性需求。
56 1
软件质量保护与测试(第2版)学习总结第十章 黑盒测试
|
27天前
|
测试技术 网络安全
什么是软件测试? 软件测试都有什么岗位 ?软件测试和调试的区别? 软件测试和开发的区别? 一位优秀的测试人员应该具备哪些素质? 软件测试等相关概念入门篇
文章全面介绍了软件测试的基本概念、目的、岗位分类、与开发和调试的区别,并阐述了成为优秀测试人员应具备的素质和技能。
106 1
什么是软件测试? 软件测试都有什么岗位 ?软件测试和调试的区别? 软件测试和开发的区别? 一位优秀的测试人员应该具备哪些素质? 软件测试等相关概念入门篇
|
21天前
|
测试技术
软件测试中的探索性测试(ET)实践
【10月更文挑战第5天】本文将深入探讨一种与传统脚本化测试不同的测试方法——探索性测试(Exploratory Testing,简称ET)。我们将通过一个实际案例来展示ET的有效性,并分享如何将ET融入日常的软件测试流程中。文章旨在为测试人员提供一种灵活、高效的测试策略,帮助他们更好地发现软件中的缺陷。
|
19天前
|
监控 数据可视化 测试技术
软件测试中的自动化测试实践指南
【10月更文挑战第7天】 在软件开发的生命周期中,测试是确保产品质量的重要环节。随着技术的进步和应用的复杂性增加,自动化测试逐渐成为提升测试效率和覆盖范围的关键手段。本文将深入探讨自动化测试的基本概念、实施步骤及其在不同应用场景中的最佳实践。通过对自动化测试框架的选择、脚本开发、执行及维护的详细解析,帮助读者更好地理解和应用自动化测试技术,从而优化测试流程,提高软件质量。
30 2
|
26天前
|
设计模式 敏捷开发 Java
软件测试中的自动化测试实践指南
本文旨在探讨软件测试领域中的自动化测试。通过详细的案例分析和步骤讲解,帮助读者掌握自动化测试的实施方法与最佳实践。
37 10

热门文章

最新文章