Studying the consistency of star ratings and reviews of popular free hybrid Android and iOS apps
Nowadays, many developers make their mobile apps available on multiple platforms (e.g., Android and iOS). However, maintaining several versions of a cross-platform app that is built natively (i.e., using platform-specific tools) is a complicated task. ...
Alleviating patch overfitting with automatic test generation: a study of feasibility and effectiveness for the Nopol repair system
Among the many different kinds of program repair techniques, one widely studied family of techniques is called test suite based repair. However, test suites are in essence input-output specifications and are thus typically inadequate for completely ...
Programmers do not favor lambda expressions for concurrent object-oriented code
Lambda expressions have long been state-of-the-art in the functional programming paradigm. Especially with regard to the use of higher-order functions, they provide developers with a means of defining predicate or projection functions locally, which ...
An empirical study of game reviews on the Steam platform
The steadily increasing popularity of computer games has led to the rise of a multi-billion dollar industry. Due to the scale of the computer game industry, developing a successful game is challenging. In addition, prior studies show that gamers are ...
Investigating whether and how software developers understand open source software licensing
Software provided under open source licenses is widely used, from forming high-profile stand-alone applications (e.g., Mozilla Firefox) to being embedded in commercial offerings (e.g., network routers). Despite the high frequency of use of open source ...
Understanding the behaviour of hackers while performing attack tasks in a professional setting and in a public challenge
- Mariano Ceccato,
- Paolo Tonella,
- Cataldo Basile,
- Paolo Falcarin,
- Marco Torchiano,
- Bart Coppens,
- Bjorn De Sutter
When critical assets or functionalities are included in a piece of software accessible to the end users, code protections are used to hinder or delay the extraction or manipulation of such critical assets. The process and strategy followed by hackers to ...
Syntax, predicates, idioms -- what really affects code complexity?
Program comprehension concerns the ability to understand code written by others. But not all code is the same. We use an experimental platform fashioned as an online game-like environment to measure how quickly and accurately 220 professional ...
Redundancy-free analysis of multi-revision software artifacts
Researchers often analyze several revisions of a software project to obtain historical data about its evolution. For example, they statically analyze the source code and monitor the evolution of certain metrics over multiple revisions. The time and ...
An empirical comparison of dependency network evolution in seven software packaging ecosystems
Nearly every popular programming language comes with one or more package managers. The software packages distributed by such package managers form large software ecosystems. These packaging ecosystems contain a large number of package releases that are ...
Shorter identifier names take longer to comprehend
Developers spend the majority of their time reading code, a process in which identifier names play a key role. Although many identifier naming styles exist, they often lack an empirical basis and it is not clear whether short or long identifier names ...
Effective fault localization of automotive Simulink models: achieving the trade-off between test oracle effort and fault localization accuracy
One promising way to improve the accuracy of fault localization based on statistical debugging is to increase diversity among test cases in the underlying test suite. In many practical situations, adding test cases is not a cost-free option because test ...
Querying distilled code changes to extract executable transformations
Change distilling algorithms compute a sequence of fine-grained changes that, when executed in order, transform a given source AST into a given target AST. The resulting change sequences are used in the field of mining software repositories to study ...