Un control de cordura o prueba de cordura es una prueba básica para evaluar rápidamente si una afirmación o el resultado de un cálculo puede ser cierto. Es una simple verificación para ver si el material producido es racional (que el creador del material estaba pensando racionalmente, aplicando cordura ). El objetivo de una prueba de cordura es descartar ciertas clases de resultados obviamente falsos, no detectar todos los posibles errores. Se puede verificar una regla empírica o un cálculo de reverso del sobre para realizar la prueba. La ventaja de realizar una prueba de cordura inicial es la de evaluar rápidamente la función básica.
En aritmética, por ejemplo, al multiplicar por 9, usar la regla de divisibilidad por 9 para verificar que la suma de dígitos del resultado es divisible por 9 es una prueba de cordura; no detectará todos los errores de multiplicación, sin embargo, es una forma rápida y sencilla. método para descubrir muchos errores posibles.
En ciencias de la computación , una prueba de cordura es un repaso muy breve de la funcionalidad de un programa , sistema, cálculo u otro análisis de computadora , para asegurar que parte del sistema o metodología funcione aproximadamente como se esperaba. A menudo, esto es antes de una ronda de pruebas más exhaustiva.
Matemático
Una prueba de cordura puede referirse a varios órdenes de magnitud y otros dispositivos simples de regla empírica aplicados para verificar cálculos matemáticos . Por ejemplo:
- Si uno intentara cuadrar 738 y calculara 54,464, una rápida verificación de cordura podría mostrar que este resultado no puede ser cierto. Considere eso700 <738, aún 700 2 = 7 2 × 100 2 = 490.000> 54.464.Dado que elevar al cuadrado números enteros positivos conserva su desigualdad , el resultado no puede ser verdadero, por lo que el resultado calculado es incorrecto. La respuesta correcta,738 2 = 544,644, es más de 10 veces mayor que 54,464.
- En multiplicación, 918 × 155no es 142,135 ya que 918 es divisible entre tres, pero 142,135 no lo es (los dígitos suman 16, no un múltiplo de tres ). Además, el producto debe terminar en el mismo dígito que el producto de los dígitos finales:8 × 5 = 40, pero 142,135 no termina en "0" como "40", mientras que la respuesta correcta sí: 918 × 155 = 142.290 Una verificación aún más rápida es que el producto de números pares e impares es par, mientras que 142,135 es impar.
Físico
- La potencia de salida de un automóvil no puede ser de 700 kJ , ya que la unidad de joules es una medida de energía , no de potencia (energía por unidad de tiempo). Ésta es una aplicación básica del análisis dimensional .
- Al determinar las propiedades físicas , la comparación con sustancias conocidas o similares a menudo arrojará una idea de si el resultado es razonable o no. Por ejemplo, la mayoría de los metales se hunden en el agua, por lo que la densidad de la mayoría de los metales debería ser mayor que la del agua (~1000 kg / m 3 ).
- Las estimaciones de Fermi a menudo proporcionarán información sobre el orden de magnitud de un valor esperado.
Desarrollo de software
En el desarrollo de software, una prueba de cordura (una forma de prueba de software que ofrece " pruebas rápidas, amplias y superficiales" [1] ) evalúa el resultado de un subconjunto de la funcionalidad de la aplicación para determinar si es posible y razonable continuar con más pruebas. de toda la aplicación. [2] Las pruebas de cordura a veces pueden usarse indistintamente con las pruebas de humo [3] en la medida en que ambos términos denotan pruebas que determinan si es posible y razonable continuar con las pruebas. Por otro lado, a veces se hace una distinción de que una prueba de humo es una prueba no exhaustiva que determina si las funciones más cruciales de un programa funcionan antes de continuar con más pruebas, mientras que una prueba de cordura se refiere a si una funcionalidad específica, como un error en particular fix funciona como se esperaba sin probar la funcionalidad más amplia del software. [ cita requerida ] En otras palabras, una prueba de cordura determina si el resultado previsto de un cambio de código funciona correctamente, mientras que una prueba de humo asegura que no se haya roto nada más importante en el proceso. Las pruebas de cordura y las pruebas de humo evitan perder tiempo y esfuerzo al determinar rápidamente si una aplicación es demasiado defectuosa para merecer pruebas de control de calidad más rigurosas , pero necesita más depuración por parte del desarrollador .
Los grupos de pruebas de cordura a menudo se agrupan para pruebas unitarias automatizadas de funciones, bibliotecas o aplicaciones antes de fusionar el código de desarrollo en una rama de control de versiones de prueba o troncal , [4] para la construcción automatizada , [5] o para la integración continua y la implementación continua. . [6]
Otro uso común de la prueba de cordura es denotar verificaciones que se realizan dentro del código del programa, generalmente en argumentos a funciones o retornos de ellas, para ver si se puede suponer que las respuestas son correctas. Cuanto más complicada sea la rutina, más importante será comprobar su respuesta. El caso trivial es verificar si el valor de retorno de una función indica éxito o falla y, por lo tanto, detener el procesamiento posterior en caso de falla. Este valor de retorno es a menudo en sí mismo el resultado de una comprobación de cordura. Por ejemplo, si la función intentó abrir, escribir y cerrar un archivo, se puede usar una verificación de cordura para asegurarse de que no falló en ninguna de estas acciones, que es una verificación de cordura que los programadores suelen ignorar. [7]
Este tipo de comprobaciones de cordura se pueden utilizar durante el desarrollo con fines de depuración y también para ayudar en la resolución de problemas de errores en tiempo de ejecución del software . Por ejemplo, en una aplicación de administración de cuentas bancarias, una verificación de cordura fallará si un retiro solicita más dinero que el saldo total de la cuenta en lugar de permitir que la cuenta se vuelva negativa (lo cual no sería sensato). Otra prueba de cordura podría ser que los depósitos o compras correspondan a patrones establecidos por datos históricos; por ejemplo, transacciones de compras grandes o retiros en cajeros automáticos en ubicaciones extranjeras nunca antes visitadas por el titular de la tarjeta pueden marcarse para confirmación.
Las comprobaciones de cordura también se realizan tras la instalación de un código de software de producción estable en un nuevo entorno informático para garantizar que se cumplan todas las dependencias , como un sistema operativo compatible y bibliotecas de enlaces . Cuando un entorno informático ha pasado todas las comprobaciones de cordura, se conoce como un entorno sano para que el programa de instalación proceda con una expectativa razonable de éxito.
Un "¡Hola, mundo!" El programa se usa a menudo como una prueba de cordura para un entorno de desarrollo de manera similar. En lugar de un script complicado que ejecuta un conjunto de pruebas unitarias, si este programa simple no se puede compilar o ejecutar, demuestra que el entorno de soporte probablemente tiene un problema de configuración que evitará que cualquier código se compile o ejecute . Pero si se ejecuta "Hola mundo", es probable que cualquier problema experimentado con otros programas se pueda atribuir a errores en el código de esa aplicación en lugar del entorno.
Ver también
- Prueba de concepto
- Cálculo del reverso del sobre
- Pruebas de software
- Cálculo mental
- Orden de magnitud
- Problema de fermi
- Suma de comprobación
- Algoritmo de certificación
Referencias
- ^ Fecko, Mariusz A .; Lott, Christopher M. (octubre de 2002). "Lecciones aprendidas de la automatización de pruebas para un sistema de soporte de operaciones" (PDF) . Software: práctica y experiencia . 32 (15): 1485-1506. doi : 10.1002 / spe.491 . S2CID 16820529 . Archivado desde el original (PDF) el 17 de julio de 2003.
- ^ Sammi, Rabia; Masood, Iram; Jabeen, Shunaila (2011). Zain, Jasni Mohamad; Wan Mohd, Wan Maseri bt; El-Qawasmeh, Eyas (eds.). "Un marco para asegurar la calidad del proceso de comprobación de cordura". Ingeniería de software y sistemas informáticos . Comunicaciones en Informática y Ciencias de la Información. Berlín, Heidelberg: Springer. 181 : 143-150. doi : 10.1007 / 978-3-642-22203-0_13 . ISBN 978-3-642-22203-0.
- ^ Glosario de ISTQB® para el esquema de calificación de pruebas de software de la Junta Internacional de Calificación de Pruebas de Software®, Glosario de ISTQB Junta de Calificación de Pruebas de Software Internacional
- ^ http://webhotel4.ruc.dk/~nielsj/research/publications/freebsd.pdf
- ^ Hassan, AE y Zhang, K. 2006. Uso de árboles de decisión para predecir el resultado de la certificación de una compilación . En las actas de la 21ª Conferencia internacional IEEE / ACM sobre ingeniería de software automatizada (18 al 22 de septiembre de 2006). Ingeniería de software automatizada. Sociedad de Informática IEEE, Washington, DC, 189-198.
- ^ http://jitm.ubalt.edu/XXIX-2/article4.pdf
- ^ Darwin, Ian F. (enero de 1991). Comprobación de programas C con pelusa (1ª ed., Con revisiones menores. Ed.). Newton, Mass .: O'Reilly & Associates. pag. 19. ISBN 0-937175-30-7. Consultado el 7 de octubre de 2014 .
Un hábito de programación común es ignorar el valor de retorno de fprintf (stderr, ...