白盒测试与黑盒测试

白盒测试技术

白盒测试技术也称结构性测试,是一种设计测试用例的方法,一般用于分析程序的内部结构,使用该方法测试程序时测试者可以看到被测试程序,并分析其内部结构。

按照被测试测试时是否需要执行测试程序可以分为静态和动态测试,白盒测试也可以据此划分。最常用的时白盒静态测试方法。包括代码审查,结构设计检查程序的可靠性。由于测试时围绕测试用例进行的白盒测试也是一种优秀的测试用例设计的方法。

在测试中穷举法是不可能的这是测试的原则之一,因此在有限的集合内设计特殊且最优的测试用例才能才能最有效的完成测试工作。白盒测试使用覆盖率来度量测试的完整性。测试覆盖率四程序被一组测试用例执行的百分比。

覆 盖 率 = 至 少 被 执 行 一 次 的 被 测 试 项 数 被 测 试 项 总 数 覆盖率=\frac{至少被执行一次的被测试项数}{被测试项总数} =

逻辑覆盖法
逻辑覆盖是以程序内部的逻辑结构为基础的测试⽅法,属“⽩盒”测试。 这⼀⽅法是⼀系列测试过程的总称,这组测试过程逐渐 进⾏越来越完整的通路测试,要求测试⼈员对程序的逻辑结构有清楚的了解。 从覆盖源程序的语句的详尽程度分析,⼤致可以 分为:语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖和路径覆盖。

在这里插入图片描述

满足条件组合覆盖准则一定满足判定覆盖,条件覆盖和判定条件覆盖。该命题使充分不必要条件。

逻辑覆盖法的实例

对于程序:

void TestExample (int x,int y,int z)
{int k=0,j=0;if(x>3)&&(z<10){k=x*y+1;j=2x+y;}if(x==4||y>5){j=x*y+10;}
}

对于上述程序使用白盒测试设计测试用例。

  • 语句覆盖的测试用例

根据语句覆盖的原理,程序由两个分支,在这两个分支中至少有一个被执行。例如第一个被执行,取x=4,y=5,z=5。

输入预期输出
x=4,y=5,z=5j=12k=19

满足两个分支又有一个执行即可

  • 判定覆盖的测试用例

根据该原理两个分支的至少获得一次真一次假。例如取第一个为真,第二个为假,x=4,y=5,z=5。

输入输出
x=5,z=1,y=1k=6,j=11 (分支一为真,分支二为假)
x=2,y=6,z=1k=0,j=22 (分支一为假,分支二为真)

满足每个分支都取到一次真假即可。

  • 条件覆盖的测试用例

根据条件覆盖的原理,每个条件的可能取值都执行一次。也就是:(分支一为真,分支二为假;分支一为假,分支二为真;分支一为真,分支二为真;分支一为假,分支二为假)。据此设计测试用例即可。

基路径测试法
路径测试法是从程序入口开始,执行所经历的各个语句的完整过程。做到所有路径都覆盖是不可能的,如果某个程序的独立路径都被执行那么就可以认为每个语句都检查过了。

基路径测试是在程序控制的基础上,有过分析控制环路复杂性到处基本可执行路径。包括四个步骤和一个工具方法:

  1. 根据过程设计将结果画出程序控制流图;
  2. 计算程序的环路复杂度;
  3. 导出基本路径集确定程序的独立路径;
  4. 设计相应的测试用例。

案例:

void TestExample (int x,int y,int z)
{int k=0,j=0;if(x>3)&&(z<10){k=x*y+1;j=2x+y;}if(x==4||y>5){j=x*y+10;}
}

控制流图是描述程序控制流的一种有向图表示了程序控制流的结构。

在这里插入图片描述
上述代码的控制流图为if结构:

在这里插入图片描述

计算环路复杂度的公式为:

V ( G ) = e − n + 2 V(G)=e-n+2 V(G)=en+2

e是图中边的数目,n表示节点总数。

确定独立路径:1-2-4,1-3-5。

设计测试用例:根据确定的独立路径设计测试用例,确保基本路径都能执行。

其他设计测试用例的方法:循环语句测试,数据流测试等。

白盒测试的流程

白盒测试的流程包括界面对象测试和业务对象测试。

在这里插入图片描述

向下延展

在这里插入图片描述

向上延展

黑河测试技术

黑盒测试:将被测软件看作黑盒,主要根据功能需求测试用例进行测试,注重软件功能需求,检查程序goon给你是否正常,黑盒测试完全从用户观点出发。

黑盒测试能够发现一下几类错误:

  1. 功能不对或者遗漏;
  2. 界面错误;
  3. 数据结构或者外部数据库访问错误;
  4. 性能错误。
  5. 初始化和终止错误。

黑盒测试方法
在这里插入图片描述

等价类是指输入域互补相交的子集,所有等价类的并集便是整个输入域。等价划分法就是根据程序规格说明书对输入范围划分,把所有可能输入的数据,即程序输入域划分为若干互不相交的子集(等价类),然后从等价类中选取少量的具有代表性的数据作为测试用例,进行测试。

等价类划分原则:

  1. 按区间划分;
  2. 按数值划分;
  3. 按数值集合划分;
  4. 按限制条件或规格划分。

案例:
输入a,b,c三个整数作为三角形的三边,通过程序判断类型是:等边三角形,等腰三角形,一般三角形和非三角形。
分析:由于是三个整数,范围都在1-100,1一下和100以上都是无效等价类,1-100是有效等价类。
那么在有效等价类的范围类根据三角形特性设计测试用例:

测试用例abcd
test1555等边三角形
test2223等腰三角形
test3345一般三角形
test4412非三角形

边界值分析法用于列出单元功能,输入,状态及合法边界和非法边界值对数据进行测试。对于一个变量的程序边界值分析会产生4n+1个测试用例。

边界值分析法是以边界情况的处理作为主要目标专门设计测试用例的方法。例如在上述三角形问题上满足两边之和大于第三边,两边只差小于第三边才能构成三角形。若>写为>=就无法构成了。

在边界值分析测试中利用输入变量的最小值,稍大于最小值,域内任意值,稍小于最大值,最大值的数据进行测试。于是就得到了边界值分析测试的测试用例

测试用例abcd
test1124非三角形
test2345一般三角形
test3558020非三角形
test410010020等腰三角形

健壮性边界值分析是边界值分析的一种扩展,除了考虑变量的最小值,稍大于最小值,域内任意值,稍小于最大值,最大值的数据外还要考虑一个略超过最大值和一个略小于最小值的数据。健壮性边界值分析将产生6n+1个测试用例。

在使用边界值分析法设计测试用例时还需要遵循以下原则:

  1. 条件对取值进行限制的,应以边界内部以及刚超出取值范围的值作为测试用例。
  2. 对取值个数限制了的应该以稍大于最大,最大,稍小于最大,中等,稍大于最小,最小,稍小于最小作为测试用例。
  3. 如果程序规格说明书指明输入输出域是一个有序集合,则应该注意选取有序集合的第一个和最后一个元素作为测试用例。

因果图法是一种适于描述对于多种条件的组合,相应产生多个动作的形式的方法,利用图解分析输入各种组合情况,从而设计测试用例的方法。因果图最终生成的是判定表,合适检查程序输入条件的各种组合情况。

因果图测试方法设计测试用例的步骤:

  1. 确定软件规格的原因和结果;
  2. 确定原因和结果之间的逻辑关系;
  3. 确定因果图中的各个约束;
  4. 把因果图转化为决策表;
  5. 根据决策表设计测试用例。

在这里插入图片描述
在这里插入图片描述

参考https://zhuanlan.zhihu.com/p/129342944

黑盒测试的流程:测试计划—>测试设计---->测试开发----->测试执行---->测试评估。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/7633.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[JSON]2017年最新县及县以上行政区划代码

前面有过两篇相关的博客&#xff1a; 中国行政区划代码数据库文件 - 最新县及县以上行政区划代码&#xff08;截止2012年10月31日&#xff09;[数据][xml格式] 2012年统计用区划代码和城乡划分代码 一个是SQL文件&#xff0c;一个是XML文件&#xff0c;并且城乡的涉及抓取数据…

chatGPT大大提高了编程效率

可以预见的是&#xff0c;未来对初级程序员的需求大大减少了。chatGPT的编程能力已经非常高&#xff0c;程序员一定要善于在工作中使用它&#xff0c;绝对是提高生产力的利器。 下面是我为了生成一些测试数据&#xff0c;让chatGPT帮我编写的程序&#xff0c;由于我对shell了解…

首个ChatGPT开发的应用上线;ChatMind思维导图工具;中文提示词大全;Copilot平替 | ShowMeAI日报

&#x1f440;日报&周刊合集 | &#x1f3a1;生产力工具与行业应用大全 | &#x1f9e1; 点赞关注评论拜托啦&#xff01; &#x1f916; 『一本与众不同的AI绘本』ChatGPT 编写故事 Midjourney 绘制插图 作者的女儿特别喜欢迪士尼动画《海洋奇缘》里的主人公莫阿娜&#…

简历丢给chatGPT,他问了我这些问题

chatGPT返回的问题 根据我的简历他问了我以下几个问题&#xff1a; 面试官&#xff1a;尊敬的面试者&#xff0c;您的简历显示您具备丰富的前端开发经验&#xff0c;我们非常高兴能邀请您来参加面试。现在让我们开始探讨一些与您工作经历和技能相关的问题&#xff0c;期待您的…

我把我的简历丢给chatGPT,他问了我这些问题

前言 chatGPT是openAI于2022年11月推出的人工智能聊天程序&#xff0c;chatGTP一经推出便火爆全网&#xff0c;通过一问一答且结合上下文的方式自动生成问题答案&#xff0c;作为前端开发工程师&#xff0c;我们可以使用chatGTP进行代码纠错&#xff0c;代码优化等一系列的代码…

一文带你学会如何写一份糟糕透顶的简历

我们每个人几乎都会面对找工作这件事&#xff0c;而找工作或者说求职首先就是要写一份简历。今天狗哥将以一个不同的视角带你写一份无与伦比&#xff0c;糟糕透顶的求职简历&#xff0c;说实话&#xff0c;其实几年前&#xff0c;我就是这么写的。 目录 1. 文件名 2. 基本信…

程序化广告(5):广告投放

本系列文章是对《程序化广告 - 个性化精准投放实用手册》一书的简单总结&#xff0c;整理了书中重要的知识点和概念&#xff0c;希望能有助于理解互联网广告业务。 主要分为6个章节&#xff08;点击前往&#xff09;&#xff1a; 概述参与者交易模式考核指标广告投放&#xff0…

神策广告投放(用户行为)分析经验总结

神策广告投放(用户行为)分析 为什么要进行用户行为分析(用户运营) ​ 注意&#xff1a;神策的数据结构是user event&#xff08;用户事件结构&#xff09;&#xff0c;该结构的核心点就是event&#xff08;用户行为事件&#xff09;&#xff0c;神策都是以用户触发某个行为进…

ChatGPT实火,这小东西牛在哪?

ChatGPT&#xff0c;真的火了啊&#xff01; 相信许多朋友都听说过 ChatGPT铺天盖地的赞美&#xff0c;但并不清楚它是个啥。 体制内让ChatGPT写材料&#xff0c;广告行业让ChatGPT写策划案&#xff0c;媒体让ChatGPT写新闻稿&#xff0c;程序员让ChatGPT写代码甚至还带修BUG服…

强大的ChatGpt为企业营销推广提供了全方位的加持

chatgpt&#xff0c;一个火出圈的“聊天机器人”。从写作文&#xff0c;到写代码&#xff0c;似乎没有什么是它干不了的。 ChatGpt在工业中的应用场景有哪些? 在工业领域&#xff0c;它可以用于提高生产效率&#xff0c;缩短生产周期&#xff0c;并帮助工人解决生产过程中的问…

ChatGPT性能暴降!OpenAI重磅回应!

最近&#xff0c;ChatGPT Plus 的用户一直反映该平台及其底层 LLM (GPT-4) 的性能严重下降&#xff08;编程准确率也暴降13%&#xff09;。 这是继最近一系列更新之后的结果&#xff0c;包括为 Plus 订阅者提供网络浏览和扩展插件访问权限。在这些更新之后&#xff0c;该服务的…

C#/.Net开发chatGPT、openAI

C#/.Net开发chatGPT、openAI 最近ChatGPT火爆了&#xff0c;自己使用了一下&#xff0c;确实厉害。但是使用官方网站不支持国内访问&#xff0c;好在国内可以使用API调用&#xff0c;所以自己折腾一番&#xff0c;使用C#来调用API。 获取Token 注册账号获取api-keys等操作可…

ChatGPT 人工智能革命从实验室走入公众生活

11 月底&#xff0c;人工智能研究实验室OpenAI 发布了 ChatGPT 聊天机器人首个测试版本&#xff0c;这是一款基于人工智能的新型聊天机器人&#xff0c;可以与人类进行对话&#xff0c;经过测试后&#xff0c;新款机器人便踏上了社交网站之旅&#xff0c;尤其是在推特平台上&am…

New Bing AI搜索引擎初体验-基于ChatGpt4

今天看了一个有关三星想使用bing搜索来代替Google的新闻&#xff0c; 谷歌或被抛弃&#xff01;ChatGPT 引爆手机市场新一轮洗牌&#xff1a;Android 手机销冠三星30亿美元大单欲改投 Bing 发现new bing AI基于chatGpt4&#xff0c;想体验一下&#xff0c;由于我是科学上网&am…

ChatGPT:你真的了解网络安全吗?浅谈攻击防御进行时之网络安全新防御

ChatGPT&#xff1a;你真的了解网络安全吗&#xff1f;浅谈网络安全攻击防御进行时 网络安全新防御1. 针对人工智能2. 针对5G和物联网3. 针对云安全4.针对社交工程5. 针对加密技术6. 针对多层次的安全控制 总结 ChatGPT&#xff08;全名&#xff1a;Chat Generative Pre-traine…

使用Python GUI做一个ChatGPT

一、安装 OpenAI 库 pip install openai实现实时对话&#xff0c;错误标记 二、代码部分 import wx import openai import threading# 继承Frame class TextCtrl(wx.Frame):def __init__(self, *args, **kwargs):super(TextCtrl, self).__init__(*args, **kwargs)# 初始化窗…

AI:从技术视角理解chatGPT

OpenAI发布了ChatGPT&#xff0c;这是一个基于其GPT-3.5语言模型&#xff08;LM&#xff09;的对话式人工智能模型。ChatGPT使用来自人类反馈的强化学习&#xff08;RLHF&#xff09;进行微调&#xff0c;并包括一个审核过滤器来阻止不适当的互动。 该版本是在OpenAI博客上宣布…

【已解决】ChatGPT报错Access denied 1020

报错原因Access denied 当我们刚开始想玩一玩chatgpt的时候会出现下面报错&#xff0c;接下来博主就帮大家分析一下原因&#xff0c;以及解决办法。 翻译成英文之后是这样的&#xff1a; 可以看出来是&#xff0c;ChatGPT阻止了我们的ip地址访问&#xff0c;因为ChatGPT不是…

Unity3D C# 基于观察者模式的全局消息机制(事件系统)

本文将从思路和实现讲解基于观察者模式的全局消息机制的实现过程 如果喜欢请给我的博客或者我的项目点个免费的star吧 项目内包含本文全部完整源码(可运行) 一、消息机制 虽然前两篇文章以及写过消息机制是为何物了&#xff0c;但是这里我还是想重申一下&#xff0c;但是稍微…

Unity之ChatGPT提问

Unity中normalized的含义及用途 今天偶然发现一个不用账号也可以使用ChatGPT的网站&#xff0c;就问了几个关于normalized的问题&#xff0c;也顺便让自己深刻理解向量归一化用途&#xff0c;感觉真的是太强大了&#xff0c;以下是我提的问题。 问题1.Unity normalized 的意思…