¿Qué es probar en el diseño de programas?

Existen varios tipos de pruebas en los ciclos tradicionales de desarrollo de software. Por ejemplo, Pruebas unitarias, Pruebas de integración, Pruebas de aceptación. Hay muchos otros

Cada uno de estos está destinado a proporcionar beneficios en diferentes niveles del flujo de desarrollo, por individuos con diferentes funciones y expectativas de cómo debería funcionar el software.

El diseño de software complejo generalmente requiere muchas piezas. Para el programador, estos son generalmente piezas de código. Un buen diseño de software dicta que una sola pieza de código realice una sola tarea. Dados los parámetros aceptables, una sola pieza de código debe realizar su función especificada de manera confiable. Una prueba unitaria proporciona un ejemplo demostrable. Permite al programador describir explícitamente el comportamiento esperado del código como una “prueba”. Por ejemplo, si se especificara un fragmento de código particular para agregar dos enteros, una prueba podría expresar: “Dado el entero 3 y el entero 2, este fragmento de código debería devolver el entero 5.”. Si el código se ejecuta y cumple con estos criterios, la prueba pasa, de lo contrario falla.

Las pruebas de integración realizan una validación similar a un nivel superior. Los proyectos más grandes incluyen código y módulos a menudo escritos por diferentes personas, posiblemente diferentes equipos. Cuando el código se combina en un proyecto determinado, las pruebas de integración expresan cómo deben interactuar las diferentes piezas de código. Dado que se agregan más y más módulos y código a través del desarrollo de un proyecto, no es inusual que una pieza interfiera o interactúe con algo que anteriormente funcionaba bien. Las pruebas de integración reflejan que cada pieza de software interactúa con el proyecto general de acuerdo con la especificación.

Las pruebas de aceptación son aún mayores. Cuando se entrega una pieza de software a un cliente o cliente, ¿el producto entregable cumple con las especificaciones?

Los equipos y las personas tienen diferentes políticas y preferencias cuando se trata de pruebas. Algunos dictan una cobertura de prueba del 100% (esto generalmente corresponde a las pruebas unitarias) en cada pieza de código escrita, es casi un dogma. Otros son mucho más laxos y no prueban en absoluto.

Las pruebas son una parte importante del desarrollo de software y brindan muchas garantías contra la inevitabilidad del error y la omisión, pero tienen un costo de tiempo y esfuerzo para desarrollar las pruebas. Lo más importante es que los equipos tienen un protocolo y un sistema para probar, identificar y resolver problemas, y que es sistemático.

El arte de crear casos de prueba aleatorios y de borde significativos y relevantes para su software, para poder leer los resultados y proporcionar las soluciones necesarias.

Más, por ejemplo, aquí.