Sistema de instrumentación estática de código fuente para mocking de funciones y objetos

Autores
Tiraboschi, Andrés Agustín
Año de publicación
2018
Idioma
español castellano
Tipo de recurso
tesis de grado
Estado
versión publicada
Colaborador/a o director/a de tesis
Fridlender, Daniel Edgardo, dir.
Descripción
Tesis (Lic. en Ciencias de la Computación)--Universidad Nacional de Córdoba, Facultad de Matemática, Astronomía, Física y Computación, 2018.
Este trabajo consiste en el desarrollo de una herramienta de unit testing para el lenguaje de programación C. Los principales problemas que poseen este tipo de herramientas es la intrusión en el código de producción y el impacto en el rendimiento del programa a la hora de testear. Este último punto hace que, por ejemplo en sistemas embebidos los test no sean lo suficientemente confiables ya que una pequeña diferencia en el rendimiento puede tener un gran impacto en el programa. Por ello, se busca desarrollar un sistema de test que utilice mocking, es decir que cree módulos que simulan el comportamiento de módulos complejos, y además: -Sea plataforma independiente tanto de la arquitectura como del sistema operativo. -Requiera cero intrusión del código fuente por parte de los usuarios. -Mínimo impacto en desempeño de la aplicación (menor o igual al de otros sistemas de mocking como google mock, gmock). -Provea absoluto control del comportamiento a mockear (en contraposición al conjunto de funcionalidades provisto por gmock). -Que permita mockear tanto funciones definidas por el usuario como funciones de librerías externas (por ejemplo, las del sistema). -Que su uso no implique grandes modificaciones en el build system del proyecto. La herramienta desarrollada en este trabajo fue creada como un plugin de GCC y requirió introducir modificaciones en el compilador. Estás modificaciones fueron verificadas y aceptadas quienes están a cargo del desarrollo del compilador y ya vienen integradas desde la versión 6.0.0 de GCC. El parche con esas modificaciones tiene como autor a Andrés Tiraboschi, fue aceptado y puede encontrarse en el siguiente link: http://permalink.gmane.org/gmane.comp.gcc.patches/342255.
This work consists of the development of a unit testing tool for the programming language C. The main problems that this type of tool has is the intrusion into the production code and the impact on the program's performance when it comes to testing. This last point makes that, for example in embedded systems the tests are not reliable enough since a small difference in performance can have a great impact on the program. For this reason, it is sought to develop a test system that uses mocking, that is to say that creates modules that simulate the behavior of complex modules, and in addition: -Be independent platform of both the architecture and the operating system. -Require zero intrusion of the source code by users. -Minimal impact on application performance (less than or equal to that of other mocking systems such as google mock, gmock). -Provide absolute control of the behavior to mock (as opposed to the set of features provided by gmock). -Allowing you to mock both user-defined functions and functions of external libraries (for example, those of the system). -That its use does not imply big modifications in the project's build system. The tool developed in this work was created as a GCC plugin and required to introduce modifications in the compiler. These modifications were verified and accepted by those in charge of the development of the compiler and are already integrated from version 6.0.0 of GCC. The patch with these modifications has Andrés Tiraboschi as author, it was accepted and can be found in the following link: http://permalink.gmane.org/gmane.comp.gcc.patches/342255
Materia
Testeo y depuración software
Herramientas de mantenimiento de software
Compiladores
Software testing and debugging
Incremental compilers
Software maintenance tools
Compiladores
Testing
Mocking
Nivel de accesibilidad
acceso abierto
Condiciones de uso
Repositorio
Repositorio Digital Universitario (UNC)
Institución
Universidad Nacional de Córdoba
OAI Identificador
oai:rdu.unc.edu.ar:11086/11762

id RDUUNC_a560c32c557141cf621c2315b6148e61
oai_identifier_str oai:rdu.unc.edu.ar:11086/11762
network_acronym_str RDUUNC
repository_id_str 2572
network_name_str Repositorio Digital Universitario (UNC)
spelling Sistema de instrumentación estática de código fuente para mocking de funciones y objetosTiraboschi, Andrés AgustínTesteo y depuración softwareHerramientas de mantenimiento de softwareCompiladoresSoftware testing and debuggingIncremental compilersSoftware maintenance toolsCompiladoresTestingMockingTesis (Lic. en Ciencias de la Computación)--Universidad Nacional de Córdoba, Facultad de Matemática, Astronomía, Física y Computación, 2018.Este trabajo consiste en el desarrollo de una herramienta de unit testing para el lenguaje de programación C. Los principales problemas que poseen este tipo de herramientas es la intrusión en el código de producción y el impacto en el rendimiento del programa a la hora de testear. Este último punto hace que, por ejemplo en sistemas embebidos los test no sean lo suficientemente confiables ya que una pequeña diferencia en el rendimiento puede tener un gran impacto en el programa. Por ello, se busca desarrollar un sistema de test que utilice mocking, es decir que cree módulos que simulan el comportamiento de módulos complejos, y además: -Sea plataforma independiente tanto de la arquitectura como del sistema operativo. -Requiera cero intrusión del código fuente por parte de los usuarios. -Mínimo impacto en desempeño de la aplicación (menor o igual al de otros sistemas de mocking como google mock, gmock). -Provea absoluto control del comportamiento a mockear (en contraposición al conjunto de funcionalidades provisto por gmock). -Que permita mockear tanto funciones definidas por el usuario como funciones de librerías externas (por ejemplo, las del sistema). -Que su uso no implique grandes modificaciones en el build system del proyecto. La herramienta desarrollada en este trabajo fue creada como un plugin de GCC y requirió introducir modificaciones en el compilador. Estás modificaciones fueron verificadas y aceptadas quienes están a cargo del desarrollo del compilador y ya vienen integradas desde la versión 6.0.0 de GCC. El parche con esas modificaciones tiene como autor a Andrés Tiraboschi, fue aceptado y puede encontrarse en el siguiente link: http://permalink.gmane.org/gmane.comp.gcc.patches/342255.This work consists of the development of a unit testing tool for the programming language C. The main problems that this type of tool has is the intrusion into the production code and the impact on the program's performance when it comes to testing. This last point makes that, for example in embedded systems the tests are not reliable enough since a small difference in performance can have a great impact on the program. For this reason, it is sought to develop a test system that uses mocking, that is to say that creates modules that simulate the behavior of complex modules, and in addition: -Be independent platform of both the architecture and the operating system. -Require zero intrusion of the source code by users. -Minimal impact on application performance (less than or equal to that of other mocking systems such as google mock, gmock). -Provide absolute control of the behavior to mock (as opposed to the set of features provided by gmock). -Allowing you to mock both user-defined functions and functions of external libraries (for example, those of the system). -That its use does not imply big modifications in the project's build system. The tool developed in this work was created as a GCC plugin and required to introduce modifications in the compiler. These modifications were verified and accepted by those in charge of the development of the compiler and are already integrated from version 6.0.0 of GCC. The patch with these modifications has Andrés Tiraboschi as author, it was accepted and can be found in the following link: http://permalink.gmane.org/gmane.comp.gcc.patches/342255Fridlender, Daniel Edgardo, dir.2018info:eu-repo/semantics/bachelorThesisinfo:eu-repo/semantics/publishedVersionhttp://purl.org/coar/resource_type/c_7a1finfo:ar-repo/semantics/tesisDeGradoapplication/pdfhttp://hdl.handle.net/11086/11762spainfo:eu-repo/semantics/openAccessreponame:Repositorio Digital Universitario (UNC)instname:Universidad Nacional de Córdobainstacron:UNC2025-09-04T12:33:48Zoai:rdu.unc.edu.ar:11086/11762Institucionalhttps://rdu.unc.edu.ar/Universidad públicaNo correspondehttp://rdu.unc.edu.ar/oai/snrdoca.unc@gmail.comArgentinaNo correspondeNo correspondeNo correspondeopendoar:25722025-09-04 12:33:48.678Repositorio Digital Universitario (UNC) - Universidad Nacional de Córdobafalse
dc.title.none.fl_str_mv Sistema de instrumentación estática de código fuente para mocking de funciones y objetos
title Sistema de instrumentación estática de código fuente para mocking de funciones y objetos
spellingShingle Sistema de instrumentación estática de código fuente para mocking de funciones y objetos
Tiraboschi, Andrés Agustín
Testeo y depuración software
Herramientas de mantenimiento de software
Compiladores
Software testing and debugging
Incremental compilers
Software maintenance tools
Compiladores
Testing
Mocking
title_short Sistema de instrumentación estática de código fuente para mocking de funciones y objetos
title_full Sistema de instrumentación estática de código fuente para mocking de funciones y objetos
title_fullStr Sistema de instrumentación estática de código fuente para mocking de funciones y objetos
title_full_unstemmed Sistema de instrumentación estática de código fuente para mocking de funciones y objetos
title_sort Sistema de instrumentación estática de código fuente para mocking de funciones y objetos
dc.creator.none.fl_str_mv Tiraboschi, Andrés Agustín
author Tiraboschi, Andrés Agustín
author_facet Tiraboschi, Andrés Agustín
author_role author
dc.contributor.none.fl_str_mv Fridlender, Daniel Edgardo, dir.
dc.subject.none.fl_str_mv Testeo y depuración software
Herramientas de mantenimiento de software
Compiladores
Software testing and debugging
Incremental compilers
Software maintenance tools
Compiladores
Testing
Mocking
topic Testeo y depuración software
Herramientas de mantenimiento de software
Compiladores
Software testing and debugging
Incremental compilers
Software maintenance tools
Compiladores
Testing
Mocking
dc.description.none.fl_txt_mv Tesis (Lic. en Ciencias de la Computación)--Universidad Nacional de Córdoba, Facultad de Matemática, Astronomía, Física y Computación, 2018.
Este trabajo consiste en el desarrollo de una herramienta de unit testing para el lenguaje de programación C. Los principales problemas que poseen este tipo de herramientas es la intrusión en el código de producción y el impacto en el rendimiento del programa a la hora de testear. Este último punto hace que, por ejemplo en sistemas embebidos los test no sean lo suficientemente confiables ya que una pequeña diferencia en el rendimiento puede tener un gran impacto en el programa. Por ello, se busca desarrollar un sistema de test que utilice mocking, es decir que cree módulos que simulan el comportamiento de módulos complejos, y además: -Sea plataforma independiente tanto de la arquitectura como del sistema operativo. -Requiera cero intrusión del código fuente por parte de los usuarios. -Mínimo impacto en desempeño de la aplicación (menor o igual al de otros sistemas de mocking como google mock, gmock). -Provea absoluto control del comportamiento a mockear (en contraposición al conjunto de funcionalidades provisto por gmock). -Que permita mockear tanto funciones definidas por el usuario como funciones de librerías externas (por ejemplo, las del sistema). -Que su uso no implique grandes modificaciones en el build system del proyecto. La herramienta desarrollada en este trabajo fue creada como un plugin de GCC y requirió introducir modificaciones en el compilador. Estás modificaciones fueron verificadas y aceptadas quienes están a cargo del desarrollo del compilador y ya vienen integradas desde la versión 6.0.0 de GCC. El parche con esas modificaciones tiene como autor a Andrés Tiraboschi, fue aceptado y puede encontrarse en el siguiente link: http://permalink.gmane.org/gmane.comp.gcc.patches/342255.
This work consists of the development of a unit testing tool for the programming language C. The main problems that this type of tool has is the intrusion into the production code and the impact on the program's performance when it comes to testing. This last point makes that, for example in embedded systems the tests are not reliable enough since a small difference in performance can have a great impact on the program. For this reason, it is sought to develop a test system that uses mocking, that is to say that creates modules that simulate the behavior of complex modules, and in addition: -Be independent platform of both the architecture and the operating system. -Require zero intrusion of the source code by users. -Minimal impact on application performance (less than or equal to that of other mocking systems such as google mock, gmock). -Provide absolute control of the behavior to mock (as opposed to the set of features provided by gmock). -Allowing you to mock both user-defined functions and functions of external libraries (for example, those of the system). -That its use does not imply big modifications in the project's build system. The tool developed in this work was created as a GCC plugin and required to introduce modifications in the compiler. These modifications were verified and accepted by those in charge of the development of the compiler and are already integrated from version 6.0.0 of GCC. The patch with these modifications has Andrés Tiraboschi as author, it was accepted and can be found in the following link: http://permalink.gmane.org/gmane.comp.gcc.patches/342255
description Tesis (Lic. en Ciencias de la Computación)--Universidad Nacional de Córdoba, Facultad de Matemática, Astronomía, Física y Computación, 2018.
publishDate 2018
dc.date.none.fl_str_mv 2018
dc.type.none.fl_str_mv info:eu-repo/semantics/bachelorThesis
info:eu-repo/semantics/publishedVersion
http://purl.org/coar/resource_type/c_7a1f
info:ar-repo/semantics/tesisDeGrado
format bachelorThesis
status_str publishedVersion
dc.identifier.none.fl_str_mv http://hdl.handle.net/11086/11762
url http://hdl.handle.net/11086/11762
dc.language.none.fl_str_mv spa
language spa
dc.rights.none.fl_str_mv info:eu-repo/semantics/openAccess
eu_rights_str_mv openAccess
dc.format.none.fl_str_mv application/pdf
dc.source.none.fl_str_mv reponame:Repositorio Digital Universitario (UNC)
instname:Universidad Nacional de Córdoba
instacron:UNC
reponame_str Repositorio Digital Universitario (UNC)
collection Repositorio Digital Universitario (UNC)
instname_str Universidad Nacional de Córdoba
instacron_str UNC
institution UNC
repository.name.fl_str_mv Repositorio Digital Universitario (UNC) - Universidad Nacional de Córdoba
repository.mail.fl_str_mv oca.unc@gmail.com
_version_ 1842349667335012352
score 13.13397