Pregunta ¿Qué es la prueba unitaria, la prueba de integración, la prueba de humo, la prueba de regresión?


¿Qué es la prueba unitaria, la prueba de integración, la prueba de humo, la prueba de regresión y cuáles son las diferencias entre ellos? ¿Y qué herramientas puedo usar para cada una de ellas?

Por ejemplo, uso JUnit y NUnit para pruebas unitarias y pruebas de integración. ¿Hay alguna prueba de humo o herramientas de prueba de regresión?


572
2018-02-06 12:08


origen


Respuestas:


  • Prueba de unidad: Especifique y pruebe un punto del contrato del método único de una clase. Esto debería tener un alcance muy estrecho y bien definido. Las dependencias e interacciones complejas con el mundo exterior son tropezado o burlado.

  • Examen de integración: Pruebe la interoperabilidad correcta de subsistemas múltiples. Aquí hay un espectro completo, desde probar la integración entre dos clases hasta probar la integración con el entorno de producción.

  • Prueba de humo (también conocido como Sanity check): Una simple prueba de integración donde simplemente verificamos que cuando se invoca el sistema bajo prueba, retorna normalmente y no explota.

    • La prueba de humo es tanto una analogía con la electrónica, donde la primera prueba se produce al encender un circuito (¡si fuma, es malo!) ...
    • ... y, aparentemente, con plomería, donde un sistema de tuberías se llena literalmente de humo y luego se controla visualmente. Si algo fuma, el sistema está goteando.
  • Test de regresión: Una prueba que se escribió cuando se solucionó un error. Asegura que este error específico no vuelva a ocurrir. El nombre completo es "prueba de no regresión". También puede ser una prueba realizada antes de cambiar una aplicación para asegurarse de que la aplicación proporcione el mismo resultado.

A esto, agregaré:

  • Examen de ingreso: Probar que una característica o caso de uso está implementada correctamente. Es similar a una prueba de integración, pero con un enfoque en el caso de uso para proporcionar en lugar de en los componentes involucrados.

  • Prueba del sistema: Prueba un sistema como una caja negra. Las dependencias en otros sistemas a menudo se burlan o fallan durante la prueba (de lo contrario, sería más una prueba de integración).

  • Verificación previa al vuelo: Pruebas que se repiten en un entorno similar a la producción, para aliviar el síndrome de "construcciones en mi máquina". A menudo, esto se realiza haciendo una prueba de aceptación o prueba de humo en un entorno de producción similar.


847
2018-02-06 12:28



  • Prueba de unidad: una prueba automática para probar el funcionamiento interno de una clase. Debe ser una prueba independiente que no esté relacionada con otros recursos.
  • Examen de integración: una prueba automática que se realiza en un entorno, por lo que es similar a las pruebas unitarias pero con recursos externos (db, acceso al disco)
  • Test de regresión: después de implementar nuevas funciones o corregir errores, vuelve a probar los escenarios que funcionaron en el pasado. Aquí cubre la posibilidad de que sus nuevas funciones rompan características existentes.
  • Prueba de humo: primeras pruebas en las que los evaluadores pueden concluir si continuarán las pruebas.

85
2018-02-06 12:13



Todos tendrán definiciones ligeramente diferentes, y a menudo hay áreas grises. Sin embargo:

  • Prueba unitaria: ¿funciona esto un poco (lo más aislado posible)?
  • Prueba de integración: ¿estos dos (o más) componentes funcionan juntos?
  • Prueba de humo: ¿todo este sistema (lo más parecido posible a ser un sistema de producción) se mantiene razonablemente bien? (es decir, ¿estamos razonablemente seguros de que no creará un agujero negro?)
  • Prueba de regresión: ¿hemos reintroducido inadvertidamente algún error que hayamos solucionado anteriormente?

74
2018-02-06 12:15



Una nueva categoría de prueba de la que acabo de enterarme es la siguiente:

Prueba canaria

 UN Prueba canaria es una prueba automatizada, no destructiva que es ejecutar de forma regular en un VIVIR ambiente, de modo que si alguna vez falla, algo realmente malo ha sucedido.

Los ejemplos pueden ser:

  • Tiene datos que solo deberían estar disponibles en DEV / TEST aparecieron en VIVIR.
  • Ha fallado la ejecución de un proceso en segundo plano
  • ¿Puede un usuario iniciar sesión

41
2017-09-11 03:47



trivia histórica apócrifa: "prueba de humo" proviene de la ingeniería submarina (heredada de la fontanería) donde literalmente se bombearía humo al casco para ver si volvía a salir, lo que sería una falla dramática para un submarino.


16
2018-02-06 12:27



Prueba unitaria: Verificación de que un componente particular (es decir, clase) haya creado o modificado funciones tal como se diseñaron. Esta prueba puede ser manual o automática, pero no se mueve más allá de los límites del componente.

Prueba de integración: Verificación de que la interacción de los componentes particulares funciona según lo diseñado. Las pruebas de integración se pueden realizar en el nivel de la unidad o en el nivel del sistema. Estas pruebas pueden ser manuales o automatizadas.

Prueba de regresión: Verificación de que los defectos nuevos no se introducen en el código existente. Estas pruebas pueden ser manuales o automatizadas.

Dependiendo de su SDLC (cascada, rup, ágil, etc.), las pruebas particulares pueden realizarse en 'fases' o pueden realizarse todas, más o menos, al mismo tiempo. Por ejemplo, las pruebas unitarias pueden estar limitadas a los desarrolladores que luego entregan el código a los evaluadores para realizar pruebas de integración y regresión. Sin embargo, otro enfoque podría hacer que los desarrolladores realicen pruebas unitarias y algún nivel de integración y pruebas de regresión (utilizando un enfoque TDD junto con una integración continua y pruebas unitarias automatizadas y de regresión).

El conjunto de herramientas dependerá en gran medida de la base de código, pero hay muchas herramientas de código abierto para pruebas unitarias (JUnit). HP's (mercurio) QTP o Borland's Silktest son ambas herramientas para integración automatizada y pruebas de regresión.


8
2018-04-26 12:02



prueba de unidad: se sabe que las pruebas de un módulo individual o componente independiente en una aplicación son pruebas unitarias, la prueba de la unidad se realizará por el desarrollador.

examen de integración: combinando todos los módulos y probando la aplicación para verificar que la comunicación y el flujo de datos entre los módulos funcionen correctamente o no, esta prueba también la realizan los desarrolladores.

prueba de humo  En la prueba de humo, comprueban la aplicación de manera superficial y amplia. En las pruebas de humo, verifican la funcionalidad principal de la aplicación, si hay algún problema de bloqueador en la aplicación informarán al equipo de desarrollo, y el equipo en desarrollo lo arreglará y rectificará. defecto, y se lo devuelve al equipo de prueba y ahora el equipo de prueba verificará todos los módulos para verificar que los cambios hechos en un módulo afectarán al otro módulo o no. EN PRUEBAS DE HUMO, los casos de prueba tienen guiones

pruebas de regresión ejecutar los mismos casos de prueba repetidamente para asegurar que el módulo sin cambios no cause ningún defecto. PRUEBA DE REGRESIÓN viene bajo prueba funcional


6
2017-11-26 07:28



Respuesta de uno de los mejores sitios web para técnicas de prueba de software:

Tipos de pruebas de software - Lista completa Haga clic aquí


6
2017-10-21 05:28



PRUEBAS DE REGRESIÓN-

"Una prueba de regresión vuelve a ejecutar pruebas previas contra el software modificado para garantizar que los cambios realizados en el software actual no afecten a la funcionalidad del software existente".


5
2017-09-17 09:59



Prueba unitaria: Verificación de que un componente particular (es decir, clase) haya creado o modificado funciones tal como se diseñaron. Esta prueba puede ser manual o automática, pero no se mueve más allá de los límites del componente.

Prueba de integración: Verificación de que la interacción de los componentes particulares funciona según lo diseñado. Las pruebas de integración se pueden realizar en el nivel de la unidad o en el nivel del sistema. Estas pruebas pueden ser manuales o automatizadas.

Prueba de regresión: Verificación de que los defectos nuevos no se introducen en el código existente. Estas pruebas pueden ser manuales o automatizadas.

Dependiendo de su SDLC (cascada, rup, ágil, etc.), las pruebas particulares pueden realizarse en 'fases' o pueden realizarse todas, más o menos, al mismo tiempo. Por ejemplo, las pruebas unitarias pueden estar limitadas a los desarrolladores que luego entregan el código a los evaluadores para realizar pruebas de integración y regresión. Sin embargo, otro enfoque podría hacer que los desarrolladores realicen pruebas unitarias y algún nivel de integración y pruebas de regresión (utilizando un enfoque TDD junto con una integración continua y pruebas unitarias automatizadas y de regresión).


3
2017-10-28 21:19