IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发测试 -> 测试信息可视化辅助故障定位 -> 正文阅读

[开发测试]测试信息可视化辅助故障定位

本周阅读了论文《Visualization of Test Information to Assist Fault Localization》,以下记录重点。

Abstract:

调试过程中最昂贵、最耗时的组件之一是定位错误或故障。本文提出了一种利用可视化技术来辅助完成定位的新技术并实现了一个使用该技术的工具。该技术使用颜色直观地映射每个程序语句在测试套件执行结果中的参与程度。基于这种可视化映射,用户可以检查程序中的语句、识别失败中涉及的语句、定位潜在的错误语句。

1 Introduction

调试过程中定位程序错误的四项任务:

  • 识别失败涉及的语句
  • 选择可能包含错误的可疑语句(耗时)
  • 假设可疑故障
  • 将程序变量恢复到特定状态

思路:解决四项任务中的第二项——选择可能包含错误的可疑语句。

相关工作:χSlice

贡献:

  • 介绍了一种用于可视化映射程序测试结果的新技术——使用视觉映射,照亮可能的错误语句来帮助定位程序中的错误。
  • 实现了测试信息可视化技术工具——TARANTULA。
  • 使用该工具进行了实证研究。

2 Method

Input:软件系统S的源码、测试套件T中的每个测试用例t执行S的通过/失败结果及代码覆盖率

components:

  • color:

用颜色表示执行该语句的通过测试用例和失败测试用例的百分比。

使用红→黄→绿的连续色谱中的任意颜色。

语句s的颜色计算方式如下:

%passed(s)=执行s通过的t数/所有通过的t数×100%

举例:如果一条语句被100%的失败测试用例和50%的通过测试用例执行了,那么它的颜色将是连续色谱中从纯红色到纯绿色三分之一的位置(橙色)。

(figure2和3比较)

  • brightness

用亮度表示覆盖率。即越多测试用例执行某语句,该语句的亮度就越高。亮度越高置信度越高。

举例:假设有10个可能失败的测试用例,语句A在全部10个中执行,语句B只在1个中执行,则语句A将是100%亮红色,语句B是10%暗红色,将用户的注意力吸引到了语句A。

figure4使用的视觉映射:将每个源代码语句映射到一条短的水平像素行。这种“缩小”的视角可以让更多软件系统呈现在一个屏幕上。

系统功能介绍(各个按钮和显示区域等)

3 Empirical Studies

实验准备:使用Space程序(由C语言编写,9564行代码,其中6218行可执行)。Space有33个版本,每个版本均包含一个在程序开发过程中发现的故障。一系列操作为Space生成了包含13,585个测试用例的测试池,从中提取1000个随机大小、随机生成、接近决策充分的测试套件。

问题:

  • 该技术多久将程序中的故障状态涂成红色或略带红色?
  • 该技术多久将程序中的无故障状态涂成红色或略带红色?

Study 1:帮助只有一个错误的程序定位错误

使用了20个Space故障版本,每个版本包含一个不同的单一故障。

figure5:所有测试套件上的大多数错误语句都用最红的3个颜色(figure7 1-3)进行了着色。而11、12被涂上了橙黄色范围内的颜色(3-5),这是因为在这两个版本中,错误存在于初始化变量的语句中,故障只能在后面的代码中表现出来。分析:无错误语句中被标红的语句可能是紧挨着错误语句的;对于11、12,该技术没有发挥作用也没有误导。

Study 2:帮助有多个错误的程序定位错误

使用了40个Space故障版本,其中10个有2个故障、10个有3个故障、10个有4个故障、10个有5个故障。

figure9:随着故障数量的增加,该技术在所有故障上的有效性都会下降。然而,即使多达5个故障,大多数故障也会在频谱的红色半部分(1-5)中着色。

但是该图没有区分单个故障的语句的颜色。例如,A的第二条(14、17)到底是如何分配的红色和绿色。figure8展示了双故障版本中每个单独故障的结果颜色(14、17)以及移除17后,14的颜色(全红)。这表明当该技术揭示的故障少于所有故障时,用户可以迭代地移除发现的故障,重新测试并应用该技术,直到测试套件通过所有测试用例。

未来的工作:研究没有错误的红色语句与故障接近的频率,并阐明依赖关系。

  开发测试 最新文章
pytest系列——allure之生成测试报告(Wind
某大厂软件测试岗一面笔试题+二面问答题面试
iperf 学习笔记
关于Python中使用selenium八大定位方法
【软件测试】为什么提升不了?8年测试总结再
软件测试复习
PHP笔记-Smarty模板引擎的使用
C++Test使用入门
【Java】单元测试
Net core 3.x 获取客户端地址
上一篇文章           查看所有文章
加:2021-11-11 13:00:20  更:2021-11-11 13:02:02 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/18 2:46:03-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码