Los datos de prueba son conjuntos de datos de entrada o información que se utilizan para verificar la corrección, el rendimiento y la confiabilidad de los sistemas de software. Los datos de prueba abarcan varios tipos, como escenarios positivos y negativos, casos extremos y escenarios de usuario realistas, y tienen como objetivo ejercitar diferentes aspectos del software para descubrir errores y validar su comportamiento. Los datos de prueba también se utilizan en pruebas de regresión para verificar que los nuevos cambios o mejoras del código no introduzcan efectos secundarios no deseados ni rompan las funcionalidades existentes. [1]
Los datos de prueba se pueden utilizar para verificar que un conjunto determinado de entradas a una función produce un resultado esperado. Alternativamente, los datos se pueden utilizar para comprobar la capacidad del programa para manejar entradas inusuales, extremas, excepcionales o inesperadas. [2]
Los datos de prueba se pueden producir de manera enfocada o sistemática, como suele ser el caso en las pruebas de dominio, o mediante enfoques menos enfocados, como las pruebas automatizadas aleatorias de gran volumen. [3] Los datos de prueba pueden ser generados por el evaluador o por un programa o función que lo asista. Se pueden registrar para su reutilización o utilizarlos solo una vez. Los datos de prueba se pueden crear manualmente, utilizando herramientas de generación de datos (a menudo basadas en la aleatoriedad), [4] o se pueden recuperar de un entorno de producción existente. El conjunto de datos puede consistir en datos sintéticos (falsos), pero lo ideal es que incluya datos representativos (reales). [5]
Debido a las regulaciones de privacidad como GDPR, PCI y HIPAA , el uso de datos personales sensibles a la privacidad para pruebas está restringido. [6] Sin embargo, los datos de producción anonimizados (y preferiblemente subconjuntos [ aclaración necesaria ] ) se pueden utilizar como datos representativos para pruebas y desarrollo. [7] Los programadores también pueden optar por generar datos sintéticos como una alternativa al uso de datos reales o anonimizados. Si bien los datos sintéticos pueden ofrecer ventajas significativas, como mayor privacidad y flexibilidad, también vienen con limitaciones. Por ejemplo, generar datos sintéticos que reflejen con precisión la complejidad del mundo real puede ser un desafío. También existe el riesgo de que los datos sintéticos no capturen completamente los matices de los datos reales, lo que podría generar lagunas en la cobertura de las pruebas. [8]
Las pruebas de dominio son un conjunto de técnicas que se centran en los datos de prueba. Esto incluye la identificación de entradas críticas, valores en los límites entre clases de equivalencia y combinaciones de entradas que impulsan al sistema hacia salidas específicas. Las pruebas de dominio ayudan a garantizar que se prueben de manera efectiva varios escenarios, incluidos casos extremos y condiciones inusuales. [9]