<?xml version="1.0" encoding="UTF-8"?>
<mets:METS xmlns:mets="http://www.loc.gov/METS/" xmlns:xlink="http://www.w3.org/TR/xlink/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dim="http://www.dspace.org/xmlns/dspace/dim" OBJEDIT="/xmlui/admin/item?itemID=109114" OBJID="/xmlui/handle/11531/107492" PROFILE="DSPACE METS SIP Profile 1.0" LABEL="DSpace Item" ID="hdl:11531/107492">
<mets:dmdSec GROUPID="group_dmd_0" ID="dmd_1">
<mets:mdWrap MDTYPE="OTHER" OTHERMDTYPE="DIM">
<mets:xmlData>
<dim:dim dspaceType="ITEM">
<dim:field authority="9e4c346d-de07-409e-94b7-d2ac9561ba96" element="contributor" qualifier="advisor" confidence="UNCERTAIN" language="es-ES" mdschema="dc">Huang, Furong</dim:field>
<dim:field authority="84249bc6-980d-47f3-949a-3d7e45005699" element="contributor" qualifier="author" confidence="UNCERTAIN" language="es-ES" mdschema="dc">Hernández Bas, Ignacio</dim:field>
<dim:field element="contributor" qualifier="other" language="es_ES" mdschema="dc">Universidad Pontificia Comillas, Escuela Técnica Superior de Ingeniería (ICAI)</dim:field>
<dim:field element="date" qualifier="accessioned" mdschema="dc">2025-12-02T12:33:37Z</dim:field>
<dim:field element="date" qualifier="available" mdschema="dc">2025-12-02T12:33:37Z</dim:field>
<dim:field element="date" qualifier="issued" language="es_ES" mdschema="dc">2026</dim:field>
<dim:field element="identifier" qualifier="uri" mdschema="dc">http://hdl.handle.net/11531/107492</dim:field>
<dim:field element="description" language="es_ES" mdschema="dc">Máster Universitario en Ingeniería de Telecomunicación + Máster Universitario en Big Data</dim:field>
<dim:field element="description" qualifier="abstract" language="es-ES" mdschema="dc">Este trabajo presenta un entorno de verificación multicapa para evaluar parches de código generados por LLMs. La motivación principal parte de una limitación habitual en los sistemas de reparación automática de programas: muchos parches se consideran correctos únicamente porque superan los tests existentes del repositorio. Sin embargo, pasar una batería de pruebas no siempre garantiza que el parche satisfaga realmente el comportamiento esperado descrito por el usuario en la incidencia original. Para abordar este problema, el proyecto propone un marco de verificación compuesto por tres capas complementarias.
La primera capa realiza una verificación estática sin ejecutar el código. En ella se comprueba la validez sintáctica del parche, se extraen métricas estructurales y se calcula un Índice de Calidad Estática a partir de herramientas como Pylint, Radon, Flake8, Mypy y Bandit. Esta capa proporciona una señal temprana sobre la calidad, mantenibilidad, estilo, tipado y seguridad del código. La segunda capa realiza una verificación dinámica aplicando el parche en un entorno contenerizado y ejecutando los tests originales del repositorio, siguiendo la misma lógica de evaluación empleada en SWE-bench. Este paso permite comprobar si el parche resuelve los fallos esperados sin introducir regresiones.
La tercera capa introduce una verificación semántica. Para ello, se extraen afirmaciones verificables a partir de la descripción en lenguaje natural de la incidencia. Estas afirmaciones guían la generación de tests adicionales mediante el uso de un bucle agéntico, con el objetivo de comprobar si el parche refleja la intención real del usuario y no solo si supera los tests disponibles.
El sistema se evaluó sobre SWE-bench Lite, los resultados muestran que la verificación multicapa ofrece señales más completas y permite detectar diferencias de comportamiento que una validación basada únicamente en test unitarios podría pasar por alto.</dim:field>
<dim:field element="description" qualifier="abstract" language="en-GB" mdschema="dc">This thesis presents a multi-layer verification harness for evaluating Python code patches generated by Large Language Models. The main motivation is that current automated program repair systems are often evaluated primarily against existing unit tests, which can confirm test-suite correctness but do not always guarantee that a patch truly satisfies the intended behavior described in a software issue. To address this limitation, the project proposes a verification framework composed of three complementary layers.
The first layer performs static verification without executing the code. It checks syntax validity, extracts structural information from the patch, and computes a Static Quality Index based on tools such as Pylint, Radon, Flake8, Mypy, and Bandit. This provides an early signal about code quality, maintainability, typing, style, and security. The second layer performs dynamic verification by applying the candidate patch inside a controlled containerized environment and running the repository’s original test suite, following the evaluation logic used in SWE-bench. This step verifies whether the patch preserves existing behavior and resolves the original failing tests.
The third layer introduces semantic verification. It extracts behavioral claims from the natural-language issue description and uses them to guide the generation of additional executable tests through an agentic loop. These tests are validated against both the buggy and reference versions of the repository, aiming to identify whether the generated patch captures the intended behavior rather than merely passing the available tests.
The system was evaluated on SWE-bench Lite, and the results show that the layered approach provides richer verification signals and detects behavioral differences that traditional test-based validation misses.</dim:field>
<dim:field element="format" qualifier="mimetype" language="es_ES" mdschema="dc">application/pdf</dim:field>
<dim:field element="language" qualifier="iso" language="es_ES" mdschema="dc">es-ES</dim:field>
<dim:field element="rights" language="es_ES" mdschema="dc">Attribution-NonCommercial-NoDerivs 3.0 United States</dim:field>
<dim:field element="rights" qualifier="uri" language="es_ES" mdschema="dc">http://creativecommons.org/licenses/by-nc-nd/3.0/us/</dim:field>
<dim:field element="subject" qualifier="other" language="es_ES" mdschema="dc">H67 (MIT)</dim:field>
<dim:field element="title" language="es_ES" mdschema="dc">A Multi-Layer Verification Harness for LLM-Generated Code Patches</dim:field>
<dim:field element="type" language="es_ES" mdschema="dc">info:eu-repo/semantics/masterThesis</dim:field>
<dim:field element="rights" qualifier="accessRights" language="es_ES" mdschema="dc">info:eu-repo/semantics/openAccess</dim:field>
<dim:field element="keywords" language="es-ES" mdschema="dc">Parches de Código Generados por LLMs; Verificación Multicapa; Evaluación de Corrección de Parches; Verificación Semántica; Pruebas Diferenciales; SWE-bench Lite</dim:field>
<dim:field element="keywords" language="en-GB" mdschema="dc">LLM-Generated Code Patches; Multi-Layer Verification; Patch Correctness Evaluation; Semantic Verification; Differential Testing; SWE-bench Lite</dim:field>
</dim:dim>
</mets:xmlData>
</mets:mdWrap>
</mets:dmdSec>
<mets:fileSec>
<mets:fileGrp USE="CONTENT">
<mets:file CHECKSUMTYPE="MD5" GROUPID="group_file_847528" ID="file_847528" MIMETYPE="application/pdf" SIZE="6317471" CHECKSUM="5d12129ec56770104145d4530a325ad2">
<mets:FLocat LOCTYPE="URL" xlink:title="TFM-HernandezBasIgnacio.pdf" xlink:label="Trabajo Fin de Máster" xlink:type="locator" xlink:href="/xmlui/bitstream/handle/11531/107492/TFM-HernandezBasIgnacio.pdf?sequence=1&amp;isAllowed=y"/>
</mets:file>
<mets:file CHECKSUMTYPE="MD5" GROUPID="group_file_847529" ID="file_847529" MIMETYPE="application/pdf" SIZE="265506" CHECKSUM="df1439ff0774fe3a4d0d993544d8e55d">
<mets:FLocat LOCTYPE="URL" xlink:title="AnexoI_2026_signed.pdf" xlink:label="Autorización" xlink:type="locator" xlink:href="/xmlui/bitstream/handle/11531/107492/AnexoI_2026_signed.pdf?sequence=2&amp;isAllowed=y"/>
</mets:file>
</mets:fileGrp>
</mets:fileSec>
<mets:structMap LABEL="DSpace" TYPE="LOGICAL">
<mets:div DMDID="dmd_1" TYPE="DSpace Item">
<mets:div ID="div_2" TYPE="DSpace Content Bitstream">
<mets:fptr FILEID="file_847528"/>
</mets:div>
<mets:div ID="div_3" TYPE="DSpace Content Bitstream">
<mets:fptr FILEID="file_847529"/>
</mets:div>
</mets:div>
</mets:structMap>
</mets:METS>
