一句话:面向 GCC 插件提出结合静态与动态测试的四层质量保障方法,重点用日志解决白盒测试挑战。
本文(博士研究)关注无需人工干预的软件系统的测试挑战,以 GCC 插件为用例。GCC 插件通过 Plugin API 在编译各阶段影响编译器,并依赖 AST、GIMPLE、基本块与 RTL 等内部数据结构,因此其正确性难以测试。既有工作多从黑盒角度测试,难以发现内部问题。作者提出四层测试方法,结合静态与动态测试技术,并指出白盒测试是主要挑战;研究拟利用日志提升测试覆盖率,从而保障插件质量与正确性,并计划将发现用于其他可比系统。摘要未给出已完成的实验评估结果。
There are software systems that function without human interven- tion. Such systems work according to preset rules, algorithms, or data. In this doctoral research, we aim to explore the testing-related challenges associated with such systems with GCC plugins as our use case. The GCC compiler family is widely known especially as a compiler for C and C++. GCC allows extensions to be added through the GCC Plugin API. GCC plugins execute at the com- piler level and influence the compiler at different compiling stages. Plugins depend on the GCC internal data structures such as AST, GIMPLE, Basic Blocks and RTL. Therefore, it is difficult to test the correctness of a GCC plugin. Testing is essential for ensuring the quality and the correctness of the plugins. The attempts made in the past are insufficient. They depend on testing the plugins from a black-box perspective. Internal issues may remain hidden when only testing from a black-box perspective is considered. Testing the plugins from both white-box and black-box perspectives is essential to guarantee their quality. We intend to shed light on the complex- ity and challenges of GCC plugin testing. We propose a four-tiered approach for GCC plugin testing. The approach consists of static and dynamic testing techniques. The main challenge is white box testing. This research aims to address the challenge and provide a solution by utilising logs focusing on higher test coverage. We intend to utilise the findings of the study with other comparable systems
DOI 原文 ·
@inproceedings{paperbot8454,
title = {Quality Assurance for Non-trivial Systems: Use Case GCC Plugins},
author = {Nimantha Kariyakarawana},
booktitle = {ISSTA},
year = {2024},
doi = {10.1145/3650212.3685557}
}