20 research outputs found
Carving differential unit test cases from system test cases
Unit test cases are focused and efficient. System tests are effective at exercising complex usage patterns. Differential unit tests (DUT) are a hybrid of unit and system tests. They are generated by carving the system components, while executing a system test case, that influence the behavior of the target unit, and then re-assembling those components so that the unit can be exercised as it was by the system test. We conjecture that DUTs retain some of the advantages of unit tests, can be automatically and inexpensively generated, and have the potential for revealing faults related to intricate system executions. In this paper we present a framework for automatically carving and replaying DUTs that accounts for a wide-variety of strategies, we implement an instance of the framework with several techniques to mitigate test cost and enhance flexibility, and we empirically assess the efficacy of carving and replaying DUTs. 1
On Quantitative Comparison of Chemical Reaction Network Models
Chemical reaction networks (CRNs) provide a convenient language for modelling
a broad variety of biological systems. These models are commonly studied with
respect to the time series they generate in deterministic or stochastic
simulations. Their dynamic behaviours are then analysed, often by using
deterministic methods based on differential equations with a focus on the
steady states. Here, we propose a method for comparing CRNs with respect to
their behaviour in stochastic simulations. Our method is based on using the
flux graphs that are delivered by stochastic simulations as abstract
representations of their dynamic behaviour. This allows us to compare the
behaviour of any two CRNs for any time interval, and define a notion of
equivalence on them that overlaps with graph isomorphism at the lowest level of
representation. The similarity between the compared CRNs can be quantified in
terms of their distance. The results can then be used to refine the models or
to replace a larger model with a smaller one that produces the same behaviour
or vice versa.Comment: In Proceedings HCVS/PERR 2019, arXiv:1907.0352
A component-based collaboration infrastructure
Groupware applications allow geographically distributed users to collaborate
on shared tasks. However, it is widely recognized that groupware applications are
expensive to build due to coordination services and group dynamics, neither of which
is present in single-user applications. Previous collaboration transparency systems
reuse existing single-user applications as a whole for collaborative work, often at
the price of inflexible coordination. Previous collaboration awareness systems, on
the other hand, provide reusable coordination services and multi-user widgets, but
often with two weaknesses: (1) the multi-user widgets provided are special-purpose
and limited in number, while no guidelines are provided for developing multi-user
interface components in general; and (2) they often fail to reach the desired level of flexibility in coordination by tightly binding shared data and coordination services.
In this dissertation, we propose a component-based approach to developing group-
ware applications that addresses the above two problems. To address the first prob-
lem, we propose a shared component model for modeling data and graphic user inter-
face(GUI) components of groupware applications. As a result, the myriad of existing
single-user components can be re-purposed as shared GUI or data components. An
adaptation tool is developed to assist the adaptation process.
To address the second problem, we propose a coordination service framework
which systematically model the interaction between user, data, and coordination
protocols. Due to the clean separation of data and control and the capability to dynamically "glue" them together, the framework provides reusable services such as
data distribution, persistence, and adaptable consistency control. The association
between data and coordination services can be dynamically changed at runtime.
An Evolvable and eXtensible Environment for Collaboration (EXEC) is built to
evaluate the proposed approach. In our experiments, we demonstrate two benefits of
our approach: (1) a group of common groupware features adapted from existing single-
user components are plugged in to extend the functionalities of the environment itself;
and (2)coordination services can be dynamically attached to and detached from these
shared components at different granules to support evolving collaboration needs
A component-based collaboration infrastructure
Groupware applications allow geographically distributed users to collaborate
on shared tasks. However, it is widely recognized that groupware applications are
expensive to build due to coordination services and group dynamics, neither of which
is present in single-user applications. Previous collaboration transparency systems
reuse existing single-user applications as a whole for collaborative work, often at
the price of inflexible coordination. Previous collaboration awareness systems, on
the other hand, provide reusable coordination services and multi-user widgets, but
often with two weaknesses: (1) the multi-user widgets provided are special-purpose
and limited in number, while no guidelines are provided for developing multi-user
interface components in general; and (2) they often fail to reach the desired level of flexibility in coordination by tightly binding shared data and coordination services.
In this dissertation, we propose a component-based approach to developing group-
ware applications that addresses the above two problems. To address the first prob-
lem, we propose a shared component model for modeling data and graphic user inter-
face(GUI) components of groupware applications. As a result, the myriad of existing
single-user components can be re-purposed as shared GUI or data components. An
adaptation tool is developed to assist the adaptation process.
To address the second problem, we propose a coordination service framework
which systematically model the interaction between user, data, and coordination
protocols. Due to the clean separation of data and control and the capability to dynamically "glue" them together, the framework provides reusable services such as
data distribution, persistence, and adaptable consistency control. The association
between data and coordination services can be dynamically changed at runtime.
An Evolvable and eXtensible Environment for Collaboration (EXEC) is built to
evaluate the proposed approach. In our experiments, we demonstrate two benefits of
our approach: (1) a group of common groupware features adapted from existing single-
user components are plugged in to extend the functionalities of the environment itself;
and (2)coordination services can be dynamically attached to and detached from these
shared components at different granules to support evolving collaboration needs
Machine Learning Algorithm for the Scansion of Old Saxon Poetry
Several scholars designed tools to perform the automatic scansion of poetry in many languages, but none of these tools
deal with Old Saxon or Old English. This project aims to be a first attempt to create a tool for these languages. We
implemented a Bidirectional Long Short-Term Memory (BiLSTM) model to perform the automatic scansion of Old Saxon
and Old English poems. Since this model uses supervised learning, we manually annotated the Heliand manuscript, and
we used the resulting corpus as labeled dataset to train the model. The evaluation of the performance of the algorithm
reached a 97% for the accuracy and a 99% of weighted average for precision, recall and F1 Score. In addition, we tested
the model with some verses from the Old Saxon Genesis and some from The Battle of Brunanburh, and we observed that
the model predicted almost all Old Saxon metrical patterns correctly misclassified the majority of the Old English input
verses
Managing Smartphone Testbeds with SmartLab
The explosive number of smartphones with ever growing sensing and computing capabilities have brought a paradigm shift to many traditional domains of the computing field. Re-programming smartphones and instrumenting them for application testing and data gathering at scale is currently a tedious and time-consuming process that poses significant logistical challenges. In this paper, we make three major contributions: First, we propose a comprehensive architecture, coined SmartLab1, for managing a cluster of both real and virtual smartphones that are either wired to a private cloud or connected over a wireless link. Second, we propose and describe a number of Android management optimizations (e.g., command pipelining, screen-capturing, file management), which can be useful to the community for building similar functionality into their systems. Third, we conduct extensive experiments and microbenchmarks to support our design choices providing qualitative evidence on the expected performance of each module comprising our architecture. This paper also overviews experiences of using SmartLab in a research-oriented setting and also ongoing and future development efforts