[软件工程术语解释]:Concolic Testing

文章目录

    • 原名
    • 前言
    • 选文理念
    • 2 文章简介
      • 2.1 Hakjoo Oh
    • 3 文章内容
    • 4 QAs
      • QA1: concolic testing 和 软件工程里面的 instrumentation 是什么/li>
      • QA2:创新点在哪里这里得看related work 和 contributions]
      • QA3:ConTest的工作原理/li>
    • 总结

原名

但是我在此过程中明白了:concolic testing的意思,觉得比较有意义,遂将文章改名。

为:[软件工程术语解释]:Concolic Testing

如果只想了解 Concolic Testing 概念的朋友,请直接参见:4.1 章节。

前言

最近学习太忙,根本没空看论文写博客。我感觉还是得养成读论文的习惯,在此简要记录(读书笔记)。

文章:Template-Guided Concolic Testing via Online Learning.

选文理念

他山之石可以攻玉,总是看多了领域内的文章,感觉也挺懵的。最近打算有空就跳出去看看。

我感觉不能只关注领域内的文章。

ASE 2018 会议
http://www.ase2018.com/=program

2 文章简介

所属版块:SYMBOLIC EXECUTION (符 执行)
(THURSDAY 6TH, SEPTEMBER – 1:30-3 – ROOM JOFFRE CD)

感觉碰到“熟人”了,之前就度过 Hakjoo Oh的修复文章。

2.1 Hakjoo Oh

  • 程序语言;
  • 软件工程;
  • 软件安全。

发过S&P,很厉害。

以下为引用量较高的文章:

备注:adapt 原来是改写的意思,所以下图中 应译为:改写一个程序。

3 文章内容

文章工作:

We present template-guided concolic testing, a new technique for effectively reducing the search space in concolic testing.

即:提出一种模板导向的concolic 测试技术,来有效减小concolic testing的搜索空间。

———————————————————————————————

当前研究现状:

Addressing the path-explosion problem has been a significant challenge in concolic testing. Diverse search heuristics have been proposed to mitigate this problem but using search heuristics alone is not sufficient to substantially improve code coverage for real-world programs.

即:在concolic testing中,路径爆炸是一个关键挑战。各种各样的搜索启发式被提出来减缓这个程序,但是单独使用搜索启发式是不足以用来大量改进真实错误程序的代码覆盖率的。

———————————————————————————————

The goal of this paper is to complement existing techniques and achieve higher coverage by exploiting templates in concolic testing. In our approach, a template is a partially symbolized input vector whose job is to reduce the search space.

实验存在的困难:

However, choos- ing a right set of templates is nontrivial and significantly affects the final performance of our approach. We present an algorithm that automatically learns useful templates online, based on data collected from previous runs of concolic testing.

The experimen- tal results with open-source programs show that our technique achieves greater branch coverage and finds bugs more effectively than conventional concolic testing.

即:实验结果表明:在开源程序上,我们的技术达到了更大的分支覆盖以及找到了更多bug(比传统的concolic testing)。

4 QAs

QA1: concolic testing 和 软件工程里面的 instrumentation 是什么/h3>

参考:
Concolic testing https://en.wikipedia.org/wiki/Concolic_testing
Instrumentation (computer programming) https://en.wikipedia.org/wiki/Instrumentation_(computer_programming)

维基百科可以说讲的很浅显易懂了,还给出了例子。

对于Concolic testing:

Concolic testing (a portmanteau of concrete and symbolic) is a hybrid software verification technique that performs symbolic execution, a classical technique that treats program variables as symbolic variables, along a concrete execution (testing on particular inputs) path. Symbolic execution is used in conjunction with an automated theorem prover or constraint solver based on constraint logic programming to generate new concrete inputs (test cases) with the aim of maximizing code coverage. Its main focus is finding bugs in real-world software, rather than demonstrating program correctness.

大意是:
对于concolic 测试,concolic是单词(具体)和(符 )的一个混合体。

concolic testing是一个同时使用了符 执行(将程序变量当做符 化的变量)和具体执行(concrete execution,涉及到具体的输入)的混合式的软件验证技术。

符 执行用在自动定理证明器或者基于约束求解的约束逻辑编程中,来产生新的具体的输出(尽量达到最大的代码覆盖率)。

它的主要关注是用来找bug的,而不是用来描述程序正确性的。

维基百科还特意举例(这个例子还是很详细的,易于理解):

大意:

  • 提出基于模板导向的新方法
  • 提出在线学习算法来筛选有用的模板
  • 实证分析比较,工具开源

Search Heuristics. Our technique is orthogonal to the existing works for search heuristics [4, 5, 12, 23, 29].

Search-Space Reduction. Our work can be seen as a new approach for reducing the search space [2, 3, 17, 28]

Learning-based Software Testing. At a high-level, our work belongs to the techniques that combine software testing with ma- chine learning [5, 6, 14, 20, 24, 26]. In this work, we use online learning to select good templates, effectively reducing the search space of concolic testing.

但是我更关注的是这一句话:

QA3:ConTest的工作原理/h3>

[软件工程术语解释]:Concolic Testing

总结

留下几个还没想明白的问题:

1)机器学习到底在软工中扮演什么角色如在这篇文章中,机器学习是怎么从concolic testing的历史数据中学习到这么多模板的整个机制不太明白)

2)暂无。

写这一篇,大概使用了三到四个番茄钟的时间。

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2019年3月8日
下一篇 2019年3月8日

相关推荐