软件测试要学习的基础知识——白盒测试

白盒测试是通过检查软件内部的逻辑结构,对软件中的逻辑路径进行覆盖测试,以确定实际运行状态与预期状态是否一致。

白盒测试又被称为:

透明盒测试

结构化测试

逻辑驱动测试

基于代码的测试

在这里插入图片描述

白盒测试的常用技术分类

一、静态分析:

数据流分析

控制流分析

信息流分

二、动态分析:

逻辑覆盖

循环覆盖

基本路径覆盖

优缺点

一、优点:

迫使测试人员去仔细思考软件的实现

可以检测代码中的每条分支和路径

揭示隐藏在代码中的错误

对代码的测试比较彻底

让软件最优化

二、缺点:

昂贵

无法检测代码中遗漏路径和数据敏感性错误

不验证规格的正确性

原则(采用白盒测试方法必须遵循以下原则)

保证一个模块中的所有独立路劲至少被测试一次

对所有的逻辑判定均需测试取真和取假俩种情况

在上下边界及可操作范围内运行所有循环

检查程序的内部数据结构,保证其结构的有效性

工具

jtest java语言的单元测试框架

JUnit验证java的工具

cppunit跨平台的c++单元测试框架

gtest跨平台的c++单元测试框架

PhpUnit Php

Bounds Checker C++,Delphi API和OLE错误检查、指针和泄露错误检查、内存错误检查

True Time C++,Java,Visual Basic代码运行效率检查、组件性能的分析

插桩原理

对jvm的字节码插桩

基于block插桩

计算覆盖的代码块

在这里插入图片描述

逻辑覆盖

语句覆盖:就是指每条语句至少执行一次

判定覆盖:每个判定的分支都要至少执行一次

条件覆盖:要使每个判定的每个条件应取到各种可能的值

判定/条件覆盖:要同时满足判定中各条件的每一种组合至少出现一次

条件组合:是指每个判定中各条件的每一种组合至少出现一次

路径覆盖:程序当中的每一条可能的路径,至少被执行一次

点覆盖:选取足够多的测试数据,使得程序执行路劲至少经过流图的每个结点一次

边覆盖:选取足够多的测试数据,使程序的每条可能路径都至少只执行一次

在这里插入图片描述

白盒测试

正确使用白盒测试,就要先从代码分析入手,根据不同的代码逻辑规则,语句执行情况,选用适合的覆盖方法,任何一个高效的测试用例,都是针对具体测试场景的,逻辑测试不是片面的测试正确的结果或是测试错误的结果,而是尽可能全面地覆盖每一个逻辑路径。

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!  

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

LLM之LangChain(二)| LangChain中的Agent

在本文中,我们将讨论LangChain中的Agent及其各种类型。但在深入研究Agent之前,让我们先了解一下什么是LangChain和Agent。 一、什么是LangChain? LangChain是一种功能强大的自动化工具,可用于各种任务,它提供了可用于…

【AIGC】智能革命的动物寓言——颠覆性的智慧之美

AIGC动物提示词绘画技巧 利用AIGC(Artificial Intelligence Generated Content,人工智能生成内容)技术进行绘画创作时,可以结合上述关键信息来设计和绘制不同风格的角色。具体步骤和讲解如下: 输入关键信息与风格设定…

C语言——详解字符函数和字符串数组(上)

目录 一、strlen的使用和模拟实现 1.strlen()函数的介绍 2.strlen()函数的具体使用 3.strlen函数的注意事项 4.strlen函数的模拟实现 二、strcpy的使用和模拟实现 1.strcpy()函数的介绍 2.strcpy()函数的具体使用 3.strcpy()函数的注意事项 4.strcpy函数的模拟实现 …

数据库概述、部署MySQL服务、必备命令 、密码管理、安装图形软件、SELECT语法 、筛选条件

1 案例1:构建MySQL服务器 1.1 问题 在IP地址192.168.88.50主机和192.168.88.51主机上部署mysql服务练习必备命令的使用 1.2 方案 准备2台虚拟机,要求如下: 1.3 步骤 实现此案例需要按照如下步骤进行。 步骤一:安装软件 命令…

2024.1.16 网络编程 作业

思维导图 练习题 1.基于UDP的TFTP文件传输&#xff0c;实现文件下载上传 #include <myhead.h>int main(int argc, char const *argv[]) {// 创建套接字UDP通信int sockfd socket(AF_INET, SOCK_DGRAM, 0);if (-1 sockfd){perror("socket error");return -1…

Qt-UI界面无法输入名字

在UI界面“在这里输入”&#xff0c;直接双击填写名称&#xff0c;无论是中文还是英文都没有反应。解决方案&#xff1a; 双击“在这里输入之后”&#xff0c;在可编辑状态下&#xff0c;空格→enter键&#xff0c;然后在右下角属性框的title中直接填写中文或英文名&#xff0…

C#核心--思维导图

对应《C#--核心》&#xff08;http://t.csdnimg.cn/cpRbZ&#xff09;

SQL 语言详解

SQL 详解 我们通常可以将 SQL 分为四类&#xff0c;分别是 DDL&#xff08;数据定义语言&#xff09;、DML&#xff08;数据操作语言&#xff09;、DQL&#xff08;数据查询语言&#xff09;和 DCL&#xff08;数据控制语言&#xff09;。DDL 主要用于创建、删除、修改数据库中…

LeetCode刷题---反转链表II

LeetCode官方给出的解题思路 在需要反转的区间里&#xff0c;每遍历到一个节点&#xff0c;让这个新节点来到反转部分的起始位置。 使用了三指针的思想。 定义三个节点: curr&#xff1a;指向待反转区域的第一个节点 left&#xff1b; next&#xff1a;永远指向 curr 的下一个节…

uni-app的组件(一)

scroll-view 可滚动视图区域。用于区域滚动 <scroll-view scroll-y"true" :scroll-top"scrollTop" class"scroll-y" scroll"scroll"><view id"demo1" class"scroll-view-item bg-red">A</view>…

通过IDE和jar包运行时加载json配置文件

程序中使用了json配置文件&#xff0c;位置在$rootPath/src/main/resources/config.json, 调试时使用IDE&#xff0c;但运行时使用Jar包&#xff0c;加载config.json配置文件的代码如下&#xff1a; public ConfigParser(String configFileName) throws IOException {try{Inp…

C++ 图形界面学习效果及代码

#include <stdio.h> #include<conio.h> #include <stdlib.h> #include<graphics.h> #define WIDTH 800 #define HEIGHT 480 #define SIZE 20 int main() {const char* str "人生就是由欲望不满足而痛苦和满足之后无趣这两者所构成";const …

VMware迁移虚拟机教程,适用于换电脑、重装系统

新购入了一台电脑&#xff0c;接下来可能会有连续好多篇与装机/重装系统/装软件有关的文章&#xff0c;平时可能只是纸上谈兵&#xff0c;这次是花重金买素材了&#xff0c;建议收藏 问题背景&#xff1a;在之前的电脑上&#xff0c;安装了VMware Workstation&#xff0c;并配…

C++/WinRT 简介

C/WinRT 是 Windows 运行时 (WinRT) API 的完全标准新式 C17 语言投影&#xff0c;以基于标头文件的库的形式实现&#xff0c;旨在为你提供对新式 Windows API 的一流访问。 利用 C/WinRT&#xff0c;你可以采用任何符合标准的 C17 编译器创作和使用 Windows 运行时 API。 Wind…

浅谈电动汽车充电站箱变电气安全物联监测系统设计与应用

摘 要:基于物联网技术架构提出了一种适用于电动汽车充电站箱变的电气安全物联监测系统设计方案。该系统由电气安全智能感知设备、通信网关、电气安全物联网监测平台等构成&#xff0c;可支持充电站箱变充电桩出线回路电流、电缆 温度、剩余电流、故障电弧、短路电流等数据采集监…

LogicBroker上进行 Babylist EDI项目测试指南

在LogicBroker上启动对接Babylist onboarding流程 接受邀请并填写Onboarding表单 企业将会收到一封入驻邀请电子邮件&#xff0c;邮件中将会包含Onboarding表单的链接。 1.在标题为 “[Supplier] has been invited to connect with [Retailer]” 的邮件中&#xff0c;点击Ac…

海外代理IP怎么用?常见使用问题及解决方案

海外代理IP是指提供全球范围内的代理服务器&#xff0c;代理服务器充当IP与目标网站之间的中介&#xff0c;可以起到安全匿名、提高网速、突破网络壁垒的作用。在使用代理IP的过程中&#xff0c;用户可能会遇到各种挑战&#xff0c;如连接问题、速度慢等。理解这些问题的原因并…

分享用 vector的vector实现一个二维数组并初始化的逆置矩阵问题

题目名称 867.转置矩阵 目录 题目名称 867.转置矩阵 1.题目 2.题目分析 3.题目知识点 3.1vector的构造函数 3.2vector构造二维数组 最后&#x1f490; 推荐阅读顺序: 1.题目->2.题目分析->3.题目知识点 1.题目 如果矩阵 matrix为 m 行 n列&#xff0c;则转置后的矩…

WinCC 输入/输出域没有所需要的预定义输出格式该怎么办?

WinCC 输入/输出域没有所需要的预定义输出格式该怎么办&#xff1f; 引文&#xff1a;博途工控人平时在哪里技术交流博途工控人社群 应该大多数人都知道 WinCC 的 IO 域对于浮点数的显示都支持格式预定义。 例如原数 567.89 可以在经过 IO 域的预定义后在画面上显示为 567.9&…

常用植被物候提取方法

&#xff08;一&#xff09;Background 这篇文章介绍的非常全面&#xff01;&#xff01; 物候的提取通常包含两个步骤&#xff1a;&#xff08;1&#xff09;曲线的重构拟合&#xff08;curve fitting&#xff09;和 &#xff08;2&#xff09;物候矩阵的提取 &#xff08;p…
最新文章