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

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.

Bibliographic Details
Main Author: Tiraboschi, Andrés Agustín
Other Authors: Fridlender, Daniel Edgardo, dir.
Format: bachelorThesis
Language:spa
Published: 2019
Subjects:
Online Access:http://hdl.handle.net/11086/11762
_version_ 1801215021308444672
author Tiraboschi, Andrés Agustín
author2 Fridlender, Daniel Edgardo, dir.
author_facet Fridlender, Daniel Edgardo, dir.
Tiraboschi, Andrés Agustín
author_sort Tiraboschi, Andrés Agustín
collection Repositorio Digital Universitario
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.
format bachelorThesis
id rdu-unc.11762
institution Universidad Nacional de Cordoba
language spa
publishDate 2019
record_format dspace
spelling rdu-unc.117622022-10-13T11:32:36Z Sistema de instrumentación estática de código fuente para mocking de funciones y objetos Tiraboschi, Andrés Agustín Fridlender, Daniel Edgardo, dir. Testeo y depuración software Herramientas de mantenimiento de software Compiladores Software testing and debugging Incremental compilers Software maintenance tools Compiladores Testing Mocking 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 2019-08-07T13:19:36Z 2019-08-07T13:19:36Z 2018 bachelorThesis http://hdl.handle.net/11086/11762 spa Atribución-NoComercial-CompartirIgual 4.0 Internacional http://creativecommons.org/licenses/by-nc-sa/4.0/
spellingShingle Testeo y depuración software
Herramientas de mantenimiento de software
Compiladores
Software testing and debugging
Incremental compilers
Software maintenance tools
Compiladores
Testing
Mocking
Tiraboschi, Andrés Agustín
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
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_short Sistema de instrumentación estática de código fuente para mocking de funciones y objetos
title_sort sistema de instrumentacion estatica de codigo fuente para mocking de funciones y objetos
topic Testeo y depuración software
Herramientas de mantenimiento de software
Compiladores
Software testing and debugging
Incremental compilers
Software maintenance tools
Compiladores
Testing
Mocking
url http://hdl.handle.net/11086/11762
work_keys_str_mv AT tiraboschiandresagustin sistemadeinstrumentacionestaticadecodigofuenteparamockingdefuncionesyobjetos