| |
|
开发:
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 贡献:
2 MethodInput:软件系统S的源码、测试套件T中的每个测试用例t执行S的通过/失败结果及代码覆盖率 components:
用颜色表示执行该语句的通过测试用例和失败测试用例的百分比。 使用红→黄→绿的连续色谱中的任意颜色。 语句s的颜色计算方式如下: %passed(s)=执行s通过的t数/所有通过的t数×100% 举例:如果一条语句被100%的失败测试用例和50%的通过测试用例执行了,那么它的颜色将是连续色谱中从纯红色到纯绿色三分之一的位置(橙色)。 (figure2和3比较)
用亮度表示覆盖率。即越多测试用例执行某语句,该语句的亮度就越高。亮度越高置信度越高。 举例:假设有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 获取客户端地址 |
|
上一篇文章 查看所有文章 |
|
开发:
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- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |