Cobertura entre pruebas a distintos niveles para refactorizaciones más seguras

 

Autores
Fontela, Moisés Carlos
Tipo de recurso
tesis de maestría
Estado
Versión aceptada para publicación
Año de publicación
2013
País
Argentina
Institución
Universidad Nacional de La Plata
Repositorio
SEDICI (UNLP)
Descripción
Esta tesis busca encontrar una práctica metodológica que permita definir distintos niveles de pruebas que operen como garantía de refactorizaciones seguras, independientemente del alcance de las mismas. Se enmarca en el tema general de refactoring, con elementos de Test Driven Development (TDD), utilizando las prácticas recomendadas en el marco de Behavior Driven Development (BDD) y de Acceptance Test Driven Development (ATDD). La práctica de refactoring descansa fuertemente en la existencia de pruebas unitarias automatizadas, que funcionan como red de seguridad que garantiza que el comportamiento de la aplicación no varía luego de una refactorización. Sin embargo, este simple enunciado no prevé que hay ocasiones en que las pruebas dejan de funcionar al realizar las refactorizaciones, con lo cual se pierde la sincronización entre código y pruebas, y la cualidad de red de seguridad de estas últimas. Esto es especialmente cierto ante refactorizaciones estructurales y rediseños macro. Por lo tanto, y dado que el uso de pruebas como red de contención es uno de los supuestos más fuertes de la práctica del refactoring, vamos a desarrollar, como objetivo de esta tesis, una práctica metodológica para permitir definir distintos niveles de pruebas que aseguren distintos tipos de refactorizaciones, validándola con un caso de estudio y apoyándonos en una herramienta automática desarrollada en el marco de este trabajo.
Idioma
español
OAI Identifier
oai:sedici.unlp.edu.ar:10915/29096
Enlace del recurso
http://sedici.unlp.edu.ar/handle/10915/29096
http://hdl.handle.net/10915/29096
Nivel de acceso
Acceso abierto
Materia
Ciencias Informáticas
refactoring
pruebas de aceptación
automatización
cobertura
preservación del comportamiento
SOFTWARE ENGINEERING
Automation