SMARTGIFT: Learning to Generate Practical Inputs for Testing Smart Contracts

测试输入生成 智能合约 深度学习

随着金融市场上首次代币发行(ICO)的蓬勃发展,智能合约在消费者中迅速普及。 然而,智能合约漏洞使它们成为导致巨大损失的恶意攻击的主要目标。 一般来说,为了检测智能合约中的漏洞,基于变异(mutation test)和模糊(fazzy test)的测试方法已经被广泛研究,并且确实在基准数据集上取得了可喜的性能。 使用变异方法生成测试输入本质上依赖于智能合约程序中可用的测试用例。 然而,在作者的初步研究中,观察到 218 个已确定的开源智能合约项目存储库中有 56.4% 没有提供任何测试用例进行验证。 模糊测试输入会导致随机值,缺乏实际用途。
本文提出了一种方法 SMARTGIFT,它通过学习现实世界智能合约的交易记录来生成用于测试智能合约的实用输入。 利用收集的超过 6 万条交易记录,SMARTGIFT 能够为约 77% 的智能合约功能生成相关测试输入,大大优于传统的模糊测试方法(仅 60% 的功能成功)。

Understanding Quantum Software Engineering Challenges An Empirical Study on Stack Exchange Forums and GitHub Issues

量子计算 量子软件工程 主题建模 Stack Exchange 问题报告

近年来,量子软件工程(Quantum Software Engineering)成为一个新兴领域,受到越来越多的关注。 然而,目前尚不清楚软件工程界面临的量子计算挑战和机遇是什么。 这项工作旨在了解开发人员感知到的与 QSE 相关的挑战。作者在 Stack Exchange 论坛上进行实证研究,开发人员发布 QSE 相关问题和答案以及 Github 问题报告,开发人员在实际量子计算项目中提出 QSE 相关问题。 基于 Stack Overflow 上现有的问题类型分类,我们首先对 Stack Exchange 论坛上提出的 QSE 相关问题的类型进行定性分析。 然后,我们使用自动主题建模来发现与 QSE 相关的 Stack Exchange 帖子和 GitHub 问题报告中的主题。 我们的研究突出了 QSE 与传统软件工程不同的一些特别具有挑战性的领域,例如解释量子计算代码背后的理论,解释量子程序输出,弥合量子计算和经典计算之间的知识鸿沟,以及它们的相关的机会。