软件测试基础知识 – 说一说黑盒与白盒的测试方法[通俗易懂]

软件测试基础知识 – 说一说黑盒与白盒的测试方法[通俗易懂]分享一个大牛的人工智能教程。零基础!通俗易懂!风趣幽默!希望你也加入到人工智能的队伍中来!请点击http://www.captainbed.netDefinitionProvideasurrogateorplaceholderforanotherobjecttocontrolaccesstoit.ParticipantsTheclassesan…

大家好,又见面了,我是你们的朋友全栈君。

分享一个大牛的人工智能教程。零基础!通俗易懂!风趣幽默!希望你也加入到人工智能的队伍中来!请点击http://www.captainbed.net

黑盒测试

黑盒测试也称功能测试或数据驱动测试,它是在已知产品所应具有的功能,通过测试来检测每个功能是否都能正常使用。在测试时,把程序看作一个不能打开的黑盆子,在完全不考虑程序内部结构和内部特性的情况下,测试者在程序接口进行测试。它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数锯而产生正确的输出信息,并且保持外部信息(如数据库或文件)的完整性。

“黑盒”法着眼于程序外部结构、不考虑内部逻辑结构、针对软件界面和软件功能进行测试。“黑盒”法是穷举输入测试,只有把所有可能的输入都作为测试情况使用,才能以这种方法查出程序中所有的错误。实际上测试情况有无穷多个,因此不仅要测试所有合法的输入,而且还要对那些不合法但是可能的输入进行测试。

常用的黑盒测试方法有:等价类划分法;边界值分析法;因果图法;场景法;正交实验设计法;判定表驱动分析法;错误推测法;功能图分析法。

白盒测试

白盒测试也称为结构测试或逻辑驱动测试,是针对被测单元内部是如何进行工作的测试。它根据程序的控制结构设计测试用例,主要用于软件或程序验证。白盒测试法检查程序内部逻辑结构,对所有的逻辑路径进行测试,是一种穷举路径的测试方法,但即使每条路径都测试过了,但仍然有可能存在错误。因为:穷举路径测试无法检查出程序本身是否违反了设计规范,即程序是否是一个错误的程序;穷举路径测试不可能检查出程序因为遗漏路径而出错;穷举路径测试发现不了一些与数据相关的错误。

白盒测试需要遵循的原则有:1. 保证一个模块中的所有独立路径至少被测试一次;2. 所有逻辑值均需要测试真(true)和假(false)两种情况;3. 检查程序的内部数据结构,保证其结构的有效性;4. 在上下边界及可操作范围内运行所有循环。

常用白盒测试方法:

静态测试:不用运行程序的测试,包括代码检查、静态结构分析、代码质量度量、文档测试等等。它可以由人工进行,充分发挥人的逻辑思维优势,也可以借助软件工具(Fxcop)自动进行。

动态测试:需要执行代码,通过运行程序找到问题,包括功能确认与接口测试、覆盖率分析、性能分析、内存分析等。

白盒测试中的逻辑覆盖包括语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖和路径覆盖。六种覆盖标准发现错误的能力呈由弱到强的变化:

1.语句覆盖:每条语句至少执行一次。

2.判定覆盖:每个判定的每个分支至少执行一次。

3.条件覆盖:每个判定的每个条件应取到各种可能的值。

4.判定/条件覆盖:同时满足判定覆盖和条件覆盖。

5.条件组合覆盖:每个判定中各条件的每一种组合至少出现一次。

6.路径覆盖:使程序中每一条可能的路径至少执行一次。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/137520.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • BZOJ 3747 POI2015 Kinoman 段树

    BZOJ 3747 POI2015 Kinoman 段树

  • linux history命令常用方法

    linux history命令常用方法c清空内存中命令历史-d#删除指定的历史命令,比如history-d100,就是删除第100个命令历史history+nn代表行例如history500查看最近500行命令历史记录

  • springboot修改内置tomcat版本号_springboot整合消息队列

    springboot修改内置tomcat版本号_springboot整合消息队列1、解析SpringBoot父级依赖?123456<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>1.5.6.RELEASE</ver…

  • 遍历ArrayList时如何正确移除一个元素「建议收藏」

    遍历ArrayList时如何正确移除一个元素「建议收藏」一个ArrayList对象aList中存有若干个字符串元素,现欲遍历该ArrayList对象,删除其中所有值为”abc”的字符串元素,请用代码实现。方法一、for循环遍历很简单,直接上代码:importjava.util.*;publicclassTest1{ publicstaticvoidmain(Stringargs[]){ List<String…

  • matlab中直方图的定义_matlab绘制直方图

    matlab中直方图的定义_matlab绘制直方图MATLAB中直方图均衡化和规定化处理函数格式如下:(1)J=imhist(I,n)(2)J=imhist(I,map)(3)[counts,X]=imhist(I,?)(4)J=histeq(I,n)(5)J=histeq(I,map,n)(6)[J,counts]=histeq(I,?)说明:对于…

    2022年10月19日
  • Python 标识符与关键字[通俗易懂]

    Python 标识符与关键字[通俗易懂]Python标识符与关键字标识符是编程语言中允许作为名字的有效字符串集合。其中有一部分是关键字,构成语言的标识符。这种标识符是不能做它用的标识符的,否则会引起语法错误(SyntaxError异常)。标识符就是一个名字,作为变量、函数、类、模块以及其他对象的名称。1.Python标识符第一个字符必须是字母(A~Z和a~z)或下划线(_),剩下的字符可以是字母和数字或下划线,大小写敏感。标识符由字母、下划线和数字(0~9)组成,且不能以数字开头,Python中的标识符是区分大

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号