2012-07-05 19 views
15

El otro día mostraba a uno de los evaluadores de mi empresa algunas pruebas que había escrito en pepino (2 características, 5 escenarios). Y preguntó que me pregunta que no podía responder:Pepino/Capibara vs Selenio?

¿Cómo es esto mejor que el selenio o cualquier otra herramienta de grabación de prueba de funcionalidad?

Entiendo que el pepino es una tecnología diferente y se encuentra en un nivel diferente de prueba, pero no puedo entender por qué me molesto en escribir y mantener las pruebas de Cucumber/Capybara.

¿Alguien me puede dar una explicación razonable para usar Pepino/Carpincho en lugar de solo Selenio?

Respuesta

14

Esta pregunta está en el límite de pedir una opinión. Tu pregunta realmente me dice: "¿Qué herramienta es la adecuada para mí?" Digo esto porque no das una razón de por qué elegiste Pepino y Carpincho. Creo que para responder a la pregunta del probador, primero debe responder un par de preguntas más:

1.) ¿En qué etapa del proceso va a escribir estas pruebas?

El pepino puede no ser la elección correcta para las pruebas unitarias, según el idioma que se utilice. Pero se puede usar para cualquier nivel de prueba, desde la unidad hasta la integración hasta el usuario final.

2.) ¿Quién va a mantener sus pruebas? ¿Tú? Otros desarrolladores? Probadores? Analistas de negocios? Gerentes de proyecto?

Se deben mantener las pruebas automáticas, y saber quién hará eso puede ayudarlo a decidir sobre una herramienta, ya que algunas serán demasiado técnicas para ciertos usuarios.

3.) ¿Quién va a definir nuevas pruebas?

Pepino está destinado a ser utilizado en colaboración entre el desarrollo, el control de calidad y los propietarios de negocios.Es la herramienta perfecta para aprovechar el conocimiento de todos en el proceso de prueba automatizado. Sin embargo, requiere el desarrollo de un lenguaje omnipresente. Puede leer sobre eso en la página James Shore's Art of Agile.

Una vez que haya respondido estas preguntas, está listo para responder a la pregunta del examinador.

Sin embargo, hay algunos puntos a tener en cuenta al comparar herramientas de grabación (como Selenium IDE, HP Quick Test Pro, IBM Rational Functional Tester) frente a las herramientas de desarrollo (nUnit, jUnit, RSpec, Selenium webdriver, Capybara) es que están dirigidos a diferentes públicos. También tienen diferentes ventajas y desventajas.

Las herramientas de grabación son fáciles de usar para cualquiera, pero los scripts que crean son frágiles. Se rompen fácilmente y requieren más mantenimiento. Son excelentes para las pruebas automáticas únicas, en las que debe realizarlas rápidamente y contar con mano de obra no técnica.

Las herramientas de desarrollo tienen una curva de aprendizaje más amplia y requieren experiencia en programación (o al menos secuencias de comandos). Los scripts generalmente son más robustos, pero requieren más conocimientos técnicos para mantener. Son una buena solución cuando quiere repetibilidad y planea usar pruebas durante mucho tiempo.

Sugiero que lea The Cucumber Book. Realmente lo ayudará a decidir si Pepino es la opción correcta para usted.

+0

Bastante justo. Pero eso también supone que puedes hacer ambas cosas. Como ingeniero de control de calidad, no tengo control sobre las prácticas de codificación de los desarrolladores. Sin embargo, puedo aprovechar Pepino mucho más efectivamente que las pruebas unitarias para promover el cambio. –

+0

En realidad, la pregunta es: "¿Por qué debería usar pepino?" – treaz

+0

@treaz Cucumber "asume un papel de documentación, un mecanismo para colaborar con las partes interesadas y el almacenamiento de requisitos" –

7

Pepino no es solo una herramienta de prueba. Además de las pruebas, las funciones de Cucumber también tienen un papel de documentación, un mecanismo para colaborar con las partes interesadas y el almacenamiento de requisitos (si los escribe en declarative style).

No tiene que usar Pepino con carpincho. Puedes usar selenio directamente. Pero Capybara tiene la misma API de alto nivel para todos supporting drivers. Es más de alto nivel que Selenium y permite escribir pruebas un poco más rápido. No tiene que cambiar el código cuando cambia de un controlador a otro.

Las pruebas creadas con herramientas de registro de prueba generalmente son mucho peores. Selenium IDE puede producir código de programación válido, pero no es atractivo y, por lo tanto, es difícil de mantener.

0

Pepino es una herramienta que se utiliza para hacer que las pruebas sean legibles para los usuarios comerciales. Consiste en oraciones simples en inglés que se combinan usando expresiones regulares para tus pasos de Capybara.

El uso de herramientas de grabación no le servirá de nada en el largo plazo. Estaban diseñados para principiantes y no son tan potentes, así que te recomiendo que vayas directamente a la codificación.

Puede usar Selenium solo para sus pruebas, pero le recomendaría que continúe usando Pepino con fines de documentación, si las encuentra útiles y es fácil trabajar con ellas. Después de todo, Cucumber puede usar Capybara o el controlador web de Selenium.

+2

¿Los usuarios empresariales están realmente interesados ​​en leer/escribir pruebas? Desde mi experiencia, solo quieren que las cosas funcionen ... Las herramientas de grabación estaban pensadas para principiantes -> ¿Alguien se molestaría en aprender pepino/capibara si hay herramientas más fáciles de usar? – treaz

+0

Sí, estoy de acuerdo en que la mayoría de los usuarios comerciales, si no todos, ni siquiera miran los archivos de características, pero para eso sirve el pepino. Si bien las herramientas de grabación son excelentes para los novatos, aprender un lenguaje de alto nivel como el carpincho es extremadamente fácil, puedes moverte con solo un puñado de métodos, ¿por qué no? – maru

0

Selenium ide es bueno para probar características que tienen elementos visuales (enlaces, texto, etc.). Pero a menudo las aplicaciones web tienen características que no se representan a sí mismas como elementos visuales, como enviar correos electrónicos, trabajos en cola, comunicarse con servicios de terceros, etc. Podría, por ejemplo, probar si aparece un mensaje de 'Correo electrónico ha sido enviado'. enviando un formulario. Pero realmente no le dice si realmente se envió un correo electrónico y, por lo tanto, no está realmente probando la función completa aquí.