CT-IoT: a combinatorial testing-based path selection framework for effective IoT testing
Testing Internet of Things (IoT) systems is challenging. This is not only because of the various aspects of IoT systems, such as software, hardware, and network that need to be tested, but also because of the unexpected issues caused by a large ...
Inter-team communication in large-scale co-located software engineering: a case study
Large-scale software engineering is a collaborative effort where teams need to communicate to develop software products. Managers face the challenge of how to organise work to facilitate necessary communication between teams and individuals. This ...
An empirical investigation of command-line customization
The interactive command line, also known as the shell, is a prominent mechanism used extensively by a wide range of software professionals (engineers, system administrators, data scientists, etc.). Shell customizations can therefore provide ...
Practitioner’s view of the success factors for software outsourcing partnership formation: an empirical exploration
Software Outsourcing Partnership (SOP) is a client-vendor relationship focused solely on mutual trust and dedication that achieves mutually beneficial objectives. Often, a well-established outsourcing relationship may be converted into outsourcing ...
Learning how to search: generating effective test cases through adaptive fitness function selection
Search-based test generation is guided by feedback from one or more fitness functions—scoring functions that judge solution optimality. Choosing informative fitness functions is crucial to meeting the goals of a tester. Unfortunately, many goals—...
Analysis of a many-objective optimization approach for identifying microservices from legacy systems
- Wesley K. G. Assunção,
- Thelma Elita Colanzi,
- Luiz Carvalho,
- Alessandro Garcia,
- Juliana Alves Pereira,
- Maria Julia de Lima,
- Carlos Lucena
The expensive maintenance of legacy systems leads companies to migrate such systems to modern architectures. Microservice architectural style has become a trend to modernize monolithic legacy systems. A microservice architecture consists of small, ...
Software testing and Android applications: a large-scale empirical study
These days, over three billion users rely on mobile applications (a.k.a. apps) on a daily basis to access high-speed connectivity and all kinds of services it enables, from social to emergency needs. Having high-quality apps is therefore a vital ...
Gamification in software engineering: the mediating role of developer engagement and job satisfaction
Gamification seeks to encourage behavior of participants by borrowing elements of games, such as scoring points. Few rigorous studies exist of gamification in software organizations, and several questions have remained unanswered, for example, ...
Analysing app reviews for software engineering: a systematic literature review
App reviews found in app stores can provide critically valuable information to help software engineers understand user requirements and to design, debug, and evolve software products. Over the last ten years, a vast amount of research has been ...
Test case selection and prioritization using machine learning: a systematic literature review
Regression testing is an essential activity to assure that software code changes do not adversely affect existing functionalities. With the wide adoption of Continuous Integration (CI) in software projects, which increases the frequency of running ...
TraceSim: An Alignment Method for Computing Stack Trace Similarity
- Irving Muller Rodrigues,
- Aleksandr Khvorov,
- Daniel Aloise,
- Roman Vasiliev,
- Dmitrij Koznov,
- Eraldo Rezende Fernandes,
- George Chernishev,
- Dmitry Luciv,
- Nikita Povarov
Software systems can automatically submit crash reports to a repository for investigation when program failures occur. A significant portion of these crash reports are duplicate, i.e., they are caused by the same software issue. Therefore, if the ...
Smoke testing for machine learning: simple tests to discover severe bugs
Machine learning is nowadays a standard technique for data analysis within software applications. Software engineers need quality assurance techniques that are suitable for these new kinds of systems. Within this article, we discuss the question ...
Two N-of-1 self-trials on readability differences between anonymous inner classes (AICs) and lambda expressions (LEs) on Java code snippets
In Java, lambda expressions (LEs) were introduced at a time where the similar language construct anonymous inner class (AIC) already existed for years. But while LEs became quite popular in mainstream programming languages in general, their ...
Reuse and maintenance practices among divergent forks in three software ecosystems
With the rise of social coding platforms that rely on distributed version control systems, software reuse is also on the rise. Many software developers leverage this reuse by creating variants through forking, to account for different customer ...
A study of gender in user reviews on the Google Play Store
User reviews that are posted on the Google Play Store provide app developers with important information such as bug reports, feature requests, and user experience. Developers should maintain their apps while taking user feedback into account to ...
An empirical study on self-admitted technical debt in Dockerfiles
In software development, ad hoc solutions that are intentionally implemented by developers are called self-admitted technical debt (SATD). Because the existence of SATD spreads poor implementations, it is necessary to remove it as soon as ...
An empirical study of the effectiveness of IR-based bug localization for large-scale industrial projects
Bug localization, which refers to finding buggy files for a given bug report, is tedious and time-consuming for practical projects with tens of millions of lines of code. Recently, many information retrieval (IR)-based bug localization (IRBL) ...
An empirical study on release notes patterns of popular apps in the Google Play Store
Release notes of a new mobile release provide valuable information for app users about the updated functionality of an app. Moreover, app developers can use the release notes to inform users about the resolution of a previously reported issue in ...
Mining Python fix patterns via analyzing fine-grained source code changes
Many code changes are inherently repetitive, and researchers employ repetitiveness of the code changes to generate bug fix patterns. Automatic Program Repair (APR) can automatically detect and fix bugs, thus helping developers to improve the ...
Modeling Performance of Microservices Systems with Growth Theory
The microservices architectural style is gaining momentum in the IT industry. This style does not guarantee that a target system can continuously meet acceptable performance levels. The ability to study the violations of performance ...
Propagating frugal user feedback through closeness of code dependencies to improve IR-based traceability recovery
Traceability recovery captures trace links among different software artifacts (e.g., requirements and code) when two artifacts cover the same part of system functionalities. These trace links provide important support for developers in software ...
Problems with SZZ and features: An empirical study of the state of practice of defect prediction data collection
The SZZ algorithm is the de facto standard for labeling bug fixing commits and finding inducing changes for defect prediction data. Recent research uncovered potential problems in different parts of the SZZ algorithm. Most defect prediction ...
Path context augmented statement and network for learning programs
Applying machine learning techniques in program analysis has attracted much attention. Recent research efforts in detecting code clones and classifying code have shown that neural models based on abstract syntax trees (ASTs) can better represent ...
Uniform and scalable sampling of highly configurable systems
Many analyses on configurable software systems are intractable when confronted with colossal and highly-constrained configuration spaces. These analyses could instead use statistical inference, where a tractable sample accurately predicts results ...
An extended study on applicability and performance of homogeneous cross-project defect prediction approaches under homogeneous cross-company effort estimation situation
Software effort estimation (SEE) models have been studied for decades. One of serious but typical situations for data-oriented models is the availability of datasets for training models. Cross-company software effort estimation (CCSEE) is a ...
A teamwork effectiveness model for agile software development
Teamwork is crucial in software development, particularly in agile development teams which are cross-functional and where team members work intensively together to develop a cohesive software solution. Effective teamwork is not easy; prior studies ...