【多样化的思想】基于执行档案的测试

news2024/11/17 15:41:12

下面我们讨论另一种关于多样性的观点。我们知道,对被测对象而言,测试输入空间代表的是各种可能的外部环境条件。如果两个测试输入点距离比较远,说明在这两个点上,被测对象所面对的外部环境条件很不一样,所以我们说,这两个点差异性比较大,或者说,多样性比较好;但是如果我们考察被测对象的内部,有可能发现,被测对象在这两个点上的反应是类似的,比如说,执行的都是同一条程序路径。从这个角度看,我们会认为这两个点的差异性并不大,多样性并不好。基于执行档案的测试,就是从这个角度来理解多样性的。

执行档案是什么概念呢?执行档案是一种结构化信息,描述的就是被测对象在某个测试输入点上的反应。比如执行一个用例t,覆盖了被测程序的第1-6行和第8、9行代码:

​我们就可以将t的执行档案定义成这样一个向量:

向量里一共有10个分量,对应被测程序的10行代码,被覆盖的代码行赋值为1,没被覆盖的代码行赋值为0。执行一个用例,就会产生这样一个执行档案。通常情况下,重复执行同一个用例,产生的执行档案是相同的,除非被测对象的行为有一定的随机性。另一方面,同一个执行档案可能对应到多个不同的用例。

所有可能的执行档案构成了一个新的空间,我们叫它执行档案空间。可以说,执行档案空间是测试输入空间的投影,是测试输入空间在被测对象内心世界里的投影:

测试输入空间中表现出来的多样性,反映的是被测对象外部环境条件的多样性;而执行档案空间中表现出来的多样性,反映的是被测对象内部行为的多样性

基于执行档案的测试怎么做呢?举个例子。这是GCC编译器的执行档案空间:

我们可以利用反随机测试或自适应随机测试的算法,从这里面选择那些差异比较大的点,再回溯到测试输入空间,找到对应的测试输入点,这样就完成了测试选择。可以看到,执行档案空间的右下角,有一小撮不合群的点,很扎眼。实际上,这些点对应的是一类很特殊的、没有经过优化的编译行为。在执行档案空间里,按多样化的原则来选点的话,一定不会错过这些点。但是如果对应到测试输入空间里,这些点的分布特征就没这么明显了。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

RabbitMQ的高级特性-消息确认机制

对于RabbitMQ发送消息到消费端的可靠性保障 引入:发送者发送消息后,到达消费端之后会出现一下两种情况: ①消息处理成功 ②消息处理异常 RabbitMQ向消费者发送消息之后, 就会把这条消息删掉, 那么第两种情况, 就会造成消息丢失&#xff0…

fmql之字符驱动设备(3)-并发与竞争

学会使用设备树后,要学习linux驱动编写中容易出现的”并发与竞争“。 代码是在之前代码的基础上进行修改。 并发与竞争 (本部分来自于正点原子pdf) 什么是并发与竞争,为什么会出现并发与竞争: 要保护的内容是&#…

基于TSN的实时通信网络延迟评估技术

论文标题:A TSN-based Technique for Real-Time Latency Evaluation in Communication Networks 作者信息: Alberto Morato, Claudio Zunino, Manuel Cheminod, Stefano Vitturi,来自意大利国家研究委员会,CNR-IEIIT。电子邮件:…

深度学习实战TT100K中国交通标志检测【数据集+YOLOv5模型+源码+PyQt5界面】

AI深度学习TT100k交通标志识别 文章目录 研究背景代码下载链接一、效果演示1.1 图像演示1.2 视频演示 二、技术原理2.1 整体流程2.2 TT100K中国交通标志数据集介绍2.3 YOLOV5 TT100K中国交通标志检测原理2.3.1 概述2.3.2 输入层2.3.3 Backbone层2.3.4 Backbone层2.3.5 Head层 2…

【人人保-注册安全分析报告-无验证方式导致安全隐患】

前言 由于网站注册入口容易被黑客攻击,存在如下安全问题: 1. 暴力破解密码,造成用户信息泄露 2. 短信盗刷的安全问题,影响业务及导致用户投诉 3. 带来经济损失,尤其是后付费客户,风险巨大,造…

【时时三省】(C语言基础)指针笔试题6

山不在高,有仙则名。水不在深,有龙则灵。 ----CSDN 时时三省 笔试题6 首先aa[2][5]是二维数组 也就是说它有两行第一行是1 2 3 4 5 第二行是6 7 8 9 10 然后&aa取出的数组的地址 &aa1就直接跳到第…

第1章 C++初识

1.1 编写第一个C程序 1.打开Visual Studio点击"创建新项目" 2.点击"空项目",并点击"下一步" 3.设置"项目名称"并"设置地址" 4.打开项目后,右击"源文件"并选择"添加"的"新建…

国产操作系统(统信UOS)网络安全等级保护基础安全加固

统一操作系统UOS是由多家企业共同打造的中文国产操作系统。 一、设置口令复杂度策略和有效期 首先安装libpam-pwquality依赖包 口令复杂度策略通过libpam-pwquality依赖包进行设置 依赖包的安装命令:sudo apt-get install libpam-pwquality。 依赖包的查看方式执…

新茶饮卷出海,本土化成胜败关键

爱扬格说:“在那海水酣睡的宫殿里,铺满了多少奇珍异宝。”如今,新茶饮品牌正掀起出海狂潮,挖掘来自海外市场的财富机会。 近日,茶百道股价实现十连涨。消息面上,公司在韩国首尔建大站新店正式对外营业。根…

复现 BEVfusion bug集合(4090d)

目录 写在前面的话Bug 汇总1. python版本2. cuda版本3. mmdet3d版本4. mmcv版本5. mmdet版本 后期工作(看到numpy说明成功一半)6. numpy版本7. timm安装8. yapf 版本 写在前面的话 主要的问题还是mmcv库的问题,这个版本维护太差了&#xff0…

Idea中的导出分包层次结构图(项目结构树)

导出分包层次结构图 在Terminal中, 输入命令:Get-ChildItem “项目地址” | Tree | Out-File -FilePath “输出地址” Get-ChildItem D:\work\workspace\test | Tree | Out-File -FilePath D:\test.txt

HCIP--以太网交换安全(一)

以太网交换安全概述:以太网交换安全是一系列技术和策略的集合,旨在保护以太网交换机免受各种网络攻击和威胁。 端口隔离 一、端口隔离概述: 作用:可以实现同一个VLAN内端口的隔离 优势: 端口隔离功能为用户提供了更…

央企办医布局智慧医康养,环球医疗(2666.HK)让养老有“医”靠

投资传奇查理芒格说:“我给自己设定的目标是追求平常人没有的常识。”只有挖掘出市场潜移默化的趋势,才能抓住投资机遇。 当下,资本市场一个被低估的产业趋势是,医疗健康行业大并购时代悄然开启,头部上市公司对并购产…

日本IT-正社员、契约社员、个人事业主该如何选?

正社員:就是「正规社员」的意思,按照公司的规定而直接雇用,而且没有制定雇用期间,基本上是以终身雇用至退休年龄(70岁)为前提。而被雇用的一方需要听从公司的业务命令,包括职位或职场的调迁&…

影响6个时序Baselines模型的代码Bug

前言 我是从去年年底开始入门时间序列研究,但直到最近我读FITS这篇文章的代码时,才发现从去年12月25号就有人发现了数个时间序列Baseline的代码Bug。如果你已经知道这个Bug了,那可以忽略本文~ 这个错误最初在Informer&#xff0…

【C++】模板、宏、命名空间、

十五、C中的模板templates 本部分讨论C中的模板templates 在别的语言中,比如java、c、c#等托管语言中,模板类似泛型的概念,但模板比泛型要强大得多。模板有点像宏,而泛型却非常受限于类型系统以及其他很多因素。同时模板也是一个…

SQLite数据库管理:深入解析创建数据库、表、索引及用户权限与事务管理

目录 一、SQLite数据库创建 1.1 安装SQLite 1.2 创建数据库 1.3 验证数据库 二、创建表 2.1 基本语法 2.2 数据类型 2.3 创建表的示例 2.4 查看表结构 三、创建索引 3.1 创建索引的语法 3.2 创建索引的示例 3.3 索引的维护 四、管理用户权限 4.1 基于文件系统的权…

动态规划算法:12.简单多状态 dp 问题_打家劫舍_C++

目录 题目链接:LCR 089. 打家劫舍 - 力扣(LeetCode) 一、题目解析 题目: 解析: 二、算法原理 1、状态表示 状态表示: 2、状态转移方程 状态转移方程推理: 3、初始化 dp表初始化: 特殊…

C++(学习)2024.9.25

目录 继承 概念 构造函数 1.派生类与基类构造函数的关系 2.解决方案 (1)补充基类的无参构造函数 (2)手动在派生类中调用基类构造函数 1.透传构造 2.委托构造 3.继承构造 3.对象的创建与销毁流程 4.多重继承 (1)概念 …

基于Spring Boot+Vue前后端分离的中医药科普系统设计和实现(协同过滤算法)【原创】

🎈系统亮点:协同过滤算法; 一.系统开发工具与环境搭建 1.系统设计开发工具 后端使用Java编程语言的Spring boot框架 项目架构:B/S架构 运行环境:win10/win11、jdk17 前端: 技术:框架Vue.js&am…