15 research outputs found

    A Monitoring Language for Run Time and Post-Mortem Behavior Analysis and Visualization

    Get PDF
    UFO is a new implementation of FORMAN, a declarative monitoring language, in which rules are compiled into execution monitors that run on a virtual machine supported by the Alamo monitor architecture.Comment: In M. Ronsse, K. De Bosschere (eds), proceedings of the Fifth International Workshop on Automated Debugging (AADEBUG 2003), September 2003, Ghent. cs.SE/030902

    DrAST - An attribute debugger for JastAdd

    Get PDF
    Here we present a solution for debugging compilers that use abstract-syntax trees as their internal structure. The solution focuses on capturing one specific state of the compilation process, and should not be confused with the more known step-by-step debugging. The goal is to visualize the current state of the abstract-syntax tree and present its data to the user in an intuitive and interactive way. We believe that deeper understanding of an abstract-syntax tree, and bugs in its structure, can be achieved by visualization of the tree. Few such debuggers exist today however, but with this master thesis we aim to fill this gap. The main feature of the developed tool DrAST is the ability to visualize the abstract-syntax tree. It is also possible to filter the tree, so that only nodes of interest are visualized, while the rest are gathered in what we call clusters. Further, DrAST can display attributes, draw references between nodes, calculate parameterized attributes and is built for further extension. DrAST mainly debugs compilers created in the attribute-grammar-based system JastAdd. By the use of Java reflection and annotations from the JastAdd system, the debugger is able to extract the abstract-syntax tree from a compiler without knowing the specific grammar. In short, DrAST provides a new solution in compiler debugging which can be of use for both students and professionals

    Isolating cause-effect chains from computer programs

    Get PDF

    Integration of an Automatic Fault Localization Tool in an IDE and its Evaluation

    Get PDF
    Debugging is one of the most demanding and error-prone tasks in software development. Trying to address bugs has become overall more expensive as the software complexity and size have increased. As a result, several researchers attempted to improve the developers’ debugging experience and efficiency by automating as much of the process as possible. Existing auto-finding tools will assist developers in automatically detecting bugs, however, they are not yet widely available to software engineers. Making such tools available to developers can save debugging time and increase the productivity. Subsequently, the main goal of this dissertation is to incorporate an automatic fault localization tool into an Integrated Development Environment (IDE). The selected IDE was Visual Studio Code, a source-code editor developed by Microsoft for Windows, Linux, and macOS. Visual Studio Code is one of the most used IDEs and is known for its flexible API, which allows nearly every aspect of it to be customized. Furthermore, the chosen automatic fault localization tool was FLACOCO, a recent fault localization tool for Java that supports up to the most recent versions. Nonetheless, this document contains a full overview of several fault localization methodologies and tools, as well as an explanation of the complete planning and development process of the produced Visual Studio Code extension. After the development and deployment were completed, an evaluation was carried out. The extension was evaluated through a user study in which thirty Java professionals took part. The test had two parts: the first involved users using the extension to complete two debugging tasks in previously unknown projects, and the second had them filling out a satisfaction questionnaire for further analysis. Finally, the results show that the extension was a success, with the system being rated positively in all areas. However, it may be revised in light of the questionnaire responses, with the suggestions received being considered for future work.A depuração é uma das tarefas mais exigentes e propensas a erros no desenvolvimento de software. Tentar resolver esses erros tornou-se mais dispendioso com os incrementos de complexidade e tamanho do software. Deste modo, ao longo dos últimos anos, vários investigadores tentaram melhorar a experiência de depuração e a eficiência dos desenvolvedores automatizando o máximo possível do processo. Existem ferramentas de localização de defeitos que assistem os desenvolvedores na detecção automática de bugs, no entanto estas ainda não se encontram amplamente disponíveis para os programadores. Tornar essas ferramentas disponíveis para todos certamente iria resultar na redução do tempo de depuração e no aumento da produtividade. Assim sendo, o principal objetivo desta dissertação é incorporar uma ferramenta de localização automática de defeitos num IDE. Em termos de IDE, o Visual Studio Code, um editor de código-fonte desenvolvido pela Microsoft para Windows, Linux e macOS, foi selecionado. Este IDE tem ganho bastante popularidade, sendo um dos IDEs mais utilizados mundialmente. Além disso, o Visual Studio Code é reconhecido pela sua API flexível, que permite que quase todos os seus aspectos sejam personalizados. Adicionalmente, o FLACOCO, uma ferramenta de localização de defeitos baseada em SFL que suporta até as versões mais recentes do Java, foi escolhida como ferramenta de localização automática de defeitos. Além do mais, esta dissertação contém um estudo sobre as técnicas de localização automática de defeitos e as suas ferramentas, bem como uma explicação do planeamento e implementação da extensão criada para o Visual Studio Code. Após o término da implementação e a posterior implantação, foi efetuada a sua avaliação. Procedeu-se a um teste de utilização com a participação de treze utilizadores proficientes na linguagem Java. O teste foi composto por duas componentes: na primeira os utilizadores utilizaram a extensão para completar duas tarefas de depuração em projetos por eles desconhecidos e na segunda foi-lhes fornecido um questionário de satisfação para posterior análise. Os resultados obtidos sugerem que a extensão foi um sucesso, sendo que o sistema foi positivamente avaliado em todos os aspetos. No entanto a mesma poderá ser aprimorada tendo em consideração o feedback obtido na secção de resposta livre do questionário, sendo que o mesmo foi bastante valioso e as sugestões apuradas vieram a ser consideradas para trabalho futuro

    Software fault localization

    Full text link
    Pri razvoju programske opreme razvijalec poleg zadanih funkcionalnosti ustvari tudi napake, t. i. hrošče. Njihovo iskanje in odpravljanje, imenovano tudi razhroščevanje, sodi med dražje in dolgotrajnejše procese, zato raziskovalci razvijajo samodejne metode lokalizacije napak. Cilj tega magistrskega dela je primerjati množice metričnih spektralnih metod lokalizacije napak v programu in med njimi določiti najboljšo. V ta namen smo razvili repozitorij načrtno pokvarjenih testnih programov in ga vodili v aplikacijo FaultLocalization, ki je na izhodu vrnila urejen rangiran seznam metod. Z izvedeno analizo rezultatov smo pokazali, da osrednja referenčna metoda Tarantula zagotavlja zelo dobre rezultate, kot najboljša pa se je pokazala metoda Overlap.Software development is a process in which a developer produces specified functionality as well as software errors, called bugs. The process of finding and fixing those errors, called debugging, is one of the most expensive and time-consuming parts of software development which is the main reason why many automatic fault localization methods have been developed. The main goal of this master thesis is to compare multiple software fault localization methods and to determine which provides the best results. We have developed a repository of faulty test programs and led it into the application FaultLocalization, which returns a ranking list of chosen methods as its output. The results of the analysis performed as part of the thesis prove that the main reference method Tarantula provides very good results, while the best results are achieved by the Overlap method

    Fault Prediction and Localization with Test Logs

    Get PDF
    Software testing is an integral part of modern software development. However, test runs produce 1000’s of lines of logged output that make it difficult to find the cause of a fault in the logs. This problem is exacerbated by environmental failures that distract from product faults. In this thesis, we present techniques that reduce the number of log lines that testers manually investigate while still finding a maximal number of faults. We observe that the location of a fault should be contained in the lines of a failing log. In contrast, a passing log should not contain the lines related to a failure. Lines that occur in both a passing and failing log introduce noise when attempting to find the fault in a failing log. We introduce a novel approach where we remove the lines that occur in the passing log from the failing log. After removing these lines, we use information retrieval techniques to flag the most probable lines for investigation. We modify TF-IDF to identify the most relevant log lines related to past product failures. We then vectorize the logs and develop an exclusive version of KNN to identify which logs are likely to lead to product faults and which lines are the most probable indication of the failure. Our best approach, FaultFlagger finds 89% of the total faults and flags only 0.5% of lines for inspection. FaultFlagger drastically outperforms the previous work CAM. We implemented FaultFlagger as a tool at Ericsson where it presents daily fault prediction summaries to testers
    corecore