¿Qué es una prueba unitaria?
PRUEBA DE UNIDAD es un tipo de prueba de software en la que se prueban unidades individuales o componentes de software. El propósito es validar que cada unidad del código de software funcione como se espera. Las pruebas unitarias se realizan durante el desarrollo de los desarrolladores (fase de codificación). Las pruebas unitarias aíslan parte del código y verifican su precisión. Una unidad puede ser una sola función, método, procedimiento, módulo u objeto.
En SDLC, STLC, modelo V, la prueba unitaria es el primer nivel de prueba que se realiza antes de la prueba de integración. La prueba unitaria es una técnica de prueba de WhiteBox que suele realizar el desarrollador. Aunque, en un mundo práctico debido a la escasez de tiempo o la renuencia de los desarrolladores a realizar pruebas, los ingenieros de control de calidad también realizan pruebas unitarias.
En este tutorial, aprenderá:
¿Por qué prueba unitaria?
Examen de la unidad Esto es importante porque los desarrolladores de software a veces intentan ahorrar tiempo haciendo pruebas unitarias mínimas y esto es un mito porque las pruebas unitarias incorrectas pueden generar un alto costo. Defectuoso arreglando con nosotros Prueba del sistema, Examen de integración e incluso Beta Testing después de que se construye la aplicación. Las pruebas de unidad adecuadas en el desarrollo inicial ahorran tiempo y dinero.
Estas son las principales razones para realizar pruebas unitarias en ingeniería de software:
- Las pruebas unitarias ayudan a corregir errores en las primeras etapas del ciclo de desarrollo y a ahorrar costos.
- Ayuda a los desarrolladores a comprender la base del código de prueba y les permite realizar cambios rápidamente.
- Las buenas pruebas unitarias son la documentación del proyecto.
- Las pruebas unitarias ayudan con la reutilización del código. Traduce tu código tanto y tus pruebas en tu nuevo proyecto. Modifica el código hasta que las pruebas se vuelvan a ejecutar.
Cómo hacer una prueba unitaria
En orden Realización de pruebas unitarias, los desarrolladores escriben código para probar una función específica en una aplicación de software. Los desarrolladores también pueden aislar esta función para realizar pruebas más rigurosas que revelen dependencias innecesarias entre la función que se está probando y otras unidades para que las dependencias puedan eliminarse. Los desarrolladores generalmente usan Creat AonadTest Desarrollar casos de prueba automatizados para pruebas unitarias.
La prueba unitaria tiene dos tipos
Las pruebas unitarias suelen estar automatizadas, pero aún se pueden realizar manualmente. La ingeniería de software no está a favor de uno sobre el otro, pero la automatización es lo mejor. Un enfoque manual para las pruebas unitarias podría utilizar un documento instructivo paso a paso.
Bajo el enfoque automatizado-
- Un desarrollador escribe código en la aplicación para probar la función. Comentarían más tarde y extraerían el código de prueba cuando se usara la aplicación.
- Un desarrollador también podría aislar la función para probarla de manera más rigurosa. Este es un ejercicio de prueba unitaria más completo que implica copiar y pegar código para su propio entorno de prueba que para su entorno natural. El aislamiento de código ayuda a revelar dependencias innecesarias entre el código que se está probando y otras unidades de datos o espacios. en el producto. Entonces, estas dependencias pueden eliminarse.
- Un codificador suele utilizar UnitTest Framework para desarrollar casos de prueba automatizados. Usando un marco automatizado, el desarrollador codifica criterios en la prueba para verificar la precisión del código. Durante la ejecución de los casos de prueba, el marco registra los casos de prueba fallidos. Muchos marcos marcarán e informarán de estos automáticamente casos de prueba fallidos. Dependiendo de la gravedad de la falla, el marco puede dejar de probarse más tarde.
- El flujo de trabajo de la prueba unitaria es 1) Creación de casos de prueba 2) Revisión / reelaboración 3) Línea de base 4) Ejecución de casos de prueba.
Técnicas de prueba unitaria
El es Técnicas de prueba unitaria se clasifican principalmente en tres partes, a saber, pruebas de caja negra que implican pruebas de interfaz de usuario combinadas con entrada y salida, pruebas de caja blanca que implican probar el comportamiento funcional de la aplicación de software y pruebas de caja gris utilizadas para probar salas, métodos de prueba. , probar casos y realizar análisis de riesgos.
Las técnicas de enmascaramiento de código utilizadas en las pruebas unitarias se enumeran a continuación:
- Cubierta de declaración
- Cobertura de decisiones
- Cubierta de rama
- Cobertura condicional
- Cubierta de máquina de estado terminada
Para más en referencia https://www.guru99.com/code-coverage.html
Ejemplo de prueba unitaria: Cosas falsas
Las pruebas unitarias se basan en la creación de pseudoobjetos para probar partes del código que aún no forman parte de una aplicación completa. Las cosas falsas completan las partes faltantes del programa.
Por ejemplo, puede tener una función que requiera variables o cosas que aún no se han creado. En una prueba unitaria, estos se describirán en forma de objetos simulados creados para el propósito de la prueba unitaria realizada solo en esa parte del código.
Herramientas de prueba unitaria
Hay una serie de software de pruebas unitarias automatizadas disponibles para ayudar con las pruebas unitarias. Proporcionaremos algunos ejemplos a continuación:
- Junit: Junit es una herramienta de prueba gratuita utilizada para el lenguaje de programación Java. Proporciona garantías para identificar un método de prueba. Esta herramienta prueba los datos primero y luego los inserta en el código.
- NUnit: NUnit se usa ampliamente como un marco de prueba unitario para todos los lenguajes .net. Es una herramienta de código abierto que permite escribir scripts manualmente. Admite pruebas basadas en datos que se pueden ejecutar en paralelo.
- JMockit: JMockit es una herramienta de prueba unitaria de código abierto. Es una herramienta de cobertura de código con métricas de línea y ruta. Permite maquetas de API con grabación y verificación de sintaxis. Esta herramienta ofrece cobertura de línea, cobertura de ruta y cobertura de datos.
- EMMA: EMMA es un conjunto de herramientas de código abierto para analizar y reportar código escrito en el lenguaje Java. Emma admite tipos de portada como modo, línea, bloque básico. Está basado en Java, por lo que no tiene dependencias externas de las bibliotecas y puede acceder al código fuente.
- PHPUnit: PHPUnit es una herramienta de prueba unitaria para programadores PHP. Toma pequeñas partes de código llamadas unidades y prueba cada una de ellas por separado. La herramienta también permite a los desarrolladores utilizar métodos de autenticación predefinidos para confirmar que un sistema se comporta de cierta manera.
Estas son solo algunas de las herramientas de prueba unitarias disponibles. Hay muchos otros, especialmente para los lenguajes C y Java, pero seguro que encontrará una herramienta de prueba unitaria para sus necesidades de programación, independientemente del lenguaje que utilice.
Desarrollo basado en pruebas (TDD) y pruebas unitarias
Las pruebas unitarias en DRP implican un uso generalizado de marcos de prueba. Se utiliza un marco de pruebas unitarias para crear pruebas unitarias automatizadas. Los marcos de pruebas unitarias no son exclusivos de DRP, pero son esenciales para él. A continuación, analizamos algunas de las cosas que DRP aporta al mundo de las pruebas unitarias:
- Las pruebas se escriben antes del código
- Muy dependiente de los marcos de prueba
- Todas las clases se prueban en las aplicaciones.
- Es posible una integración rápida y sencilla
Mito de la prueba unitaria
Mito: Lleva tiempo y siempre estoy sobreorganizado
¡Mi código es sólido como una roca! No necesito pruebas unitarias.
Los mitos son suposiciones falsas por su propia naturaleza. Estos supuestos conducen a un círculo vicioso de la siguiente manera:
La verdad de la prueba unitaria es aumentar el ritmo de desarrollo.
Los programadores creen que la prueba de integración detectará todos los errores y no realizará la prueba unitaria. Una vez que las unidades están integradas, lleva mucho tiempo rastrear y corregir errores muy simples que pueden detectarse y corregirse fácilmente en la unidad de prueba.
Ventaja de las pruebas unitarias
- Los desarrolladores que quieran aprender qué funcionalidad proporciona una unidad y cómo usarla pueden consultar las pruebas unitarias para obtener una comprensión básica de la API de la unidad.
- Las pruebas unitarias permiten al programador codificar un código de reactivación más tarde y asegurarse de que el módulo aún funciona correctamente (es decir, prueba de regresión). El procedimiento consiste en escribir casos de prueba para cada función y método, de modo que pueda identificarse y solucionarse rápidamente siempre que una falla provoque un cambio.
- Debido a la naturaleza modular de las pruebas unitarias, podemos probar partes del proyecto sin esperar a que se complete otra parte.
Desventajas de las pruebas unitarias
- No se puede esperar que las pruebas unitarias tomen todos los errores en un programa. No todas las rutas de ejecución pueden considerarse incluso en los programas más triviales.
- Las pruebas unitarias por su naturaleza se enfocan en una unidad de código. Por lo tanto, no puede capturar errores de integración o de nivel de sistema.
Se recomienda que las pruebas unitarias se utilicen junto con otras actividades de prueba.
Prueba unitaria de mejores prácticas
- Los casos de prueba unitaria deben ser independientes. Cualquier mejora o cambio en los requisitos no debería afectar a los casos de prueba unitaria.
- Pruebe un código a la vez.
- Siga convenciones de nomenclatura claras y coherentes para sus pruebas unitarias
- En caso de cambiar el código en cualquier módulo, asegúrese de que haya una unidad correspondiente Caso de prueba para el módulo, y el módulo realiza las pruebas antes de cambiar la implementación
- Las fallas identificadas durante la prueba unitaria deben corregirse antes de continuar con el siguiente paso en SDLC
- Adopte un enfoque de «prueba como su código». Cuanto más código escriba sin probar, más rutas tendrá que buscar errores.
Resumen
- PRUEBA DE UNIDADES se define como un tipo de prueba de software en el que se prueban unidades individuales o componentes de software.
- Como puede ver, muchos pueden participar en las pruebas unitarias. Puede ser complejo o relativamente simple según la aplicación que se esté probando y las estrategias, herramientas y filosofías de prueba utilizadas. Las pruebas unitarias siempre se requieren en algún nivel. Eso es una certeza.