9 research outputs found

    Testing Challenges of Maritime Safety and Security Systems-of-Systems

    Full text link

    Programmatūras izpildes vides testēšana

    Get PDF
    Promocijas darbā risināta praktiska programmatūras dzīves cikla uzlabošanas problēma, tiecoties samazināt programmatūras uzturēšanas fāzē nepieciešamo cilvēka darba un zināšanu ieguldījumu. Darbā piedāvāta jauna programmatūras būves tehnoloģija, kas sniedz iespēju programmatūru izstrādāt tā, lai tā varētu patstāvīgi pārbaudīt savu „dzīvotspēju” dotajā izpildes vidē

    Live Testing of Cloud Services

    Get PDF
    Service providers use the cloud due to the dynamic infrastructure it offers at a low cost. However, sharing the infrastructure with other service providers as well as relying on remote services that may be inaccessible from the development environment create major limitations for development time testing. Modern service providers have an increasing need to test their services in the production environment. Such testing helps increase the reliability of the test results and detect problems that could not be detected in the development environment such as the noisy neighbor problem. Furthermore, testing in production enables other software engineering activities such as fault prediction and fault localization and makes them more efficient. Test interferences are a major problem for testing in production as they can have damaging effects ranging from unreliable and degraded performance to a malfunctioning or inaccessible system. The countermeasures that are taken to alleviate the risk of test interferences are called test isolation. Existing approaches for test isolation have limited applicability in the cloud context because the assumptions under which they operate are seldom satisfied in the cloud context. Moreover, when running tests in production, failures can happen and whether they are due to the testing activity or not the damage they cause cannot be ignored. To deal with such issues and manage to quickly get the system back to a healthy state in the case of a failure, human intervention should be reduced in the orchestration and execution of testing activities in production. Thus, the need for a solution that automates the orchestration of tests in production while taking into consideration the particularity of a cloud system such as the existence of multiple fault tolerance mechanisms. In this thesis, we define live testing as testing a system in its production environment, while it is serving, without causing any intolerable disruption to its usage. We propose an architecture that can help cope with the major challenges of live testing, namely reducing human intervention and providing test isolation. Our proposed architecture is composed of two building blocks, the Test Planner and the Test Execution Framework. To make the solution we are proposing independent from the technologies used in a cloud system, we propose the use of UML Testing Profile (UTP) to model the artifacts involved in this architecture. To reduce human intervention in testing activities, we start by automating test execution and orchestration in production. To achieve this goal, we propose an execution semantics that we associate with UTP concepts that are relevant for test execution. Such an execution semantics represent the behavior that the Test Execution Framework exhibits while executing tests. We propose a test case selection method and test plan generation method to automate the activities that are performed by the Test Planner. To alleviate the risk of test interferences, we also propose a set of test methods that can be used for test isolation. As opposed to existing test isolation techniques, our test methods do not make any assumptions about the parts of the system for which test isolation can be provided, nor about the feature to be tested. These test methods are used in the design of test plans. In fact, the applicability of each test method varies according to several factors including the risk of test interferences that parts of the system present, the availability of resources, and the impact of the test method on the provisioning of the service. To be able to select the right test method for each situation, information about the risk of test interference and the cost of test isolation need to be provided. We propose a method, configured instance evaluation method, that automates the process of obtaining such information. Our method evaluates the software involved in the realization of the system in terms of the risk of test interference it presents, and the cost to provide test isolation for that software. In this thesis, we also discuss the feasibility of our proposed methods and evaluate the provided solutions. We implemented a prototype for the test plan generation and showcased it in a case study. We also implemented a part of the configured instance evaluation method, and we show that it can help confirm the presence of a risk of test interference. We showcase one of our test methods on a case study using an application deployed in a Kubernetes managed cluster. We also provide proof of the soundness of our execution semantics. Furthermore, we evaluate, in terms of the resulting test plan’s execution time, the algorithms involved in the test plan generation method. We show that for two of the activities in our solution our proposed algorithms provide optimal solutions; and, for one activity we identify in which situations our algorithm does not manage to give the optimal solution. Finally, we prove that our test case selection method reduces the test suite without compromising the configuration fault detection power

    Détection et diagnostic des fautes dans des systèmes à base de réseaux de capteurs sans fils

    Get PDF
    Les pannes sont la règle et non l'exception dans les réseaux de capteurs sans fil. Un nœud capteur est fragile et il peut échouer en raison de l'épuisement de la batterie ou de la destruction par un événement externe. En outre, le nœud peut capter et transmettre des valeurs incorrectes en raison de l'influence de l'environnement sur son fonctionnement. Les liens sont également vulnérables et leur panne peut provoquer un partitionnement du réseau et un changement dans la topologie du réseau, ce qui conduit à une perte ou à un retard des données. Dans le cas où les nœuds sont portés par des objets mobiles, ils peuvent être mis hors de portée de la communication. Les réseaux de capteurs sont également sujets à des attaques malveillantes, telles que le déni de service, l'injection de paquets défectueux, entraînant un comportement inattendu du système et ainsi de suite. En plus de ces défaillances prédéfinies (c'est-à-dire avec des types et symptômes connus), les réseaux de capteurs présentent aussi des défaillances silencieuses qui ne sont pas connues à l'avance, et qui sont très liées au système. En revanche, les applications de RCSF, en particulier les applications de sécurité critiques, telles que la détection d'incendie ou les systèmes d'alarme, nécessitent un fonctionnement continu et fiable du système. Cependant, la garantie d'un fonctionnement correct d'un système pendant l'exécution est une tâche difficile. Cela est dû aux nombreux types de pannes que l'on peut rencontrer dans un tel système vulnérable et non fiable. Une approche holistique de la gestion des fautes qui aborde tous les types de fautes n'existe pas. En effet, les travaux existants se focalisent sur certains états d'incohérence du système. La raison en est simple : la consommation d'énergie augmente en fonction du nombre d'éléments à surveiller, de la quantité d'informations à collecter et parfois à échanger. Dans cette thèse, nous proposons un Framework global pour la gestion des fautes dans un réseau de capteurs. Ce framework, appelé IFTF , fournit une vision complète de l'état du système avec la possibilité de diagnostiquer des phénomènes anormaux. IFTF détecte les anomalies au niveau des données, diagnostique les défaillances de réseau, détecte les défaillances d'applications, et identifie les zones affectées du réseau. Ces objectifs sont atteints grâce à la combinaison efficace d'un service de diagnostic réseau (surveillance au niveau des composants), un service de test d'applications (surveillance au niveau du système) et un système de validation des données. Les deux premiers services résident sur chaque nœud du réseau et le système de validation des données réside sur chaque chef de groupe. Grâce à IFTF, les opérations de maintenance et de reconfiguration seront plus efficaces, menant à un système WSN (Wireless Sensor Network) plus fiable. Du point de vue conception, IFTF fournit de nombreux paramètres ajustables qui le rendent approprié aux divers types d'applications. Les résultats de simulation montrent que la solution présentée est efficace en termes de coût mémoire et d'énergie. En effet, le système de validation des données n'induit pas un surcoût de communication. De plus, le fonctionnement des deux services test et diagnostic augmente la consommation d'énergie de 4% en moyenne, par rapport au fonctionnement du service de diagnostic uniquement.Sensor faults are the rule and not the exception in every Wireless Sensor Network (WSN) deployment. Sensor nodes are fragile, and they may fail due to depletion of batteries or destruction by an external event. In addition, nodes may capture and communicate incorrect readings because of environmental influence on their sensing components. Links are also failure-prone, causing network partitions and dynamic changes in network topology, leading to delays in data communications. Links may fail when permanently or temporarily blocked by an external or environmental condition. Packets may be corrupted due to the erroneous nature of communications. When nodes are embedded or carried by mobile objects, nodes can be taken out of the range of communications. WSNs are also prone to malicious attacks, such as denial of service, injection of faulty packets, leading to unexpected behavior of the system and so on. In addition to these predefined faults or failures (i.e., with known types and symptoms), many times the sensor networks exhibits silent failures that are unknown beforehand and highly system-related. Applications over WSNs, in particular safety critical applications, such as fire detection or burglar alarm systems, require continuous and reliable operation of the system. However, validating that a WSN system will function correctly at run time is a hard problem. This is due to the numerous faults that can be encountered in the resource constrained nature of sensor platforms together with the unreliability of the wireless links networks. A holistic fault management approach that addresses all fault issues does not exist. Existing work most likely misses some potential causes of system failures. The reason is simple : the more elements to monitor, the more information to be collected and sometimes to be exchanged, then the more the energy consumption becomes higher. In this thesis, we propose an Integrated Fault Tolerance Framework (IFTF) that provides a complete picture of the system health with possibility to zoom in on the fault reasons of abnormal phenomena. IFTF detects data anomalies, diagnoses network failures, detects application level failures, identifies affected areas of the network and may determine the root causes of application malfunctioning. These goals are achieved efficiently through combining a network diagnosis service (component/element level monitoring) with an application testing service (system level monitoring) and a data validation system. The first two services reside on each node in the network and the data validation system resides on each cluster head. Thanks to IFTF, the maintenance and reconfiguration operations will be more efficient leading to a more dependable WSN. From the design view, IFTF offers to the application many tunable parameters that make it suitable for various application needs. Simulation results show that the presented solution is efficient both in terms of memory use and power consumption. Data validation system does not incur power consumption (communication overhead). Using testing service combined to diagnosis service incurs a 4 %, on average, increase in power consumption compared to using solely network diagnosis solutions.SAVOIE-SCD - Bib.électronique (730659901) / SudocGRENOBLE1/INP-Bib.électronique (384210012) / SudocGRENOBLE2/3-Bib.électronique (384219901) / SudocSudocFranceF

    Integrationstest : Testprozess, Testfokus und Integrationsreihenfolge

    Get PDF
    Im Integrationstest werden die Abhängigkeiten zwischen den Bausteinen eines Softwaresystems getestet. Die große Anzahl Abhängigkeiten heutiger Systeme stellt für die beteiligten Rollen des Integrationstests eine große Herausforderung dar. Die vorliegende Promotionsarbeit stellt neue und innovative Ansätze vor, um diese Rollen zu unterstützen. Im ersten Teil der Arbeit wird ein Testprozess definiert, der die spezifischen Eigenheiten des Integrationstests berücksichtigt. Der definierte Integrationstestprozess setzt dabei seinen Schwerpunkt auf die im Prozess zu treffenden Entscheidungen. Er beschreibt, welche Entscheidungen in welcher Reihenfolge von welcher Rolle getroffen werden und welchen Einfluss diese Entscheidungen auf weitere Entscheidungen besitzen. Im weiteren Verlauf der Arbeit werden neue Ansätze vorgestellt, die das Treffen von zwei Entscheidungen im Integrationstestprozess unterstützen: die Testfokusauswahl und die Integrationsreihenfolge. Das Testen aller Abhängigkeiten ist aufgrund der Ressourcenbeschränkungen in realen Softwareprodukten nicht möglich. Die wenigen verfügbaren Ressourcen müssen daher für das Testen der fehleranfälligen Abhängigkeiten eingesetzt werden. Für das Identifizieren der fehleranfälligen Abhängigkeiten, und somit für die Testfokusauswahl, stellt die Promotionsarbeit einen neuen Ansatz vor. Der Ansatz verwendet Informationen über die Fehleranzahl von Bausteinen und die Eigenschaften von Abhängigkeiten aus früheren Versionen der zu integrierenden Software, um statistisch signifikante Zusammenhänge zwischen den Eigenschaften und der Fehleranzahl aufzudecken. Diese Zusammenhänge werden in der aktuellen Version ausgenutzt, um den Testfokus, d.h. die zu testenden Abhängigkeiten, auszuwählen. Im Integrationstest werden Bausteine schrittweise zu einem Gesamtsystem zusammengesetzt, um die Lokalisation der Fehlerursache beim Auftreten eines Fehlers zu erleichtern. Der Nachteil dieses schrittweisen Vorgehens ist, dass Bausteine, die noch nicht integriert, aber für das Ausführen der Tests notwendig sind, simuliert werden müssen. Das Ziel ist es daher, eine Integrationsreihenfolge zu ermitteln, die einen minimalen Simulationsaufwand bedeutet. Zusätzlich sollten Abhängigkeiten, die als Testfokus ausgewählt wurden, frühzeitig integriert werden, um eventuelle Fehler frühzeitig aufzudecken. In dieser Promotionsarbeit wurde der erste Ansatz entwickelt, eine Integrationsreihenfolge zu ermitteln, die sowohl den Testfokus als auch den Simulationsaufwand berücksichtigt. Die in der Arbeit entwickelten Ansätze wurden in Fallstudien mit mehreren realistisch großen Softwaresystemen evaluiert

    Forschungsbericht Universität Mannheim 2006 / 2007

    Full text link
    Sie erhalten darin zum einen zusammenfassende Darstellungen zu den Forschungsschwerpunkten und Forschungsprofilen der Universität und deren Entwicklung in der Forschung. Zum anderen gibt der Forschungsbericht einen Überblick über die Publikationen und Forschungsprojekte der Lehrstühle, Professuren und zentralen Forschungseinrichtungen. Diese werden ergänzt um Angaben zur Organisation von Forschungsveranstaltungen, der Mitwirkung in Forschungsausschüssen, einer Übersicht zu den für Forschungszwecke eingeworbenen Drittmitteln, zu den Promotionen und Habilitationen, zu Preisen und Ehrungen und zu Förderern der Universität Mannheim. Darin zeigt sich die Bandbreite und Vielseitigkeit der Forschungsaktivitäten und deren Erfolg auf nationaler und internationaler Ebene

    Proceedings of the 4th International Conference on Principles and Practices of Programming in Java

    Full text link
    This book contains the proceedings of the 4th international conference on principles and practices of programming in Java. The conference focuses on the different aspects of the Java programming language and its applications
    corecore