357 research outputs found
DSpot: Test Amplification for Automatic Assessment of Computational Diversity
Context: Computational diversity, i.e., the presence of a set of programs
that all perform compatible services but that exhibit behavioral differences
under certain conditions, is essential for fault tolerance and security.
Objective: We aim at proposing an approach for automatically assessing the
presence of computational diversity. In this work, computationally diverse
variants are defined as (i) sharing the same API, (ii) behaving the same
according to an input-output based specification (a test-suite) and (iii)
exhibiting observable differences when they run outside the specified input
space. Method: Our technique relies on test amplification. We propose source
code transformations on test cases to explore the input domain and
systematically sense the observation domain. We quantify computational
diversity as the dissimilarity between observations on inputs that are outside
the specified domain. Results: We run our experiments on 472 variants of 7
classes from open-source, large and thoroughly tested Java classes. Our test
amplification multiplies by ten the number of input points in the test suite
and is effective at detecting software diversity. Conclusion: The key insights
of this study are: the systematic exploration of the observable output space of
a class provides new insights about its degree of encapsulation; the behavioral
diversity that we observe originates from areas of the code that are
characterized by their flexibility (caching, checking, formatting, etc.).Comment: 12 page
A systematic literature review on source code similarity measurement and clone detection: techniques, applications, and challenges
Measuring and evaluating source code similarity is a fundamental software
engineering activity that embraces a broad range of applications, including but
not limited to code recommendation, duplicate code, plagiarism, malware, and
smell detection. This paper proposes a systematic literature review and
meta-analysis on code similarity measurement and evaluation techniques to shed
light on the existing approaches and their characteristics in different
applications. We initially found over 10000 articles by querying four digital
libraries and ended up with 136 primary studies in the field. The studies were
classified according to their methodology, programming languages, datasets,
tools, and applications. A deep investigation reveals 80 software tools,
working with eight different techniques on five application domains. Nearly 49%
of the tools work on Java programs and 37% support C and C++, while there is no
support for many programming languages. A noteworthy point was the existence of
12 datasets related to source code similarity measurement and duplicate codes,
of which only eight datasets were publicly accessible. The lack of reliable
datasets, empirical evaluations, hybrid methods, and focuses on multi-paradigm
languages are the main challenges in the field. Emerging applications of code
similarity measurement concentrate on the development phase in addition to the
maintenance.Comment: 49 pages, 10 figures, 6 table
Closing the gap between guidance and practice, an investigation of the relevance of design guidance to practitioners using object-oriented technologies
This thesis investigates if object oriented guidance is relevant in practice, and how this affects software that is produced. This is achieved by surveying practitioners and studying how constructs such as interfaces and inheritance are used in open-source systems. Surveyed practitioners framed 'good design' in terms of impact on development and maintenance. Recognition of quality requires practitioner judgement (individually and as a group), and principles are valued over rules. Time constraints heighten sensitivity to the rework cost of poor design decisions. Examination of open source systems highlights the use of interface and inheritance. There is some evidence of 'textbook' use of these structures, and much use is simple. Outliers are widespread indicating a pragmatic approach. Design is found to reflect the pressures of practice - high-level decisions justify 'designed' structures and architecture, while uncertainty leads to deferred design decisions - simpler structures, repetition, and unconsolidated design. Sub-populations of structures can be identified which may represent common trade-offs. Useful insights are gained into practitioner attitude to design guidance. Patterns of use and structure are identified which may aid in assessment and comprehension of object oriented systems.This thesis investigates if object oriented guidance is relevant in practice, and how this affects software that is produced. This is achieved by surveying practitioners and studying how constructs such as interfaces and inheritance are used in open-source systems. Surveyed practitioners framed 'good design' in terms of impact on development and maintenance. Recognition of quality requires practitioner judgement (individually and as a group), and principles are valued over rules. Time constraints heighten sensitivity to the rework cost of poor design decisions. Examination of open source systems highlights the use of interface and inheritance. There is some evidence of 'textbook' use of these structures, and much use is simple. Outliers are widespread indicating a pragmatic approach. Design is found to reflect the pressures of practice - high-level decisions justify 'designed' structures and architecture, while uncertainty leads to deferred design decisions - simpler structures, repetition, and unconsolidated design. Sub-populations of structures can be identified which may represent common trade-offs. Useful insights are gained into practitioner attitude to design guidance. Patterns of use and structure are identified which may aid in assessment and comprehension of object oriented systems
Embedding novel and surprising elements in touch-screen games for children with autism: creating experiences âworth communicating aboutâ
Relative infrequency of communication initiation, particularly initiations that involve
attention-sharing or other social purposes, appears to negatively impact the later-life
outcomes of children with autism. Strategies to improve or encourage initiation skills
in autism are hampered by the need for the behaviour to be spontaneous (i.e. unprompted
by a partner). One potential approach that addresses the spontaneity issue
is to extrinsically motivate initiations by changing aspects of the childâs environment
such that they merit, or even demand, initiating a communication. Detecting subjectively
inconsistent (i.e. discrepant) aspects in game-like virtual contexts appears to
be something that inherently interests young children with autism, and can motivate
them to initiate spontaneous, positive communications. Initial evidence for discrepancy
as a communicative motivator came from a study which re-analysed video data
from an existing autism and technology project (ECHOES), illustrating that a heterogeneous
group of children all reacted frequently and socially to naturally occurring (i.e.
unintentional, non-designed) discrepant aspects within ECHOES. A set of high-level
design principles was developed in order to capture âlessons learnedâ from ECHOES
that might facilitate re-creation of a similar pattern of spontaneous, positive initiation
around discrepancy. A second, proof-of-concept study implemented these design
principles in a set of three new touch-screen games (Andyâs Garden) that sought to
establish, and then deliberately violate, child expectations (i.e. provide discrepancy-detection
opportunities: DDOs). Children reacted socially and positively to the new
games and DDOs. The results of this study allow us to answer its overall questions
affirmatively: it is possible to motivate childrenâs communicationâspecifically, their
initiationâby including deliberately-designed DDOs in a set of games. These findings
are the first step towards determining whether discrepancy-detection opportunities may
form a component of a future technology-based communication skills intervention, capable
of changing childrenâs initiation behaviour outside of a game context
Improving Automated Software Testing while re-engineering legacy systems in the absence of documentation
Legacy software systems are essential assets that contain an organizations' valuable business logic. Because
of outdated technologies and methods used in these systems, they are challenging to maintain and expand.
Therefore, organizations need to decide whether to redevelop or re-engineer the legacy system. Although
in most cases, re-engineering is the safer and less expensive choice, it has risks such as failure to meet the
expected quality and delays due to testing blockades. These risks are even more severe when the legacy
system does not have adequate documentation. A comprehensive testing strategy, which includes automated
tests and reliable test cases, can substantially reduce the risks. To mitigate the hazards associated with
re-engineering, we have conducted three studies in this thesis to improve the testing process.
Our rst study introduces a new testing model for the re-engineering process and investigates test automation
solutions to detect defects in the early re-engineering stages. We implemented this model on the
Cold Region Hydrological Model (CRHM) application and discovered bugs that would not likely have been
found manually. Although this approach helped us discover great numbers of software defects, designing test
cases is very time-consuming due to the lack of documentation, especially for large systems. Therefore, in
our second study, we investigated an approach to generate test cases from user footprints automatically. To
do this, we extended an existing tool to collect user actions and legacy system reactions, including database
and le system changes. Then we analyzed the data based on the order of user actions and time of them
and generated human-readable test cases. Our evaluation shows that this approach can detect more bugs
than other existing tools. Moreover, the test cases generated using this approach contain detailed oracles
that make them suitable for both black-box and white-box testing. Many scienti c legacy systems such as
CRHM are data-driven; they take large amounts of data as input and produce massive data after applying
mathematical models. Applying test cases and nding bugs is more demanding when we are dealing with
large amounts of data. Hence in our third study, we created a comparative visualization tool (ComVis) to
compare a legacy system's output after each change. Visualization helps testers to nd data issues resulting
from newly introduced bugs. Twenty participants took part in a user study in which they were asked to nd
data issued using ComVis and embedded CRHM visualization tool. Our user study shows that ComVis can
nd 51% more data issues than embedded visualization tools in the legacy system can. Also, results from
the NASA-TLX assessment and thematic analysis of open-ended questions about each task show users prefer
to use ComVis over the built-in visualization tool. We believe our introduced approaches and developed
systems will signi cantly reduce the risks associated with the re-engineering process.
i
Evaluating Network Analysis and Agent Based Modeling for Investigating the Stability of Commercial Air Carrier Schedules
For a number of years, the United States Federal Government has been formulating the Next Generation Air Transportation System plans for National Airspace System improvement. These improvements attempt to address air transportation holistically, but often address individual improvements in one arena such as ground or in-flight equipment.
In fact, air transportation system designers have had only limited success using traditional Operations Research and parametric modeling approaches in their analyses of innovative operations. They need a systemic methodology for modeling of safety-critical infrastructure that is comprehensive, objective, and sufficiently concrete, yet simple enough to be deployed with reasonable investment. The methodology must also be amenable to quantitative analysis so issues of system safety and stability can be rigorously addressed
- âŠ