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

简介:

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

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

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

  一、等价类划分法

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  二、边界值分析法

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

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

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

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

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

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

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

  三、错误推测法

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

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

  四、因果图法

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

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

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








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



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

目录
相关文章
|
17天前
|
人工智能 搜索推荐 数据管理
探索软件测试中的自动化测试框架选择与优化策略
本文深入探讨了在现代软件开发流程中,如何根据项目特性、团队技能和长期维护需求,精准选择合适的自动化测试框架。
69 8
|
1月前
|
测试技术
软件测试的艺术:探索式测试的实践与思考
在软件开发的广阔海洋中,测试是确保航船稳健行驶的关键。本文将带你领略探索式测试的魅力,一种结合创造性思维和严格方法论的测试方式。我们将一起揭开探索式测试的神秘面纱,了解其核心概念、实施步骤和带来的效益。通过实际代码示例,你将学会如何将探索式测试融入日常的软件质量保证流程中,提升测试效率与质量。
|
25天前
|
测试技术 持续交付
探索软件测试中的自动化测试策略
随着软件开发周期的加速和市场需求的不断增长,传统的手动软件测试方法已难以满足现代软件开发的高效性和准确性要求。本文旨在探讨自动化测试在软件测试中的重要性、实施策略及其对提高软件质量的影响。通过分析自动化测试的优势与挑战,以及提供实用的自动化测试工具和框架选择指南,旨在帮助读者理解并应用自动化测试以提升软件开发效率和产品质量。
|
24天前
|
机器学习/深度学习 人工智能 监控
软件测试中的自动化测试策略与最佳实践##
在当今快速发展的软件行业中,自动化测试已成为确保软件质量和加速产品上市的关键工具。本文将探讨自动化测试的重要性,分析不同类型的自动化测试工具和框架,并深入讨论实施自动化测试的最佳实践。通过案例研究和数据分析,我们将揭示如何有效整合自动化测试到软件开发生命周期中,以及它如何帮助团队提高测试效率和覆盖率。 ##
43 1
|
1月前
|
机器学习/深度学习 前端开发 测试技术
探索软件测试中的自动化测试框架选择与优化策略####
本文深入探讨了在当前软件开发生命周期中,自动化测试框架的选择对于提升测试效率、保障产品质量的重要性。通过分析市场上主流的自动化测试工具,如Selenium、Appium、Jest等,结合具体项目需求,提出了一套系统化的选型与优化策略。文章首先概述了自动化测试的基本原理及其在现代软件开发中的角色变迁,随后详细对比了各主流框架的功能特点、适用场景及优缺点,最后基于实际案例,阐述了如何根据项目特性量身定制自动化测试解决方案,并给出了持续集成/持续部署(CI/CD)环境下的最佳实践建议。 --- ####
|
1月前
|
测试技术 UED 开发者
软件测试的艺术与科学:探索有效的测试策略
在软件开发的宇宙中,测试是一颗璀璨的星辰,它不仅保障着产品的质量,也指引着项目的方向。本文将带你穿梭于测试的银河系,从基础的单元测试到复杂的集成测试,再到全面的系统测试,我们将一探究竟。你会发现,每一个测试阶段都是一次对代码深度和广度的挑战,也是一次对开发者耐心和智慧的考验。准备好了吗?让我们开始这段探索之旅,看看如何通过精心设计的测试案例来确保我们的软件能够在现实世界中稳健运行。
|
22天前
|
Java 测试技术 API
探索软件测试中的自动化测试框架
本文深入探讨了自动化测试在软件开发中的重要性,并详细介绍了几种流行的自动化测试框架。通过比较它们的优缺点和适用场景,旨在为读者提供选择合适自动化测试工具的参考依据。
|
23天前
|
数据管理 测试技术 持续交付
软件测试中的自动化测试策略与最佳实践
在当今快速迭代的软件开发环境中,自动化测试已成为确保软件质量和加速产品上市的关键手段。本文旨在探讨软件测试中的自动化测试策略,包括选择合适的自动化测试工具、构建有效的自动化测试框架以及实施持续集成和持续部署(CI/CD)。通过分析自动化测试的最佳实践,本文为软件开发团队提供了一系列实用的指南,以优化测试流程、提高测试效率并减少人为错误。
58 4
|
23天前
|
监控 测试技术 定位技术
探索软件测试中的自动化测试框架选择与实施###
本文不概述传统意义上的摘要内容,而是直接以一段对话形式引入,旨在激发读者兴趣。想象一下,你是一名勇敢的探险家,面前摆满了各式各样的自动化测试工具地图,每张地图都指向未知的宝藏——高效、精准的软件测试领域。我们将一起踏上这段旅程,探讨如何根据项目特性选择合适的自动化测试框架,并分享实施过程中的关键步骤与避坑指南。 ###
33 4
|
23天前
|
测试技术 持续交付 数据安全/隐私保护
软件测试的艺术与科学:探索自动化测试框架
在软件开发的世界中,测试是确保产品质量的关键环节。本文将深入探讨自动化测试框架的重要性和实现方法,旨在为读者揭示如何通过自动化测试提升软件测试效率和准确性。我们将从测试的基本概念出发,逐步引导读者了解自动化测试框架的设计和实施过程,以及如何选择合适的工具来支持测试活动。文章不仅提供理论知识,还将分享实用的代码示例,帮助读者将理论应用于实践。无论你是测试新手还是经验丰富的开发者,这篇文章都将为你打开一扇通往更高效、更可靠软件测试的大门。
24 1

热门文章

最新文章