DevOps Team Structures: Characterization and Implications
<italic>Context</italic>: DevOps can be defined as a cultural movement to improve and accelerate the delivery of business value by making the collaboration between development and operations effective. <italic>Objective</italic>: This paper aims to help ...
A Faceted Taxonomy of Requirements Changes in Agile Contexts
<italic>Background:</italic> Originally, developers aimed to identify most software requirements upfront in software development projects. However, agile methods explicitly encourage software requirements to be changed throughout development, i.e., many ...
X-SBR: On the Use of the History of Refactorings for Explainable Search-Based Refactoring and Intelligent Change Operators
Refactoring is widely adopted nowadays in industry to restructure the code and meet high quality while preserving the external behavior. Many of the existing refactoring tools and research are based on search-based techniques to find relevant ...
Modeling Functional Similarity in Source Code With Graph-Based Siamese Networks
Code clones are duplicate code fragments that share (nearly) similar syntax or semantics. Code clone detection plays an important role in software maintenance, code refactoring, and reuse. A substantial amount of research has been conducted in the past to ...
Dependency Smells in JavaScript Projects
Dependency management in modern software development poses many challenges for developers who wish to stay up to date with the latest features and fixes whilst ensuring backwards compatibility. Project maintainers have opted for varied, and sometimes ...
Socio-Technical Grounded Theory for Software Engineering
Grounded Theory (GT), a sociological research method designed to study social phenomena, is increasingly being used to investigate the human and social aspects of software engineering (SE). However, being written by and for sociologists, GT is often ...
Verification Approach for Refactoring Transformation Rules of State-Based Models
With the increased adoption of Model-Driven Engineering (MDE), where models are being used as the primary artifact of software, it is apparent that greater attention to the quality of the models is necessary. Traditionally, refactoring is used to enhance ...
Learning to Find Usages of Library Functions in Optimized Binaries
Much software, whether beneficent or malevolent, is distributed only as binaries, sans source code. Absent source code, understanding binaries’ behavior can be quite challenging, especially when compiled under higher levels of compiler ...
Using Symbolic States to Infer Numerical Invariants
Automatically inferring invariant specifications has proven valuable in enabling a wide range of software verification and validation approaches over the past two decades. Recent approaches have shifted from using observation of concrete program states to ...
Practical Mutation Testing at Scale: A view from Google
Mutation analysis assesses a test suite’s adequacy by measuring its ability to detect small artificial faults, systematically seeded into the tested program. Mutation analysis is considered one of the strongest test-adequacy criteria. Mutation ...
Mutation Analysis for Cyber-Physical Systems: Scalable Solutions and Results in the Space Domain
On-board embedded software developed for spaceflight systems (<italic>space software</italic>) must adhere to stringent software quality assurance procedures. For example, verification and validation activities are typically performed and assessed by ...
Pots of Gold at the End of the Rainbow: What is Success for Open Source Contributors?
- Bianca Trinkenreich,
- Mariam Guizani,
- Igor Wiese,
- Tayana Conte,
- Marco Gerosa,
- Anita Sarma,
- Igor Steinmacher
Success in Open Source Software (OSS) is often perceived as an exclusively code-centric endeavor. This perception can exclude a variety of individuals with a diverse set of skills and backgrounds, in turn helping exacerbate the current diversity & ...
Accessible or Not? An Empirical Investigation of Android App Accessibility
Mobile apps provide new opportunities to people with disabilities to act independently in the world. Following the law of the US, EU, mobile OS vendors such as Google and Apple have included accessibility features in their mobile systems and provide a set ...
Deconstructing the Nature of Collaboration in Organizations Open Source Software Development: The Impact of Developer and Task Characteristics
One opportunity for organizations to participate in open source software (OSS) development is through <italic>organizations OSS</italic> (orgsOSS), a term we use to describe a group of organizations that commit resources to collectively develop OSS. This ...
Exploring the Use of Chatrooms by Developers: An Empirical Study on Slack and Gitter
Communication is critical for the software development teams to maintain project awareness, facilitate project co-ordination and avoid misunderstandings. The features offered in the chatrooms, such as private messaging, group conversations, and code ...
Any-Horizon Uniform Random Sampling and Enumeration of Constrained Scenarios for Simulation-Based Formal Verification
<italic>Model-based</italic> approaches to the verification of non-terminating Cyber-Physical Systems (CPSs) usually rely on <italic>numerical simulation</italic> of the System Under Verification (SUV) model under input scenarios of possibly varying ...
Analyzing Android Taint Analysis Tools: FlowDroid, Amandroid, and DroidSafe
Numerous static taint analysis techniques have recently been proposed for identifying information flows in mobile applications. These techniques are often optimized and evaluated on a set of synthetic benchmarks, which makes the comparison results ...
Verification of Consistency Between Process Models, Object Life Cycles, and Context-Dependent Semantic Specifications
Process models in general, and those specifying process-oriented software in particular, should be formally verified. While activity-oriented process models have been verified against object life cycles, formally specified semantic specifications of ...
<inline-formula><tex-math notation="LaTeX">${{\sf Colosseum}}$</tex-math><alternatives><mml:math><mml:mi mathvariant="sans-serif">Colosseum</mml:mi></mml:math><inline-graphic xlink:href="mondal-ieq1-3111169.gif"/></alternatives></inline-formula>: Regression Test Prioritization by Delta Displacement in Test Coverage
The problem of test-case prioritization has been pursued for over three decades now and continues to be one of the active topics in software testing research. In this paper, we focus on a code-coverage based regression test-prioritization solution (<...
How Templated Requirements Specifications Inhibit Creativity in Software Engineering
Desiderata is a general term for stakeholder needs, desires or preferences. Recent experiments demonstrate that presenting desiderata as templated requirements specifications leads to less creative solutions. However, these experiments do not establish ...
Back to the Past – Analysing Backporting Practices in Package Dependency Networks
The practice of backporting aims to bring the benefits of a bug or vulnerability fix from a higher to a lower release of a software package. When such a package adheres to semantic versioning, backports can be recognised as new releases in a lower major ...
A Variability Fault Localization Approach for Software Product Lines
Software fault localization is one of the most expensive, tedious, and time-consuming activities in program debugging. This activity becomes even much more challenging in Software Product Line (SPL) systems due to variability of failures. These unexpected ...
A Theory of Pending Schemas in Combinatorial Testing
Combinatorial Testing (CT) is an effective testing technique for detecting failures which are triggered by the interactions of various factors that influence the behaviour of a system. Although many studies in CT have designed elaborate test suites (...
The State of Serverless Applications: Collection, Characterization, and Community Consensus
- Simon Eismann,
- Joel Scheuner,
- Erwin van Eyk,
- Maximilian Schwinger,
- Johannes Grohmann,
- Nikolas Herbst,
- Cristina L. Abad,
- Alexandru Iosup
Over the last five years, all major cloud platform providers have increased their serverless offerings. Many early adopters report significant benefits for serverless-based over traditional applications, and many companies are considering moving to ...
RNN-Test: Towards Adversarial Testing for Recurrent Neural Network Systems
While massive efforts have been investigated in adversarial testing of convolutional neural networks (CNN), testing for recurrent neural networks (RNN) is still limited and leaves threats for vast sequential application domains. In this paper, we propose ...
Research on Third-Party Libraries in Android Apps: A Taxonomy and Systematic Literature Review
Third-party libraries (TPLs) have been widely used in mobile apps, which play an essential part in the entire Android ecosystem. However, TPL is a double-edged sword. On the one hand, it can ease the development of mobile apps. On the other hand, it also ...
Characterizing and Mitigating Self-Admitted Technical Debt in Build Systems
Technical Debt is a metaphor used to describe the situation in which long-term software artifact quality is traded for short-term goals in software projects. In recent years, the concept of self-admitted technical debt (SATD) was proposed, which focuses ...