当前位置: X-MOL 学术Inf. Softw. Technol. › 论文详情
Our official English website, www.x-mol.net, welcomes your feedback! (Note: you will need to create a separate account there.)
A unified framework for declarative debugging and testing
Information and Software Technology ( IF 3.9 ) Pub Date : 2020-09-22 , DOI: 10.1016/j.infsof.2020.106427
Rafael Caballero , Enrique Martin-Martin , Adrián Riesco , Salvador Tamarit

Context:

Debugging is the most challenging and time consuming task in software development. However, it is not properly integrated in the software development cycle, because the result of so much effort is not available in further iterations of the cycle, and the debugging process itself does not benefit from the outcome of other phases such as testing.

Objective:

We propose to integrate debugging and testing within a single unified framework where each phase generates useful information for the other and the outcomes of each phase are reused.

Method:

We consider a declarative debugging setting that employs tests to automatically entail the validity of some subcomputations, thus decreasing the time and effort needed to find a bug. Additionally, the debugger stores as new tests the information collected from the user during the debugging phase. This information becomes part of the program test suite, and can be used in future debugging sessions, and also as regression tests.

Results:

We define a general framework where declarative debugging establishes a bidirectional collaboration with testing. The new setting preserves the properties of the underlying declarative debugging framework (weak completeness and soundness) while generating test cases that can be used later in other debugging sessions or even in other cycles of the software development. The proposed framework is general enough to be instantiated to very different programming languages: Erlang (functional), Java (imperative, object-oriented), and SQL (data query); and the experimental results obtained for Erlang programs validate the effectiveness of the framework.

Conclusion:

We propose a general unified framework for debugging and testing that simplifies each phase and maximizes the reusability of the outcomes in the different phases of the software development cycle, therefore reducing the overall effort.



中文翻译:

声明式调试和测试的统一框架

内容:

调试是软件开发中最具挑战性和最耗时的任务。但是,它没有正确集成到软件开发周期中,因为在周期的进一步迭代中无法获得太多努力的结果,并且调试过程本身也无法从其他阶段(例如测试)的结果中受益。

目的:

我们建议将调试和测试集成在一个统一的框架中,在该框架中,每个阶段都会为另一个阶段生成有用的信息,并且每个阶段的结果都可以重复使用。

方法:

我们考虑一个声明式调试设置,该设置使用测试来自动实现某些子计算的有效性,从而减少了查找错误所需的时间和精力。此外,调试器将在调试阶段从用户收集的信息存储为新测试。此信息成为程序测试套件的一部分,并且可以在以后的调试会话中使用,也可以用作回归测试。

结果:

我们定义了一个通用框架,在该框架中,声明式调试建立了与测试的双向协作。新设置保留了底层声明性调试框架的属性(完整性和稳定性较弱),同时生成了可在以后的其他调试会话中甚至在软件开发的其他周期中使用的测试用例。所提出的框架足够通用,可以实例化为非常不同的编程语言:Erlang(功能性),Java(命令式,面向对象)和SQL(数据查询);Erlang程序获得的实验结果证明了该框架的有效性。

结论:

我们提出了一个用于调试和测试的通用统一框架,该框架简化了每个阶段并最大化了软件开发周期不同阶段中结果的可重用性,从而减少了总体工作量。

更新日期:2020-11-02
down
wechat
bug