Comment trouver des profils ? Plus d'infos
PEOPLE@HES-SO – Annuaire et Répertoire des compétences

PEOPLE@HES-SO
Annuaire et Répertoire des compétences

language Aide
language
  • fr
  • en
  • de
  • fr
  • en
  • de
  • SWITCH edu-ID
  • Administration
ID
« Retour
Oriol Manuel

Oriol Manuel

Professeur HES associé

Compétences principales

Software Engineering

Realtime software

Programming languages

Internet of Things

Software Testing

Software Development Processes

Embedded Systems

  • Contact

  • Enseignement

  • Publications

  • Conférences

Contrat principal

Professeur HES associé

Haute Ecole d'Ingénierie et de Gestion du Canton de Vaud
Route de Cheseaux 1, 1400 Yverdon-les-Bains, CH
HEIG-VD
BSc en Informatique et systèmes de communication - Haute Ecole d'Ingénierie et de Gestion du Canton de Vaud

2026

On the number and nature of faults found by random testing
Article scientifique ArODES

I. Ciupa, A. Pretschner, Manuel Oriol, A. Leitner, B. Meyer

Software Testing, Verification and Reliability,  21, 1, 3-28

Lien vers la publication

Résumé:

Intuition suggests that random testing should exhibit a considerable difference in the number of faults detected by two different runs of equal duration. As a consequence, random testing would be rather unpredictable. This article first evaluates the variance over time of the number of faults detected by randomly testing object-oriented software that is equipped with contracts. It presents the results of an empirical study based on 1215 h of randomly testing 27 Eiffel classes, each with 30 seeds of the random number generator. The analysis of over 6 million failures triggered during the experiments shows that the relative number of faults detected by random testing over time is predictable, but that different runs of the random test case generator detect different faults. The experiment also suggests that the random testing quickly finds faults: the first failure is likely to be triggered within 30 s. The second part of this article evaluates the nature of the faults found by random testing. To this end, it first explains a fault classification scheme, which is also used to compare the faults found through random testing with those found through manual testing and with those found in field use of the software and recorded in user incident reports. The results of the comparisons show that each technique is good at uncovering different kinds of faults. None of the techniques subsumes any of the others; each brings distinct contributions. This supports a more general conclusion on comparisons between testing strategies: the number of detected faults is too coarse a criterion for such comparisons—the nature of faults must also be considered.

2024

Seeding contradiction : a fast method for generating full-coverage test suites
Article scientifique ArODES

Li Huang, Bertrand Meyer, Manuel Oriol

SN Computer Science,  6, 1, 16 p.

Lien vers la publication

Résumé:

The regression test suite, a key resource for managing program evolution, needs to achieve 100% branch coverage, or very close, to be useful. Devising a test suite manually is unacceptably tedious. Although many automated methods exist to improve the efficiency of test generation, they are mostly dynamic. The method described in this article, “Seeding Contradiction”, inserts incorrect instructions into every basic block of the program, enabling an SMT-based Hoare-style prover to generate a counterexample for every branch of the program and, from the collection of all such counterexamples, a test suite. The method is static, works fast, and achieves full coverage, even going beyond the usual concept of branch coverage by “unrolling” loops a parameterizable number of times.

2015

Subdomain-based test data generation
Article scientifique ArODES

Matthew Patrick, Rob Alexander, Manuel Oriol, John A. Clark

Journal of Systems and Software,  103, 328-342

Lien vers la publication

Résumé:

Considerable effort is required to test software thoroughly. Even with automated test data generation tools, it is still necessary to evaluate the output of each test case and identify unexpected results. Manual effort can be reduced by restricting the range of inputs testers need to consider to regions that are more likely to reveal faults, thus reducing the number of test cases overall, and therefore reducing the effort needed to create oracles. This article describes and evaluates search-based techniques, using evolution strategies and subset selection, for identifying regions of the input domain (known as subdomains) such that test cases sampled at random from within these regions can be used efficiently to find faults. The fault finding capability of each subdomain is evaluated using mutation analysis, a technique that is based on faults programmers are likely to make. The resulting subdomains kill more mutants than random testing (up to six times as many in one case) with the same number or fewer test cases. Optimised subdomains can be used as a starting point for program analysis and regression testing. They can easily be comprehended by a human test engineer, so may be used to provide information about the software under test and design further highly efficient test suites.

FASA : a software architecture and runtime framework for flexible distributed automation systems
Article scientifique ArODES

Michael Wahler, Thomas Gamer, Atul Kumar, Manuel Oriol

Journal of Systems Architecture,  61, 2, 82-111

Lien vers la publication

Résumé:

Modern automation systems have to cope with large amounts of sensor data to be processed, stricter security requirements, heterogeneous hardware, and an increasing need for flexibility. The challenges for tomorrow’s automation systems need software architectures of today’s real-time controllers to evolve. This article presents FASA, a modern software architecture for next-generation automation systems. FASA provides concepts for scalable, flexible, and platform-independent real-time execution frameworks, which also provide advanced features such as software-based fault tolerance and high degrees of isolation and security. We show that FASA caters for robust execution of time-critical applications even in parallel execution environments such as multi-core processors. We present a reference implementation of FASA that controls a magnetic levitation device. This device is sensitive to any disturbance in its real-time control and thus, provides a suitable validation scenario. Our results show that FASA can sustain its advanced features even in high-speed control scenarios at 1 kHz.

2013

Class schema evolution for persistent object-oriented software : model, empirical study, and automated support
Article scientifique ArODES

Marco Piccioni, Manuel Oriol, Bertrand Meyer

IEEE Transactions on Software Engineering,  39, 2, 184-196

Lien vers la publication

Résumé:

With the wide support for object serialization in object-oriented programming languages, persistent objects have become commonplace and most large object-oriented software systems rely on extensive amounts of persistent data. Such systems also evolve over time. Retrieving previously persisted objects from classes whose schema has changed is, however, difficult, and may lead to invalidating the consistency of the application. The ESCHER framework addresses these issues through an IDE-integrated approach that handles class schema evolution by managing versions of the code and generating transformation functions automatically. The infrastructure also enforces class invariants to prevent the introduction of potentially corrupt objects. This paper describes a model for class attribute changes, a measure for class evolution robustness, four empirical studies, and the design and implementation of the ESCHER system.

2007

Reflecting on an existing programming language
Article scientifique ArODES

Andreas Leitner, Patrick Eugster, Manuel Oriol, Ilinca Ciupa

The Journal of Object Technology,  6, 9, 319

Lien vers la publication

Résumé:

Reflection has proven to be a valuable asset for programming languages, especially object-oriented ones, by promoting adaptability and extensibility of programs. With more and more applications exceeding the boundary of a single address space, reflection comes in very handy for instance for performing conformance tests dynamically. The precise incentives and thus mechanisms for reflection vary strongly between its incarnations, depending on the semantics of the considered programming language, the architecture of its runtime environment, safety and security concerns, etc. Another strongly influential factor is legacy, i.e., the point in time at which the corresponding reflection mechanisms are added to the language. This parameter tends to dictate the feasible breadth of the features offered by an implementation of reflection. This paper describes a pragmatic approach to reflection, consisting in adding introspection to an existing object-oriented programming language a posteriori, i.e., without extending the programming language, compiler, or runtime environment in any specific manner. The approach consists in a pre-compiler generating specific code for types which are to be made introspectable, and an API through which this code is accessed. We present two variants of our approach, namely a homogeneous approach (for type systems with a universal root type) and a heterogeneous approach (without universal root type), and the corresponding generators. We discuss limitations such as infinite recursion, and compare the code generated with these two approaches by Erl-G, a reflection library generator for the Eiffel programming language, thereby quantifying the benefits of a universal root type. Erl-G is being used by several tools for development in Eiffel.

2003

Coordinating processes with secure spaces
Article scientifique ArODES

Jan Vitek, Ciarán Bryce, Manuel Oriol

Science of Computer Programming,  46, 1-2, 163-193

Lien vers la publication

Résumé:

The Linda shared space model and its derivatives provide great flexibility for building parallel and distributed applications composed of independent processes. However, the shared space model does not provide protection against untrustworthy processes. Linda processes communicate by reading and writing messages in a globally visible data space, so a malicious process can launch any number of security attacks. This paper presents the design of a new coordination model which extends Linda with fine-grained access control. The semantics of the model is presented in the context of a process calculus. A prototype of our model, called SECOS, has been implemented in JAVA.

2026

Execution time analysis for industrial control applications
Conférence ArODES

Stefan Stattelmann, Manuel Oriol, Thomas Gamer

Electronic Proceedings in Theoretical Computer Science (EPTCS)

Lien vers la conférence

Résumé:

Estimating the execution time of software components is often mandatory when evaluating the non-functional properties of software-intensive systems. This particularly holds for real-time embedded systems, e.g., in the context of industrial automation. In practice it is however very hard to obtain reliable execution time estimates which are accurate, but not overly pessimistic with respect to the typical behavior of the software. This article proposes two new concepts to ease the use of execution time analysis for industrial control applications: a method based on recurring occurrences of code sequences for automatically creating a timing model of a given processor and (2) an interactive way to integrate execution time analysis into the development environment, thus making timing analysis results easily accessible for software developers. The proposed methods are validated by an industrial case study, which shows that a significant amount of code reuse is present in a set of representative industrial control applications.

Stochastic contracts for runtime checking of component-based real-time systems
Conférence ArODES

Chandrakana Nandi, Aurélien Monot, Manuel Oriol

Proceedings of the 18th International ACM SIGSOFT Symposium on Component-Based Software Engineering

Lien vers la conférence

Résumé:

This paper introduces a new technique for dynamic verification of component-based real-time systems based on statistical inference. Verifying such systems requires checking two types of properties: functional and real-time. For functional properties, a standard approach for ensuring correctness is Design by Contract: annotating programs with executable pre- and postconditions. We extend contracts for specifying real-time properties. In the industry, components are often bought from vendors and meant to be used off-the-shelf which makes it very difficult to determine their execution times and express related properties. We present a solution to this problem by using statistical inference for estimating the properties. The contract framework allows application developers to express contracts like "the execution time of component X lies within $\gamma$ standard deviations from the mean execution time". Experiments based on industrial case studies show that this framework can be smoothly integrated into existing control applications, thereby increasing their reliability while having an acceptable execution time overhead (less than 10%).

The search for the laws of automatic random testing
Conférence ArODES

Carlo A. Furia, Bertrand Meyer, Manuel Oriol, Andrey Tikhomirov, Yi Wei

Proceedings of the 28th Annual ACM Symposium on Applied Computing

Lien vers la conférence

Résumé:

Can one estimate the number of remaining faults in a software system? A credible estimation technique would be immensely useful to project managers as well as customers. It would also be of theoretical interest, as a general law of software engineering. We investigate possible answers in the context of automated random testing, a method that is increasingly accepted as an effective way to discover faults. Our experimental results, derived from best-fit analysis of a variety of mathematical functions, based on a large number of automated tests of library code equipped with automated oracles in the form of contracts, suggest a poly-logarithmic law. Although further confirmation remains necessary on different code bases and testing techniques, we argue that understanding the laws of testing may bring significant benefits for estimating the number of detectable faults and comparing different projects and practices.

2024

Is MCDC really better? : lessons from combining tests and proofs
Conférence ArODES

Li Huang, Bertrand Meyer, Manuel Oriol

Lecture Notes in Computer Science

Lien vers la conférence

Résumé:

MCDC, for “Modified Condition/Decision Coverage”, is a test coverage criterion recommended in several important industrial software safety standards. The intuition behind MCDC is that it should be more effective than industry’s default coverage criterion, branch coverage, since it uses a finer-grain decomposition of program conditions. Manually generating MCDC-compliant test suites is, however, tedious and error-prone; there is, as a result, little empirical evidence of whether that intuition holds up in practice. Does MCDC really provide enough of an advantage over branch coverage to justify the extra work and longer test runs? To help answer this question, the present work takes advantage of verification technology that combines tests and proofs, based on the AutoProof program verifier. For each decision point in the program, the approach proceeds in four steps. First, compute a set of conditions that satisfy MCDC. Then, inject into the program, for each combination, an incorrect instruction (a “seeded contradiction” in the terminology of previous work). Next, apply the prover to verify the instrumented program; the prover naturally fails, but in the process it produces a set of counterexamples covering all the combinations. Finally, turn this result into a directly usable test suite—guaranteed by construction to satisfy the MCDC criterion. The results, on a significant set of example programs, yield insights on how MCDC coverage compares to branch coverage and adaptive random testing when trying to detect faults.

Execution-free program repair
Conférence ArODES

Li Huang, Bertrand Meyer, Ilgiz Mustafin, Manuel Oriol

Proceedings of the 32nd ACM International Conference on the Foundations of Software Engineering

Lien vers la conférence

Résumé:

Automatic program repair usually relies heavily on test cases for both bug identification and fix validation. The issue is that writing test cases is tedious, running them takes much time, and validating a fix through tests does not guarantee its correctness. The novel idea in the Proof2Fix methodology and tool presented here is to rely instead on a program prover, without the need to run tests or to run the program at all. Results show that Proof2Fix automatically finds and fixes significant historical bugs.

Quantum types : going beyond qubits and quantum gates
Conférence ArODES

Tamás Varga, Yaiza Aragonés-Soria, Manuel Oriol

Proceedings of the 5th ACM/IEEE International Workshop on Quantum Software Engineering

Lien vers la conférence

Résumé:

Quantum computing is a growing field with significant potential applications. Learning how to code quantum programs means understanding how qubits work and learning to use quantum gates. This is analogous to creating classical algorithms using logic gates and bits. Even after learning all concepts, it is difficult to create new algorithms, which hinders the acceptance of quantum programming by most developers. This article outlines the need for higher-level abstractions and proposes some of them in a developer-friendly programming language called Rhyme. The new quantum types are extensions of classical types, including bits, integers, floats, characters, arrays, and strings. We show how to use such types with code snippets.

C4Q : a chatbot for quantum
Conférence ArODES

Yaiza Aragonés-Soria, Manuel Oriol

Proceedings of the 5th ACM/IEEE International Workshop on Quantum Software Engineering

Lien vers la conférence

Résumé:

Quantum computing is a growing field that promises many real-world applications such as quantum cryptography or quantum finance. The number of people able to use quantum computing is however still very small. This limitation comes from the difficulty to understand the concepts and to know how to start coding. Therefore, there is a need for tools that can assist non-expert in overcoming this complexity. One possibility would be to use existing conversational agents. Unfortunately ChatGPT and other Large-Language Models produce inaccurate results. This article presents C4Q, a chatbot that answers accurately basic questions and guides users when trying to code quantum programs. Contrary to other approaches C4Q uses a pre-trained large language model only to discover and classify user requests. It then generates an accurate answer using an own engine. Thanks to this architectural design, C4Q's answers are always correct, and thus C4Q can become a support tool that makes quantum computing more available to non-experts.

2023

Seeding contradiction : a fast method for generating full-coverage test suites
Conférence ArODES

Li Huang, Bertrand Meyer, Manuel Oriol

Lecture Notes in Computer Science

Lien vers la conférence

Résumé:

The regression test suite, a key resource for managing program evolution, needs to achieve 100% coverage, or very close, to be useful. Devising a test suite manually is unacceptably tedious, but existing automated methods are often inefficient. The method described in this article, “Seeding Contradiction”, inserts incorrect instructions into every basic block of the program, enabling an SMT-based Hoare-style prover to generate a counterexample for every branch of the program and, from the collection of all such counterexamples, a test suite. The method is static, works fast, and achieves excellent coverage.

Is ChatGPT 3 safe for students?
Conférence ArODES

Julia Kotovich, Manuel Oriol

Lecture Notes in Computer Science

Lien vers la conférence

Résumé:

ChatGPT3 is a chat engine that fulfils the promises of an AI-based chat engine: users can ask a question (prompt) and it answers in a reasonable manner. The coding-related skills of ChatGPT are especially impressive: informal testing shows that it is difficult to find simple questions that ChatGPT3 does not know how to answer properly. Some students are certainly already using it to answer programming assignments. This article studies whether it is safe for students to use ChatGPT3 to answer coding assignments (“safe” means that they will not be caught for plagiarism if they use it). The main result is that it is generally not safe for students to use ChatGPT3. We evaluated the safety of code generated with ChatGPT3, by performing a search with a Codequiry, a plagiarism detection tool, and searching plagiarized code in Google (only considering the first page of results). In 38% of the cases, Codequiry finds a piece of code that is partially copied by the answer of ChatGPT3. In 96% of the cases, the Google search finds a piece of code very similar to the generated code. Overall, it is not safe for students to use ChatGPT3 in 96% of the cases.

Tribal capstone project course
Conférence ArODES

Manuel Oriol

Lecture Notes in Computer Science

Lien vers la conférence

Résumé:

It has become common for curricula to contain a Capstone project component. Usually, the idea behind a capstone project course is to form groups of 4 to 6 students to work on a longer and larger project. This allows them to experience working for some months on ideas coming either from industry or from a professor. The intent is to make this experience more “real” than a traditional small project. This article presents a new type of capstone projects, which we call “Tribal Capstone Project Course”. It takes a cohort of students over 3 semesters and makes them work in larger groups of 15–25 students called “tribes”. The course has run for two cohorts of masters students within the Constructor context and has started for a third cohort. We believe that this setup is more representative of a real-world product-building context.

2022

Improving counterexample quality from failed program verification
Conférence ArODES

Li Huang, Bertrand Meyer, Manuel Oriol

Proceedings of the IEEE International Symposium on Software Reliability Engineering Workshops (ISSREW)

Lien vers la conférence

Résumé:

In software verification, a successful automated program proof is the ultimate triumph. The road to such success is, however, paved with many failed proof attempts. The message produced by the prover when a proof fails is often obscure, making it very hard to know how to proceed further. The work reported here attempts to help in such cases by providing immediately understandable counterexamples. To this end, it introduces an approach called Counterexample Extraction and Minimization (CEAM). When a proof fails, CEAM turns the counterexample model generated by the prover into a a clearly understandable version; it can in addition simplify the counterex-amples further by minimizing the integer values they contain. We have implemented the CEAM approach as an extension to the AutoProof verifier and demonstrate its application to a collection of examples.

2018

Bluetooth low energy devices security testing framework
Conférence ArODES

Apala Ray, Vipin Raj, Manuel Oriol, Aurelien Monot, Sebastian Obermeier

Proceedings of the 11th International Conference on Software Testing, Verification and Validation (ICST)

Lien vers la conférence

Résumé:

Bluetooth Low Energy (BLE), a low-power wireless protocol, is widely used in industrial automation for monitoring field devices. Although the BLE standard defines advanced security mechanisms, there are known security attacks for BLE and BLE-enabled field devices must be tested thoroughly against these attacks. This article identifies the possible attacks for BLE-enabled field devices relevant for industrial automation. It also presents a framework for defining and executing BLE security attacks and evaluates it on three BLE devices. All tested devices are vulnerable and this confirms that there is a need for better security testing tools as well as for additional defense mechanisms for BLE devices.

2017

Quality attribute trade-offs in industrial doftware systems
Conférence ArODES

Michael Wahler, Raphael Eidenbenz, Aurelien Monot, Manuel Oriol, Thanikesavan Sivanthi

Proceedings of the 2017 IEEE International Conference on Software Architecture Workshops (ICSAW)

Lien vers la conférence

Résumé:

The main challenge of architecting modern industrial control and automation systems (ICASs) is that they need to fulfill quality attributes (QAs) traditional to real-time systems - such as timeliness and predictability - and modern software engineering - such as modularity or reusability. QAs often are conflicting, which entails difficult trade-offs. As a consequence, even the architecture of closely related ICAS products can differ substantially due to their different priorities on QAs. This article presents six essential, but partially conflicting quality attributes for ICAS and shows how the shift in priority of these QAs impacts the architecture of three functionally very similar ICAS platforms.

2016

Who's on board? : probabilistic membership for real-time distributed control systems
Conférence ArODES

Rachid Guerraoui, David Kozhaya, Manuel Oriol, Yvonne-Anne Pignolet

Proceedings of the 2016 IEEE 35th Symposium on Reliable Distributed Systems (SRDS)

Lien vers la conférence

Résumé:

To increase their dependability, distributed control systems (DCSs) need to agree in real time about which hosts have crashed, i.e., they need a real-time membership service. In this paper, we prove that such a service cannot be implemented deterministically if, besides host crashes, communication can also fail. We define implementable probabilistic variants of membership properties, which constitute what we call a synchronous membership service (SYMS). We present an algorithm, ViewSnoop, that implements SYMS with high-probability. We implement, deploy and evaluate ViewSnoop analytically as well as experimentally, within an industrial DCS framework. We show that ViewSnoop significantly improves the dependability of DCSs compared to membership schemes based on classic heartbeats, at low additional cost. Moreover, ViewSnoop distinguishes, with high probability, host crashes from message losses, enabling DCSs to counteract losses better than existing approaches.

Modern software architecture for embedded real-time devices : high value, little overhead
Conférence ArODES

Aurelien Monot, Manuel Oriol, Camille Schneider, Michael Wahler

Proceedings of the 13th Working IEEE/IFIP Conference on Software Architecture (WICSA)

Lien vers la conférence

Résumé:

Embedded devices are often tightly constrained by CPU power and memory size. As a consequence, developers of embedded software avoid any kind of design abstractions, thinking that they imply large overhead. This results in complex designs with high coupling between the individual entities. The code of such designs is then difficult to maintain or reuse. This article presents FASAlight, a component-based software architecture for embedded devices with a focus on three main quality attributes that support maintenance and reuse: modularity, reusability, and portability. This architecture can be effectively implemented even for low-end embedded devices and only implies at worst a 14% on CPU and small overhead on memory on a device with a 120MHz ARM CPU and 128 kB of RAM.

2015

Real-time multi-core components for cyber-physical systems
Conférence ArODES

Michael Wahler, Manuel Oriol, Aurélien Monot

Proceedings of the 18th International ACM SIGSOFT Symposium on Component-Based Software Engineering

Lien vers la conférence

Résumé:

Developing correct, efficient, and maintainable real-time control software for cyber-physical systems is a notoriously difficult interdisciplinary challenge. Ever more complex control algorithms and the advent of multi-core hardware in embedded systems have made this challenge even harder. Component-based software development promises to help reduce the complexity and to increase the timing predictability for time-critical software. This paper presents FASA, a component-based approach for scalable real-time systems. This approach offers a platform-independent development method with a high degree of predictability, supports multi-core systems by design, and simplifies maintenance. Two case studies validate FASA: an application handling a magnetic levitation device and an example of scalability.

Testing legacy embedded code : landing on a software engineering desert island
Conférence ArODES

Manuel Oriol

Proceedings of the 2015 IEEE 8th International Conference on Software Testing, Verification and Validation (ICST)

Lien vers la conférence

Résumé:

Research on software engineering typically focuses on mainstream languages such as Java, .NET, and C. It is validated using projects easily executable and deployable on a desktop machine. Real, embedded, legacy code is however seldom made of such clean code. This article presents such a case. We performed the analysis and testing of legacy code, which is mix of C and DSP assembly. Such combinations of technologies cannot be analyzed by regular software engineering tools, creating a de facto software engineering desert island. Our solution relies on writing a parser for the DSP code, static analyzers, and using integration test cases. To run the tests, we also automate deployment on the target hardware and run the tests from an integration server.

2014

Increasing efficiency of M-out-of-N redundancy
Conférence ArODES

Thomas Gamer, Manuel Oriol, Michael Wahler

Proceedings of the 2014 IEEE Emerging Technology and Factory Automation (ETFA)

Lien vers la conférence

Résumé:

In industrial automation, unexpected failures often generate high direct and indirect costs. To achieve high availability, the critical parts of the system are typically redundant. M-out-of-N (MooN) redundancy is a widespread redundancy pattern because it offers low failover times. This pattern has however two major disadvantages. First, the voter, an essential entity in MooN patterns, is itself a single point of failure. Second, it introduces delay to the control process and significant network load when deployed with multiple voters. This article proposes new MooN redundancy patterns for distributed control systems. These eliminate the voter as a single point of failure and reduce the network load and delay of the MooN redundancy. For each of these patterns we introduce an algorithm, which computes a near-minimum instance for the MooN problem. We validate our solution against minimum values and present a case study giving the delays introduced through our redundancy patterns and the induced network load.

Disruption-free software updates in automation systems
Conférence ArODES

Michael Wahler, Manuel Oriol

Proceedings of the 2014 IEEE Emerging Technology and Factory Automation (ETFA)

Lien vers la conférence

Résumé:

Automation systems must primarily be deterministic and reliable, especially in safety-critical environments. With recent trends such as mass customization or Industry 4.0, there is an increasing need for automation systems to be dynamic. Changing parts of the software of today's automation systems, however, typically requires rebooting the controller, which makes software updates a complex and costly endeavor often despised by operators. This article presents an approach to updating the software of automation systems at runtime without disrupting the system's operation. This is achieved with a combination of a component-based architecture, cyclic application execution, and a state transfer mechanism between the original and the updated version of a component. We validate our solution with a case study in which we update the control algorithm of a magnetic levitation device running at cycles of 1 kHz without dropping the ball.

Probability-based semantic interpretation of mutants
Conférence ArODES

Matthew Patrick, Rob Alexander, Manuel Oriol, John A. Clark

Proceedings of the 2014 IEEE Seventh International Conference on Software Testing, Verification and Validation Workshops

Lien vers la conférence

Résumé:

Mutation analysis is a stringent and powerful technique for evaluating the ability of a test suite to find faults. It generates a large number of mutants and applies the test suite to them one at a time. As mutation analysis is computationally expensive, it is usually performed on a subset of mutants. The competent programmer hypothesis suggests that experienced software developers are more likely to make small mistakes. It is prudent therefore to focus on semantically small mutants that represent mistakes developers are likely to make. We previously introduced a technique to assess mutant semantics using static analysis by comparing the numerical range of their symbolic output expressions. This paper extends our previous work by considering the probability the output of a mutant is the same as the original program. We show how probability-based semantic interpretation can be used to select mutants that are semantically more similar than those selected by our previous technique. In addition to numerical outputs, it also provides support for modelling the semantics of Boolean variables, strings and composite objects.

2013

Selecting highly efficient sets of subdomains for mutation adequacy
Conférence ArODES

Matthew Patrick, Rob Alexander, Manuel Oriol, John A. Clark

Proceedings of the 20th Asia-Pacific Software Engineering Conference (APSEC)

Lien vers la conférence

Résumé:

Test selection techniques are used to reduce the human effort involved in software testing. Most research focusses on selecting efficient sets of test cases according to various coverage criteria for directed testing. We introduce a new technique to select efficient sets of sub domains from which new test cases can be sampled at random to achieve a high mutation score. We first present a technique for evolving multiple sub domains, each of which target a different group of mutants. The evolved sub domains are shown to achieve an average 160% improvement in mutation score compared to random testing with six real world Java programs. We then present a technique for selecting sets of the evolved sub domains to reduce the human effort involved in evaluating sampled test cases without reducing their fault finding effectiveness. This technique significantly reduces the number of sub domains for four of the six programs with a negligible difference in mutation score.

Threat methodology for securing scalable video in the Cloud
Conférence ArODES

Afnan Ullah Khan, Manuel Oriol, Mariam Kiran

Proceedings of the 8th International Conference for Internet Technology and Secured Transactions (ICITST-2013)

Lien vers la conférence

Résumé:

Scalable video using Cloud Computing is a potential solution for the distribution of media content to a large number of users. This may occur over a heterogeneous network connected to devices with different capabilities and diverse set of users. Although some of the problems are well known and understood in information and network security, there is still a need to improve the existing solutions to produce a solution that is both adequately secure and efficient in highly distributed and scalable environments. In this paper, we describe such improvements using a cloud computing scenario where video content is made available through a cloud platform. When put on an Infrastructure as a Service (IaaS) cloud video content should then be viewable by different consumers using different levels of bandwidth and security requirements depending on their identity. This requires a mechanism through which a cloud service could be authenticated and encrypted by end users. This paper describes the novel solution of securing scalable video in the cloud discussing the various threats for video distribution and how these can be made more secure in terms of confidentiality, availability and integrity, particularly threw source authentication and encryption.

Reconciling flexibility and robustness in industrial automation systems, and living happily ever after
Conférence ArODES

Michael Wahler, Manuel Oriol, Ettore Ferranti, Aurelien Monot

Proceedings of the 18th Conference on Emerging Technologies & Factory Automation (ETFA)

Lien vers la conférence

Résumé:

Many automation systems are used in safety-critical environments, in which any nondeterministic timing behavior of the software may damage equipment or even threaten the health of people. Making software behave deterministically usually relies on hardware-bound optimizations, leaving little room for abstraction layers. This, however, has a negative impact on several important software qualities such as portability, maintainability, or scalability. As a consequence, it becomes difficult to use the same software across different platforms, scale it up or down to changing requirements, or reuse code across different families of products. In this article, we show how both flexibility and robustness can be achieved for real-time automation software. To this end, we present the mechanisms behind the component-based execution framework FASA. This framework offers a platform abstraction mechanism, which allows developers to port it to various platforms in a well-defined manner while maintaining its deterministic qualities. Furthermore, FASA supports runtime reconfigurations and software updates while executing real-time applications without any disruptions. For each of these concepts, we detail our reference implementation.

Efficient subdomains for random testing
Conférence ArODES

Matthew Patrick, Rob Alexander, Manuel Oriol, John A. Clark

Lecture Notes in Computer Science

Lien vers la conférence

Résumé:

Opinion is divided over the effectiveness of random testing. It produces test cases cheaply, but struggles with boundary conditions and is labour intensive without an automated oracle. We have created a search-based testing technique that evolves multiple sets of efficient subdomains, from which small but effective test suites can be randomly sampled. The new technique handles boundary conditions by targeting different mutants with each set of subdomains. It achieves an average 230% improvement in mutation score over conventional random testing.

Fault-tolerant fault tolerance for component-based automation systems
Conférence ArODES

Manuel Oriol, Thomas Gamer, Thijmen de Gooijer, Michael Wahler, Ettore Ferranti

Proceedings of the 4th international ACM Sigsoft symposium on Architecting critical systems

Lien vers la conférence

Résumé:

To guarantee high availability, automation systems must be fault-tolerant. To this end, they must provide redundant solutions for the critical parts of the system. Classical fault tolerance patterns such as standby or N-modular redundancy provide system stability in the case of a fault. Fault tolerance is subsequently degraded or, depending on the number of deployed replicas, often even unavailable until the system has been repaired. We introduce a combination of a component-based framework, redundancy patterns, and a runtime manager, which is able to provide fault tolerance, to detect host failures, and to trigger a reconfiguration of the system at runtime. This combined solution maintains system operation in case a fault occurs and automatically restores fault tolerance. The proposed solution is validated using a case study of an industrial distributed automation system. The validation shows how our solution quickly restores fault tolerance without the need for operator intervention or immediate hardware replacement while limiting the impact on other applications.

PINCETTE - validating changes and upgrades in networked software
Conférence ArODES

Hana Chockler, Giovanni Denaro, Ling Meijia, Grigory Fedyukovich, Antti E. J. Hyvrinen, Leonardo Mariani, Ali Muhammad, Manuel Oriol, Ajitha Rajan, Ondrej Sery, Natasha Sharygina, Michael Tautschnig

Proceedings of the 17th European Conference on Software Maintenance and Reengineering

Lien vers la conférence

Résumé:

Networked control systems ensure today's dependability of essential infrastructure such as water, electricity and transportation. Over a life cycle of tens of years, maintenance upgrades of the software running these control systems must not introduce new software errors or otherwise break existing functionality. The EU FP7 project PINCETTE addresses this challenge by employing a combination of static and dynamic software verification tools. The changes between versions are used both as guidance for improving efficiency of software verification, and also to define new notions of correctness. We report on current progress and initial validation results by our industrial partners.

Using mutation analysis to evolve subdomains for random testing
Conférence ArODES

Matthew Patrick, Rob Alexander, Manuel Oriol, John A. Clark

Proceedings of the ÏEEE Sixth International Conference on Software Testing, Verification and Validation Workshops

Lien vers la conférence

Résumé:

Random testing is inexpensive, but it can also be inefficient. We apply mutation analysis to evolve efficient subdomains for the input parameters of eight benchmark programs that are frequently used in testing research. The evolved subdomains can be used for program analysis and regression testing. Test suites generated from the optimised subdomains outperform those generated from random subdomains with 10, 100 and 1000 test cases for uniform, Gaussian and exponential sampling. Our subdomains kill a large proportion of mutants for most of the programs we tested with just 10 test cases.

2012

Security risks and their management in cloud computing
Conférence ArODES

Afnan Ullah Khan, Manuel Oriol, Mariam Kiran, Ming Jiang, Karim Djemame

Proceedings of the 4th IEEE International Conference on Cloud Computing Technology and Science

Lien vers la conférence

Résumé:

Cloud computing provides outsourcing of resources bringing economic benefits. The outsourcing however does not allow data owners to outsource the responsibility of confidentiality, integrity and access control, as it still is the responsibility of the data owner. As cloud computing is transparent to both the programmers and the users, it induces challenges that were not present in previous forms of distributed computing. Furthermore, cloud computing enables its users to abstract away from low-level configuration such as configuring IP addresses and routers. It creates an illusion that this entire configuration is automated. This illusion is also true for security services, for instance automating security policies and access control in cloud, so that individuals or end-users using the cloud only perform very high-level (business oriented) configuration. This paper investigates the security challenges posed by the transparency of distribution, abstraction of configuration and automation of services by performing a detailed threat analysis of cloud computing across its different deployment scenarios (private, bursting, federation or multi-clouds). This paper also presents a risk inventory which documents the security threats identified in terms of availability, integrity and confidentiality for cloud infrastructures in detail for future security risks. We also propose a methodology for performing security risk assessment for cloud computing architectures presenting some of the initial results.

FASA : a scalable software framework for distributed control systems
Conférence ArODES

Manuel Oriol, Michael Wahler, Robin Steiger, Sascha Stoeter, Egemen Vardar, Heiko Koziolek, Atul Kumar

Proceedings of the 3rd international ACM SIGSOFT symposium on Architecting Critical Systems

Lien vers la conférence

Résumé:

Building a distributed control application is currently performed ad hoc: it consists of building each application part as an independent program and connecting them through a communication layer. With the pervasiveness of multicore chips, future generations of controllers will include a variable number of cores and hosts, making such a static development process obsolete. To solve this issue, the FASA component framework for distributed control systems computes a deployment of the components onto the available computation resources (cores and hosts) and a static schedule for their execution. Depending on the given deployment, FASA chooses a suitable communication protocol for each pair of connected components. This makes FASA a scalable software architecture for heterogeneous distributed control systems. This article presents the framework, as well as a validation of FASA using a case study of a distributed control system comprising both multicore and single-core processors.

MESSI : Mutant Evaluation by Static Semantic Interpretation
Conférence ArODES

Matthew Patrick, Manuel Oriol, John A. Clark

Proceedings of the 2012 IEEE Fifth International Conference on Software Testing, Verification and Validation

Lien vers la conférence

Résumé:

Mutation testing is effective at measuring the adequacy of a test suite, but it can be computationally expensive to apply all the test cases to each mutant. Previous research has investigated the effect of reducing the number of mutants by selecting certain operators, sampling mutants at random, or combining them to form new higher-order mutants. In this paper, we propose a new approach to the mutant reduction problem using static analysis. Symbolic representations are generated for the output along the paths through each mutant and these are compared with the original program. By calculating the range of their output expressions, it is possible to determine the effect of each mutation on the program output. Mutants with little effect on the output are harder to kill. We confirm this using random testing and an established test suite. Competent programmers are likely to only make small mistakes in their programming code. We argue therefore that test suites should be evaluated against those mutants that are harder to kill without being equivalent to the original program.

Random testing : evaluation of a law describing the number of faults found
Conférence ArODES

Manuel Oriol

2012 IEEE fifth International Conference on Software Testing, Verification and Validation

Lien vers la conférence

Résumé:

Automated random testing is an effective and predictable method for finding faults. While it was recently studied both in practice and in theory, no general laws were found that express the number of faults in function of the time or the number of tests performed. This article evaluates the Michaelis-Menten equation (Max * t)/(K + t) as a law for representing the number of faults found by automated random testing. Max is the number of faults it can uncover in the code, K is a constant dependent on the tested code and the strategy used and t is the number of tests. The evaluation relies on the testing of more than 6000 Java classes from the Qualitas Corpus.

Médias et communication
Nous contacter
Suivez la HES-SO
linkedin instagram facebook twitter youtube rss
univ-unita.eu www.eua.be swissuniversities.ch
Mentions légales
© 2021 - HES-SO.

HES-SO Rectorat