55,410 research outputs found
To the Attention of Mobile Software Developers: Guess What, Test your App!
Software testing is an important phase in the software development life-cycle
because it helps in identifying bugs in a software system before it is shipped
into the hand of its end users. There are numerous studies on how developers
test general-purpose software applications. The idiosyncrasies of mobile
software applications, however, set mobile apps apart from general-purpose
systems (e.g., desktop, stand-alone applications, web services). This paper
investigates working habits and challenges of mobile software developers with
respect to testing. A key finding of our exhaustive study, using 1000 Android
apps, demonstrates that mobile apps are still tested in a very ad hoc way, if
tested at all. However, we show that, as in other types of software, testing
increases the quality of apps (demonstrated in user ratings and number of code
issues). Furthermore, we find evidence that tests are essential when it comes
to engaging the community to contribute to mobile open source software. We
discuss reasons and potential directions to address our findings. Yet another
relevant finding of our study is that Continuous Integration and Continuous
Deployment (CI/CD) pipelines are rare in the mobile apps world (only 26% of the
apps are developed in projects employing CI/CD) --- we argue that one of the
main reasons is due to the lack of exhaustive and automatic testing.Comment: Journal of Empirical Software Engineerin
An Analysis of Bug Distribution in Object Oriented Systems
We introduced a new approach to describe Java software as graph, where nodes
represent a Java file - called compilation unit (CU) - and an edges represent a
relations between them. The software system is characterized by the degree
distribution of the graph properties, like in-or-out links, as well as by the
distribution of Chidamber and Kemerer metrics computed on its CUs. Every CU can
be related to one or more bugs during its life. We find a relationship among
the software system and the bugs hitting its nodes. We found that the
distribution of some metrics, and the number of bugs per CU, exhibit a
power-law behavior in their tails, as well as the number of CUs influenced by a
specific bug. We examine the evolution of software metrics across different
releases to understand how relationships among CUs metrics and CUs faultness
change with time.Comment: 17 pages, 8 figures, 10 table
Software systems as complex networks: structure, function, and evolvability of software collaboration graphs
Software systems emerge from mere keystrokes to form intricate functional
networks connecting many collaborating modules, objects, classes, methods, and
subroutines. Building on recent advances in the study of complex networks, I
have examined software collaboration graphs contained within several
open-source software systems, and have found them to reveal scale-free,
small-world networks similar to those identified in other technological,
sociological, and biological systems. I present several measures of these
network topologies, and discuss their relationship to software engineering
practices. I also present a simple model of software system evolution based on
refactoring processes which captures some of the salient features of the
observed systems. Some implications of object-oriented design for questions
about network robustness, evolvability, degeneracy, and organization are
discussed in the wake of these findings.Comment: 16 pages, 8 figures; changed content, corrected typo
Diversity, Productivity, and Growth of Open Source Developer Communities
The open source development model has become a paradigm shift from
traditional in-house/closed-source software development model, with many
successes. Traditionally, open source projects were characterized essentially
by their individual volunteer developers. Such tradition has changed
significantly with the participation of many organizations in particular.
However, there exists a knowledge gap concerning how open source developer
communities evolve. In this paper, we present some observations on open source
developer communities. In particular, we analyze git repositories of 20
well-known open source projects, with over 3 million commit activities in
total. The analysis has been carried out in three respects, productivity,
diversity and growth using the Spearman's rank correlation coefficient,
diversity index and the Gompertz/logistic curves, respectively. We find out
that (a) the Spearman's rank correlation coefficient between active
contributors and commit activities reveals how changes in the size of the
developer community impacts the productivity of the community; (b) the
diversity index of an open source developer community reveals the structure of
the community; and (c) the growth of open source developer communities can be
described using different phases of growth curves as in many organic matters.Comment: 10 pages, 6 figure
Advancing Economic Research on the Free and Open Source Software Mode of Production
Early contributions to the academic literature on free/libre and open source software (F/LOSS) movements have been directed primarily at identifying the motivations that account for the sustained and often intensive involvement of many people in this non-contractual and unremunerated productive activity. This issue has been particularly prominent in economistsâ contributions to the literature, and it reflects a view that widespread voluntary participation in the creation of economically valuable goods that is to be distributed without charge constitutes a significant behavioral anomaly. Undoubtedly, the motivations of F/LOSS developers deserve to be studied more intensively, but not because their behaviors are unique, or historically unprecedented. In this essay we argue that other aspects of the âopen sourceâ phenomenon are just as intriguing, if not more so, and possibly are also more consequential topics for economic analysis. We describe the re-focusing and re-direction of empirical and theoretical research in an integrated international project (based at Stanford University/SIEPR) that aims at better understanding a set of less widely discussed topics: the modes of organization, governance and performance of F/LOSS development -- viewed as a collective distributed mode of production.. We discuss of the significance of tackling those questions in order to assess the potentialities of the âopen source way of workingâ as a paradigm for a broader class of knowledge and information- goods production, and conclude with proposals for the trajectory of future research along that line.
The Impact of Human Factors on the Participation Decision of Reviewers in Modern Code Review
Modern Code Review (MCR) plays a key role in software quality practices. In
MCR process, a new patch (i.e., a set of code changes) is encouraged to be
examined by reviewers in order to identify weaknesses in source code prior to
an integration into main software repositories. To mitigate the risk of having
future defects, prior work suggests that MCR should be performed with
sufficient review participation. Indeed, recent work shows that a low number of
participated reviewers is associated with poor software quality. However, there
is a likely case that a new patch still suffers from poor review participation
even though reviewers were invited. Hence, in this paper, we set out to
investigate the factors that are associated with the participation decision of
an invited reviewer. Through a case study of 230,090 patches spread across the
Android, LibreOffice, OpenStack and Qt systems, we find that (1) 16%-66% of
patches have at least one invited reviewer who did not respond to the review
invitation; (2) human factors play an important role in predicting whether or
not an invited reviewer will participate in a review; (3) a review
participation rate of an invited reviewers and code authoring experience of an
invited reviewer are highly associated with the participation decision of an
invited reviewer. These results can help practitioners better understand about
how human factors associate with the participation decision of reviewers and
serve as guidelines for inviting reviewers, leading to a better inviting
decision and a better reviewer participation.Comment: 43 pages, under submission at Springer Journal of Empirical Software
Engineering (EMSE
Scale-free law: network science and copyright
No description supplie
Exploring Software Reusability Metrics with Q&A Forum Data
Question and answer (Q&A) forums contain valuable information regarding
software reuse, but they can be challenging to analyse due to their
unstructured free text. Here we introduce a new approach (LANLAN), using word
embeddings and machine learning, to harness information available in
StackOverflow. Specifically, we consider two different kinds of user
communication describing difficulties encountered in software reuse: 'problem
reports' point to potential defects, while 'support requests' ask for
clarification on software usage. Word embeddings were trained on 1.6 billion
tokens from StackOverflow and applied to identify which Q&A forum messages
(from two large open source projects: Eclipse and Bioconductor) correspond to
problem reports or support requests. LANLAN achieved an area under the receiver
operator curve (AUROC) of over 0.9; it can be used to explore the relationship
between software reusability metrics and difficulties encountered by users, as
well as predict the number of difficulties users will face in the future. Q&A
forum data can help improve understanding of software reuse, and may be
harnessed as an additional resource to evaluate software reusability metrics
The LaTeX project: A case study of open-source software
This is a case study of TeX, a typesetting software that was developed by Donald E. Knuth in the late 70's. Released with an open source license, it has become a reference in scientific publishing. TeX is now used to typeset and publish much of the world's scientific literature in physics and mathematics. This case study is part of a wider effort by academics to understand the open-source phenomenon. That development model is similar to the organization of the production of knowledge in academia; there is no set organization with a hierarchy, but free collaboration that is coordinated spontaneously and winds up generating complex products that are the property of all who can understand its functioning. The case study was led by gathering qualitative data via interviews with TeX developers and quantitative data on the TeX community -- the program's code, the software that is part of the TeX distribution, the newsgroups dedicated to the software, and many other indicators of the evolution and activity in that open-source project. The case study is aimed at economists who want to develop models to understand and analyze the open-source phenomenon. It is also geared towards policy-makers who would like to encourage or regulate open- source, and towards open-source developers who wonder what are the efficient strategies to make an open-source project successful.TeX, LaTeX, case study, open source, software, innovation, organisational structure, economic history, knowledge production, knowledge diffusion.
Empirical study of software quality evolution in open source projects using agile practices
We analyse the time evolution of two open source Java projects: Eclipse and
Netbeans, both developed following agile practices, though to a different
extent. Our study is centered on quality analysis of the systems, measured as
defects absence, and its relation with software metrics evolution. The two
projects are described through a software graph in which nodes are represented
by Java files and edges describe the existing relation between nodes. We
propose a metrics suite for Java files based on Chidamber and Kemerer suite,
and use it to study software evolution and its relationship with bug count.Comment: 12 pages, 6 figures 2 table
- âŠ