108 research outputs found
Computing refactorings of state machines
For behavior models expressed in statechart-like formalisms, we show how to compute semantically equivalent yet structurally different models. These refactorings are defined by user-provided logical predicates that partition the system's state space and that characterize coherent parts - modes or control states-of the behavior. We embed the refactorings into an incremental development process that uses a combination of both tables and graphically represented state machines for describing system
Improving Function Coverage with Munch: A Hybrid Fuzzing and Directed Symbolic Execution Approach
Fuzzing and symbolic execution are popular techniques for finding
vulnerabilities and generating test-cases for programs. Fuzzing, a blackbox
method that mutates seed input values, is generally incapable of generating
diverse inputs that exercise all paths in the program. Due to the
path-explosion problem and dependence on SMT solvers, symbolic execution may
also not achieve high path coverage. A hybrid technique involving fuzzing and
symbolic execution may achieve better function coverage than fuzzing or
symbolic execution alone. In this paper, we present Munch, an open source
framework implementing two hybrid techniques based on fuzzing and symbolic
execution. We empirically show using nine large open-source programs that
overall, Munch achieves higher (in-depth) function coverage than symbolic
execution or fuzzing alone. Using metrics based on total analyses time and
number of queries issued to the SMT solver, we also show that Munch is more
efficient at achieving better function coverage.Comment: To appear at 33rd ACM/SIGAPP Symposium On Applied Computing (SAC). To
be held from 9th to 13th April, 201
Trustworthy Transparency by Design
Individuals lack oversight over systems that process their data. This can
lead to discrimination and hidden biases that are hard to uncover. Recent data
protection legislation tries to tackle these issues, but it is inadequate. It
does not prevent data misusage while stifling sensible use cases for data. We
think the conflict between data protection and increasingly data-based systems
should be solved differently. When access to data is given, all usages should
be made transparent to the data subjects. This enables their data sovereignty,
allowing individuals to benefit from sensible data usage while addressing
potentially harmful consequences of data misusage. We contribute to this with a
technical concept and an empirical evaluation. First, we conceptualize a
transparency framework for software design, incorporating research on user
trust and experience. Second, we instantiate and empirically evaluate the
framework in a focus group study over three months, centering on the user
perspective. Our transparency framework enables developing software that
incorporates transparency in its design. The evaluation shows that it satisfies
usability and trustworthiness requirements. The provided transparency is
experienced as beneficial and participants feel empowered by it. This shows
that our framework enables Trustworthy Transparency by Design
- …