¿Qué es la prueba unitaria?

¿Qué es la prueba unitaria?

¿Qué es la prueba unitaria?

Examen de la unidad Es un tipo de prueba de software en el que se prueban unidades o componentes individuales de un 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 (fase de codificación) de una aplicación por parte de los desarrolladores. Las pruebas unitarias aíslan una sección de código y verifican su corrección. Una unidad puede ser una función, método, procedimiento, módulo u objeto individual.

En SDLC, STLC, modelo V, las pruebas unitarias son el primer nivel de pruebas que se realizan antes de las pruebas de integración. La prueba unitaria es blanca.Box Técnica de prueba que suele realizar el desarrollador. Sin embargo, en un mundo práctico debido a la falta de tiempo o la renuencia de los desarrolladores a realizar pruebas, los ingenieros de control de calidad también realizan pruebas unitarias.

Explicación en vídeo de pruebas unitarias

¿Por qué realizar pruebas unitarias?

Examen de la unidad Es importante porque los desarrolladores de software a veces intentan ahorrar tiempo realizando pruebas unitarias mínimas y esto es un mito porque las pruebas unitarias inapropiadas generan un alto costo. Defecto fijación durante Pruebas del sistema, Pruebas de integración e incluso pruebas beta después de crear la aplicación. Si se realizan pruebas unitarias adecuadas en las primeras etapas del desarrollo, al final se ahorra tiempo y dinero.

Estas son las razones clave para realizar pruebas unitarias en ingeniería de software:

Niveles de prueba unitaria
Niveles de prueba unitaria
  1. Las pruebas unitarias ayudan a corregir errores en las primeras etapas del ciclo de desarrollo y ahorrar costos.
  2. Ayuda a los desarrolladores a comprender la base del código de prueba y les permite realizar cambios rápidamente.
  3. Las buenas pruebas unitarias sirven como documentación del proyecto.
  4. Las pruebas unitarias ayudan con la reutilización del código. Migra tu código y tus pruebas a tu nuevo proyecto. Modifique el código hasta que las pruebas se ejecuten nuevamente.

Cómo ejecutar pruebas unitarias

Para ejecutar pruebas unitarias, los desarrolladores escriben una sección de código para probar una función específica en la aplicación de software. Los desarrolladores también pueden aislar esta función para realizar pruebas más rigurosas, lo que revela dependencias innecesarias entre la función que se está probando y otras unidades para que se puedan eliminar las dependencias. Los desarrolladores generalmente usan Marco de prueba unitaria Desarrollar casos de prueba automatizados para pruebas unitarias.

Las pruebas unitarias son de dos tipos.

  • Manual
  • Confirmación de Viaje

Las pruebas unitarias suelen estar automatizadas, pero aún pueden realizarse manualmente. La Ingeniería de Software no favorece a uno sobre el otro pero se prefiere la automatización. Un enfoque manual para las pruebas unitarias puede emplear un documento instructivo paso a paso.

Bajo el enfoque automatizado-

  • Un desarrollador escribe una sección de código en la aplicación solo para probar la función. Lo harían later comente y finalmente elimine el código de prueba cuando se implemente la aplicación.
  • Un desarrollador también podría aislar la función para probarla de forma más rigurosa. Esta es una práctica de prueba unitaria más exhaustiva que implica copiar y pegar código en su propio entorno de prueba que en su entorno natural. Aislar el código ayuda a revelar dependencias innecesarias entre el código que se está probando y otras unidades o espacios de datos. en el producto. Luego estas dependencias pueden eliminarse.
  • Un codificador generalmente utiliza un marco UnitTest para desarrollar casos de prueba automatizados. Utilizando un marco de automatización, el desarrollador codifica criterios en la prueba para verificar la exactitud del código. Durante la ejecución de los casos de prueba, el marco registra los casos de prueba fallidos. Muchos marcos también marcarán e informarán automáticamente, en resumen, estos casos de prueba fallidos. Dependiendo de la gravedad de una falla, el marco puede detener las pruebas posteriores.
  • El flujo de trabajo de las pruebas unitarias es 1) Crear casos de prueba 2) Revisar/reelaborar 3) Línea de base 4) Ejecutar casos de prueba.

Técnicas de prueba unitaria

El Técnicas de prueba unitaria se clasifican principalmente en tres partes que son negras box pruebas que implican probar la interfaz de usuario junto con la entrada y salida, White box pruebas que implican probar el comportamiento funcional de la aplicación de software y Gray box pruebas que se utilizan para ejecutar conjuntos de pruebas, métodos de prueba, casos de prueba y realizar análisis de riesgos.

Las técnicas de cobertura de código utilizadas en las pruebas unitarias se enumeran a continuación:

  • Cobertura de estados de cuenta
  • Cobertura de decisiones
  • Cobertura de sucursales
  • Cobertura de condición
  • Cobertura de máquina de estados finitos

Para más información consulte https://www.guru99.com/code-coverage.html

Ejemplo de prueba unitaria: objetos simulados

Las pruebas unitarias se basan en la creación de objetos simulados para probar secciones de código que aún no forman parte de una aplicación completa. Los objetos simulados completan las partes faltantes del programa.

Por ejemplo, es posible que tenga una función que necesite variables u objetos que aún no se hayan creado. En las pruebas unitarias, se contabilizarán en forma de objetos simulados creados únicamente con el fin de realizar las pruebas unitarias en esa sección de código.

Herramientas de prueba unitaria

Hay varios software de pruebas unitarias automatizadas disponibles para ayudar con las pruebas unitarias en las pruebas de software. Proporcionaremos algunos ejemplos a continuación:

  1. junit: Junit es una herramienta de prueba de uso gratuito que se utiliza para el lenguaje de programación Java. Proporciona afirmaciones para identificar el método de prueba. Esta herramienta prueba los datos primero y luego los inserta en el fragmento de código.
  2. NUnit: NUnit es un marco de pruebas unitarias ampliamente utilizado para todos los lenguajes .net. Es una herramienta de código abierto que permite escribir scripts manualmente. Admite pruebas basadas en datos que pueden ejecutarse en paralelo.
  3. 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íneas y rutas. Permite burlarse de API con sintaxis de grabación y verificación. Esta herramienta ofrece cobertura de línea, cobertura de ruta y cobertura de datos.
  4. EMMA: EMMA es un conjunto de herramientas de código abierto para analizar e informar código escrito en lenguaje Java. Emma admite tipos de cobertura como método, línea y bloque básico. Está basado en Java, por lo que no tiene dependencias de bibliotecas externas y puede acceder al código fuente.
  5. Unidad PHP: PHPUnit es una herramienta de prueba unitaria para programadores PHP. Se necesitan pequeñas porciones de código que se denominan unidades y se prueban cada una de ellas por separado. La herramienta también permite a los desarrolladores utilizar métodos de aserción predefinidos para afirmar que un sistema se comporta de cierta manera.

Estas son sólo algunas de las herramientas de prueba unitarias disponibles. Hay muchos más, especialmente para lenguajes c y Java, pero seguramente 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 TDD implican un uso extensivo de marcos de prueba. Se utiliza un marco de prueba unitaria para crear pruebas unitarias automatizadas. Los marcos de pruebas unitarias no son exclusivos de TDD, pero son esenciales para él. A continuación analizamos algo de lo que TDD aporta al mundo de las pruebas unitarias:

  • Las pruebas se escriben antes del código.
  • Depender en gran medida de los marcos de prueba
  • Todas las clases de las aplicaciones se prueban.
  • Es posible una integración rápida y sencilla

Mito de las pruebas unitarias

Mito: Requiere tiempo y siempre tengo demasiadas agendas
¡Mi código es sólido como una roca! No necesito pruebas unitarias.

Los mitos, por su propia naturaleza, son suposiciones falsas. Estas suposiciones conducen a un círculo vicioso como sigue:

Mito de las pruebas UNITARIAS

La verdad es que las pruebas unitarias aumentan la velocidad del desarrollo.

Los programadores piensan que las pruebas de integración detectarán todos los errores y no ejecutarán la prueba unitaria. Una vez que se integran las unidades, los errores muy simples que podrían haberse encontrado y solucionado fácilmente en una unidad probada tardan mucho tiempo en rastrearse y corregirse.

Ventaja de las pruebas unitarias

  • Los desarrolladores que quieran saber 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 refactorizar el código a un later fecha y asegúrese de que el módulo aún funcione correctamente (es decir, Pruebas de regresión). El procedimiento consiste en escribir casos de prueba para todas las funciones y métodos de modo que cada vez que un cambio cause una falla, se pueda identificar y solucionar rápidamente.
  • Debido a la naturaleza modular de las pruebas unitarias, podemos probar partes del proyecto sin esperar a que se completen otras.

Desventajas de las pruebas unitarias

  • No se puede esperar que las pruebas unitarias detecten todos los errores de un programa. No es posible evaluar todas las rutas de ejecución ni siquiera en los programas más triviales.
  • Las pruebas unitarias, por su propia naturaleza, se centran en una unidad de código. Por lo tanto, no puede detectar errores de integración ni errores generales a nivel del sistema.

Se recomienda utilizar las pruebas unitarias junto con otras actividades de prueba.

Mejores prácticas de pruebas unitarias

  • Los casos de prueba unitaria deben ser independientes. En caso de mejoras o cambios en los requisitos, los casos de prueba unitaria no deberían verse afectados.
  • Pruebe solo un código a la vez.
  • Siga convenciones de nomenclatura claras y coherentes para sus pruebas unitarias
  • En caso de un cambio de 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 pasa las pruebas antes de cambiar la implementación
  • Los errores identificados durante las pruebas unitarias deben corregirse antes de pasar a la siguiente fase en SDLC
  • Adopte un enfoque de "prueba como su código". Cuanto más código escriba sin realizar pruebas, más rutas tendrá para comprobar si hay errores.

Mejores prácticas de pruebas unitarias

Resumen

  • PRUEBAS UNIDADES se define como un tipo de prueba de software en el que se prueban unidades o componentes individuales de un software.
  • Como puede ver, las pruebas unitarias pueden implicar muchas cosas. puede ser complex o más bien simple dependiendo de la aplicación que se está probando y las estrategias, herramientas y philoSofía usada. Las pruebas unitarias siempre son necesarias en algún nivel. Eso es una certeza.