软件测试是为了发现程序中的错误而执行程序的过程,常用黑盒功能测试法和白盒结构测试法进行测试,那黑盒功能测试法和白盒结构测试法到底是什么样的测试方法?它们有哪些优劣势呢?

所谓黑盒功能测试法,就是把要测试的软件看成一个黑盒子,不管其内部结构如何以及用什么算法实现需求提供的功能,而是按照需求的功能化要求,设计相应的测试用例,包括测试的输入数据与条件设置和所预期的软件运行输出结果,通过软件运行后所给出的输出(包括字符形式的输出与图象输出)与所预期的结果进行人工或者自动化比较,来验证被测试软件是否能给出正确的结果,从而判断该软件是否满足功能需求。

优点:

(1) 能最直观、最直接地反映出所设计的软件是否满足需求;

(2) 即使没有任何测试工具支援,也能靠人工测试的方法完成;

缺点:

(1) 难以找出某些特殊类型的错误。例如: 当对应于某组输入该被测软件并不提供任何输出信息时,可能只是改变了某种工作状态,如果其中的源代码处理部分有错误,就比较难找出来;

(2) 无法确定哪些测试用例有效或者无效 (所谓无效,并不是说单独使用某个测试用例时不能收到任何测试效果,而是在于它和前面已经使用过的测试用例一起使用时,毫无贡献,只是重复了前面的测试用例已经完成的测试);

(3) 具有无可避免的盲目性。当软件被修改后,由于不知道哪些测试用例能测试到被直接修改过的模块或者受修改过的模块影响的模块,于是只好将所有测试用例再从头运行一遍,而且是动态运行,非常费时费力。

二、白盒结构测试法

与黑盒子功能测试方法相反,白盒结构测试法不管所被测试的软件是否满足需求,是否实现了所设计的功能,而只注重该软件内部的结构,以便设计足够多的测试用例,使得百分百或者尽可能多的程序组成要素能被测试到最少一次,从而尽可能地将其中的软件错误暴露出来。

优点:

(1) 能够找出许多用功能测试方法找不出来的软件错误;

(B) 可以在整个软件系统还未完成之前就分别对各个单元进行测试;

(C) 可以通过测试用例的有效性分析而实现测试用例的最小化,以便大大地缩短软件修改后的回复测试时间和费用;

(D) 可以同时进行内存泄漏分析;

(E) 可以同时进行分支执行频度分析;

(F) 可以同时进行软件复杂度分析;

(G) 可以同时进行数据和变量分析;

(H) 可以同时进行性能分析;

(I) 可以同时进行动态运行错误定位与执行路径追溯等。

缺点:

(1)必须通过专门的测试工具来进行,需要在用户的软件的拷贝上进行插桩(插入纪录点)记录各分支/条件是否被执行过或者执行过多少次的信息;

(2)会使被测试的软件的运行速度减慢;

(3)需要增加被测试软件运行时的资源开销等。

以上就是黑盒测试和白盒测试的一些优缺点,当然软件测试中常用的测试方式远不止这两种,还有自动化测试、性能测试等等,其他的测试我们还会在后面的文章中继续跟大家分享。

推荐阅读:

软件测试用例的优点和缺点,浅析黑盒测试和白盒测试各自的优缺点相关推荐

  1. 浅析黑盒测试与白盒测试

    这里写自定义目录标题 黑盒测试 黑盒测试常见的测试: 黑盒测试常用的方法: 等价类划分: 边界值分析: 因果图分析法.错误推断法: 白盒测试 白盒测试常见的方法: 黑盒测试与白盒测试的优缺点 二者的优 ...

  2. 黑盒测试与白盒测试各自的优缺点

    黑盒测试的优点        1  比较简单,不需要了解程序内部的代码及实现:        2 与软件的内部实现无关:        3 从用户角度出发,能很容易的知道用户会用到哪些功能,会遇到哪些 ...

  3. 软件测试面试题:黑盒测试和白盒测试是软件测试的两种基本方法,请分别说明各自的优点和缺点?

    黑盒测试和白盒测试是软件测试的两种基本方法,请分别说明各自的优点和缺点? 黑盒测试的优点有: 比较简单,不需要了解程序内部的代码及实现:与软件的内部实现无关:从用户角度出发,能很容易的知道用户会用到哪 ...

  4. 软件测试方法之黑盒测试与白盒测试

    软件测试方法之黑盒测试与白盒测试 摘要:黑盒测试与白盒测试都是软件测试的重要方法.白盒测试是通过程序的源代码进行测试而不使用用户界面,它主要用于检测软件编码过程中的错误:而黑盒测试是是通过使用整个软件 ...

  5. 软件测试-黑盒测试,白盒测试,灰盒测试

    黑盒测试 概述 实际上就是功能测试,不关心程序的内部结构,只关心输入输出.基于产品需求和用户观点出发的测试,查看界面规划是否符合界面需求,查看是否有功能遗漏,是否有人机交互错误,数据库结构错误,检测行 ...

  6. 黑盒测试、白盒测试、灰盒测试的区别

    1. 黑盒测试 黑盒测试也称功能测试.数据驱动测试或基于规格说明书的测试,它是通过测试来检测每个功能是否都能正常使用.在测试中,把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况 ...

  7. 什么是黑盒测试和白盒测试、灰盒测试?

    软件测试按照测试技术划分可以有:黑盒测试,白盒测试,灰盒测试 黑盒测试又叫功能测试 1.软件黑色盒子,里边的实现,看不见代码 2.输入,输出结果---功能测试的方法 这是因为在黑盒测试中主要关注被测软 ...

  8. 黑盒测试,白盒测试与灰盒测试的比较和区别

    定义 黑盒测试 黑盒测试是一种软件测试技术,它可以检查软件的功能,而不会窥视其内部结构或编码.黑盒测试的主要来源是客户声明的要求规范. 在此方法中,测试人员选择一个函数并提供输入值以检查它的功能,并检 ...

  9. 软件测试:黑盒测试、白盒测试和灰盒测试

    1. 黑盒测试和白盒测试的直观图 从图中可以直接看出来,黑盒测试就当整个程序是个黑盒子,我们看不到它里面做了些什么事情,只能通过输入输出看是否能得到我们所需的来测试.而白盒测试可以当盒子是透明的,里面 ...

最新文章

  1. 我的北京游戏开发总结【三】
  2. 压缩过的js代码怎么还原_Fundebug 前端 JS插件更新至 1.7.0,拆分录屏代码,还原部分 Script error....
  3. 安卓JNI开发-01
  4. Mysql 在linux下的安装和启动
  5. Linux哈希表数组,开地址哈希表(Hash Table)的接口定义与实现分析
  6. python自动化办公都能做什么-用 Python 自动化办公,我与大神之间的差距一下就...
  7. android 仿ofo页面,GitHub - AndroidProject1212/react-native-ofo: React Native 仿 ofo 共享单车 App...
  8. 01.Unity设置成为中文
  9. 8.随机生成一个矩阵并对其转置
  10. python爬虫之十_scrapy框架进阶
  11. 追风筝的人 第十二章
  12. 华为设备DNS配置命令
  13. Android_TextView
  14. 关于springmvc拦截器 controll aop执行顺序
  15. NB-IoT BC95/BC35 模组常用指令(NB-IoT专栏—基础篇7)
  16. 晶体谐振器 晶体振荡器 正确区分
  17. VUE3对比VUE2的优势及新特性原理
  18. 易飞9.0.12官方正版安装程序下载地址
  19. oracle join 优化询,oracle中优化left join的工作心得
  20. 初学JSP,运行一个JSP小程序

热门文章

  1. 如何使用Docker在GitLab上设置CI
  2. react开发_我如何在#100DaysOfCode挑战期间找到React开发人员的工作
  3. 前端中心化管理API使用说明
  4. MyEclipse开发JAX-RS架构WebServices收发JSON数据格式
  5. g++链接boost库
  6. 数据结构:单链表和双向链表
  7. win7 安装 Visual Studio 2015 出现 “Failed to install MSI package 等错误”
  8. 花了一周整理的,这是价值10W的32个Python项目!
  9. @SpringBootApplication
  10. Win7下VS2008进入维护模式不能显示升级输入框,无法升级到正式版~~~!!!