¿Es posible generar pruebas unitarias, pruebas de integración y pruebas de aceptación automáticamente?

En realidad no, pero puedes acercarte.

Creé ErrorUnit [1] que genera una prueba de unidad de C # desde donde está pausado en Visual Studio o desde los registros de errores. Se burlan de los valores de la clase, los parámetros del método y los datos de EF accedidos hasta ahora.

Las pruebas unitarias se dividen clásicamente en tres partes: organizar, actuar y hacer valer; la parte Organizar es la parte más grande de una prueba unitaria y establece todas las condiciones previas a una prueba, burlándose de todos los datos sobre los que se va a realizar la prueba, la parte Act de una prueba unitaria es generalmente una línea y se activa la parte del código que se está probando pasa esos datos y, finalmente, la parte Assert de la prueba toma los resultados de la parte Act y verifica que cumplió con las expectativas (puede haber cero líneas cuando solo se asegura de que no haya error).

Los generadores de pruebas unitarias generalmente solo pueden realizar las partes ‘Organizar’ y ‘Actuar’ en la creación de pruebas unitarias; Sin embargo, los generadores de pruebas unitarias generalmente no escriben partes de ‘Afirmación’, ya que solo usted sabe qué es correcto y qué es incorrecto para sus propósitos. Por lo tanto, es necesario un poco de entrada / extensión manual de Pruebas Unitarias para completar después de la generación.

Las pruebas de integración aseguran que todas las unidades probadas se comuniquen entre sí y trabajen juntas; Puede crear pruebas unitarias de tal forma que no simulen las partes de las que dependen, sino que utilicen lo real.

Las pruebas de aceptación generalmente las realiza un humano, ya que solo un humano puede juzgar lo que es aceptable, esto se puede automatizar a cierto nivel a través de las herramientas de scripting de pruebas de UI (como el selenio).

Notas al pie

[1] por John Gold Inc.

Hmmm … ¡Sí! ¿Cejas arqueadas?

Bueno, déjeme explicarle … Cada industria (banca, seguros, comercio minorista, logística, etc.) tiene un tipo único de proceso de negocios. Cada proceso de negocio tiene flujos de trabajo.

QualityKiosk utiliza su plataforma de control de calidad (QATH) para automatizar las pruebas en gran medida. Podemos configurar la plataforma incluso antes de que se complete la codificación de la aplicación. ¡Sí! Libere la automatización lista.

Por ejemplo, es posible que necesitemos 7 días para probar completamente un nuevo producto de seguro y una corrida de regresión tomaría un día. Esto permitiría que incluso las pruebas unitarias o las pruebas de integración se realicen de una manera verdaderamente completa (o, en cuanto a los módulos, la opción está disponible).

Si se enfrenta al desafío de duplicar el número de aplicaciones lanzadas en el mismo período de tiempo y reducir el costo por lanzamiento, bueno, hable con nosotros para una consulta gratuita.

Vea el Foco de atención al cliente de IDC en Manulife Indonesia, donde redujimos el tiempo de comercialización de Manulife en un 50%.

¿Es posible generar pruebas unitarias, pruebas de integración y pruebas de aceptación automáticamente?

“Posible” es una palabra difícil.

Así que escribiste un método y estás preguntando si una prueba de unidad puede escribirse automáticamente. Para que sea bueno, completo y correcto, el generador de prueba de unidad tendría que entender qué se supone que debe hacer su método o no podría asegurarse de que su método funcionó. Voy a decir que esto no es posible actualmente: es un nivel de inteligencia artificial que no tenemos.

Además, tendría que entender todos los casos límite y cuál es el comportamiento adecuado.

Supongamos que escribe un método que lanza si pasa nulo, pero se ocupa de todas las demás cadenas, incluida la cadena vacía. Luego, usted y su guía analizan su método y deciden que desea tratar una cadena vacía y nula igual. ¿Cómo va a saber el generador de pruebas unitarias para actualizar la prueba?

(Tenga en cuenta que de lo que estamos hablando es muy diferente a armar una plantilla y decir “Ahora haga una prueba para asegurarse de que funcionó aquí”).

No.

¿Cómo podría el generador saber qué es lo que querías hacer?

Solo puede hacer valer contra un valor correcto esperado. Ese valor existe en tu mente como un programador. Es su decisión por completo.

Una vez que sepa qué quiere hacer con un código, puede escribir una prueba para eso.

Un generador no tiene la inteligencia humana requerida para saber qué es eso. Ese es tu trabajo.