©2023 Escuela Tecnologías de la Información S.L. Todos los derechos reservados.
Curso Avanzado de Pruebas Unitarias
Formación práctica avanzada en tests unitarios Eficaces y Eficientes
Material disponible
Este nuevo curso destinado al aprendizaje de tests unitarios parte de un conocimiento en la creación de código de testing y se adentra en las pautas que conducen al desarrollo de pruebas unitarias eficaces y eficientes.
- Eficacia: A través del diseño de casos de prueba, con juegos de datos que cubran las necesidades, sin requerir la realización de pruebas exhaustivas. Para ello se cubrirán las técnicas de diseño de caja negra y caja blanca.
- Eficiencia: A través de la codificación de pruebas fáciles de escribir, de ejecutar y de mantener, para reducir los riesgos del proyecto y aumentar la calidad y documentación. Para ello se cubrirán los antipatrones que impiden las características anteriores.
Por último, se profundizará en la necesidad y criterios para los dobles en pruebas unitarias. Se cubrirán los patrones de dobles: dummy, fake, stub, mock y spy
Qué aprenderé en el Curso Avanzado de Pruebas Unitarias
-
Diseño de Casos de Pruebas Unitarias
- Pruebas de Caja Negra
- Variables independientes
- Clases de Equivalencia
- Análisis de Valores Límite
- Variables dependientes
- Vector ortogonal
- Grafo de Causa/Efecto
- Adivinación de Errores
- Variables independientes
- Pruebas de Caja Blanca
- Cobertura de Sentencias
- Cobertura de Datos
- Cobertura de Condiciones
- Cobertura de Decisiones/Condiciones
- Pruebas de Caja Negra
-
Características de las Pruebas Unitarias
- Fáciles de Escribir
- Sencillas. Anti-patrones: Lógica condicional, Pruebas Sobreprotegidas, Sermón de Preparación …
- Expresivas. Anti-patrones: Comentarios, Números Mágicos, Aserciones Primitivas, Detalles Incidentales, Lógica separada…
- Separan Asuntos. Anti-patrones: Hiper-aserciones, Doble personalidad, …
- Fáciles de Ejecutar
- Rápidas. Anti-patrón
- Completamente Automáticas. Antipatrón: Entrada de Datos, …
- Auto-verificables. Anti-patrón: Bocazas, …
- Independientes. Anti-patrón: Héroe Local, Secuenciador, Restos reutilizados, Dependencia Oculta…
- Repetibles
- Fáciles de Mantener
- Profesionales / Robustas. Anti-patrones: Duplicación, Ruta Paralizante, Lío Parametrizado, El Gigante…
- Reducen los Riesgos
- No dañinas
- Red de Seguridad
- Aumentan la Calidad
- Repelentes de Errores
- Localizan Defectos. Anti-patrones: Escaqueado, Promesas Infundadas, Bajas Expectativas, Mentiroso…
- Parte de la Especificación
- Mejoran la Comprensión del SUT
- Parte de la Documentación
- Fáciles de Escribir
- Dobles para las Pruebas Unitarias
- Criterios: Independencia del DOC, Ausencia del DOC, Eficiencia, Caja Blanca
- Tipos: Dummy, Fake, Stub, Mock y Spy
Clases y contenidos
En esta sesión se explican cuáles son los problemas a los que los programadores se enfrentan en el desarrollo de pruebas del software además de repasar el conocimiento necesario para comenzar el curso Avanzado de Pruebas Unitarias.
Primera sesión dedicada al diseño de casos de uso en busca de la eficiencia y la eficacia en los Test Unitarios. Comenzamos el tema del diseño de casos de prueba, que consiste en escoger un conjunto de pruebas que abarque una cobertura suficiente, ni pasarse ni quedarse cortos. Después de explicar el concepto de manera global y su necesidad, se abarcan diversas técnicas y prácticas para el diseño de casos de prueba, centrándose en este primer tema en las pruebas unitarias de caja negra, variables independientes y clases de equivalencia.
En esta clase seguimos practicando con ejercicios para asimilar el concepto de las clases de equivalencia. A lo largo de diversos ejemplos se irán complicando las situaciones y se irán abordando en detalle nuevos escenarios, como los que nos encontraremos en el mundo real.
Veremos que muchas veces las clases de equivalencia se derivan de la combinación de diversos factores. Veremos además que es importante realizar un análisis de los valores límite, en los que cambia el comportamiento del SUT.
Ante la aplicación de diversos factores y la necesidad de comprobar cada uno de los valores límite, observaremos que el diseño de casos de prueba aumenta sensiblemente el rango de combinaciones que se deberían testar. En próximas clases de deja planteado que buscando la eficiencia aún tendremos que reducir esas combinaciones.
Comenzamos con la resolución de nuevos ejercicios planteados para el diseño de pruebas de caja negra. Abordamos luego nuevos enfoques para la creación de clases de equivalencia, todavía en las pruebas de caja negra.
Más tarde comenzamos con el desarrollo eficiente de las pruebas de caja blanca. Para ello aprenderemos a entender los grafos, que nos ayudarán a establecer el conjunto de caminos que nos asegura el 100% de la cobertura en las pruebas.
Una vez entendido y deducidos los caminos de flujo de ejecución, aprenderemos a crear nosotros mismos los grafos.
Por último analizaremos el funcionamiento y utilidad de las herramientas que calculan los caminos necesarios para la cobertura del 100% en el testing del código de caja blanca. Cómo conclusión repasaremos cuál es el modo habitual de realizar las pruebas combinando tanto la caja negra como la caja blanca.
Sesión íntegra dedicada a revisar cómo tenemos que hacer el código de las Pruebas Unitarias mediante el análisis de sus propiedades.
Terminamos con el repaso a cómo tenemos que hacer las pruebas (análisis propiedades) e iniciamos el último bloque de contenidos con los Dobles en las Pruebas Unitarias.
En esta clase nos dedicamos a estudiar la creación de dobles en las pruebas unitarias. En el primer momento se realiza una introducción conceptual, aunque es un tema que ya se había tratado en clases anteriores de manera general.
Luego se muestra la implementación de los dobles en código, y su integración en el código de pruebas unitarias. Se explicarán posteriormente los tipos de dobles y sus características, los casos en los que se deben producir cada tipo de doble, etc.
Posteriormente se explica cómo se debe producir ese código de dobles, usando el framework JMockit, lo que nos ayudará a entender perfectamente el desarrollo de los dobles en las distintas situaciones (tipos de dobles) explicadas con anterioridad.
Valoraciones
Jaime Hernandez Ortiz
Eloy
Holden
Francisco Gonzalez Espartero
Mario Tovar
Iván Aguilar
pedro
Diego
Jose García
Muy recomendable
Jose Llacer
Roberto Mendoza Ulecia
Sashir Estela
Manu
Jose María Rodríguez Medina
Siempre es un placer aprender de Luis
Paco_
Muy buen curso. Como siempre Luis es muy bueno
JMSanchez
Excelente.
David García
Buen material didáctico, como siempre, de la mano de Luis, pero esta vez en mi opinión creo que se excede demasiado en explicar el tema de los grafos, la complejidad ciclomática y demás y al final no queda mucho hueco en la última clase para profundizar en temas más críticos sobre cómo trabajar bien con mocks y cómo evitar caer en la tentación de mezclar pruebas de caja negra con caja blanca, esta parte en mi opinión, no se cubrió bien porque no dió tiempo.
Rubén Cazorla
Ferran Llop
Luis, gracias
Nelson Acosta
excelente
Iván Roldán
Great!
Matias Peñafiel
Luis es un genio explicando !. Gracias a este curso mejoré el criterio para la construcción de pruebas.
Luis Jonathan Nava Flores
Geovani Robles
Jose Manuel Campos Soberano
exelente
Enrique Arrabal Almagro
Muy buena para sentar las bases, en mi opinión falta una última parte con más ejemplos aplicados de código una vez dada toda la teoría; pero como apunte a la excelencia, porque el curso es magnifico.
Marvin Abisrror
Felipe Esteban Pabon Cortes
Excelente contenido, super profesional
Raúl Grados
Diego Amaya
Jose Parico
Sergio Diaz
Muy bueno
Fernando Fuentes Perez
José Carlos Hidalgo
Felipe Gaete Gonzalez
Excelente
Jandra Jimenez
Es un curso excelente, estoy aprendiendo muchisimo!
Javier Diez Briz
excelente
¿Conoces nuestra tarifa plana?
Toda la formación de EscuelaIT, con más de 190 cursos completos para aprender las más variadas tecnologías de programación, diseño y marketing online. Todo! con tu suscripción.