Sampaio, Alberto António ChalupaSeban, Mickael Maurice Lima2024-12-092024-12-092024-10-10http://hdl.handle.net/10400.22/26708Debugging is one of the most challenging processes in software development. As the complexity of software increases, traditional debugging methods are becoming less viable and more expensive. Over the years, techniques for automatically locating defects, as well as improving them, and tools that implement these techniques have been developed. Although there have been significant improvements, the freely available tools still fall short when it comes to supporting C# projects. This dissertation proposes the design and implementation of an automatic defect location tool for C# projects. The tool, developed during this dissertation, is called FaultDetector. NET. It contains two versions: one that integrates into Integrated Development Environment (IDE) Visual Studio 2022, and another that is a Command Line Interface (CLI) to support CI/CD pipelines. Some new defect localization techniques will be explored to bridge the gap between academic research and practical applications in software development. A case study is carried out using the Defects Sample Project, a collection of C# projects containing reproducible bugs representative of different real-world software domains. Suspicion ratings and fault identification efficiency are used as metrics to compare the various fault localization techniques supported by the tool. This work focuses mainly on the importance of seamlessly integrating automatic fault localization into the development environments widely used by C# software engineers.A depuração é um dos processos mais desafiantes no desenvolvimento de software. Com o aumento da complexidade do software, os métodos tradicionais de depuração são cada vez menos viáveis e mais dispendiosos. Ao longo dos anos, foram desenvolvidas técnicas para a localização automática de defeitos, bem como o seu aperfeiçoamento, e ferramentas que implementam essas técnicas. Embora tenham havido melhorias significativas, as ferramentas disponíveis gratuitamente ainda estão aquém, no que concerne a suporte a projectos C#. Esta dissertação propõe a conceção e implementação de uma ferramenta de localização automática de defeitos em projectos C#. A ferramenta, desenvolvida durante esta dissertação, é denominada FaultDetector.NET. Contém duas versões: uma que se integra no IDE Visual Studio 2022, e outra que é um CLI para suportar os pipelines CI/CD. Algumas novas técnicas de localização de defeitos serão exploradas para colmatar a lacuna entre a investigação académica e as aplicações práticas no desenvolvimento de software. Um estudo de caso é realizado usando o Defects Sample Project, uma coleção de projetos C# contendo bugs reproduzíveis representativos de diferentes domínios de software do mundo real. As classificações de suspeita e a eficiência da identificação de falhas são usadas como métricas para comparar as várias técnicas de localização de falhas suportadas pela ferramenta. Este trabalho centra-se principalmente na importância da integração perfeita da localização automática de falhas nos ambientes de desenvolvimento amplamente utilizados pelos engenheiros de software C#.engFault localizationFault localization in C#Automated debuggingFault localization techniquesAutomated fault localization in C#Localização automatizada de defeitos em C#master thesis203733649