• Refine Query
  • Source
  • Publication year
  • to
  • Language
  • 7
  • Tagged with
  • 7
  • 7
  • 7
  • 5
  • 3
  • 3
  • 3
  • 3
  • 2
  • 2
  • 2
  • 1
  • 1
  • 1
  • 1
  • About
  • The Global ETD Search service is a free service for researchers to find electronic theses and dissertations. This service is provided by the Networked Digital Library of Theses and Dissertations.
    Our metadata is collected from universities around the world. If you manage a university/consortium/country archive and want to be added, details can be found on the NDLTD website.
1

Falcon: A Testing Language to Support Test Creation and Comprehension

Kuhlman, Aaron J. 05 May 2023 (has links)
No description available.
2

Java Auto Grader

Abdulrazzak, Shahm, Mattsson, Tor January 2023 (has links)
The process of grading code submissions in programming courses is time-consuming and error-prone. To address this issue, we propose a project that automates the testing and grading process for Java code submissions at Halmstad University. Our approach leverages property-based testing using the JUnit Quick-Check library to generate tests and test reports automatically.   The tool we demonstrate in this project is designed to provide students with immediate feedback on their code submissions and reduce the workload for instructors. By automatically generating tests and test reports, our approach ensures that code submissions meet the required specifications and are free from common errors. The com.pholser library is utilized to implement the property-based testing approach.   We believe that our project has the potential to improve the grading process for programming courses and provide a more efficient and effective way of assessing student code submissions. Our implementation can be easily extended to support other programming languages and can be integrated with existing learning management systems to provide a seamless experience for instructors and students alike. / Processen för att bedöma kodinlämningar i programmeringskurser är vara tidskrävande. För att lösa problemet, vill vi automatisera testerna och generera en testrapport för Javainlämningar vid Högskolan i Halmstad. Vi tillhandahåller ett verktyg som med hjälp av Property-Based Testing och JUnit Quick-check biblioteket underlättar denna process för lärarna. Verktyget är utformat för att kunna ge studenterna direkt återkoppling på deras inlämningar. Genom att automatiskt generera tester och testrapporter säkerställer vi att inlämningarna uppfyller de krav som läraren specificerar.   Detta projekt har potential att förbättra rättningsprocesser i programmerings- kurser genom att testa inlämningar på ett systematiskt och likvärdigt sätt och genom att vara ett mer effektivt sätt att bedöma studenternas inlämningar. Verktyget skulle kunna integreras med en Learning Management System för att även automatisera nerladdning av inlämningar och uppladdning av resultat.
3

Testing Safety-Critical Systems using Fault Injection and Property-Based Testing

Vedder, Benjamin January 2015 (has links)
Testing software-intensive systems can be challenging, especially when safety requirements are involved. Property-Based Testing (PBT) is a software testing technique where properties about software are specified and thousands of test cases with a wide range of inputs are automatically generated based on these properties. PBT does not formally prove that the software fulfils its specification, but it is an efficient way to identify deviations from the specification. Safety-critical systems that must be able to deal with faults, without causing damage or injuries, are often tested using Fault Injection (FI) at several abstraction levels. The purpose of FI is to inject faults into a system in order to exercise and evaluate fault handling mechanisms. The aim of this thesis is to investigate how knowledge and techniques from the areas of FI and PBT can be used together to test functional and safety requirements simultaneously. We have developed a FI tool named FaultCheck that enables PBT tools to use common FI-techniques directly on source code. In order to evaluate and demonstrate our approach, we have applied our tool FaultCheck together with the commercially available PBT tool QuickCheck on a simple and on a complex system. The simple system is the AUTOSAR End-to-End (E2E) library and the complex system is a quadcopter simulator that we developed ourselves. The quadcopter simulator is based on a hardware quadcopter platform that we also developed, and the fault models that we inject into the simulator using FaultCheck are derived from the hardware quadcopter platform. We were able to efficiently apply FaultCheck together with QuickCheck on both the E2E library and the quadcopter simulator, which gives us confidence that FI together with PBT can be used to test and evaluate a wide range of simple and complex safety-critical software. / <p>This research has been funded through the PROWESS EU project (Grant agreement no: 317820), the KARYON EU project (Grant agreement no: 288195) and through EISIGS (grants from the Knowledge Foundation).</p> / PROWESS / KARYON
4

Increasing Trust in Software by Synthesizing Property-based Tests from Existing Unit Tests : A study on the expansion of existing test suites through the creation of property-based tests via invariants inferred from existing example-based unit tests / Ökad tillförlitlighet hos mjukvara genom skapance av egenskapsbaserade tester från befintliga enhetstester : En undersökning av möjligheterna kring att utöka testsviter genom att skapa egenskapsbaserade tester via invarianter utlästa från befintliga exempelbaserade tester

Uggelberg, Richard January 2022 (has links)
Many software projects include an extensive suite of example-based unit tests. The examples in the test suite can be used as an implicit specification of the behavior of the software. Inferring invariants from these examples may aid in the creation of property-based tests. However, the existing research on this topic is scarce and there is none conducted using the inference of invariants. In this thesis, we examine software projects with existing test suites. The Daikon invariant detector is used to infer invariants from test executions. The resulting invariants are then used to formalize properties to be used in property-based tests. The success of the process depends on a few variables. First, the tests have to be descriptive enough to allow any generalization to take place. Second, the Daikon invariant detector needs to be able to create an abstraction from the examples that are not too restrictive nor too lenient. Third, the format of the invariants needs to match available value generator constraints in property-based testing frameworks. Fourth, the resulting tests need to provide some benefit to the test suite. In all experiments, at least one of these requirements is not met. The conclusion is that inferred invariants are likely not useable in the creation of property-based tests. Furthermore, in instances where properties can be derived from invariants, the resulting tests do not practically improve the test suite. For the test suite to be improved, the abstraction of examples needs to describe properties of the software not contained in the existing tests. / Många mjukvaruprojekt använder sig av automatiserade enhetstester. Dessa är ofta baserade på flertalet enskilda exempel. Dessa kan ses som en implicit specifikation. Detta skulle kunna förenkla processen att skapa egenskapsbaserade tester. Tidigare forskning inom detta område är sällsynt och inga tidigare studier använder invarianter för att skapa egenskapsbaserade tester. Invariantdetektionsprogrammet Daikon används för att dynamisk utläsning av invarianter från exekvering av tester. Dessa användas sedan för att formalisera programegenskaper till egenskapsbaserade tester. Denna tekniks framgång är beroende av flera variabler. Befintliga tester måste vara tillräckligt deskriptiva för att kunna abstraheras till generalla egenskaper. Daikon behöver kunna utläsa invarianter from testexekveringen som varken är för generella eller för specifika. Invarianternas format behöver likna generatorfunktioner i egenskapsbaserade testramverk. De skapade egenskapsbaserade testerna behöver bidra positivt till programmets testsvit. I alla experiment fanns brister i åtminstone ett av dessa steg. Således är slutsatsen att automatiskt utlästa invarianter sannolikt inte är ett effektivt sätt att skapa egenskapsbaserade tester. Dessutom, i de fall då egenskapsbaserade tester skapats bidrar de inte till en förbättring av testsviten. För att förbättra testsviten måste de nya testerna beskriva egenskaper som inte redan testas av de befintliga testerna.
5

Formal Methods for Constraint-Based Testing and Reversible Debugging in Erlang

Palacios Corella, Adrián 20 March 2020 (has links)
Tesis por compendio / [ES] Erlang es un lenguaje de programación funcional con concurrencia mediante paso de mensajes basado en el modelo de actores. Éstas y otras características lo hacen especialmente adecuado para aplicaciones distribuidas en tiempo real acrítico. En los últimos años, la popularidad de Erlang ha aumentado debido a la demanda de servicios concurrentes. No obstante, desarrollar sistemas Erlang libres de errores es un reto considerable. A pesar de que Erlang evita muchos problemas por diseño (por ejemplo, puntos muertos), algunos otros problemas pueden aparecer. En este contexto, las técnicas de testing y depuración basadas en métodos formales pueden ser útiles para detectar, localizar y arreglar errores de programación en Erlang. En esta tesis proponemos varios métodos para testing y depuración en Erlang. En particular, estos métodos están basados en modelos semánticos para concolic testing, pruebas basadas en propiedades, depuración reversible con consistencia causal y repetición reversible con consistencia causal de programas Erlang. Además, probamos formalmente las principales propiedades de nuestras propuestas y diseñamos herramientas de código abierto que implementan estos métodos. / [CA] Erlang és un llenguatge de programació funcional amb concurrència mitjançant pas de missatges basat en el model d'actors. Estes i altres característiques el fan especialment adequat per a aplicacions distribuïdes en temps real acrític. En els últims anys, la popularitat d'Erlang ha augmentat degut a la demanda de servicis concurrents. No obstant, desenvolupar sistemes Erlang lliures d'errors és un repte considerable. Encara que Erlang evita molts problemes per disseny (per exemple, punts morts), alguns altres problemes poden aparéixer. En este context, les tècniques de testing y depuració basades en mètodes formals poden ser útils per a detectar, localitzar y arreglar errors de programació en Erlang. En esta tesis proposem diversos mètodes per a testing i depuració en Erlang. En particular, estos mètodes estan basats en models semàntics per a concolic testing, testing basat en propietats, depuració reversible amb consistència causal i repetició reversible amb consistència causal de programes Erlang. A més, provem formalment les principals propietats de les nostres propostes i dissenyem ferramentes de codi obert que implementen estos mètodes. / [EN] Erlang is a message-passing concurrent, functional programming language based on the actor model. These and other features make it especially appropriate for distributed, soft real-time applications. In the recent years, Erlang's popularity has increased due to the demand for concurrent services. However, developing error-free systems in Erlang is quite a challenge. Although Erlang avoids many problems by design (e.g., deadlocks), some other problems may appear. Here, testing and debugging techniques based on formal methods may be helpful to detect, locate and fix programming errors in Erlang. In this thesis we propose several methods for testing and debugging in Erlang. In particular, these methods are based on semantics models for concolic testing, property-based testing, causal-consistent reversible debugging and causal-consistent replay debugging of Erlang programs. We formally prove the main properties of our proposals and design open-source tools that implement these methods. / Palacios Corella, A. (2020). Formal Methods for Constraint-Based Testing and Reversible Debugging in Erlang [Tesis doctoral]. Universitat Politècnica de València. https://doi.org/10.4995/Thesis/10251/139076 / Compendio
6

Fuzz testování REST API / Fuzz Testing of REST API

Segedy, Patrik January 2020 (has links)
Táto práca sa zaoberá fuzz testovaním REST API. Po prezentovaní prehľadu techník používaných pri fuzz testovaní a posúdení aktuálnych nástrojov a výskumu zameraného na REST API fuzz testovanie, sme pristúpili k návrhu a implementácii nášho REST API fuzzeru. Základom nášho riešenia je odvodzovanie závislostí z OpenAPI formátu popisu REST API, umožňujúce stavové testovanie aplikácie. Náš fuzzer minimalizuje počet po sebe nasledujúcich 404 odpovedí od aplikácie a testuje aplikáciu viac do hĺbky. Problém prehľadávania dostupných stavov aplikácie je riešený pomocou usporiadania závislostí tak, aby sa maximalizovala pravdepodobnosť získania potrebných vstupných dát pre povinné parametre, v kombinácii s rozhodovaním, ktoré povinné parametre môžu využívať aj náhodne generované hodnoty. Implementácia je rozšírením Schemathesis projektu, ktorý generuje vstupy za pomoci Hypothesis knižnice. Implementovaný fuzzer je použitý na testovanie Red Hat Insights aplikácie, kde našiel 32 chýb, z čoho jednu chybu je možné reprodukovať len za pomoci stavového testovania.
7

Programming tools for intelligent systems

Considine, Breandan 04 1900 (has links)
Les outils de programmation sont des programmes informatiques qui aident les humains à programmer des ordinateurs. Les outils sont de toutes formes et tailles, par exemple les éditeurs, les compilateurs, les débogueurs et les profileurs. Chacun de ces outils facilite une tâche principale dans le flux de travail de programmation qui consomme des ressources cognitives lorsqu’il est effectué manuellement. Dans cette thèse, nous explorons plusieurs outils qui facilitent le processus de construction de systèmes intelligents et qui réduisent l’effort cognitif requis pour concevoir, développer, tester et déployer des systèmes logiciels intelligents. Tout d’abord, nous introduisons un environnement de développement intégré (EDI) pour la programmation d’applications Robot Operating System (ROS), appelé Hatchery (Chapter 2). Deuxièmement, nous décrivons Kotlin∇, un système de langage et de type pour la programmation différenciable, un paradigme émergent dans l’apprentissage automatique (Chapter 3). Troisièmement, nous proposons un nouvel algorithme pour tester automatiquement les programmes différenciables, en nous inspirant des techniques de tests contradictoires et métamorphiques (Chapter 4), et démontrons son efficacité empirique dans le cadre de la régression. Quatrièmement, nous explorons une infrastructure de conteneurs basée sur Docker, qui permet un déploiement reproductible des applications ROS sur la plateforme Duckietown (Chapter 5). Enfin, nous réfléchissons à l’état actuel des outils de programmation pour ces applications et spéculons à quoi pourrait ressembler la programmation de systèmes intelligents à l’avenir (Chapter 6). / Programming tools are computer programs which help humans program computers. Tools come in all shapes and forms, from editors and compilers to debuggers and profilers. Each of these tools facilitates a core task in the programming workflow which consumes cognitive resources when performed manually. In this thesis, we explore several tools that facilitate the process of building intelligent systems, and which reduce the cognitive effort required to design, develop, test and deploy intelligent software systems. First, we introduce an integrated development environment (IDE) for programming Robot Operating System (ROS) applications, called Hatchery (Chapter 2). Second, we describe Kotlin∇, a language and type system for differentiable programming, an emerging paradigm in machine learning (Chapter 3). Third, we propose a new algorithm for automatically testing differentiable programs, drawing inspiration from techniques in adversarial and metamorphic testing (Chapter 4), and demonstrate its empirical efficiency in the regression setting. Fourth, we explore a container infrastructure based on Docker, which enables reproducible deployment of ROS applications on the Duckietown platform (Chapter 5). Finally, we reflect on the current state of programming tools for these applications and speculate what intelligent systems programming might look like in the future (Chapter 6).

Page generated in 0.0744 seconds