Table of Contents
Las pruebas unitarias o Unit testing, forman parte de los diferentes procedimientos que se pueden llevar a cabo dentro de la metodología ágil. Son principalmente trozos de código diseñados para comprobar que el código principal está funcionando como esperábamos. Pequeños test creados específicamente para cubrir todos los requisitos del código y verificar sus resultados.
El proceso que se lleva a cabo, consta de tres partes. El Arrange, donde se definen los requisitos que debe cumplir el código principal. El Act, el proceso de creación, donde vamos acumulando los resultados que analizaremos. Y el Asert, que se considera el momento en que comprobamos si los resultados agrupados son correctos o incorrectos. Dependiendo del resultado, se valida y continúa, o se repara, de forma que el error desaparezca.
Características de las pruebas unitarias
- Automatizable; Aunque los resultados deben ser específicos de cada test unitario desarrollado, los resultados se pueden automatizar, de forma que podemos hacer las pruebas de forma individual o en grupos.
- Completas; El proceso consta de pequeños test sobre parte del codigo, pero al final, se debe comprobar su totalidad.
- Repetibles; En el caso de repetir las pruebas de forma individual o grupal, el resultado debe ser siempre el mismo dando igual el orden en que se realicen los test, los tests se almacenan para poder realizar estas repeticiones o poder usarlos en otras ocasiones.
- Independientes; Es un código aislado que se ha creado con la misión de comprobar otro código muy concreto, no interfiere en el trabajo de otros desarrolladores.
- Rápidos de crear; a pesar de lo que muchos desarrolladores opinen, el código de los tests unitarios no debe llevar más de 5 minutos en ser creado, están diseñados para hacer que el trabajo sea más rápido..
Ventajas de pruebas unitarias
1. Proporciona un trabajo ágil; Como procedimiento ágil que es, te permite poder detectar los errores a tiempo, de forma que puedas reescribir el código o corregir errores sin necesidad de tener que volver al principio y rehacer el trabajo. Puesto que las pequeñas se van haciendo periódicamente y en pequeños packs. Disminuyendo el tiempo y el coste.
2. Calidad del código; Al realizar pruebas continuamente y detectar los errores, cuando el código está terminado, es un código limpio y de calidad.
3. Detectar errores rápido; A diferencias de otros procesos, los tests unitarios nos permiten detectar los errores rápidamente, analizamos el código por partes, haciendo pequeñas pruebas y de manera periódica, además, las pruebas se pueden realizar las veces que hagan falta hasta obtener el resultado óptimo.
4. Facilita los cambios y favorece la integración; Los tests unitarios, nos permiten modificar partes del código sin afectar al conjunto, simplemente para poder solucionar bugs que nos encontramos por el camino. Los tests unitarios, al estar desglosados en bloques individuales permiten la integración de nuevas aportaciones para hacer un código más complejo o actualizarlo en función de lo que el cliente demande.
5. Proporciona información; Gracias al continuo flujo de información y la superación de errores, se puede recopilar gran cantidad de información para evitar bugs venideros.
6. Proceso debugging; Los Tests unitarios ayudan en el proceso de debugging. Cuando se encuentra un error o bug en el código, solo es necesario desglosar el trozo de código testeado. Esta es uno de los motivos principales por los que los tests unitarios se hacen en pequeños trozos de código, simplifica mucho la tarea de resolver problemas.
7. El diseño; Si primero se crean los tests, es mucho más fácil saber con anterioridad cómo debemos enfocar el diseño y ver qué necesidades debemos cumplir. Testeando una pieza del código, también puedes saber que requisitos debe cumplir, y por eso mismo te será mucho más fácil llegar a una cohesión entre el código y el diseño.
8. Reduce el coste; Partiendo de la base que los errores se detectan a tiempo, lo cual implica tener que escribir menos código, poder diseñar a la vez que se crea y optimizar los tiempos de entrega, vemos una clara relación con una reducción económica.
Es necesario saber que las pruebas unitarias por sí solas, no son perfectas, puesto que comprueban el código en pequeños grupos, pero no la integración total del mismo. Para ver si hay errores de integración es necesario realizar otro tipo de pruebas de software conjuntas y de esta manera comprobar la efectividad total del código.
Esperamos que este artículo te haya servido de ayuda y si tenias alguna duda sobre la implementación de este tipo de tests la hayamos resuelto.
Si te gustó este artículo, te puede interesar:
Los beneficios de la tecnología Scrum
Beneficios de la tecnología Agil
Metodo Kanban Principios y Ventajas
Beneficios de la integración contínua
¿Porque debería usar Docker en mi proyecto de desarrollo?
La importancia de las retrospectivas en la metodología Ágil
Suscríbete a nuestro newsletter para estar al día de los eventos, meet ups y demás artículos!
Author
-
Ekaterina Novoseltseva is an experienced CMO and Board Director. Professor in prestigious Business Schools in Barcelona. Teaching about digital business design. Right now Ekaterina is a CMO at Apiumhub - software development hub based in Barcelona and organiser of Global Software Architecture Summit. Ekaterina is proud of having done software projects for companies like Tous, Inditex, Mango, Etnia, Adidas and many others. Ekaterina was taking active part in the Apiumhub office opening in Paseo de Gracia and in helping companies like Bitpanda open their tech hubs in Barcelona.
Ver todas las entradas