2 research outputs found
Catalog of Energy Patterns for Mobile Applications
Software engineers make use of design patterns for reasons that range from
performance to code comprehensibility. Several design patterns capturing the
body of knowledge of best practices have been proposed in the past, namely
creational, structural and behavioral patterns. However, with the advent of
mobile devices, it becomes a necessity a catalog of design patterns for energy
efficiency. In this work, we inspect commits, issues and pull requests of 1027
Android and 756 iOS apps to identify common practices when improving energy
efficiency. This analysis yielded a catalog, available online, with 22 design
patterns related to improving the energy efficiency of mobile apps. We argue
that this catalog might be of relevance to other domains such as Cyber-Physical
Systems and Internet of Things. As a side contribution, an analysis of the
differences between Android and iOS devices shows that the Android community is
more energy-aware.Comment: Journal of Empirical Software Engineerin
Comprehending Test Code: An Empirical Study
Developers spend a large portion of their time and effort on comprehending
source code. While many studies have investigated how developers approach these
comprehension tasks and what factors influence their success, less is known
about how developers comprehend test code specifically, despite the undisputed
importance of testing. In this paper, we report on the results of an empirical
study with 44 developers to understand which factors influence developers when
comprehending Java test code. We measured three dependent variables: the total
time spent reading a test suite, the ability to identify the overall purpose of
a test suite, and the ability to produce additional test cases to extend a test
suite. The main findings of our study, with several implications for future
research and practitioners, are that (i) prior knowledge of the software
project decreases the total reading time, (ii) experience with Java affects the
proportion of time spent on the Arrange and Assert sections of test cases,
(iii) experience with Java and prior knowledge of the software project
positively influence the ability to produce additional test cases of certain
categories, and (iv) experience with automated tests is an influential factor
towards understanding and extending an automated test suite.Comment: to appear as full paper at ICSME 2019, the 35th International
Conference on Software Maintenance and Evolutio