10 research outputs found

    Modélisation par contraintes de programmes en bytecode Java pour la génération automatique de tests

    Get PDF
    Program verification is essential to maintain a certain level of quality and reliability. Testing is to date the most used software verification mean in industry. Constraint programming is seen as an effective way to automate test data generation. In this thesis we propose a constraint modeling of the Java bytecode semantics, and a method, based on this modeling, to automatically generate test data. Our constraint model of the semantics of a Java bytecode program allows effective deductions, including in the presence of complex data structures or inheritance. In particular, the use of type variables can take into account inheritance and polymorphic method calls. Our method of test data generation uses the constraint model to cover specific instructions of the program under test. It uses a backward progression in the control flow graph to enumerate paths leading to the target instructions. This method suits particularly to cover instructions that are not reached by other methods of test data generation. Finally this method is implemented in a prototype named JAUT (Java Automatic Unit Testing). The experiments show that the prototype can increase the statements coverage obtained with the other available tools.La vérification des programmes est indispensable pour maintenir un certain niveau de qualité et de fiabilité. Le test est à ce jour le moyen de vérification des logiciels le plus utilisé dans l€industrie. La programmation par contraintes est vue comme un moyen efficace pour automatiser la génération de données de test. Dans cette thÚse nous proposons une modélisation par contraintes de la sémantique du bytecode Java, ainsi qu€une méthode, basée sur cette modélisation, pour générer automatiquement des données de test. Notre modÚle à contraintes de la sémantique d€un programme en bytecode Java permet de faire des déductions efficaces, y compris en présence de structures de données complexes ou d€héritage. En particulier, l€utilisation de variables de type permet de prendre en compte l€héritage et les appels de méthodes polymorphes. Notre méthode de génération de données de test exploite le modÚle à contraintes pour couvrir des instructions particuliÚres du programme sous test. Elle se base sur un parcours en arriÚre du graphe de flot de contrÎle pour énumérer des chemins menant aux instructions cibles. Elle est en particulier adaptée à la couverture d€instructions non couvertes par les autres méthodes de génération de données de test. Enfin cette méthode est mise en application dans un prototype, JAUT (Java Automatic Unit Testing). Les expériences montrent que le prototype permet d€augmenter la couverture des instructions obtenue avec les autres outils disponibles

    Modelling Dynamic Memory Management in Constraint-Based Testing

    Get PDF
    International audienceConstraint-Based Testing (CBT) is the process of generating test cases against a testing objective by using constraint solving techniques. When programs contain dynamic memory allocation and loops, constraint reasoning becomes challenging as new variables and new constraints should be created during the test data generation process. In this paper, we address this problem by proposing a new constraint model of C programs based on operators that model dynamic memory management. These operators apply powerful deduction rules on abstract states of the memory enhancing the constraint reasoning process. This allows to automatically generate test data respecting complex coverage objectives. We illustrate our approach on a well-known difficult example program that contains dynamic memory allocation/deallocation, structures and loops. We describe our implementation and provide preliminary experimental results on this example that show the highly deductive potential of the approach

    Constraint-Based Test Input Generation for Java Bytecode

    Get PDF
    Abstract—In this paper, we introduce a constraint-based reasoning approach to automatically generate test input for Java bytecode programs. Our goal-oriented method aims at building an input state of the Java Virtual Machine (JVM) that can drive program execution towards a given location within the bytecode. An innovative aspect of the method is the definition of a constraint model for each bytecode that allows backward exploration of the bytecode program, and permits to solve complex constraints over the memory shape (e.g., p = = p.next enforces the creation of a cyclic data structure referenced by p). We implemented this constraint-based approach in a prototype tool called JAUT, that can generate input states for programs written in a subset of JVM including integers and references, dynamic-allocated structures, objects inheritance and polymorphism by virtual method call, conditional and backward jumps. Experimental results show that JAUT generate test input for executing locations not reached by other state-of-the-art code-based test input generators such as jCUTE, JTEST and Pex. I

    Raisonnement Ă  contraintes pour le test de bytecode Java

    Get PDF
    National audienceLe test logiciel permet d'augmenter la confiance que l'on porte à un programme ou un systÚme. Dans ce contexte, il s'agit d'exécuter le programme avec un certain nombre d'entrées dans le but de couvrir des objectifs de test, comme celui qui consiste à atteindre toutes les instructions du programme au moins une fois durant la phase de test. Idéalement, on souhaite générer ces entrées de maniÚre automatique mais ce problÚme est indécidable dans le cas général. Dans notre travail, nous avons développé une méthode (incomplÚte) pour ce problÚme qui s'appuie sur une vision relationnelle du programme. Cet article présente des opérateurs à contraintes servant à modéliser les instructions du bytecode Java sous la forme d'une relation entre deux états de la mémoire : l'état de la mémoire avant l'instruction et l'état de la mémoire aprÚs l'instruction. Les opérateurs expriment des liens entre des états du tas, celui-ci est vu comme une fonction définie sur une partie des entiers naturels. Les algorithmes de filtrage de ces opérateurs permettent des déductions fortes que nous illustrons sur un exemple complexe. Ce modÚle est, à notre connaissance, le premier modÚle à contraintes proposé pour tester le bytecode Java

    Modelling dynamic memory management in Constraint-Based Testing, in "The

    No full text
    Constraint-Based Testing (CBT) is the process of generating test cases against a testing objective by using constraint solving techniques. When programs contain dynamic memory allocation and loops, constraint reasoning becomes challenging as new variables and new constraints should be created during the test data generation process. In this paper, we address this problem by proposing a new constraint model of C programs based on operators that model dynamic memory management. These operators apply powerful deduction rules on abstract states of the memory enhancing so the constraint reasoning process. This allows to automatically generate test data respecting complex coverage objectives. We illustrate our approach on a well-known difficult example program that contains dynamic memory allocation/deallocation, structures and loops. We describe our implementation and provide preliminary experimental results on this example that show the highly deductive potential of the approach

    Modélisation par contraintes de programmes en bytecode java pour la génération automatique de tests

    No full text
    La vérification des programmes est indispensable pour maintenir un certain niveau de qualité et de fiabilité. Le test est à ce jour le moyen de vérification des logiciels le plus utilisé dans l industrie. La programmation par contraintes est vue comme un moyen efficace pour automatiser la génération de données de test. Dans cette thÚse nous proposons une modélisation par contraintes de la sémantique du bytecode Java, ainsi qu une méthode, basée sur cette modélisation, pour générer automatiquement des données de test. Notre modÚle à contraintes de la sémantique d un programme en bytecode Java permet de faire des déductions efficaces, y compris en présence de structures de données complexes ou d héritage. En particulier, l utilisation de variables de type permet de prendre en compte l héritage et les appels de méthodes polymorphes. Notre méthode de génération de données de test exploite le modÚle à contraintes pour couvrir des instructions particuliÚres du programme sous test. Elle se base sur un parcours en arriÚre du graphe de flot de contrÎle pour énumérer des chemins menant aux instructions cibles. Elle est en particulier adaptée à la couverture d instructions non couvertes par les autres méthodes de génération de données de test. Enfin cette méthode est mise en application dans un prototype, JAUT (Java Automatic Unit Testing). Les expériences montrent que le prototype permet d augmenter la couverture des instructions obtenue avec les autres outils disponibles.Program verification is essential to maintain a certain level of quality and reliability. Testing is to date the most used software verification mean in industry. Constraint programming is seen as an effective way to automate test data generation. In this thesis we propose a constraint modeling of the Java bytecode semantics, and a method, based on this modeling, to automatically generate test data. Ourconstraint model of the semantics of a Java bytecode program allows to make effective deductions, including the presence of complex data structures or inheritance. In particular, the use of type variables can take into account inheritance and polymorphic method calls. Our method of test data generation uses the constraint model to cover specific instructions. This method is in particular a good way to cover instructions that are not reached by other methods of test data generation. Finally this method is implemented in a prototype named JAUT (Java Automatic Unit Testing). The experiments show that the prototype can increase the statements coverage obtained with the other available tools.RENNES1-BU Sciences Philo (352382102) / SudocRENNES-INRIA Rennes Irisa (352382340) / SudocSudocFranceF

    Effect of Tocilizumab vs Usual Care in Adults Hospitalized With COVID-19 and Moderate or Severe Pneumonia

    No full text
    International audienceImportance Severe pneumonia with hyperinflammation and elevated interleukin-6 is a common presentation of coronavirus disease 2019 (COVID-19).Objective To determine whether tocilizumab (TCZ) improves outcomes of patients hospitalized with moderate-to-severe COVID-19 pneumonia.Design, Setting, and Particpants This cohort-embedded, investigator-initiated, multicenter, open-label, bayesian randomized clinical trial investigating patients with COVID-19 and moderate or severe pneumonia requiring at least 3 L/min of oxygen but without ventilation or admission to the intensive care unit was conducted between March 31, 2020, to April 18, 2020, with follow-up through 28 days. Patients were recruited from 9 university hospitals in France. Analyses were performed on an intention-to-treat basis with no correction for multiplicity for secondary outcomes.Interventions Patients were randomly assigned to receive TCZ, 8 mg/kg, intravenously plus usual care on day 1 and on day 3 if clinically indicated (TCZ group) or to receive usual care alone (UC group). Usual care included antibiotic agents, antiviral agents, corticosteroids, vasopressor support, and anticoagulants.Main Outcomes and Measures Primary outcomes were scores higher than 5 on the World Health Organization 10-point Clinical Progression Scale (WHO-CPS) on day 4 and survival without need of ventilation (including noninvasive ventilation) at day 14. Secondary outcomes were clinical status assessed with the WHO-CPS scores at day 7 and day 14, overall survival, time to discharge, time to oxygen supply independency, biological factors such as C-reactive protein level, and adverse events.Results Of 131 patients, 64 patients were randomly assigned to the TCZ group and 67 to UC group; 1 patient in the TCZ group withdrew consent and was not included in the analysis. Of the 130 patients, 42 were women (32%), and median (interquartile range) age was 64 (57.1-74.3) years. In the TCZ group, 12 patients had a WHO-CPS score greater than 5 at day 4 vs 19 in the UC group (median posterior absolute risk difference [ARD] −9.0%; 90% credible interval [CrI], −21.0 to 3.1), with a posterior probability of negative ARD of 89.0% not achieving the 95% predefined efficacy threshold. At day 14, 12% (95% CI −28% to 4%) fewer patients needed noninvasive ventilation (NIV) or mechanical ventilation (MV) or died in the TCZ group than in the UC group (24% vs 36%, median posterior hazard ratio [HR] 0.58; 90% CrI, 0.33-1.00), with a posterior probability of HR less than 1 of 95.0%, achieving the predefined efficacy threshold. The HR for MV or death was 0.58 (90% CrI, 0.30 to 1.09). At day 28, 7 patients had died in the TCZ group and 8 in the UC group (adjusted HR, 0.92; 95% CI 0.33-2.53). Serious adverse events occurred in 20 (32%) patients in the TCZ group and 29 (43%) in the UC group (P = .21).Conclusions and Relevance In this randomized clinical trial of patients with COVID-19 and pneumonia requiring oxygen support but not admitted to the intensive care unit, TCZ did not reduce WHO-CPS scores lower than 5 at day 4 but might have reduced the risk of NIV, MV, or death by day 14. No difference on day 28 mortality was found. Further studies are necessary for confirming these preliminary results.Trial Registration ClinicalTrials.gov Identifier: NCT0433180

    Effect of anakinra versus usual care in adults in hospital with COVID-19 and mild-to-moderate pneumonia (CORIMUNO-ANA-1): a randomised controlled trial

    No full text
    International audienc

    Sarilumab in adults hospitalised with moderate-to-severe COVID-19 pneumonia (CORIMUNO-SARI-1): An open-label randomised controlled trial

    No full text
    International audienc
    corecore