黑盒测试和白盒测试

软件测试是软件开发过程当中的基本活动。黑盒测试和白盒测试是两种不一样类型的软件测试策略,它们具备一样强大的功能,而且结合使用时甚至更好。java

黑盒测试

在软件中,黑盒测试很方便,能够减小灾难性(软件)崩溃的风险。灾难性的软件崩溃多是什么?系统在更新客户数据库的过程当中崩溃了?在这种状况下,可能会丢失客户数据。程序员

黑盒测试分为三种类型:功能测试,非功能测试和回归测试。数据库

黑盒功能测试

经过功能性的黑盒测试,咱们能够在不知道软件如何执行的状况下检查该软件是否按预期进行。编程

软件是用模块或组件构成的。它是由许多不一样的组件组成的一系列组件,组成一个完整的系统。经过以这种方式,在小型组件中,咱们能够测试每一个组件以确保其正常工做,而不只仅是测试大型系统。安全

所以,对于每一个小组件,都有输入和预期输出。要进行黑盒测试,您须要建立一个有效和无效输入的列表,包括边界条件等等。网络

这是一个简单的功能性黑匣子测试示例。假设有一个软件模块,该模块输入一个数字。框架

您的简化测试输入为:函数

  • 正数
  • 负数
  • 小数点后的数字
  • 非数字值
  • 空输入

非功能黑盒测试

咱们还可使用黑盒测试来测试其余预期的系统行为。这些可能包括系统响应时间,预期的数据,大量网络流量等场景。工具

非功能测试将包括诸如设置模拟测试环境之类的内容,以查看系统在压力下的性能。有各类各样的工具能够帮助咱们实现这些测试目标并使所涉及的流程自动化。性能

回归黑盒测试

这是当咱们在一个地方进行更改时,对整个系统进行黑盒测试(包括功能测试和非功能测试)时,请确保该更改不会意外影响系统的其余部分。显然,此过程须要自动化!

白盒测试

白盒测试是当测试软件模块的内部结构时:代码自己。出于各类缘由,白盒测试是能够采用的良好测试策略。

出于安全缘由

有时,代码原本就是“不安全的”:是由于它引用并使用了来自外部源的不安全函数,偶然地致使数据泄漏或使用了错误的结构都会带来安全隐患。

解决性能问题

有无数种方法能够完成某一项业务的软件模块的开发实现。尽管能够正常工做,但这并不意味着它已经以最佳方式进行了配置。若是从性能角度来看代码结构能够更高效,那么白盒测试能够发现这一点。

检查链路

在确认交易以前或以后,应将交易记录在您的系统中吗?也许以前和以后都须要记录它?白盒测试容许您检查路径和数据流的内部工做方式,以查看它们是否最有意义和/或符合系统要求。

须要黑盒和白盒测试的结合

黑盒测试对于确保系统按预期运行相当重要。无需编码知识就能够执行这种测试,由于它不须要检查代码自己。在这种状况下,了解软件系统的工做原理和业务逻辑更为重要。白盒测试更加困难,须要由经验丰富的程序员使用高级工具进行。

两种类型的测试都有一个大的工具集能够帮助测试人员解决问题,请参考以前的文章。


  • 郑重声明:文章首发于公众号“FunTester”,禁止第三方(腾讯云除外)转载、发表。

技术类文章精选

非技术文章精选

相关文章
相关标签/搜索