• IEEE Trans. Softw. Eng. (IF 6.112) Pub Date : 2020-09-17
Yanjie Jiang; Hui Liu; Jiaqi Zhu; Lu Zhang

Presents corrections to author information in the above named paper.

更新日期：2020-09-18
• IEEE Trans. Softw. Eng. (IF 6.112) Pub Date : 2018-07-10
Luiz Eduardo G. Martins; Tony Gorschek

We have conducted in-depth interviews with experienced practitioners in the Safety-Critical Systems (SCS) domain in order to investigate several aspects related to requirements specification and safety analysis for SCS. We interviewed 19 practitioners from eleven SCS companies in different domains with the intention of verifying which approaches they use day-to-day, and what their perceptions are in

更新日期：2020-04-22
• IEEE Trans. Softw. Eng. (IF 6.112) Pub Date : 2018-07-25
Bart Meyers; Hans Vangheluwe; Joachim Denil; Rick Salay

In Domain-Specific Modelling (DSM) the general goal is to provide Domain-Specific Modelling Languages (DSMLs) for domain users to model systems using concepts and notations they are familiar with, in their problem domain. Verifying whether a model satisfies a set of requirements is considered to be an important challenge in DSM, but is nevertheless mostly neglected. We present a solution in the form

更新日期：2020-04-22
• IEEE Trans. Softw. Eng. (IF 6.112) Pub Date : 2018-07-31
Tingting Yu; Zunchen Huang; Chao Wang

As software evolves, test suite augmentation techniques may be used to identify which part of the program needs to be tested due to code changes and how to generate these new test cases for regression testing. However, existing techniques focus exclusively on sequential software, without considering concurrent software in which multiple threads may interleave with each other during the execution and

更新日期：2020-04-22
• IEEE Trans. Softw. Eng. (IF 6.112) Pub Date : 2018-07-31
Davide Falessi; Justin Roll; Jin L.C. Guo; Jane Cleland-Huang

As new requirements are introduced and implemented in a software system, developers must identify the set of source code classes which need to be changed. Therefore, past effort has focused on predicting the set of classes impacted by a requirement. In this paper, we introduce and evaluate a new type of information based on the intuition that the set of requirements which are associated with historical

更新日期：2020-04-22
• IEEE Trans. Softw. Eng. (IF 6.112) Pub Date : 2018-08-06
Norman Peitek; Janet Siegmund; Sven Apel; Christian Kästner; Chris Parnin; Anja Bethmann; Thomas Leich; Gunter Saake; André Brechmann

Program comprehension is an important, but hard to measure cognitive process. This makes it difficult to provide suitable programming languages, tools, or coding conventions to support developers in their everyday work. Here, we explore whether functional magnetic resonance imaging (fMRI) is feasible for soundly measuring program comprehension. To this end, we observed 17 participants inside an fMRI

更新日期：2020-04-22
• IEEE Trans. Softw. Eng. (IF 6.112) Pub Date : 2018-06-12
Jéssyka Vilela; Jaelson Castro; Luiz Eduardo G. Martins; Tony Gorschek

Context: Software is an important part in safety-critical system (SCS) development since it is becoming a major source of hazards. Requirements-related hazards have been associated with many accidents and safety incidents. Requirements issues tend to be mitigated in companies with high processes maturity levels since they do their business in a systematic, consistent and proactive approach. However

更新日期：2020-03-19
• IEEE Trans. Softw. Eng. (IF 6.112) Pub Date : 2018-06-13
Francesco Basciani; Mattia D'Emidio; Davide Di Ruscio; Daniele Frigioni; Ludovico Iovino; Alfonso Pierantonio

Conventional wisdom on model transformations in Model-Driven Engineering (MDE) suggests that they are crucial components in modeling environments to achieve superior automation, whether it be refactoring, simulation, or code generation. While their relevance is well-accepted, model transformations are challenging to design, implement, and verify because of the inherent complexity that they must encode

更新日期：2020-03-19
• IEEE Trans. Softw. Eng. (IF 6.112) Pub Date : 2018-06-26
Roberto Natella; Stefan Winter; Domenico Cotroneo; Neeraj Suri

Critical systems that integrate software components (e.g., from third-parties) need to address the risk of residual software defects in these components. Software fault injection is an experimental solution to gauge such risk. Many error models have been proposed for emulating faulty components, such as by injecting error codes and exceptions, or by corrupting data with bit-flips, boundary values,

更新日期：2020-03-19
• IEEE Trans. Softw. Eng. (IF 6.112) Pub Date : 2018-07-06
Huayao Wu; Changhai Nie; Justyna Petke; Yue Jia; Mark Harman

We present an empirical comparison of three test generation techniques, namely, Combinatorial Testing (CT), Random Testing (RT) and Adaptive Random Testing (ART), under different test scenarios. This is the first study in the literature to account for the (more realistic) testing setting in which the tester may not have complete information about the parameters and constraints that pertain to the system

更新日期：2020-03-19
• IEEE Trans. Softw. Eng. (IF 6.112) Pub Date : 2018-07-06
Maurice H. Ter Beek; Axel Legay; Alberto Lluch Lafuente; Andrea Vandin

This paper presents our approach to the quantitative modeling and analysis of highly (re)configurable systems, such as software product lines. Different combinations of the optional features of such a system give rise to combinatorially many individual system variants. We use a formal modeling language that allows us to model systems with probabilistic behavior, possibly subject to quantitative feature

更新日期：2020-03-19
• IEEE Trans. Softw. Eng. (IF 6.112) Pub Date : 2018-05-31
César França; Fabio Q. B. da Silva; Helen Sharp

Context : The proper management of people can help software organisations to achieve higher levels of success. However, the limited attention paid to the appropriate use of theories to underpin the research in this area leaves it unclear how to deal with human aspects of software engineers, such as motivation and satisfaction. Objectives : This article aims to expose what drives the motivation and

更新日期：2020-02-14
• IEEE Trans. Softw. Eng. (IF 6.112) Pub Date : 2018-06-05
Xintao Niu; Changhai Nie; Jeff Y. Lei; Hareton Leung; Xiaoyin Wang

Combinatorial testing (CT) has been proven effective in revealing the failures caused by the interaction of factors that affect the behavior of a system. The theory of Minimal Failure-Causing Schema (MFS) has been proposed to isolate the cause of a failure after CT. Most algorithms that aim to identify MFS focus on handling a single fault in the System Under Test (SUT). However, we argue that multiple

更新日期：2020-02-14
• IEEE Trans. Softw. Eng. (IF 6.112) Pub Date : 2018-06-06
Julian Thomé; Lwin Khin Shar; Domenico Bianculli; Lionel Briand

Malicious users can attack Web applications by exploiting injection vulnerabilities in the source code. This work addresses the challenge of detecting injection vulnerabilities in the server-side code of Java Web applications in a scalable and effective way. We propose an integrated approach that seamlessly combines security slicing with hybrid constraint solving; the latter orchestrates automata-based

更新日期：2020-02-14
• IEEE Trans. Softw. Eng. (IF 6.112) Pub Date : 2018-06-07
Kevin Moran; Carlos Bernal-Cárdenas; Michael Curcio; Richard Bonett; Denys Poshyvanyk

It is common practice for developers of user-facing software to transform a mock-up of a graphical user interface (GUI) into code. This process takes place both at an application's inception and in an evolutionary context as GUI changes keep pace with evolving features. Unfortunately, this practice is challenging and time-consuming. In this paper, we present an approach that automates this process

更新日期：2020-02-14
• IEEE Trans. Softw. Eng. (IF 6.112) Pub Date : 2018-05-10
Davide Fucci; Giuseppe Scanniello; Simone Romano; Natalia Juristo

We present a quasi-experiment to investigate whether, and to what extent, sleep deprivation impacts the performance of novice software developers using the agile practice of test-first development (TFD). We recruited 45 undergraduates, and asked them to tackle a programming task. Among the participants, 23 agreed to stay awake the night before carrying out the task, while 22 slept normally. We analyzed

更新日期：2020-01-10
• IEEE Trans. Softw. Eng. (IF 6.112) Pub Date : 2018-05-15
Mathieu Nassif; Christoph Treude; Martin P. Robillard

Informal language and the absence of a standard taxonomy for software technologies make it difficult to reliably analyze technology trends on discussion forums and other on-line venues. We propose an automated approach called $\mathrm{Witt}$ Witt for the categorization of software technologies (an expanded version of the hypernym discovery problem). $\mathrm{Witt}$ Witt takes as input a phrase describing

更新日期：2020-01-10
• IEEE Trans. Softw. Eng. (IF 6.112) Pub Date : 2018-05-18
Keheliya Gallaba; Shane McIntosh

Continuous Integration (CI) is a popular practice where software systems are automatically compiled and tested as changes appear in the version control system of a project. Like other software artifacts, CI specifications require maintenance effort. Although there are several service providers like Travis CI offering various CI features, it is unclear which features are being (mis)used. In this paper

更新日期：2020-01-10
• IEEE Trans. Softw. Eng. (IF 6.112) Pub Date : 2018-06-13
Malvika Rao; David F. Bacon; David C. Parkes; Margo I. Seltzer

An important question in a software economy is how to incentivize deep rather than shallow fixes. A deep fix corrects the root cause of a bug instead of suppressing the symptoms. This paper initiates the study of the problem of incentive design for open workflows in fixing code. We model the dynamics of the software ecosystem and introduce subsumption mechanisms . These mechanisms only make use of

更新日期：2020-01-10
• IEEE Trans. Softw. Eng. (IF 6.112) Pub Date : 2018-06-01
Simone Romano; Christopher Vendome; Giuseppe Scanniello; Denys Poshyvanyk

Dead code is a bad smell and it appears to be widespread in open-source and commercial software systems. Surprisingly, dead code has received very little empirical attention from the software engineering research community. In this paper, we present a multi-study investigation with an overarching goal to study, from the perspective of researchers and developers, when and why developers introduce dead

更新日期：2020-01-10
• IEEE Trans. Softw. Eng. (IF 6.112) Pub Date : 2018-07-25
Christoph Czepa; Uwe Zdun

Temporal properties are important in a wide variety of domains for different purposes. For example, they can be used to avoid architectural drift in software engineering or to support the regulatory compliance of business processes. In this work, we study the understandability of three major temporal property representations: (1) Linear Temporal Logic (LTL) is a formal and well-established logic that

更新日期：2020-01-10
• IEEE Trans. Softw. Eng. (IF 6.112) Pub Date : 2018-04-16
Sven Amann; Hoan Anh Nguyen; Sarah Nadi; Tien N. Nguyen; Mira Mezini

Application Programming Interfaces (APIs) often have usage constraints, such as restrictions on call order or call conditions. API misuses , i.e., violations of these constraints, may lead to software crashes, bugs, and vulnerabilities. Though researchers developed many API-misuse detectors over the last two decades, recent studies show that API misuses are still prevalent. Therefore, we need to understand

更新日期：2020-01-04
• IEEE Trans. Softw. Eng. (IF 6.112) Pub Date : 2018-04-24
Osama Al-Baik; James Miller

In the past decades, software organizations have been relying on implementing process improvement methods to advance quality, productivity, and predictability of their development and maintenance efforts. However, these methods have proven to be challenging to implement in many situations, and when implemented, their benefits are often not sustained. Commonly, the workforce requires guidance during

更新日期：2020-01-04
• IEEE Trans. Softw. Eng. (IF 6.112) Pub Date : 2018-04-30
Meng Yan; Xin Xia; Emad Shihab; David Lo; Jianwei Yin; Xiaohu Yang

Technical debt (TD) is a metaphor to describe the situation where developers introduce suboptimal solutions during software development to achieve short-term goals that may affect the long-term software quality. Prior studies proposed different techniques to identify TD, such as identifying TD through code smells or by analyzing source code comments. Technical debt identified using comments is known

更新日期：2020-01-04
• IEEE Trans. Softw. Eng. (IF 6.112) Pub Date : 2018-05-15
Qinbao Song; Yuchen Guo; Martin Shepperd

Context: Software defect prediction (SDP) is an important challenge in the field of software engineering, hence much research work has been conducted, most notably through the use of machine learning algorithms. However, class-imbalance typified by few defective components and many non-defective ones is a common occurrence causing difficulties for these methods. Imbalanced learning aims to deal with

更新日期：2020-01-04
• IEEE Trans. Softw. Eng. (IF 6.112) Pub Date : 2018-05-08
Gerardo Canfora; Fabio Martinelli; Francesco Mercaldo; Vittoria Nardone; Antonella Santone; Corrado Aaron Visaggio

With the increasing diffusion of mobile technologies, nowadays mobile devices represent an irreplaceable tool to perform several operations, from posting a status on a social network to transfer money between bank accounts. As a consequence, mobile devices store a huge amount of private and sensitive information and this is the reason why attackers are developing very sophisticated techniques to extort

更新日期：2020-01-04
• IEEE Trans. Softw. Eng. (IF 6.112) Pub Date : 2018-05-17
Hanefi Mercan; Cemal Yilmaz; Kamer Kaya

We present a configurable, hybrid, and parallel covering array constructor, called CHiP. CHiP is parallel in that it utilizes vast amount of parallelism provided by graphics processing units (GPUs). CHiP is hybrid in that it bundles the bests of two construction approaches for computing covering arrays; a metaheuristic search-based approach for efficiently covering a large portion of the required combinations

更新日期：2020-01-04
• IEEE Trans. Softw. Eng. (IF 6.112) Pub Date : 2018-10-23
Zhiyuan Wan; Xin Xia; Ahmed E. Hassan; David Lo; Jianwei Yin; Xiaohu Yang

Defect prediction has been an active research area for over four decades. Despite numerous studies on defect prediction, the potential value of defect prediction in practice remains unclear. To address this issue, we performed a mixed qualitative and quantitative study to investigate what practitioners think, behave and expect in contrast to research findings when it comes to defect prediction. We

更新日期：2018-10-23
• IEEE Trans. Softw. Eng. (IF 6.112) Pub Date : 2018-10-19
Leandro Nahabedian; Victor Braberman; Nicolás D'Ippolito; Shinichi Honiden; Jeff Kramer; Kenji Tei; Sebastián Uchitel

Discrete event controllers are at the heart of many software systems that require continuous operation. Changing these controllers at runtime to cope with changes in its execution environment or system requirements change is a challenging open problem. In this paper we address the problem of dynamic update of controllers in reactive systems. We present a general approach to specifying correctness criteria

更新日期：2018-10-19
• IEEE Trans. Softw. Eng. (IF 6.112) Pub Date : 2018-10-17
Chakkrit Tantithamthavorn; Ahmed E. Hassan; Kenichi Matsumoto

Defect models that are trained on class imbalanced datasets (i.e., the proportion of defective and clean modules is not equally represented) are highly susceptible to produce inaccurate prediction models. Prior research compares the impact of class rebalancing techniques on the performance of defect models but arrives at contradictory conclusions due to the use of different choice of datasets, classification

更新日期：2018-10-17
• IEEE Trans. Softw. Eng. (IF 6.112) Pub Date : 2018-10-16
Ming Wen; Rongxin Wu; Shing-Chi Cheung

Software defect prediction, which aims to identify defective modules, can assist developers in finding bugs and prioritizing limited quality assurance resources. Various features to build defect prediction models have been proposed and evaluated. Among them, process metrics are one important category. Yet, existing process metrics are mainly encoded manually from change histories and ignore the sequential

更新日期：2018-10-16
• IEEE Trans. Softw. Eng. (IF 6.112) Pub Date : 2018-10-16
Lili Wei; Yepang Liu; Shing-Chi Cheung; Huaxun Huang; Xuan Lu; Xuanzhe Liu

Android ecosystem is heavily fragmented. The numerous combinations of different device models and operating system versions make it impossible for Android app developers to exhaustively test their apps, and thus various compatibility issues arise. Unfortunately, little is known on the characteristics of such fragmentation-induced compatibility issues. No mature tools exist to help developers quickly

更新日期：2018-10-16
• IEEE Trans. Softw. Eng. (IF 6.112) Pub Date : 2018-10-16
Xiaochen Li; He Jiang; Yasutaka Kamei; Xin Chen

Developers increasingly rely on text matching tools to analyze the relation between natural language words and APIs. However, semantic gaps, namely textual mismatches between words and APIs, negatively affect these tools. Previous studies have transformed words or APIs into low-dimensional vectors for matching; however, inaccurate results were obtained due to the failure of modeling words and APIs

更新日期：2018-10-16
• IEEE Trans. Softw. Eng. (IF 6.112) Pub Date : 2018-10-16
Qiao Huang; Xin Xia; David Lo; Gail C. Murphy

Developers frequently discuss aspects of the systems they are developing online. The comments they post to discussions form a rich information source about the system. Intention mining, a process introduced by Di Sorbo et al., classifies sentences in developer discussions to enable further analysis. As one example of use, intention mining has been used to help build various recommenders for software

更新日期：2018-10-16
• IEEE Trans. Softw. Eng. (IF 6.112) Pub Date : 2018-10-16
Zhi Quan Zhou; Liqun Sun; Tsong Yueh Chen; Dave Towey

Modern information technology paradigms, such as online services and off-the-shelf products, often involve a wide variety of users with different or even conflicting objectives. Every software output may satisfy some users, but may also fail to satisfy others. Furthermore, users often do not know the internal working mechanisms of the systems. This situation is quite different from bespoke software

更新日期：2018-10-16
• IEEE Trans. Softw. Eng. (IF 6.112) Pub Date : 2018-10-09
Christopher S. Corley; Kostadin Damevski; Nicholas A. Kraft

The standard approach to applying text retrieval models to code repositories is to train models on documents representing program elements. However, code changes lead to model obsolescence and to the need to retrain the model from the latest snapshot. To address this, we previously introduced an approach that trains a model on documents representing changesets from a repository and demonstrated its

更新日期：2018-10-09
• IEEE Trans. Softw. Eng. (IF 6.112) Pub Date : 2018-10-08
Yuan Yuan; Wolfgang Banzhaf

Automated program repair is the problem of automatically fixing bugs in programs in order to significantly reduce the debugging costs and improve the software quality. To address this problem, test-suite based repair techniques regard a given test suite as an oracle and modify the input buggy program to make the entire test suite pass. GenProg is well recognized as a prominent repair approach of this

更新日期：2018-10-08
• IEEE Trans. Softw. Eng. (IF 6.112) Pub Date : 2018-10-08
Shaowei Wang; Tse-Hsun Chen; Ahmed E. Hassan

To ensure the quality of its shared knowledge, Stack Overflow encourages users to revise answers through a badge system, which is based on quantitative measures (e.g., a badge is awarded after revising more than 500 answers). Prior studies show that badges can positively steer the user behavior on Stack Overflow (e.g., increasing user participation). However, little is known whether revision-related

更新日期：2018-10-08
• IEEE Trans. Softw. Eng. (IF 6.112) Pub Date : 2018-10-01
Vahid Alizadeh; Marouane Kessentini; Mohamed Wiem Mkaouer; Mel Ocinneide; Ali Ouni; Yuanfang Cai

Successful software products evolve through a process of continual change. However, this process may weaken the design of the software and make it unnecessarily complex, leading to significantly reduced productivity and increased fault-proneness. Refactoring improves the software design while preserving overall functionality and behavior, and is an important technique in managing the growing complexity

更新日期：2018-10-01
• IEEE Trans. Softw. Eng. (IF 6.112) Pub Date : 2018-10-01
Ann Barcomb; Andreas Kaufmann; Dirk Riehle; Klaas-Jan Stol; Brian Fitzgerald

Free/Libre and Open Source Software (FLOSS) communities are composed, in part, of volunteers, many of whom contribute infrequently. However, these infrequent volunteers contribute to the sustainability of FLOSS projects, and should ideally be encouraged to continue participating, even if they cannot be persuaded to contribute regularly. Infrequent contributions are part of a trend which has been widely

更新日期：2018-10-01
• IEEE Trans. Softw. Eng. (IF 6.112) Pub Date : 2018-10-01
Menghao Li; Pei Wang; Wei Wang; Shuai Wang; Dinghao Wu; Jian Liu; Rui Xue; Wei Huo; Wei Zou

With the thriving of mobile app markets, third-party libraries are pervasively used in Android applications. The libraries provide functionalities such as advertising, location, and social networking services, making app development much more productive. However, the spread of vulnerable and harmful third-party libraries can also hurt the mobile ecosystem, leading to various security problems. Therefore

更新日期：2018-10-01
• IEEE Trans. Softw. Eng. (IF 6.112) Pub Date : 2018-10-01
Yu Zhou; Changzhi Wang; Xin Yan; Taolue Chen; Sebastiano Panichella; Harald Gall

Application Programming Interfaces (APIs) represent key tools for software developers to build complex software systems. However, several studies have revealed that even major API providers tend to have incomplete or inconsistent API documentation. This can severely hamper the API comprehension and, as a consequence, the quality of the software built on them. In this paper, we propose DRONE ( D etect

更新日期：2018-10-01
• IEEE Trans. Softw. Eng. (IF 6.112) Pub Date : 2018-09-26
Xiaodong Zhang; Zijiang Yang; Qinghua Zheng; Yu Hao; Pei Liu; Ting Liu

With the advent of multicore processors, there is a great need to write parallel programs to take advantage of parallel computing resources. However, due to the nondeterminism of parallel execution, the malware behaviors sensitive to thread scheduling are extremely difficult to detect. Dynamic taint analysis is widely used in security problems. By serializing a multithreaded execution and then propagating

更新日期：2018-09-26
• IEEE Trans. Softw. Eng. (IF 6.112) Pub Date : 2018-09-20
Vivek Nair; Zhe Yu; Tim Menzies; Norbert Siegmund; Sven Apel

Finding good configurations of a software system is often challenging since the number of configuration options can be large. Software engineers often make poor choices about configuration or, even worse, they usually use a sub-optimal configuration in production, which leads to inadequate performance. To assist engineers in finding the better configuration, this article introduces Flash , a sequential

更新日期：2018-09-20
• IEEE Trans. Softw. Eng. (IF 6.112) Pub Date : 2018-09-19
Kristín Fjóla Tómasdóttir; Maurício Aniche; Arie Van Deursen

A linter is a static analysis tool that warns software developers about possible code errors or violations to coding standards. By using such a tool, errors can be surfaced early in the development process when they are cheaper to fix. For a linter to be successful, it is important to understand the needs and challenges of developers when using a linter. In this paper, we examine developers’ perceptions

更新日期：2018-09-19
• IEEE Trans. Softw. Eng. (IF 6.112) Pub Date : 2018-09-19
Gleiph Ghiotto; Leonardo Murta; Márcio Barros; André van der Hoek

When multiple developers change a software system in parallel, these concurrent changes need to be merged to all appear in the software being developed. Numerous merge techniques have been proposed to support this task, but none of them can fully automate the merge process. Indeed, it has been reported that as much as 10 to 20 percent of all merge attempts result in a merge conflict, meaning that a

更新日期：2018-09-19
• IEEE Trans. Softw. Eng. (IF 6.112) Pub Date : 2018-09-14
Weiqin Zou; David Lo; Zhenyu Chen; Xin Xia; Yang Feng; Baowen Xu

Bug reports play an important role in the process of debugging and fixing bugs. To reduce the burden of bug report managers and facilitate the process of bug fixing, a great amount of software engineering research has been invested toward automated bug report management techniques. However, the verdict is still open whether such techniques are actually required and applicable outside the domain of

更新日期：2018-09-14
• IEEE Trans. Softw. Eng. (IF 6.112) Pub Date : 2018-09-10
Yulei Sui; Jingling Xue

We present Supa , a value-flow-based demand-driven flow- and context-sensitive pointer analysis with strong updates for C and C++ programs. Supa enables computing points-to information via value-flow refinement, in environments with small time and memory budgets. We formulate Supa by solving a graph-reachability problem on an inter-procedural value-flow graph representing a program's def-use chains

更新日期：2018-09-10
• IEEE Trans. Softw. Eng. (IF 6.112) Pub Date : 2018-09-10
Safwat Hassan; Cor-Paul Bezemer; Ahmed E. Hassan

Developers always focus on delivering high-quality updates to improve, or maintain the rating of their apps. Prior work has studied user reviews by analyzing all reviews of an app. However, this app-level analysis misses the point that users post reviews to provide their feedback on a certain update. For example, two bad updates of an app with a history of good updates would not be spotted using app-level

更新日期：2018-09-10
• IEEE Trans. Softw. Eng. (IF 6.112) Pub Date : 2018-09-06
Ying Meng; Gregory Gay; Michael Whalen

Test adequacy criteria are widely used to guide test creation. However, many of these criteria are sensitive to statement structure or the choice of test oracle. This is because such criteria ensure that execution reaches the element of interest, but impose no constraints on the execution path after this point. We are not guaranteed to observe a failure just because a fault is triggered. To address

更新日期：2018-09-06
• IEEE Trans. Softw. Eng. (IF 6.112) Pub Date : 2018-09-05
Yanjie Jiang; Hui Liu; Jiaqi Zhu; Lu Zhang

Abbreviations are widely used in identifiers. However, they have severe negative impact on program comprehension and IR-based software maintenance activities, e.g., concept location, software clustering, and recovery of traceability links. Consequently, a number of efficient approaches have been proposed successfully to expand abbreviations in identifiers. Most of such approaches rely heavily on dictionaries

更新日期：2018-09-05
• IEEE Trans. Softw. Eng. (IF 6.112) Pub Date : 2018-09-03
Lisa Nguyen Quang Do; Stefan Krüger; Patrick Hill; Karim Ali; Eric Bodden

Static analysis is increasingly used by companies and individual code developers to detect and fix bugs and security vulnerabilities. As programs grow more complex, the analyses have to support new code concepts, frameworks and libraries. However, static-analysis code itself is also prone to bugs. While more complex analyses are written and used in production systems every day, the cost of debugging

更新日期：2018-09-03
• IEEE Trans. Softw. Eng. (IF 6.112) Pub Date : 2018-09-03
Vladimir Kovalenko; Nava Tintarev; Evgeny Pasynkov; Christian Bird; Alberto Bacchelli

Selecting reviewers for code changes is a critical step for an efficient code review process. Recent studies propose automated reviewer recommendation algorithms to support developers in this task. However, the evaluation of recommendation algorithms, when done apart from their target systems and users (i.e., code review tools and change authors), leaves out important aspects: perception of recommendations

更新日期：2018-09-03
• IEEE Trans. Softw. Eng. (IF 6.112) Pub Date : 2018-08-31
Dario Di Nucci; Annibale Panichella; Andy Zaidman; Andrea De Lucia

Regression testing is performed during maintenance activities to assess whether the unchanged parts of a software behave as intended. To reduce its cost, test case prioritization techniques can be used to schedule the execution of the available test cases to increase their ability to reveal regression faults earlier. Optimal test ordering can be determined using various techniques, such as greedy algorithms

更新日期：2018-08-31
• IEEE Trans. Softw. Eng. (IF 6.112) Pub Date : 2018-08-30
Mohammed SAYAGH; Noureddine Kerzazi; Bram Adams; Fabio Petrillo

Modern software applications are adapted to different situations (e.g., memory limits, enabling/disabling features, database credentials) by changing the values of configuration options, without any source code modifications. According to several studies, this flexibility is expensive as configuration failures represent one of the most common types of software failures. They are also hard to debug

更新日期：2018-08-30
• IEEE Trans. Softw. Eng. (IF 6.112) Pub Date : 2018-08-17
Xintao Niu; Changhai Nie; Hareton Leung; Yu Lei; Xiaoyin Wang; Jiaxi Xu; Yan Wang

Combinatorial testing (CT) seeks to detect potential faults caused by various interactions of factors that can influence the software systems. When applying CT, it is a common practice to first generate a set of test cases to cover each possible interaction and then to identify the failure-inducing interaction after a failure is detected. Although this conventional procedure is simple and forthright

更新日期：2018-08-17
• IEEE Trans. Softw. Eng. (IF 6.112) Pub Date : 2018-08-17
Laleh Sh. Ghandehari; Yu Lei; Raghu Kacker; Richard Kuhn; Tao Xie; David Kung

Combinatorial testing has been shown to be a very effective strategy for software testing. After a failure is detected, the next task is to identify one or more faulty statements in the source code that have caused the failure. In this paper, we present a fault localization approach, called BEN, which produces a ranking of statements in terms of their likelihood of being faulty by leveraging the result

更新日期：2018-08-17
• IEEE Trans. Softw. Eng. (IF 6.112) Pub Date : 2018-08-09
Adrian Santos; Omar Gómez; Natalia Juristo

Context: Families of experiments (i.e., groups of experiments with the same goal) are on the rise in Software Engineering (SE). Selecting unsuitable aggregation techniques to analyze families may undermine their potential to provide in-depth insights from experiments’ results. Objectives: Identifying the techniques used to aggregate experiments’ results within families in SE. Raising awareness of the

更新日期：2018-08-09
• IEEE Trans. Softw. Eng. (IF 6.112) Pub Date : 2018-08-07
Yuanrui Fan; Xin Xia; David Lo; Ahmed E. Hassan

Developers use bug reports to triage and fix bugs. When triaging a bug report, developers must decide whether the bug report is valid (i.e., a real bug). A large amount of bug reports are submitted every day, with many of them end up being invalid reports. Manually determining valid bug report is a difficult and tedious task. Thus, an approach that can automatically analyze the validity of a bug report

更新日期：2018-08-07
• IEEE Trans. Softw. Eng. (IF 6.112) Pub Date : 2018-08-07