113 research outputs found
A Systematic Mapping Study of Empirical Studies on Software Cloud Testing Methods
Context: Software has become more complicated, dynamic, and asynchronous than ever, making testing more challenging. With the increasing interest in the development of cloud computing, and increasing demand for cloud-based services, it has become essential to systematically review the research in the area of software testing in the context of cloud environments. Objective: The purpose of this systematic mapping study is to provide an overview of the empirical research in the area of software cloud-based testing, in order to build a classification scheme. We investigate functional and non-functional testing methods, the application of these methods, and the purpose of testing using these methods. Method: We searched for electronically available papers in order to find relevant literature and to extract and analyze data about the methods used. Result: We identified 69 primary studies reported in 75 research papers published in academic journals, conferences, and edited books. Conclusion: We found that only a minority of the studies combine rigorous statistical analysis with quantitative results. The majority of the considered studies present early results, using a single experiment to evaluate their proposed solution
Facing the Giant: a Grounded Theory Study of Decision-Making in Microservices Migrations
Background: Microservices migrations are challenging and expensive projects
with many decisions that need to be made in a multitude of dimensions. Existing
research tends to focus on technical issues and decisions (e.g., how to split
services). Equally important organizational or business issues and their
relations with technical aspects often remain out of scope or on a high level
of abstraction. Aims: In this study, we aim to holistically chart the
decision-making that happens on all dimensions of a migration project towards
microservices (including, but not limited to, the technical dimension). Method:
We investigate 16 different migration cases in a grounded theory interview
study, with 19 participants that recently migrated towards microservices. This
study strongly focuses on the human aspects of a migration, through
stakeholders and their decisions. Results: We identify 3 decision-making
processes consisting of 22decision-points and their alternative options. The
decision-points are related to creating stakeholder engagement and assessing
feasibility, technical implementation, and organizational restructuring.
Conclusions: Our study provides an initial theory of decision-making in
migrations to microservices. It also outfits practitioners with a roadmap of
which decisions they should be prepared to make and at which point in the
migration.Comment: 11 pages, 7 figure
On Wasted Contributions: Understanding the Dynamics of Contributor-Abandoned Pull Requests
Pull-based development has enabled numerous volunteers to contribute to
open-source projects with fewer barriers. Nevertheless, a considerable amount
of pull requests (PRs) with valid contributions are abandoned by their
contributors, wasting the effort and time put in by both the contributors and
maintainers. To better understand the underlying dynamics of
contributor-abandoned PRs, we conduct a mixed-methods study using both
quantitative and qualitative methods. We curate a dataset consisting of 265,325
PRs including 4,450 abandoned ones from ten popular and mature GitHub projects
and measure 16 features characterizing PRs, contributors, review processes, and
projects. Using statistical and machine learning techniques, we find that
complex PRs, novice contributors, and lengthy reviews have a higher probability
of abandonment and the rate of PR abandonment fluctuates alongside the
projects' maturity or workload. To identify why contributors abandon their PRs,
we also manually examine a random sample of 354 abandoned PRs. We observe that
the most frequent abandonment reasons are related to the obstacles faced by
contributors, followed by the hurdles imposed by maintainers during the review
process. Finally, we survey the top core maintainers of the studied projects to
understand their perspectives on dealing with PR abandonment and on our
findings.Comment: Manuscript accepted for publication in ACM Transactions on Software
Engineering and Methodology (TOSEM
Exploring Automated Code Evaluation Systems and Resources for Code Analysis: A Comprehensive Survey
The automated code evaluation system (AES) is mainly designed to reliably
assess user-submitted code. Due to their extensive range of applications and
the accumulation of valuable resources, AESs are becoming increasingly popular.
Research on the application of AES and their real-world resource exploration
for diverse coding tasks is still lacking. In this study, we conducted a
comprehensive survey on AESs and their resources. This survey explores the
application areas of AESs, available resources, and resource utilization for
coding tasks. AESs are categorized into programming contests, programming
learning and education, recruitment, online compilers, and additional modules,
depending on their application. We explore the available datasets and other
resources of these systems for research, analysis, and coding tasks. Moreover,
we provide an overview of machine learning-driven coding tasks, such as bug
detection, code review, comprehension, refactoring, search, representation, and
repair. These tasks are performed using real-life datasets. In addition, we
briefly discuss the Aizu Online Judge platform as a real example of an AES from
the perspectives of system design (hardware and software), operation
(competition and education), and research. This is due to the scalability of
the AOJ platform (programming education, competitions, and practice), open
internal features (hardware and software), attention from the research
community, open source data (e.g., solution codes and submission documents),
and transparency. We also analyze the overall performance of this system and
the perceived challenges over the years
Given Enough Eyeballs, all Bugs are Shallow - A Literature Review for the Use of Crowdsourcing in Software Testing
Over the last years, the use of crowdsourcing has gained a lot of attention in the domain of software engineering. One key aspect of software development is the testing of software. Literature suggests that crowdsourced software testing (CST) is a reliable and feasible tool for manifold kinds of testing. Research in CST made great strides; however, it is mostly unstructured and not linked to traditional software testing practice and terminology. By conducting a literature review of traditional and crowdsourced software testing literature, this paper delivers two major contributions. First, it synthesizes the fields of crowdsourcing research and traditional software testing. Second, the paper gives a comprehensive overview over findings in CST-research and provides a classification into different software testing types
A First Look at Android Applications in Google Play related to Covid-19
Due to the convenience of access-on-demand to information and business
solutions, mobile apps have become an important asset in the digital world. In
the context of the Covid-19 pandemic, app developers have joined the response
effort in various ways by releasing apps that target different user bases
(e.g., all citizens or journalists), offer different services (e.g., location
tracking or diagnostic-aid), provide generic or specialized information, etc.
While many apps have raised some concerns by spreading misinformation or even
malware, the literature does not yet provide a clear landscape of the different
apps that were developed. In this study, we focus on the Android ecosystem and
investigate Covid-related Android apps. In a best-effort scenario, we attempt
to systematically identify all relevant apps and study their characteristics
with the objective to provide a First taxonomy of Covid-related apps,
broadening the relevance beyond the implementation of contact tracing. Overall,
our study yields a number of empirical insights that contribute to enlarge the
knowledge on Covid-related apps: (1) Developer communities contributed rapidly
to the Covid-19, with dedicated apps released as early as January 2020; (2)
Covid-related apps deliver digital tools to users (e.g., health diaries), serve
to broadcast information to users (e.g., spread statistics), and collect data
from users (e.g., for tracing); (3) Covid-related apps are less complex than
standard apps; (4) they generally do not seem to leak sensitive data; (5) in
the majority of cases, Covid-related apps are released by entities with past
experience on the market, mostly official government entities or public health
organizations.Comment: Accepted in Empirical Software Engineering under reference:
EMSE-D-20-00211R
Project Final Report Use and Dissemination of Foreground
This document is the final report on use and dissemination of foreground, part of the CONNECT final report. The document provides the lists of: publications, dissemination activities, and exploitable foregroun
A Reengineering Approach to Reconciling Requirements and Implementation for Context - Aware Web Services Systems
In modern software development, the gap between software requirements and implementation is not always conciliated. Typically, for Web services-based context-aware systems, reconciling this gap is even harder. The aim of this research is to explore how software reengineering can facilitate the reconciliation between requirements and implementation for the said systems. The underlying research in this thesis comprises the following three components.
Firstly, the requirements recovery framework underpins the requirements elicitation approach on the proposed reengineering framework. This approach consists of three stages: 1) Hypothesis generation, where a list of hypothesis source code information is generated; 2) Segmentation, where the hypothesis list is grouped into segments; 3) Concept binding, where the segments turn into a list of concept bindings linking regions of source code.
Secondly, the derived viewpoints-based context-aware service requirements model is proposed to fully discover constraints, and the requirements evolution model is developed to maintain and specify the requirements evolution process for supporting context-aware services evolution.
Finally, inspired by context-oriented programming concepts and approaches, ContXFS is implemented as a COP-inspired conceptual library in F#, which enables developers to facilitate dynamic context adaption. This library along with context-aware requirements analyses mitigate the development of the said systems to a great extent, which in turn, achieves reconciliation between requirements and implementation
- …