Explaining software faults in source code

Explicar falhas de software no código fonte
dc.contributor.advisorSaraiva, Joãopor
dc.contributor.advisorAbreu, Rui Filipe Lima Maranhão depor
dc.contributor.authorRibeiro, Francisco José Torrespor
dc.date.accessioned2024-07-15T15:18:14Z
dc.date.available2024-07-15T15:18:14Z
dc.date.issued2024-05-10
dc.date.submitted2024
dc.description.abstractA remoção de falhas, ou bugs, de software é chamada de depuração e é amplamente reconhecida como a tarefa mais árdua no desenvolvimento de software. Envolve deteção, localização e reparação. Enquanto os dois primeiros passos foram amplamente automatizados, a reparação tem sido menos priorizada devido aos desafios na geração de código que aborda vários tipos de bugs e imita estilos de escrita semelhantes aos humanos. Acreditamos firmemente na melhoria da automatização da fase de reparação, ecoando De- Millo: ”os programadores criam programas que estão quase corretos.” Esta tese foca-se em aproveitar informação contextual do código-fonte para melhorar a reparação automática de programas (APR), reconhecendo a ligação entre a localização de falhas e a reparação e propondo abordagens para integrar grandes modelos de linguagem (LLMs). Primeiro, apresentamos o Morpheus, uma técnica de inferência de operadores de mutação que identifica o onde e o porquê da ocorrência de falhas em software, associando mudanças na árvore do programa com padrões de operadores de mutação. Demonstramos eficiência e eficácia superiores em comparação com métodos tradicionais. Segundo, utilizando o modelo generativo CodeGPT, abordamos APR como um desafio de code completion, gerando linhas de correção candidatas, com base num ficheiro defeituoso e número de linha, através de um processo de várias etapas que envolve parsing do código, geração de sequências de tokens, restrição em caracteres de sintaxe e alinhamento de sequências. Terceiro, propomos o Mentat, uma técnica que utiliza o GPT-3 para reparação automática de erros de tipo através do bypass de sistemas de tipos para localizar expressões candidatas. O Mentat supera outras técnicas do estado da arte e permite análise escalável de programas através de uma validação totalmente automatizada, algo raramente feito em investigação. Coletivamente, estas contribuições abrem caminho para demonstrar como a integração estratégica de LLMs pode superar as limitações inerentes em APR.por
dc.description.abstractRemoving faults, or bugs, from software is called debugging and is widely recognized as the most arduous task in software development. It involves detection, localization, and repair. While the first two steps have been largely automated, repair has been less prioritized due to challenges in generating code that addresses various bug types and mimics human-like writing styles. We firmly believe in improving the automation of the repair phase, echoing DeMillo: ”developers create programs that are almost correct.” This thesis focuses on leveraging contextual information from source code to enhance automated program repair (APR). It acknowledges the link between fault localization and repair and proposes approaches to integrate large language models (LLMs). First, we introduce Morpheus, a mutation operator inference technique that identifies where and why software faults occur by associating changes in the program’s tree with mutation operator patterns. We demonstrate superior efficiency and effectiveness compared to traditional methods. Second, using the generative model CodeGPT, we approach APR by treating it as a code completion challenge, generating candidate patch lines based on a given buggy file and line number through a multi-step process involving parsing the code, generating token sequences, constraining syntax characters, and sequence alignment. Third, we propose Mentat, a technique that utilizes GPT-3 for automated repair of type errors by bypassing type systems to locate candidate expressions. Mentat surpasses other state-ofthe- art techniques and enables scalable program analysis through a fully automated validation, something rarely done in research. Collectively, these contributions pave the way to showcase how strategically integrating LLMs can overcome inherent limitations in APR.por
dc.description.sponsorshipThis work was partially funded by FCT — Foundation for Science and Technology — with PhD scholarship reference SFRH/BD/144938/2019 and within project UIDP/50014/2020. Additionally, this work also benefited from funding provided by JSPS KAKENHI-JP19K20248, ERASMUS+ Programme of the European Union within ERASMUS+ project No. 2020-1-PT01-KA203- 078646, COST — European Cooperation in Science and Technology Organisation — within ICT COST Action CA19135: CERCIRAS — Connecting Education and Research Communities for an Innovative Resource Aware Society.por
dc.identifier.tid101756593por
dc.identifier.urihttps://hdl.handle.net/1822/92456
dc.language.isoengpor
dc.relationinfo:eu-repo/grantAgreement/FCT/POR_NORTE/SFRH%2FBD%2F144938%2F2019/PTpor
dc.relationinfo:eu-repo/grantAgreement/FCT/6817 - DCRRNI ID/UIDP%2F50014%2F2020/PTpor
dc.relationJSPS KAKENHI-JP19K20248por
dc.relationERASMUS+por
dc.relation2020-1-PT01-KA203- 078646por
dc.relationCA19135: CERCIRASpor
dc.rightsopenAccesspor
dc.rights.urihttp://creativecommons.org/licenses/by/4.0/por
dc.subjectCompreensão de programaspor
dc.subjectGeração de códigopor
dc.subjectGrandes modelos de linguagempor
dc.subjectLocalização de falhaspor
dc.subjectReparação automática de programaspor
dc.subjectAutomated program repairpor
dc.subjectCode generationpor
dc.subjectFault localizationpor
dc.subjectLarge language modelspor
dc.subjectProgram comprehensionpor
dc.subject.fosEngenharia e Tecnologia::Engenharia Eletrotécnica, Eletrónica e Informáticapor
dc.titleExplaining software faults in source codepor
dc.title.alternativeExplicar falhas de software no código fontepor
dc.typedoctoralThesiseng
dspace.entity.typePublicationen
sdum.degree.gradeMuito bompor
sdum.uoeiEscola de Engenhariapor
thesis.degree.grantorUniversidade do Minhopor
thesis.degree.namePrograma de doutoramento em Informática (MAP-i)por

Ficheiros

Pacote original

A mostrar 1 - 1 de 1
A carregar...
Nome:
Francisco Jose Torres Ribeiro.pdf
Tamanho:
2.93 MB
Formato:
Adobe Portable Document Format
Descrição:
Tese de doutoramento