Catálogo de publicaciones - libros
Título de Acceso Abierto
Fundamental Approaches to Software Engineering: 21st International Conference, FASE 2018, Held as Part of the European Joint Conferences on Theory and Practice of Software, ETAPS 2018, Thessaloniki, Greece, April 14-20, 2018, Proceedings
Parte de: Theoretical Computer Science and General Issues
En conferencia: 21º International Conference on Fundamental Approaches to Software Engineering (FASE) . Thessaloniki, Greece . April 16, 2018 - April 19, 2018
Resumen/Descripción – provisto por la editorial
No disponible.
Palabras clave – provistas por la editorial
computer software maintenance; computer software selection and evaluation; formal logic; formal methods; formal specification; programming languages; semantics; software engineering; specifications; verification
Disponibilidad
Institución detectada | Año de publicación | Navegá | Descargá | Solicitá |
---|---|---|---|---|
No requiere | 2018 | Directory of Open access Books | ||
No requiere | 2018 | SpringerLink |
Información
Tipo de recurso:
libros
ISBN impreso
978-3-319-89362-4
ISBN electrónico
978-3-319-89363-1
Editor responsable
Springer Nature
País de edición
Reino Unido
Fecha de publicación
2018
Cobertura temática
Tabla de contenidos
Summarizing Software API Usage Examples Using Clustering Techniques
Nikolaos Katirtzis; Themistoklis Diamantopoulos; Charles Sutton
As developers often use third-party libraries to facilitate software development, the lack of proper API documentation for these libraries undermines their reuse potential. And although several approaches extract usage examples for libraries, they are usually tied to specific language implementations, while their produced examples are often redundant and are not presented as concise and readable snippets. In this work, we propose a novel approach that extracts API call sequences from client source code and clusters them to produce a diverse set of source code snippets that effectively covers the target API. We further construct a summarization algorithm to present concise and readable snippets to the users. Upon evaluating our system on software libraries, we indicate that it achieves high coverage in API methods, while the produced snippets are of high quality and closely match handwritten examples.
- Software Design and Verification | Pp. 189-206
Fast Computation of Arbitrary Control Dependencies
Jean-Christophe Léchenet; Nikolai Kosmatov; Pascale Le Gall
In 2011, Danicic et al. introduced an elegant generalization of the notion of control dependence for any directed graph. They also proposed an algorithm computing the weak control-closure of a subset of graph vertices and performed a paper-and-pencil proof of its correctness. We have performed its proof in the Coq proof assistant. This paper also presents a novel, more efficient algorithm to compute weak control-closure taking benefit of intermediate propagation results of previous iterations in order to accelerate the following ones. This optimization makes the design and proof of the algorithm more complex and requires subtle loop invariants. The new algorithm has been formalized and mechanically proven in the Why3 verification tool. Experiments on arbitrary generated graphs with up to thousands of vertices demonstrate that the proposed algorithm remains practical for real-life programs and significantly outperforms Danicic’s initial technique.
- Software Design and Verification | Pp. 207-224
Iterative Generation of Diverse Models for Testing Specifications of DSL Tools
Oszkár Semeráth; Dániel Varró
The validation of modeling tools of custom domain-specific languages (DSLs) frequently relies upon an automatically generated set of models as a test suite. While many software testing approaches recommend that this test suite should be diverse, model diversity has not been studied systematically for graph models. In the paper, we propose diversity metrics for models by exploiting neighborhood shapes as abstraction. Furthermore, we propose an iterative model generation technique to synthesize a diverse set of models where each model is taken from a different equivalence class as defined by neighborhood shapes. We evaluate our diversity metrics in the context of mutation testing for an industrial DSL and compare our model generation technique with the popular model generator Alloy.
- Specification and Program Testing | Pp. 227-245
Optimising Spectrum Based Fault Localisation for Single Fault Programs Using Specifications
David Landsberg; Youcheng Sun; Daniel Kroening
Spectrum based fault localisation determines how suspicious a line of code is with respect to being faulty as a function of a given test suite. Outstanding problems include identifying properties that the test suite should satisfy in order to improve fault localisation effectiveness subject to a given measure, and developing methods that generate these test suites efficiently.
We address these problems as follows. First, when single bug optimal measures are being used with a single-fault program, we identify a formal property that the test suite should satisfy in order to optimise fault localisation. Second, we introduce a new method which generates test data that satisfies this property. Finally, we empirically demonstrate the utility of our implementation at fault localisation on benchmarks and the tcas program, demonstrating that test suites can be generated in almost a second with a fault identified after inspecting under 1% of the program.
- Specification and Program Testing | Pp. 246-263
TCM: Test Case Mutation to Improve Crash Detection in Android
Yavuz Koroglu; Alper Sen
GUI testing of mobile applications gradually became a very important topic in the last decade with the growing mobile application market. We propose Test Case Mutation (TCM) which mutates existing test cases to produce richer test cases. These mutated test cases detect crashes that are not previously detected by existing test cases. TCM differs from the well-known Mutation Testing (MT) where mutations are inserted in the source code of an Application Under Test (AUT) to measure the quality of test cases. Whereas in TCM, we modify existing test cases and obtain new ones to increase the number of detected crashes. Android applications take the largest portion of the mobile application market. Hence, we evaluate TCM on Android by replaying mutated test cases of randomly selected AUTs from F-Droid benchmarks. We show that TCM is effective at detecting new crashes in a given time budget.
- Specification and Program Testing | Pp. 264-280
CRETE: A Versatile Binary-Level Concolic Testing Framework
Bo Chen; Christopher Havlicek; Zhenkun Yang; Kai Cong; Raghudeep Kannavara; Fei Xie
In this paper, we present , a versatile binary-level concolic testing framework, which features an open and highly extensible architecture allowing easy integration of concrete execution frontends and symbolic execution engine backends. ’s extensibility is rooted in its modular design where concrete and symbolic execution is loosely coupled only through standardized execution traces and test cases. The standardized execution traces are -based, self-contained, and composable, providing succinct and sufficient information for symbolic execution engines to reproduce the concrete executions. We have implemented with as the symbolic execution engine and multiple concrete execution frontends such as and 8051 Emulator. We have evaluated the effectiveness of on GNU programs and TianoCore utility programs for UEFI BIOS. The evaluation of programs shows that achieved comparable code coverage as directly analyzing the source code of and generally outperformed . The evaluation of TianoCore utility programs found numerous exploitable bugs that were previously unreported.
- Specification and Program Testing | Pp. 281-298
Abstract Family-Based Model Checking Using Modal Featured Transition Systems: Preservation of CTL
Aleksandar S. Dimovski
Variational systems allow effective building of many custom variants by using features (configuration options) to mark the variable functionality. In many of the applications, their quality assurance and formal verification are of paramount importance. Family-based model checking allows simultaneous verification of all variants of a variational system in a single run by exploiting the commonalities between the variants. Yet, its computational cost still greatly depends on the number of variants (often huge).
In this work, we show how to achieve efficient family-based model checking of CTL temporal properties using variability abstractions and off-the-shelf (single-system) tools. We use variability abstractions for deriving abstract family-based model checking, where the variability model of a variational system is replaced with an abstract (smaller) version of it, called , which preserves the satisfaction of both universal and existential temporal properties, as expressible in CTL. Modal featured transition systems contain two kinds of transitions, termed may and must transitions, which are defined by the conservative (over-approximating) abstractions and their dual (under-approximating) abstractions, respectively. The variability abstractions can be combined with different partitionings of the set of variants to infer suitable divide-and-conquer verification plans for the variational system. We illustrate the practicality of this approach for several variational systems.
- Family-Based Software Development | Pp. 301-318
FPH: Efficient Non-commutativity Analysis of Feature-Based Systems
Marsha Chechik; Ioanna Stavropoulou; Cynthia Disenfeld; Julia Rubin
is a promising approach for developing a collection of similar software products from a shared set of software assets. A well-recognized issue in FOSD is the analysis of : cases where the integration of multiple features would alter the behavior of one or several of them. Existing approaches to feature interaction detection require a fixed order in which the features are to be composed but do not provide guidance as to how to define this order or how to determine a relative order of a newly-developed feature w.r.t. existing ones. In this paper, we argue that classic feature non-commutativity analysis, i.e., determining when an order of composition of features affects properties of interest, can be used to complement feature interaction detection to help build orders between features and determine many interactions. To this end, we develop and evaluate Mr. Feature Potato Head (FPH) – a modular approach to non-commutativity analysis that does not rely on temporal properties and applies to systems expressed in Java. Our experiments running FPH on 29 examples show its efficiency and effectiveness.
- Family-Based Software Development | Pp. 319-336
Taming Multi-Variability of Software Product Line Transformations
Daniel Strüber; Sven Peldzsus; Jan Jürjens
Software product lines continuously undergo model transformations, such as refactorings, refinements, and translations. In product line transformations, the dedicated management of variability can help to control complexity and to benefit maintenance and performance. However, since no existing approach is geared for situations in which both the product line the transformation specification are affected by variability, substantial maintenance and performance obstacles remain. In this paper, we introduce a methodology that addresses such situations. We propose to manage variability in product lines and rule-based transformations consistently by using annotative variability mechanisms. We present a staged rule application technique for applying a variability-intensive transformation to a product line. This technique enables considerable performance benefits, as it avoids enumerating products or rules upfront. We prove the correctness of our technique and show its ability to improve performance in a software engineering scenario.
- Family-Based Software Development | Pp. 337-355