389 research outputs found

    Combining Static and Dynamic Analysis for Automatic Identification of Precise Access-Control Policies

    Get PDF

    Reducing Object-Oriented Testing Cost Through the Analysis of Antipatterns

    Get PDF
    RÉSUMÉ Les tests logiciels sont d’une importance capitale dans nos sociétés numériques. Le bon fonctionnement de la plupart des activités et services dépendent presqu’entièrement de la disponibilité et de la fiabilité des logiciels. Quoique coûteux, les tests logiciels demeurent le meilleur moyen pour assurer la disponibilité et la fiabilité des logiciels. Mais les caractéristiques du paradigme orienté-objet—l’un des paradigmes les plus utilisés—complexifient les activités de tests. Cette thèse est une contribution à l’effort considérable que les chercheurs ont investi ces deux décennies afin de proposer des approches et des techniques qui réduisent les coûts de test des programmes orientés-objet et aussi augmentent leur efficacité. Notre première contribution est une étude empirique qui vise à évaluer l’impact des antipatrons sur le coût des tests unitaires orienté-objet. Les antipatrons sont des mauvaises solutions à des problèmes récurrents de conception et d’implémentation. De nombreuses études empiriques ont montré l’impact négatif des antipatrons sur plusieurs attributs de qualité logicielle notamment la compréhension et la maintenance des programmes. D’autres études ont également révélé que les classes participant aux antipatrons sont plus sujettes aux changements et aux fautes. Néanmoins, aucune étude ne s’est penchée sur l’impact que ces antipatrons pourraient avoir sur les tests logiciels. Les résultats de notre étude montrent que les antipatrons ont également un effet négatif sur le coût des tests : les classes participants aux antipatrons requièrent plus de cas de test que les autres classes. De plus, bien que le test des antipatrons soit coûteux, l’étude révèle aussi que prioriser leur test contribuerait à détecter plutôt les fautes. Notre seconde contribution se base sur les résultats de la première et propose une nouvelle approche au problème d’ordre d’intégration des classes. Ce problème est l’un des principaux défis du test d’intégration des classes. Plusieurs approches ont été proposées pour résoudre ce problème mais la plupart vise uniquement à réduire le coût des stubs quand l’approche que nous proposons vise la réduction du coût des stubs et l’augmentation de la détection précoce des fautes. Pour ce faire, nous priorisons les classes ayant une grande probabilité de défectuosité, comme celles participant aux antipatrons. L’évaluation empirique des performances de notre approche a montré son habilité à trouver des compromis entre les deux objectifs. Comparée aux approches existantes, elle peut donc aider les testeurs à trouver des ordres d’intégration qui augmentent la capacité de détection précoce des fautes tout en minimisant le coût de stubs à développer. Dans notre troisième contribution, nous proposons d’analyser et améliorer l’utilisabilité de Madum, une stratégie de test unitaire spécifique à l’orienté-objet. En effet, les caractéristiques inhérentes à l’orienté-objet ont rendu insuffisants les stratégies de test traditionnelles telles que les tests boîte blanche ou boîte noire. La stratégie Madum, l’une des stratégies proposées pour pallier cette insuffisance, se présente comme une bonne candidate à l’automatisation car elle ne requiert que le code source pour identifier les cas de tests. Automatiser Madum pourrait donc contribuer à mieux tester les classes en général et celles participant aux antipatrons en particulier tout en réduisant les coûts d’un tel test. Cependant, la stratégie de test Madum ne définit pas de critères de couverture. Les critères de couverture sont un préalable à l’automatisation et aussi à la bonne utilisation de la stratégie de test. De plus, l’analyse des fondements de cette stratégie nous montre que l’un des facteurs clés du coût des tests basés sur Madum est le nombre de "transformateurs" (méthodes modifiant la valeur d’un attribut donné). Pour réduire les coûts de tests et faciliter l’utilisation de Madum, nous proposons des restructurations du code qui visent à réduire le nombre de transformateurs et aussi des critères de couverture qui guideront l’identification des données nécessaires à l’utilisation de cette stratégie de test. Ainsi, partant de la connaissance de l’impact des antipatrons sur les tests orientés-objet, nous contributions à réduire les côuts des tests unitaires et d’intégration.----------ABSTRACT Our modern society is highly computer dependent. Thus, the availability and the reliability of programs are crucial. Although expensive, software testing remains the primary means to ensure software availability and reliability. Unfortunately, the main features of the objectoriented paradigm (OO)—one of the most popular paradigms—complicate testing activities. This thesis is a contribution to the global effort to reduce OO software testing cost and to increase its reliability. Our first contribution is an empirical study to gather evidence on the impact of antipatterns on OO unit testing. Antipatterns are recurring and poor design or implementation choices. Past and recent studies showed that antipatterns negatively impact many software quality attributes, such as maintenability and understandability. Other studies also report that antipatterns are more change- and defect-prone than other classes. However, our study is the first regarding the impact of antipatterns on the cost of OO unit testing. The results show that indeed antipatterns have a negative effect on OO unit testing cost: AP classes are in general more expensive to test than other classes. They also reveal that testing AP classes in priority may be cost-effective and may allow detecting most of the defects and early. Our second contribution is a new approach to the problem of class integration test order (CITO) with the goals of minimizing the cost related to the order and increasing early defect detection. The CITO problem is one of the major problems when integrating classes in OO programs. Indeed, the order in which classes are tested during integration determines the cost (stubbing cost) but also the order on which defects are detected. Most approaches proposed to solve the CITO problem focus on minimizing the cost of stubs. In addition to this goal, our approach aims to increase early defect detection apability, which is one of the most important objectives in testing. Early defect detection allows detecting defects early and thus increases the cost-effectiveness of testing. An empirical study shows the superiority of our approach over existing approaches to provide balanced orders: orders that minimize stubbing cost while maximizing early defect detection. In our third contribution, we analyze and improve the usability of Madum testing, one of the unit testing strategies proposed to overcome the limitations of traditional testing when testing OO programs. Opposite to other OO unit testing, Madum testing requires only the source code to identify test cases. Madum testing is thus a good candidate for automation, which is one of the best ways to reduce testing cost and increase reliability. Automatizing Madum testing can help to test thoroughly AP classes while reducing the testing cost. However, Madum testing does not define coverage criteria that are a prerequisite for using the strategy and also automatically generating test data. Moreover, one of the key factors in the cost of using Madum testing is the number of transformers (methods that modify a given attribute). To reduce testing cost and increase the easiness of using Madum testing, we propose refactoring actions to reduce the number of transformers and formal coverage criteria to guide in generating Madum test data. We also formulate the problem of generating test data for Madum testing as a search-based problem. Thus, based on the evidence we gathered from the impact of antipatterns on OO testing, we reduce the cost of OO unit and integration testing

    Enhancing the Process of Testing Object -Oriented Systems.

    Get PDF
    Testing is a crucial step in the overall system development process. Using testing techniques that support features of the underlying software paradigm more effectively tests program than do testing techniques that support features of other paradigms. Systems developed with the object-oriented paradigm require techniques that support object-oriented features such as inheritance, data abstraction, encapsulation, and dynamic binding. Many techniques that are used to test systems developed with the structured paradigm are not sufficient for the testing of object-oriented systems. The goal of this research is to develop methods that will improve the process of testing object-oriented systems. Specifically, emphasis is given to improving the level of testing of methods because the level of method testing is generally considered inadequate. Algorithms are included that identify the set of methods, both interobject and intraobject, that should be tested for a given system. These algorithms are implemented as a part of an automated testing system that derives a framework for the testing of methods. This system includes the automatic generation of test drivers to facilitate the testing. It captures the results of tests for the purposes of reuse for future system maintenance. This framework provides the software engineer who is testing a system a mechanism to determine the level of method coverage that has been achieved in the testing process

    An Approach for the Generation of Multi-Objective Algorithms Applied to the Integration and Test Order Problem

    Get PDF
    Multi-Objective Evolutionary Algorithms (MOEAs) have been successfully applied to solve hard real software engineering problems. However, to choose and design a MOEA is considered a difficult task, since there are several parameters and components to be configured. These aspects directly impact the generated solutions and the performance of MOEAs. In this sense, this paper proposes an approach for the automatic generation of MOEAs applied to the Integration and Test Order (ITO) problem. Such a problem refers to the generation of optimal sequences of units for integration testing. The approach includes a set of parameters and components of different MOEAs, and is implemented with two design algorithms: Grammatical Evolution (GE) and Iterated Racing (irace). Evaluation results are presented, comparing the MOEAs generated by both design algorithms. Furthermore, the generated MOEAs are compared to two well-known MOEAs used in the literature to solve the ITO problem. Results show that the MOEAs generated with GE and irace perform similarly, and both outperform traditional MOEAs. The approach can reduce efforts spent to design and configure MOEAs, and serves as basis for implementing solutions to other software engineering problems

    Combining SOA and BPM Technologies for Cross-System Process Automation

    Get PDF
    This paper summarizes the results of an industry case study that introduced a cross-system business process automation solution based on a combination of SOA and BPM standard technologies (i.e., BPMN, BPEL, WSDL). Besides discussing major weaknesses of the existing, custom-built, solution and comparing them against experiences with the developed prototype, the paper presents a course of action for transforming the current solution into the proposed solution. This includes a general approach, consisting of four distinct steps, as well as specific action items that are to be performed for every step. The discussion also covers language and tool support and challenges arising from the transformation

    Plug-and-Participate for Limited Devices in the Field of Industrial Automation

    Get PDF
    Ausgangspunkt und gleichzeitig Motivation dieser Arbeit ist die heutige Marktsituation: Starke Kundenbedürfnisse nach individuellen Gütern stehen oftmals eher auf Massenproduktion ausgerichteten Planungs- und Automatisierungssystemen gegenüber - die Befriedigung individueller Kundenbedürfnisse setzt aber Flexibilität und Anpassungsfähigkeit voraus. Ziel dieser Arbeit ist es daher, einen Beitrag zu leisten, der es Unternehmen ermöglichen soll, auf diese individuellen Bedürfnisse flexibel reagieren zu können. Hierbei kann es im Rahmen der Dissertation natürlich nicht um eine Revolutionierung der gesamten Automatisierungs- und Planungslandschaft gehen; vielmehr ist die Lösung, die der Autor der Arbeit präsentiert, ein integraler Bestandteil eines Automatisierungskonzeptes, das im Rahmen des PABADIS Projektes entwickelt wurde: Während PABADIS das gesamte Spektrum von Planung und Maschineninfrastruktur zum Inhalt hat, bezieht sich der Kern dieser Arbeit weitestgehend auf den letztgenannten Punkt - Maschineninfrastruktur. Ziel war es, generische Maschinenfunktionalität in einem Netzwerk anzubieten, durch das Fertigungsaufträge selbstständig navigieren. Als Lösung präsentiert diese Dissertation ein Plug-and-Participate basiertes Konzept, welches beliebige Automatisierungsfunktionen in einer spontanen Gemeinschaft bereitstellt. Basis ist ein generisches Interface, in dem die generellen Anforderungen solcher ad-hoc Infrastrukturen aggregiert sind. Die Implementierung dieses Interfaces in der PABADIS Referenzimplementierung sowie die Gegenüberstellung der Systemanforderungen und Systemvoraussetzungen zeigte, das klassische Plug-and-Participate Technologien wie Jini und UPnP aufgrund ihrer Anforderungen nicht geeignet sind - Automatisierungsgeräte stellen oftmals nur eingeschränkte Ressourcen bereit. Daher wurde als zweites Ergebnis neben dem Plug-and-Participate basierten Automatisierungskonzept eine Plug-and-Participate Technologie entwickelt - Pini - die den Gegebenheiten der Automatisierungswelt gerecht wird und schließlich eine Anwendung von PABADIS auf heutigen Automatisierungsanlagen erlaubt. Grundlegende Konzepte von Pini, die dies ermöglichen, sind die gesamte Grundarchitektur auf Basis eines verteilten Lookup Service, die Art und Weise der Dienstrepräsentation sowie die effiziente Nutzung der angebotenen Dienste. Mit Pini und darauf aufbauenden Konzepten wie PLAP ist es nun insbesondere möglich, Automatisierungssysteme wie PABADIS auf heutigen Anlagen zu realisieren. Das wiederum ist ein Schritt in Richtung Kundenorientierung - solche Systeme sind mit Hinblick auf Flexibilität und Anpassungsfähigkeit gestaltet worden, um Kundenbedürfnissen effizient gerecht zu werden

    Plug-and-Participate for Limited Devices in the Field of Industrial Automation

    Get PDF
    Ausgangspunkt und gleichzeitig Motivation dieser Arbeit ist die heutige Marktsituation: Starke Kundenbedürfnisse nach individuellen Gütern stehen oftmals eher auf Massenproduktion ausgerichteten Planungs- und Automatisierungssystemen gegenüber - die Befriedigung individueller Kundenbedürfnisse setzt aber Flexibilität und Anpassungsfähigkeit voraus. Ziel dieser Arbeit ist es daher, einen Beitrag zu leisten, der es Unternehmen ermöglichen soll, auf diese individuellen Bedürfnisse flexibel reagieren zu können. Hierbei kann es im Rahmen der Dissertation natürlich nicht um eine Revolutionierung der gesamten Automatisierungs- und Planungslandschaft gehen; vielmehr ist die Lösung, die der Autor der Arbeit präsentiert, ein integraler Bestandteil eines Automatisierungskonzeptes, das im Rahmen des PABADIS Projektes entwickelt wurde: Während PABADIS das gesamte Spektrum von Planung und Maschineninfrastruktur zum Inhalt hat, bezieht sich der Kern dieser Arbeit weitestgehend auf den letztgenannten Punkt - Maschineninfrastruktur. Ziel war es, generische Maschinenfunktionalität in einem Netzwerk anzubieten, durch das Fertigungsaufträge selbstständig navigieren. Als Lösung präsentiert diese Dissertation ein Plug-and-Participate basiertes Konzept, welches beliebige Automatisierungsfunktionen in einer spontanen Gemeinschaft bereitstellt. Basis ist ein generisches Interface, in dem die generellen Anforderungen solcher ad-hoc Infrastrukturen aggregiert sind. Die Implementierung dieses Interfaces in der PABADIS Referenzimplementierung sowie die Gegenüberstellung der Systemanforderungen und Systemvoraussetzungen zeigte, das klassische Plug-and-Participate Technologien wie Jini und UPnP aufgrund ihrer Anforderungen nicht geeignet sind - Automatisierungsgeräte stellen oftmals nur eingeschränkte Ressourcen bereit. Daher wurde als zweites Ergebnis neben dem Plug-and-Participate basierten Automatisierungskonzept eine Plug-and-Participate Technologie entwickelt - Pini - die den Gegebenheiten der Automatisierungswelt gerecht wird und schließlich eine Anwendung von PABADIS auf heutigen Automatisierungsanlagen erlaubt. Grundlegende Konzepte von Pini, die dies ermöglichen, sind die gesamte Grundarchitektur auf Basis eines verteilten Lookup Service, die Art und Weise der Dienstrepräsentation sowie die effiziente Nutzung der angebotenen Dienste. Mit Pini und darauf aufbauenden Konzepten wie PLAP ist es nun insbesondere möglich, Automatisierungssysteme wie PABADIS auf heutigen Anlagen zu realisieren. Das wiederum ist ein Schritt in Richtung Kundenorientierung - solche Systeme sind mit Hinblick auf Flexibilität und Anpassungsfähigkeit gestaltet worden, um Kundenbedürfnissen effizient gerecht zu werden

    Electronic systems for intelligent particle tracking in the High Energy Physics field

    Get PDF
    This Ph.D thesis describes the development of a novel readout ASIC for hybrid pixel detector with intelligent particle tracking capabilities in High Energy Physics (HEP) application, called Macro Pixel ASIC (MPA). The concept of intelligent tracking is introduced for the upgrade of the particle tracking system of the Compact Muon Solenoid (CMS) experiment of the Large Hadron Collider (LHC) at CERN: this detector must be capable of selecting at front--end level the interesting particle and of providing them continuously to the back-end. This new functionality is required to cope with the improved performances of the LHC when, in about ten years' time, a major upgrade will lead to the High Luminosity scenario (HL-LHC). The high complexity of the digital logic for particle selection and the very low power requirement of 95% in particle selection and a data reduction from 200 Tb/s/cm2 to 1 Tb/s/cm2. A prototype, called MPA-Light, has been designed, produced and tested. According to the measurements, the prototype respects all the specications. The same device has been used for multi-chip assembly with a pixelated sensor. The assembly characterization with radioactive sources conrms the result obtained on the bare chip
    • …
    corecore