Pregunta

Estoy buscando en la mejor forma para automatizar las pruebas de integración (y me refiero a los casos de uso completas totalmente dentro de nuestra aplicación)

Las preguntas

cubrir el "por qué" y "qué" aspectos muy bien.

La pregunta automatizada integración probar una aplicación C ++ con una base de datos implica que los marcos xUnit son una buena manera de crear y ejecutar pruebas de integración. Se xUnit es realmente muy adecuado para esa tarea? ¿Hay pifias comunes a tener en cuenta? Un buen método a seguir?

¿Hay mejores enfoques (por debajo de la posible compra del paquete de herramientas de HP / ex Mercurio)?

Mi entorno específico para este proyecto es Java / SpringSource / Hibernate, pero también estoy interesado en sugerencias para la plataforma .NET.

¿Fue útil?

Solución

  

La pregunta automatizada integración probar una aplicación C ++ con una base de datos implica que los marcos xUnit son una buena manera de crear y ejecutar pruebas de integración. Se xUnit es realmente muy adecuado para esa tarea? ¿Hay pifias comunes a tener en cuenta? Un buen método a seguir?

JUnit y TestNG son inicialmente los marcos de prueba unidad, pero se pueden utilizar para pruebas de integración también. Así que para mí, la respuesta es sí, son muy adecuados para las pruebas de integración, por ejemplo, probar el servicio -> Dominio> persistencia -> capas de base de datos (en realidad voy a volver en las pruebas de integración más adelante). Una de las cosas difíciles al hacer pruebas de integración que involucran la base de datos son los datos. Una herramienta como DbUnit puede ayudar y por lo general se utiliza para poner la base de datos en un estado conocido antes de ejecutar cada una prueba (y para llevar a cabo afirma en el contenido de la base de datos). Otro enfoque es para ejecutar las pruebas en una transacción y de revertir la transacción al final de la prueba. Primavera permite hacerlo muy fácilmente, también lo hace el href="http://www.unitils.org/summary.html" rel="nofollow noreferrer"> unitils biblioteca . En cualquier caso, la mejor práctica es evitar pruebas interdependientes tanto como sea posible (como se menciona en el enlace que le dio), no son más que una pesadilla.

  

¿Hay mejores enfoques (por debajo de la posible compra del paquete de herramientas de HP / ex Mercurio)?

A mi entender, este tipo de herramientas son más herramientas de extremo a extremo de pruebas es decir, herramientas de pruebas funcionales. Así que si por medio de pruebas de integración (que para mí significa probar varios componentes juntos) en realidad se refiere a las pruebas funcionales (esto es mi comprensión de casos de uso completas ), me gustaría sugerir que mirar cosas como:

Prestar especial atención a la una en negrita (todos son en realidad una gran herramienta, pero estoy seguro que el uno en negrita proporcionar buenas capacidades de automatización). Y debido a HTTP y SOAP son estándares (esto no se aplica a las herramientas de pruebas de interfaz de usuario swing de golf), estas herramientas no son muy específicos de Java (incluso si las propias pruebas están escritos en Java / Groovy para SoapUI). Y por cierto, el selenio es compatible con muchos lenguajes de programación ).

Otros consejos

Multi-threading puede ser un problema, ya que JUnit no recogerá excepciones en otros hilos. Hay algunas Puzzlers Java sobre eso. También es necesario inventar sus propias maneras de hacer las pruebas estadísticas y los métodos de aserción puede ser un poco difícil. También creo que la semántica de JUnit son un poco claro (JUnit utiliza una instancia independiente para cada método de ensayo, por ejemplo). Por estas razones me pasa a TestNG, que en mi opinión es un marco mejor diseñados. El hecho de que JUnit fue diseñado utilizando la programación extrema muestra a veces.

Como se ha mencionado que se puede hacer con marcos xUnit, pero si va a querer mezclar las aplicaciones de escritorio de aplicaciones web Java y .Net, oy o añadir un poco más de complejidad al panorama general, que usted no será capaz de hacerlo con sólo un marco de pruebas unitarias. Por lo que tendrá que tener muchas herramientas de prueba, muchos entornos de prueba, muchos desarrolladores de scripts de prueba (por ejemplo, un enemigo pruebas unitarias de Java, uno para pruebas .Net) ... y esto le suman complejidad, problemas, costes ...

En cuanto a la prueba rápida HP Pro usted ha mencionado que debe cubrir más de sus necesidades. Me refiero a la mayoría, porque puede haber algunas áreas donde no es adecuado (no hay manera de ejecutar scripts en aplicaciones a través de la virtualización de Citrix), pero para la mayoría de los casos se hará el trabajo. Es adecuado para Java / .net / web y otras cosas (hay plugins para usos especializados). QTP generalmente opera sobre objetos GUI para que pueda preparar los casos de prueba para los casos de uso del usuario, y la prueba se puede realizar de una manera que el usuario normal sería realizar acciones (sólo un poco más rápido que hay que frenar intencionadamente hacia abajo a velocidad de usuario si es necesario).
Es probable que necesite una herramienta, un entorno de prueba, un desarrollador alforja de prueba (VB). Es caro, pero si lo es para la compañía que debe ser la mejor opción en el largo plazo.
Y si preguntas desde la perspectiva de la empresa que desempeñará bien con HP Quality Center si decide utilizarlo para su división entera de Pruebas / equipo. A menos que utilice soluciones de IBM, que tienen su propio conjunto de herramientas como parte de su plataforma de software de entrega incluyendo Rational Robot

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top