test serp seomofo google checker check testing process automation

testing - serp - ¿Alguien que usa los requisitos del ejecutable?



test seo tags (6)

En mi limitada experiencia con ellos, los requisitos ejecutables (es decir, especificar todos los requisitos como pruebas automáticas rotas) han demostrado ser increíblemente exitosos. Trabajé en un proyecto en el que pusimos un gran énfasis en la creación de pruebas automáticas de alto nivel que ejercitaran toda la funcionalidad de un caso de uso dado / historia del usuario. Fue realmente sorprendente para mí lo mucho más fácil que se convirtió el desarrollo después de que comenzamos esta práctica. Las características de implementación se volvieron mucho más fáciles después de escribir una prueba y pudimos realizar cambios arquitectónicos importantes en el sistema con toda la confianza en el mundo de que todo funcionaba igual que ayer.

El mayor problema con el que nos encontramos fue que las herramientas para administrar este tipo de pruebas no son muy buenas. Utilizamos Fitnesse bastante y como resultado ahora odio el marco Fit.

Me gustaría saber 1) si alguien más tiene experiencia desarrollando el uso de este tipo de definición de requisitos impulsados ​​por pruebas y 2) qué herramientas usaron todos para facilitar esto.


Es posible que desee echar un vistazo a Robot Framework ( http://robotframework.org ). Es parecido a FIT pero, con suerte, es más fácil de integrar a diferentes herramientas de prueba, control de versiones e integración continua. Diferentes niveles de abstracción en los datos de prueba también hacen que sea más fácil mantener los datos, y cuando el editor de datos de prueba por separado obtiene un mantenimiento más maduro se vuelve aún más fácil. La guía de inicio rápido presenta las características más importantes del marco y actúa también como una demostración ejecutable.


Descubrí que usar contratos es un gran enfoque. Los contratos de metaprogramación generalmente son de un nivel más bajo que los tipos de pruebas de integración que describes, pero los dos ciertamente no son mutuamente excluyentes. Encuentro que los contratos ayudan a mantener la documentación, la implementación y las pruebas en sincronía: este es un problema importante de TDD (no es que no sea un problema en los que no son TDD).


La herramienta principal que también utilicé fue FitNesse. Lo he usado en varias compañías, con muy buenos resultados. Tuvimos casos de prueba que suman muchos miles, y tuvimos que ser muy disciplinados en cómo los organizamos y usamos.

He intentado algunas otras herramientas, incluida la escritura de mi propio DSL (lenguaje específico del dominio) y el uso de cosas como RSpec. Realmente me gusta RSpec, pero ciertamente es más una herramienta de desarrollador que una de negocios.

Sé que Rick Mugridge ha estado trabajando en una herramienta llamada ZiBreve ( http://www.zibreve.com/visit.php?page=index ) que se supone que tiene un soporte de refactorización más sólido. No lo he usado yo mismo, pero conozco a Rick y he hablado con él varias veces. Sé que hubo una discusión en Agile 2008 sobre algunas formas diferentes de lidiar con las pruebas de Fitnesse en general.

Aparte de eso, no he visto muchas herramientas buenas por ahí. Incluso las herramientas como WinRunner están bien para las pruebas de tipo QA, pero para las pruebas exploratorias de requisitos de la empresa, FitNesse o una DSL personalizada parecen ser las formas de hacerlo ahora mismo.


He probado Fitnesse y es realmente horrible (especialmente la integración con SVN). Y nuestra empresa desarrolla una herramienta similar de código abierto con motor en forma: FitPro

Otra herramienta brillante que he usado es Concordion . Tiene la única desventaja: requrements en formato html


Tuve que usar, probar y configurar tanto fitnesse como uno de sus competidores, GreenPepper para mi trabajo, y lo que puedo decir es:

GreenPepper es un complemento de confluencia (confluence es una wiki empresarial de atlassian) y tiene muchas de las cosas que necesita en una herramienta de nivel "empresarial" con poco o ningún trabajo adicional requerido:

  • Mejor sintaxis de wiki de texto enriquecido y fácil de usar (facilita el trabajo para personas no técnicas)
  • Se integra muy bien con muchas herramientas de desarrollo: Eclipse, VB, maven2 y el plugin Nant, probé la mayoría y quedé muy satisfecho.
  • Los derechos de usuario y acceso se gestionan por confluencia, lo que quiere decir que es bueno y hace uso de la base de datos de su likin (que puede ser obligatoria según el lugar donde trabaje)
  • Muchas otras funcionalidades que pueden o no ser necesarias: soporte de SSL, ejecución remota (instale el wiki en Unix, ejecute en Windows si está trabajando en un proyecto de C # o en reversa)
  • Se ve mucho mejor: D

Las grandes desventajas de GreenPepper son: la configuración es bastante difícil y la documentación es pobre (aunque parecen estar trabajando en ello y responden bastante rápido en su foro) y tampoco es gratis , tiene que pagar tanto por la confluencia como por GreenPepper, que podría sumar mucho.

Fitnesse es muy básico en mi opinión, muy fácil de configurar, funciona, pero eso es todo, puede usar algunos de los complementos de Fitnesse desarrollados por la comunidad de código abierto, e incluso algunos complementos de Fit, como el complemento Eclipse (compilar el skeletton del accesorio de un archivo de prueba de fitnesse, siempre que esté en una extensión .fit, muy útil). La integración no es ideal, la autenticación y la gestión de derechos de acceso son deficientes, pero es GRATIS y si necesita algo, puede hacerlo porque es de código abierto.


Mi experiencia se limita a proyectos personales y encontré las mismas ventajas que mencionaste. Recomiendo http://metacpan.org/pod/Test::Simple::Tutorial, que fue mi inspiración para probar el desarrollo basado en pruebas. Los módulos de prueba de perl parecen bastante útiles y flexibles, aunque no tengo nada con qué compararlos.

También creo que las pruebas son vitales para el período de mantenimiento de un proyecto. Si tiene buenas pruebas para empezar, ahorrará mucho tiempo y errores más adelante. Ojalá hubiera puesto más trabajo en las pruebas de mi proyecto actual.