Enfoque para pruebas de unidad basado en la generación aleatoria de objetos

El testing del software es una tarea crucial y a la vez muy desafiante dentro del proceso de desarrollo de software. El testing permite encontrar errores y problemas del software contra la especificación del mismo y cumple un rol fundamental en el aseguramiento de la calidad del producto. Entre los...

Descripción completa

Guardado en:
Detalles Bibliográficos
Autor principal: Barrientos, Pablo Andrés
Otros Autores: Pons, Claudia
Formato: Tesis Tesis de maestria
Lenguaje:Español
Publicado: 2014
Materias:
Acceso en línea:http://sedici.unlp.edu.ar/handle/10915/34969
https://doi.org/10.35537/10915/34969
Aporte de:
id I19-R120-10915-34969
record_format dspace
institution Universidad Nacional de La Plata
institution_str I-19
repository_str R-120
collection SEDICI (UNLP)
language Español
topic Ciencias Informáticas
Software
pruebas de unidad
Testing and Debugging
testing aleatorio
Object-oriented Programming
QuickCheck
generación aleatoria de objetos
herramienta de testing
testing de software
spellingShingle Ciencias Informáticas
Software
pruebas de unidad
Testing and Debugging
testing aleatorio
Object-oriented Programming
QuickCheck
generación aleatoria de objetos
herramienta de testing
testing de software
Barrientos, Pablo Andrés
Enfoque para pruebas de unidad basado en la generación aleatoria de objetos
topic_facet Ciencias Informáticas
Software
pruebas de unidad
Testing and Debugging
testing aleatorio
Object-oriented Programming
QuickCheck
generación aleatoria de objetos
herramienta de testing
testing de software
description El testing del software es una tarea crucial y a la vez muy desafiante dentro del proceso de desarrollo de software. El testing permite encontrar errores y problemas del software contra la especificación del mismo y cumple un rol fundamental en el aseguramiento de la calidad del producto. Entre los tipos de pruebas que se pueden realizar al software están las pruebas de unidad, carga, integración y funcionales. Cada una de ellas tiene distintos objetivos y son realizadas en diferentes etapas del desarrollo del software. En el primer tipo mencionado, se desarrollan pruebas a componentes individuales de un sistema de software. Los desarrolladores especifican y codifican pruebas para cubrir todos o al menos una parte significativa de los posibles estados/configuraciones del artefacto o unidad de software, para simular el entorno del componente y descubrir la presencia de errores o “bugs”. Dado que escribir todas esas pruebas de forma manual es costoso, las pruebas de unidad son generalmente realizadas de manera ineficiente o simplemente dejadas de lado. El panorama es aún peor, más allá del esfuerzo, porque el testing no puede ser usado para probar la usencia de errores en el software sino tan solo la presencia. Por eso es necesario atacar el problema desde diferentes enfoques, cada uno teniendo sus fortalezas y ventajas. Actualmente existen muchas técnicas para hacer testing de software, y la mayoría de ellos se basan en la automatización de pasos o caminos de ejecución, con valores fijos o componentes predefinidos (hard-coded) o estáticos, y condiciones específicas. En este trabajo de maestría, se presenta un enfoque para pruebas de unidad en la programación orientada a objetos, basado en la generación de objetos de manera aleatoria. El fundamento básico de este enfoque propuesto es el testing aleatorio. También se presenta una herramienta de testing de unidad que usa el enfoque dicho, y que fue escrita en un lenguaje orientado a objetos de amplia difusión. El testing aleatorio (RT o random testing) como técnica no es nueva. Tampoco lo es la generación de valores aleatorios para pruebas. En el paradigma funcional, existe una herramienta muy conocida para probar especificaciones sobre funciones llamada QuickCheck. Ésta herramienta (escrita en Haskell) y sus ideas subyacentes son usadas como fundamento para la herramienta creada en este trabajo. La herramienta desarrollada en el presente trabajo cubre además características que existen en el paradigma orientado a objetos de manera inherente, tales como el estado de los objetos (en particular los objetos singleton con estado), clases abstractas e interfaces, que no existen en la programación funcional pura. La constribución de este trabajo de maestría es la presentación de una forma alternativa de realizar tests de unidad en la programación orientada a objetos (POO), basada en un trabajo anterior para el paradigma funcional. También se presenta una herramienta llamada YAQC4J que plasma esas ideas en un lenguaje orientado a objetos de amplia difusión. Finalmente se incluyen ejemplos que ilustran el uso de la herramienta, y se presenta una comparación con herramientas existentes que han intentado implementar el enfoque de testing. Este trabajo está dirigido a los desarrolladores de software interesados en conocer soluciones alternativas para el testing de unidad, y al mismo tiempo una forma complementaria a las ya existentes para pruebas de unidad.
author2 Pons, Claudia
author_facet Pons, Claudia
Barrientos, Pablo Andrés
format Tesis
Tesis de maestria
author Barrientos, Pablo Andrés
author_sort Barrientos, Pablo Andrés
title Enfoque para pruebas de unidad basado en la generación aleatoria de objetos
title_short Enfoque para pruebas de unidad basado en la generación aleatoria de objetos
title_full Enfoque para pruebas de unidad basado en la generación aleatoria de objetos
title_fullStr Enfoque para pruebas de unidad basado en la generación aleatoria de objetos
title_full_unstemmed Enfoque para pruebas de unidad basado en la generación aleatoria de objetos
title_sort enfoque para pruebas de unidad basado en la generación aleatoria de objetos
publishDate 2014
url http://sedici.unlp.edu.ar/handle/10915/34969
https://doi.org/10.35537/10915/34969
work_keys_str_mv AT barrientospabloandres enfoqueparapruebasdeunidadbasadoenlageneracionaleatoriadeobjetos
bdutipo_str Repositorios
_version_ 1764820470651158528