38 research outputs found
Exploring the Security Awareness of the Python and JavaScript Open Source Communities
Software security is undoubtedly a major concern in today's software
engineering. Although the level of awareness of security issues is often high,
practical experiences show that neither preventive actions nor reactions to
possible issues are always addressed properly in reality. By analyzing large
quantities of commits in the open-source communities, we can categorize the
vulnerabilities mitigated by the developers and study their distribution,
resolution time, etc. to learn and improve security management processes and
practices. With the help of the Software Heritage Graph Dataset, we
investigated the commits of two of the most popular script languages -- Python
and JavaScript -- projects collected from public repositories and identified
those that mitigate a certain vulnerability in the code (i.e. vulnerability
resolution commits). On the one hand, we identified the types of
vulnerabilities (in terms of CWE groups) referred to in commit messages and
compared their numbers within the two communities. On the other hand, we
examined the average time elapsing between the publish date of a vulnerability
and the first reference to it in a commit. We found that there is a large
intersection in the vulnerability types mitigated by the two communities, but
most prevalent vulnerabilities are specific to language. Moreover, neither the
JavaScript nor the Python community reacts very fast to appearing security
vulnerabilities in general with only a couple of exceptions for certain CWE
groups.Comment: 17th International Conference on Mining Software Repositorie
Overcoming Language Dichotomies: Toward Effective Program Comprehension for Mobile App Development
Mobile devices and platforms have become an established target for modern
software developers due to performant hardware and a large and growing user
base numbering in the billions. Despite their popularity, the software
development process for mobile apps comes with a set of unique, domain-specific
challenges rooted in program comprehension. Many of these challenges stem from
developer difficulties in reasoning about different representations of a
program, a phenomenon we define as a "language dichotomy". In this paper, we
reflect upon the various language dichotomies that contribute to open problems
in program comprehension and development for mobile apps. Furthermore, to help
guide the research community towards effective solutions for these problems, we
provide a roadmap of directions for future work.Comment: Invited Keynote Paper for the 26th IEEE/ACM International Conference
on Program Comprehension (ICPC'18
On energy debt: Managing consumption on evolving software
This paper introduces the concept of energy debt: a new metric, reflecting the implied cost in terms of energy consumption over time, of choosing a flawed implementation of a software system rather than a more robust, yet possibly time consuming, approach. A flawed implementation is considered to contain code smells, known to have a negative influence on the energy consumption. Similar to technical debt, if energy debt is not properly addressed, it can accumulate an energy "interest". This interest will keep increasing as new versions of the software are released, and eventually reach a point where the interest will be higher than the initial energy debt. Addressing the issues/smells at such a point can remove energy debt, at the cost of having already consumed a significant amount of energy which can translate into high costs. We present all underlying concepts of energy debt, bridging the connection with the existing concept of technical debt and show how to compute the energy debt through a motivational example.This work is financed by National Funds through the Portuguese funding agency, FCT - Fundação para a Ciência e a Tecnologia, within project UIDB/50014/2020. The first author is also financed by FCT grant
SFRH/BD/132485/2017. The last author is also supported by operation Centro-01-0145-FEDER-000019 - C4 - Centro de Competências em Cloud Computing, cofinanced by the European Regional Development Fund (ERDF) through the Programa Operacional Regional do Centro (Centro 2020), in the scope of the Sistema de Apoio à Investigação Científica e Tecnológica - Programas Integrados de IC&DT
E-Debitum: managing software energy debt
35th IEEE/ACM International Conference on Automated Software Engineering Workshops (ASEW ’20) - International Workshop on Sustainable Software Engineering (SUSTAIN-SE)This paper extends previous work on the concept of a new software energy metric: Energy Debt. This metric is a reflection on the implied cost, in terms of energy consumption over time, of choosing an energy flawed software implementation over a more robust and efficient, yet time consuming, approach.
This paper presents the implementation a SonarQube tool called E-Debitum which calculates the energy debt of Android applications throughout their versions. This plugin uses a robust, well defined, and extendable smell catalogue based on current green software literature, with each smell defining the potential energy savings. To conclude, an experimental validation of E-Debitum was executed on 3 popular Android applications with various releases, showing how their energy debt fluctuated throughout releases.This work is financed by National Funds through the Portuguese
funding agency, FCT -Fundação para a Ciência e a Tecnologia within
project UIDB/50014/2020
Latin Americans show wide-spread Converso ancestry and imprint of local Native ancestry on physical appearance
Historical records and genetic analyses indicate that Latin Americans trace their ancestry mainly to the intermixing (admixture) of Native Americans, Europeans and Sub-Saharan Africans. Using novel haplotype-based methods, here we infer sub-continental ancestry in over 6,500 Latin Americans and evaluate the impact of regional ancestry variation on physical appearance. We find that Native American ancestry components in Latin Americans correspond geographically to the present-day genetic structure of Native groups, and that sources of non-Native ancestry, and admixture timings, match documented migratory flows. We also detect South/East Mediterranean ancestry across Latin America, probably stemming mostly from the clandestine colonial migration of Christian converts of non-European origin (Conversos). Furthermore, we find that ancestry related to highland (Central Andean) versus lowland (Mapuche) Natives is associated with variation in facial features, particularly nose morphology, and detect significant differences in allele frequencies between these groups at loci previously associated with nose morphology in this sample.Instituto Multidisciplinario de Biología Celula
Latin Americans show wide-spread Converso ancestry and imprint of local Native ancestry on physical appearance
Historical records and genetic analyses indicate that Latin Americans trace their ancestry mainly to the intermixing (admixture) of Native Americans, Europeans and Sub-Saharan Africans. Using novel haplotype-based methods, here we infer sub-continental ancestry in over 6,500 Latin Americans and evaluate the impact of regional ancestry variation on physical appearance. We find that Native American ancestry components in Latin Americans correspond geographically to the present-day genetic structure of Native groups, and that sources of non-Native ancestry, and admixture timings, match documented migratory flows. We also detect South/East Mediterranean ancestry across Latin America, probably stemming mostly from the clandestine colonial migration of Christian converts of non-European origin (Conversos). Furthermore, we find that ancestry related to highland (Central Andean) versus lowland (Mapuche) Natives is associated with variation in facial features, particularly nose morphology, and detect significant differences in allele frequencies between these groups at loci previously associated with nose morphology in this sample.Instituto Multidisciplinario de Biología Celula
IV. Hymenoptera
Mutation testing has been widely used to assess the fault-detection
effectiveness of a test suite, as well as to guide test case generation or
prioritization. Empirical studies have shown that, while mutants are generally
representative of real faults, an effective application of mutation testing
requires "traditional" operators designed for programming languages to be
augmented with operators specific to an application domain and/or technology.
This paper proposes MDroid+, a framework for effective mutation testing of
Android apps. First, we systematically devise a taxonomy of 262 types of
Android faults grouped in 14 categories by manually analyzing 2,023 software
artifacts from different sources (e.g., bug reports, commits). Then, we
identified a set of 38 mutation operators, and implemented an infrastructure to
automatically seed mutations in Android apps with 35 of the identified
operators. The taxonomy and the proposed operators have been evaluated in terms
of stillborn/trivial mutants generated and their capacity to represent real
faults in Android apps, as compared to other well know mutation tools.Comment: Accepted at 11TH Joint Meeting of the European Software Engineering
Conference and the ACM SIGSOFT Symposium on the Foundations of Software
Engineering (ESEC/FSE 17
Auto-completing bug reports for Android applications
The modern software development landscape has seen a shift in focus toward mobile applications as tablets and smart-phones near ubiquitous adoption. Due to this trend, the complexity of these “apps ” has been increasing, making de-velopment and maintenance challenging. Additionally, cur-rent bug tracking systems are not able to effectively support construction of reports with actionable information that di-rectly lead to a bug’s resolution. To address the need for an improved reporting system, we introduce a novel solution, called FUSION, that helps users auto-complete reproduction steps in bug reports for mobile apps. FUSION links user-provided information to program ar-tifacts extracted through static and dynamic analysis per-formed before testing or release. The approach that FU-SION employs is generalizable to other current mobile soft-ware platforms, and constitutes a new method by which off-device bug reporting can be conducted for mobile software projects. We evaluated FUSION by conducting a study that quantitatively and qualitatively measured the user experi-ence of the system for both reporting and reproducing bugs, as well as the quality of the bug reports it produces. In a study involving 28 participants we applied FUSION to sup-port the maintenance tasks of reporting and reproducing defects on 15 real-world bugs found in 14 open source An-droid apps. Our results demonstrate that FUSION allows for more reliable reproduction of bugs from reports com-pared to traditional bug tracking systems by aiding users in reporting more detailed application-specific information