¿Qué son las pruebas?

Completado

Al realizar una prueba, ya sea escribiendo código o realizando pruebas manuales, lo hace porque desea asegurarse de que el software funciona según lo previsto. Esta unidad se centra en escribir código que prueba varias partes del código de su aplicación. El código de prueba no se incluirá en el código de la aplicación. Considere el código de prueba como un andamiaje que sostiene el proceso de desarrollo de software a lo largo de la vigencia del programa.

Para empezar, se definirán las pruebas con algunos ejemplos, antes de profundizar en los conceptos.

Proceso de prueba

Las pruebas abarcan una serie de métodos de prueba que se ejecutan en el código del producto y devuelven un resultado de superación o error. El resultado se basa en determinados criterios que se aseveran. Los resultados de las pruebas aparecen en una lista de marcas "x" de color rojo que representan las pruebas con errores y marcas "✔" de color verde que representan las pruebas que se superan. Estos símbolos permiten evaluar de forma sencilla si una funcionalidad está operativa o no de un vistazo.

Screenshot of table showing how tests appear in a list with passing and failing results in Visual Studio Test Explorer.

Definición del método de prueba

Las pruebas son muy parecidas a los métodos normales. Se organizan en clases de prueba, tienen firmas de método y aceptan parámetros. Las pruebas hacen referencia y llaman al código de producto (otra manera referirse al código que no es de prueba) y comparan cómo se comporta con un resultado esperado.

[TestMethod]
public void AddTest()
{
    // Arrange
    var calculator = new Calculator();

    // Act
    var actual = calculator.Add(1, 1);

    // Assert
    Assert.AreEqual(2, actual);
}

En el código anterior, el código de producto es la clase Calculator y su método Add(). La comparación se produce al llamar a Assert.AreEqual(2, actual). Este patrón es algo que se encuentra en la mayoría de los métodos de prueba, si no en todos. Esta prueba se mostraría de la siguiente manera en Visual Studio: Screenshot of test method in Visual Studio editor. There's a callout where the test is referencing product code. Another callout highlights where results are asserted.

Una diferencia entre las pruebas y el código de producto es que no se ejecutan como parte de la función estándar de la aplicación. Por lo tanto, en lugar de usar F5 (o el botón de ejecución verde y grande de la parte superior del entorno de desarrollo) para ejecutarlas como lo haría con la aplicación, puede elegir qué pruebas ejecutar. Puede realizar esta elección a través del Explorador de pruebas de Visual Studio u otras herramientas útiles del editor. Las pruebas están disponibles como soporte, pero como no se incluyen en la aplicación, se ejecutan de forma independiente como su propia aplicación.

Screenshot of buttons and commands for running or debugging tests from Visual Studio Test Explorer or Editor.

¿Cómo pueden ayudar las pruebas a evitar regresiones en la funcionalidad?

¿Recuerda el error del número de teléfono del escenario mencionado en la unidad de introducción? En cuanto se agregó código nuevo para aceptar números de teléfono internacionales, se interrumpió la función para agregar números de teléfono nacionales. Una prueba con números de teléfono nacionales como entrada podría haber descubierto este cambio de comportamiento antes. Habría probado la nueva funcionalidad para números internacionales y la funcionalidad anterior para números de teléfono nacionales.

A medida que se implementa código nuevo, es posible que no siempre se tenga en cuenta qué escenarios anteriores podrían verse afectados por los nuevos cambios. Los números de teléfono son un ejemplo sencillo, pero imagínese aplicaciones con cientos de formatos de entrada diferentes. Las pruebas permiten comprobar de forma sencilla todas las variaciones del comportamiento anterior con una ejecución de prueba simple.

Screenshot of a test titled CheckDomesticPhoneNumber in the Visual Studio editor showing a failure message.