• Refine Query
  • Source
  • Publication year
  • to
  • Language
  • 163
  • 30
  • 17
  • 10
  • 7
  • 7
  • 6
  • 3
  • 2
  • 2
  • 1
  • 1
  • 1
  • 1
  • 1
  • Tagged with
  • 295
  • 149
  • 121
  • 72
  • 53
  • 41
  • 34
  • 31
  • 30
  • 30
  • 27
  • 24
  • 23
  • 22
  • 20
  • 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.
151

SOFTVIZ... A Step Forward

Singh, Mahim 30 April 2004 (has links)
Complex software systems are difficult to understand and very hard to debug. Programmers trying to understand or debug these systems must read through source code which may span over thousands of files. Software Visualization tries to ease this burden by using graphics and animation to convey important information about the program to the user, which may be used either for understanding the behavior of the program or for detecting any defects within the code. SoftViz is one such software visualization system, developed by Ben Kurtz under the guidance of Prof. George T. Heineman at WPI. We carry forward the work initiated with SoftViz. Our preliminary study showed various avenues for making the system more effective and user-friendly. Specifically I completed the unfinished work, made optimizations, implemented new functionality and added new visualization plug-ins, all aimed at making the system a more versatile and user-friendly debugging framework. We built a solid core functionality that would be able to support various functionalities and created new plug-ins that would make understanding and bug-detection easier. Further we integrated SoftViz with the Eclipse development environment, making the system easily accessible and potentially widely used. We created an error classification framework relating the common error classes and the visualizations that could be used to detect them. We believe this will be helpful in both selecting the right visualization options as well as constructing new plug-ins.
152

Minimization of Model-based Tests in Modbat / Minimering av modellbaserade tester i Modbat

Borg, Caroline January 2023 (has links)
Model-based testing (MBT) is a promising testing method with advantages like exhaustive exploration and high maintainability. However, one notable downside is that the generated tests usually contain much unnecessary noise. This noise can present itself as superfluous actions that bear no effect on test outcome — worsening comprehensibility and inflating test size. Generalpurpose minimization techniques like delta debugging have been successful in minimizing similar input before. The process involves removing elements that are redundant for satisfying given criteria, e.g., that a test still identifies a specific fault. In this thesis, we formulate the modmin algorithm which makes use of a hierarchical delta debugging approach to minimize sequences generated with Modbat — an open source MBT tool based on the extended finite-state machine (EFSM). One after the other, the algorithm attacks three common sub-structures found within the generated tests: model instances, loops, and transitions. To evaluate the work, we extended Modbat with modmin and applied it to tests generated from a set of ten models of varying complexity. The results show that modmin is very proficient at minimizing the tests generated from our model set and that it does so at a negligible cost. / Modellbaserad testning är en lovande teknik med fördelar som uttömande sökning och hög underhållbarhet. En nackdel är däremot att de genererade testfallen tenderar att innehålla onödig information. Ett testfall ska, med fördel, vara så kort och koncist som möjligt, och överflödiga instruktioner förvärrar både testbegriplighet och teststorlek. Minimeringsstrategier som delta debugging har med goda resultat används för att minimera liknande datastrukturer tidigare. Processen innebär vanligtvis att man plockar bort element som inte är nödvändiga för att särskilda kriterier ska vara uppfyllda. Exempelvis att ett test fortfarande identifierar samma fel som innan. I det här verket formulerar vi och implementerar modmin-algoritmen, en algoritm som bygger på hierarkisk delta debugging för att minimera testfall generade med det modellbaserade testningsverktyget Modbat. En efter en attackerar vår algoritm tre vanliga delstrukturer som vi har identifierat i Modbats testfall: modellinstanser, slingor, och individuella övergångar. Vi utvärderade arbetet genom att utöka Modbats öppna källkod med modmin och sen minimera testfall genererade från tio olika modeller av varierande komplexitet. Resultaten visar att modmin klarar av att minimera testfall generade från alla våra modeller och att det bara tillför en försumbar kostnad vad gäller systemresurser eller körtid.
153

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
154

Discovering heap anomalies in the wild

Jump, Maria Eva 01 February 2010 (has links)
Programmers increasingly rely on managed languages (e.g. Java and C#) to develop applications faster and with fewer bugs. Managed languages encourage allocating objects in the heap and rely on automatic memory management (garbage collection) to reclaim objects the program can no longer access. With more objects in the heap, the heap encodes more program state than ever before and offers new opportunities for optimization and analysis. This dissertation shows how to efficiently leverage the managed runtime to perform dynamic heap analysis. Previous heap analysis approaches significantly slow down programs, require special hardware, and/or increase memory consumption by 75% or more. We presents two synergistic techniques—dynamic object sampling (DOS) and heap summarization (HSG)—that mine program state embedded in the heap efficiently enough to use in production and effectively enough to improve performance, find bugs, and increase program understanding. We use these techniques to address three problems: (1) Performance of managed language. Because some objects live for a long time, they incur disproportionate collection costs. We optimize these costs with dynamic pretenuring. Dynamic pretenuring uses DOS to accurately predict allocation site survival rates and uses these predictions to improve performance. (2) Finding bugs. Memory leaks in managed languages occur when a program inadvertently maintains references to objects that it no longer needs. Along with degrading performance and resulting in program crashes, memory leaks cause systematic heap growth. We introduce Cork which uses the simplest type of HSG, a class points-from summary graph (CPFG), to detect systematic heap growth. Cork quickly identifies growing data structures observed in three popular benchmarks (fop, jess, and jbb2000) while adding an average of only 2.3% to total time. Additionally, we use Cork to debug a reported memory leak in Eclipse. (3) Program understanding. For a long time, static analysis has sought to statically summarize the shape of dynamic data structures to aid in program verification and understanding. Unfortunately, it only works on small programs. We introduce ShapeUp which instead characterizes recursive data structures dynamically by discovering data structure shape and degree invariants at runtime. ShapeUp uses DOS and a class field-wise summary graph (CFSG) to track in- and out-degree invariants of data structure nodes. We show how ShapeUp automatically identifies recursive data structures and likely shape invariants. Finally, we monitor discovered shape invariants to detect when a data structure becomes malformed. In summary, this dissertation is the first to leverage the managed runtime to perform dynamic heap analysis both accurately and efficiently. Our results show that the heap contains an enormous amount of program state and that there is much potential for dynamically mining heap characteristics for optimization, debugging, and program understanding. / text
155

User-Defined XML-to-Relational Mapping / User-Defined XML-to-Relational Mapping

Kohan, Tomáš January 2007 (has links)
In the present work we study opportunities of mapping the XML data into relational systems. In the first part we describe basic terminology used in this work and subsequently also basic techniques for mapping XML data into the relational database. In the next part we engaged in theoretical methods like MXM and ShreX, which were proposed on premises of a university or by a research group. In the third part we describe mapping methods, that are used in some commercial systems like Oracle, DB2 and MS SQL. In the whole second half of this work we propose a new mapping method (XRM), which bring in several new features, while the origin positive features are kept. At the end we analyze the prototype implementation of the proposed mapping method.
156

Nástroje pro tvorbu chování virtuálních agentu v POSHi / Tools for virtual agent behavior specification in POSH

Havlíček, Jan January 2013 (has links)
Goal of the work is to improve the SPOSH planner and its developement tools. SPOSH is a reactive planner of virtual agents similar to behavior trees that is used in the Pogamut platform, which is used to develop virtual agents. SPOSH itself suffers from several problems, especially excessive duplication of primitives (actions and senses) in different agents and unnatural execution of primitives. This work aims to remove these problems. Nearly all behavior tree planners are not public and developement tools are not usually available. Absence of such tools, especially of debugger, is major problem for users. Part of this work are tools for easy creation and debugging of SPOSH plans. Improved planner and created tools are demonstrated using an agent in game Unreal Tournament 2004.
157

Debugger Frontend for the SharpDevelop IDE / Debugger Frontend for the SharpDevelop IDE

Koníček, Martin January 2011 (has links)
The overall goal of the thesis is to explore new approaches to debugging managed code, namely visualization of data in the program being debugged. Particular goals of the work are: (a) to build an object graph visualizer, which displays selected data structure used in the program as directed graph, (b) improve visualization of object collections by providing an overview of collection contents and supporting broad range of collection types. The work is implemented for the SharpDevelop open source IDE for .NET. The author cooperates with the SharpDevelop team and the results of the work have been already incorporated into the new version of the IDE.
158

Presenting results of software model checker via debugging interface / Presenting results of software model checker via debugging interface

Kohan, Tomáš January 2012 (has links)
Title: Presenting results of software model checker via debugging interface Author: Tomáš Kohan Department: Department of Software Engineering Supervisor of the master thesis: RNDr. Ondřej Šerý, Ph.D., Department of Distributed and Dependable Systems Abstract: This thesis is devoted to design and implementation of the new debugging interface of the Java PathFinder application. As a suitable inte- face container was selected the Eclipse development environment. The created interface should visualize results of JPF and details of paused JVM state, es- pecially a list of variables and their values. Two subprojects were created, i.e. debug4jpf and JPFDeb.core. The first one is responsible for controlling and communication with the JPF instance. The latter one is an Eclipse plugin and provides user interface which is similar to the interface of standard Java debugger. These two components communicate with each other by using the ad-hoc communication protocol created for this purpose. Keywords: Java, verification, model checker, JPF, debugging interface
159

Context Aware Android Application Trace Analysis / Context Aware Android Application Trace Analysis

Kacz, Kristián January 2013 (has links)
The thesis examines how current mobile operating systems support context-aware applications and investigates the methods of mobile application debugging. The thesis points out what kind of problems need to be solved during debugging of context-aware applications. The primary goal of the thesis is to propose a debugging method which takes context information into account and to implement this method. The thesis contains a real world use case to demonstrate the proposed method.
160

Depuração de programas baseada em cobertura de integração / Program debugging based on integration coverage

Souza, Higor Amario de 20 December 2012 (has links)
Depuração é a atividade responsável pela localização e correção de defeitos gerados durante o desenvolvimento de programas. A depuração ocorre devido à atividade de teste bem-sucedida, na qual falhas no comportamento do programa são reveladas, indicando a existência de defeitos. Diversas técnicas têm sido propostas para automatizar a tarefa de depuração de programas. Algumas delas utilizam heurísticas baseadas em informações de cobertura obtidas da execução de testes. O objetivo é indicar trechos de código do programa mais suspeitos de conter defeitos. As informações de cobertura mais usadas em depuração automatizada são baseadas no teste estrutural de unidade. A cobertura de integração, obtida por meio da comunicação entre as unidades de um programa, pode trazer novas informações sobre o código executado, possibilitando a criação de novas estratégias para a tarefa de localização de defeitos. Este trabalho apresenta uma nova técnica de localização de defeitos chamada Depuração de programas baseada em Cobertura de Integração (DCI). São apresentadas duas coberturas de integração baseadas nas chamadas de métodos de um programa. Essas coberturas são usadas para a proposição de roteiros de busca dos defeitos a partir dos métodos considerados mais suspeitos. As informações de cobertura de unidade são então utilizadas para a localização dos defeitos dentro dos métodos. A DCI também utiliza uma nova heurística para atribuição de valores de suspeição a entidades de integração estática dos programas como pacotes, classes e métodos, fornecendo também um roteiro para a procura dos defeitos. Os experimentos realizados em programas reais mostram que a DCI permite realizar a localização de defeitos de forma mais eficaz do que o uso de informações de cobertura de unidade isoladamente. / Debugging is the activity responsible for localizing and fixing faults generated during software development. Debugging occurs due to a successful testing activity, in which failures in the behavior of the program are revealed, indicating the existence of faults. Several techniques have been proposed to automate the debugging tasks, especially the fault localization task. Some techniques use heuristics based on coverage data obtained from the execution of tests. The goal is to indicate program code excerpts more likely to contain faults. The coverage data mostly used in automated debugging is based on white-box unit testing. Integration coverage data, obtained from the communication between the units of a program, can bring about new information with respect to the executed code, which allows new strategies to the fault localization task to be devised. This work presents a new fault localization technique called Debugging based on Integration Coverage (DIC). Two integration coverages based on method invocations are presented. These coverages are used to propose two search strategies that provides a roadmap to locate faults by investigating the more suspicious methods. The unit coverage information are used to search the faulty statement inside the suspicious methods. The DIC technique also proposes a heuristic that assigns suspiciousness values to static integration entities of the programs, namely, packages, classes, and methods. This heuristic also provides a roadmap to search for the faults. Experiments using real programs show that DIC is more effective to locate faults than solely using unit coverage information.

Page generated in 0.0362 seconds