20 research outputs found
The Quantum Frontier of Software Engineering: A Systematic Mapping Study
Context. Quantum computing is becoming a reality, and quantum software
engineering (QSE) is emerging as a new discipline to enable developers to
design and develop quantum programs.
Objective. This paper presents a systematic mapping study of the current
state of QSE research, aiming to identify the most investigated topics, the
types and number of studies, the main reported results, and the most studied
quantum computing tools/frameworks. Additionally, the study aims to explore the
research community's interest in QSE, how it has evolved, and any prior
contributions to the discipline before its formal introduction through the
Talavera Manifesto.
Method. We searched for relevant articles in several databases and applied
inclusion and exclusion criteria to select the most relevant studies. After
evaluating the quality of the selected resources, we extracted relevant data
from the primary studies and analyzed them.
Results. We found that QSE research has primarily focused on software
testing, with little attention given to other topics, such as software
engineering management. The most commonly studied technology for techniques and
tools is Qiskit, although, in most studies, either multiple or none specific
technologies were employed. The researchers most interested in QSE are
interconnected through direct collaborations, and several strong collaboration
clusters have been identified. Most articles in QSE have been published in
non-thematic venues, with a preference for conferences.
Conclusions. The study's implications are providing a centralized source of
information for researchers and practitioners in the field, facilitating
knowledge transfer, and contributing to the advancement and growth of QSE
A critical comparison on six static analysis tools : Detection, agreement, and precision
Background: Developers use Static Analysis Tools (SATs) to control for potential quality issues in source code, including defects and technical debt. Tool vendors have devised quite a number of tools, which makes it harder for practitioners to select the most suitable one for their needs. To better support developers, researchers have been conducting several studies on SATs to favor the understanding of their actual capabilities. Aims: Despite the work done so far, there is still a lack of knowledge regarding (1) what is their agreement, and (2) what is the precision of their recommendations. We aim at bridging this gap by proposing a large-scale comparison of six popular SATs for Java projects: Better Code Hub, CheckStyle, Coverity Scan, FindBugs, PMD, and SonarQube. Methods: We analyze 47 Java projects applying 6 SATs. To assess their agreement, we compared them by manually analyzing – at line – and class-level — whether they identify the same issues. Finally, we evaluate the precision of the tools against a manually-defined ground truth. Results: The key results show little to no agreement among the tools and a low degree of precision. Conclusion: Our study provides the first overview on the agreement among different tools as well as an extensive analysis of their precision that can be used by researchers, practitioners, and tool vendors to map the current capabilities of the tools and envision possible improvements.publishedVersionPeer reviewe
CATTO: Just-in-time Test Case Selection and Execution
Regression testing wants to prevent that errors, which have already been corrected once, creep back into a system that has been updated. A naĂŻve approach consists of re-running the entire test suite (TS) against the changed version of the software under test (SUT). However, this might result in a time-and resource-consuming process; e.g., when dealing with large and/or complex SUTs and TSs. To avoid this problem, Test Case Selection (TCS) approaches can be used. This kind of approaches build a temporary TS comprising only those test cases (TCs) that are relevant to the changes made to the SUT, so avoiding executing unnecessary TCs. In this paper, we introduce CATTO (Commit Adaptive Tool for Test suite Optimization), a tool implementing a TCS strategy for SUTs written in Java as well as a wrapper to allow developers to use CATTO within IntelliJ IDEA and to execute CATTO just-in-time before committing changes to the repository. We conducted a preliminary evaluation of CATTO on seven open-source Java projects to evaluate the reduction of the test-suite size, the loss of fault-revealing TCs, and the loss of fault-detection capability. The results suggest that CATTO can be of help to developers when performing TCS. The video demo and the documentation of the tool is available at: https://catto-tool.github.io/acceptedVersionPeer reviewe
The Relation of Test-Related Factors to Software Quality: A Case Study on Apache Systems
AbstractTesting represents a crucial activity to ensure software quality. Recent studies have shown that test-related factors (e.g., code coverage) can be reliable predictors of software code quality, as measured by post-release defects. While these studies provided initial compelling evidence on the relation between tests and post-release defects, they considered different test-related factors separately: as a consequence, there is still a lack of knowledge of whether these factors are still good predictors when considering all together. In this paper, we propose a comprehensive case study on how test-related factors relate to production code quality in Apache systems. We first investigated how the presence of tests relates to post-release defects; then, we analyzed the role played by the test-related factors previously shown as significantly related to post-release defects. The key findings of the study show that, when controlling for other metrics (e.g., size of the production class), test-related factors have a limited connection to post-release defects
PANDORA: Continuous Mining Software Repository and Dataset Generation
acceptedVersionPeer reviewe
OSSARA : Abandonment Risk Assessment for Embedded Open Source Components
Accompanied by the upsurging adoption of open source software (OSS) in a wide range of complex software-intensive systems, practitioners often raise multiple concerns about their maintainability and sustainability. A system that embeds unmaintained components is fragile towards various risks which could result in dire consequences. To address such concerns, this paper introduces the OSS Abandonment Risk Assessment (OSSARA) model, which evaluates the abandonment risk by synthesizing the prediction of potential abandonment of the embedded OSS components.publishedVersionPeer reviewe
On the Adequacy of Static Analysis Warnings with Respect to Code Smell Prediction
publishedVersionPeer reviewe