Estamos utilizando BDD y utilizando SpecFlow para impulsar nuestro desarrollo (ATDD).Uso de SpecFlow para pruebas de regresión de extremo a extremo
Nuestro equipo de control de calidad quisiera definir sus propias pruebas de regresión de extremo a extremo (en Gherkin/SpecFlow) y reutilizar los Pasos que ya hemos definido.
(Tenga en cuenta - Sé que esto no es un gran ejemplo, pero debe proporcionar suficientes detalles)
Una prueba puede incluir ..
- Acceder
- Buscar un producto
- seleccionar un producto para comprar
- crear un orden Seleccionar la opción de entrega
- .
- Envíe la orden.
- Cancele el pedido.
Esto haría sugiere un escenario como ..
Dada estoy conectado
cuando la búsqueda de un producto
Y seleccionar un producto para comprar
Y crear un orden
Y I Seleccione la opción de entrega
y envío el pedido
y cancelo el pedido
Entonces ?? !!
Lo cual es claramente incorrecto ya que no estamos verificando la salida en cada paso.
Así que este puede resolverse como una secuencia de escenarios:
Escenario 1:
Dado estoy conectado
cuando la búsqueda de un producto
entonces veo una lista de productos
Escenario 2:
Cuando selecciono un producto para comprar
Entonces puede crear una orden
Escenario 3:
Cuando creo el orden
Y seleccione la opción de entrega
Entonces puedo enviar la orden
, etc, etc
El principal problema con esto es que parece que no hay manera para especificar el orden/secuencia en que se ejecutan los escenarios (una característica de nUnit?). Debido a que existen dependencias entre los escenarios (no se establecen en un punto de inicio conocido), deben ejecutarse en secuencia.
Mis preguntas son:
a) estamos tratando de encajar una clavija cuadrada en un agujero redondo ?!
b) ¿Alguien sabe si hay alguna manera de usar SpecFlow/Gherkin de esta manera?
c) ¿Alguien sabe qué alternativas hay?
¡Muchas gracias!
Muchas gracias por su respuesta Marcus y los artículos que usted lista - muy útil! Estoy un poco más claro ahora en la prueba de la prueba. Es decir, ¿tenemos la capacidad de encadenar escenarios ya escritos para ejecutarlos en secuencia y realizar pruebas de sistema de extremo a extremo? p.ej. inicie sesión y luego busque productos y luego envíe el pedido, luego registre la cuenta y luego edite la cuenta, luego busque los pedidos, vea el pedido y luego cancele el pedido, etc. Sería útil, por lo tanto, encadenar escenarios como Cuándo Entonces Cuándo Entonces Cuándo Entonces ... Desafortunadamente, no parece ser una forma de ejecutar escenarios en un orden específico. –
Actualización: si los escenarios tienen el nombre '001 Haga esto', '002 Haga eso' etc., entonces se ejecutan en ese orden. Se siente un poco raro, pero para nuestros propósitos, esto funcionará hasta que se encuentre una mejor solución. –
Definitivamente recomendaría no escribir escenarios que dependen del orden. Eso será difícil de mantener ... –