Redacción de Pruebas Declarativas
Aprende la estructura de archivos .case.feature, donde colocar los tags de identidad y como se diferencian los casos de prueba de los planes y ejecuciones en Testform.
Estructura testcase
Sección titulada «Estructura testcase»En Testform, un archivo .case.feature representa una funcionalidad o modulo, y cada escenario (Scenario) dentro del archivo representa un caso de prueba individual.
Por esta razon:
- El tag de identidad de un caso de prueba va colocado DIRECTAMENTE sobre el
Scenario:(nunca a nivel delFeature:). - El tag de identidad es unico dentro del mismo archivo
.case.feature. - La identidad canonical del caso en el ledger de estado es la combinacion de la ruta del archivo y su tag:
tests/features/auth.case.feature.@tc-login-001.
Ejemplo Completo de un Archivo .case.feature
Sección titulada «Ejemplo Completo de un Archivo .case.feature»Un mismo archivo puede contener multiples casos de prueba (escenarios), cada uno con su propia identidad y nivel de prioridad:
Feature: Funcionalidad de Autenticacion y Acceso Como usuario registrado de la plataforma Quiero iniciar sesion de forma segura Para acceder a las herramientas del sistema
Background: * field automate = apply
@high @tc-login-001 Scenario: Inicio de sesion exitoso con credenciales validas Given el usuario se encuentra en la pagina de login When ingresa su correo "admin@empresa.com" y contrasena valida And presiona el boton "Iniciar Sesion" Then el sistema lo redirige al dashboard principal And muestra el mensaje de bienvenida
@medium @tc-login-002 Scenario: Intento de inicio de sesion con contrasena invalida Given el usuario se encuentra en la pagina de login When ingresa su correo "admin@empresa.com" y una contrasena erronea And presiona el boton "Iniciar Sesion" Then el sistema permanece en la pantalla de login And muestra el error "Credenciales invalidas"Reglas de Identidad: testcase vs testrun y testplan
Sección titulada «Reglas de Identidad: testcase vs testrun y testplan»Existe una distincion arquitectonica fundamental en como Testform maneja las identidades segun el tipo de recurso:
| Recurso | Alcance del Archivo | Ubicacion del Tag de Identidad | Nivel de Unicidad |
|---|---|---|---|
testcase |
1 archivo .case.feature contiene multiples casos de prueba (escenarios). |
Sobre cada Scenario: con prefijo @tc-* (ejemplo: @tc-login-001 o @tc-login). |
Unico dentro del mismo archivo .feature. Se resuelve como <archivo>.<tag>. |
testrun |
1 archivo .run.feature representa una unica ejecucion completa. |
Sobre el Feature: con prefijo @tr-* en la cabecera del archivo. |
Globalmente unico en todo el repositorio. |
testplan |
1 archivo .plan.feature representa un unico plan de certificacion. |
Sobre el Feature: con prefijo @tp-* en la cabecera del archivo. |
Globalmente unico en todo el repositorio. |
Como Referenciar Casos de Prueba en Testruns
Sección titulada «Como Referenciar Casos de Prueba en Testruns»Dado que cada caso de prueba vive dentro de un escenario en un archivo .case.feature, los archivos de ejecucion (*.run.feature) los referencian mediante reglas (Rule:) y selectores de escenario:
@tr-smoke-202610 @highFeature: Smoke Test de Regresion Validacion rapida de funcionalidades criticas del sistema.
Rule: auth.case.feature
Scenario: @tc-login-001
Rule: checkout.case.feature
Scenario: @tc-checkout-001Metadatos y Campos Personalizados en Casos de Prueba
Sección titulada «Metadatos y Campos Personalizados en Casos de Prueba»Puedes asignar metadatos a cada caso de prueba mediante dos vias:
1. Mediante Tags sobre el Escenario
Sección titulada «1. Mediante Tags sobre el Escenario»@critical @component-billing @tc-billing-001Scenario: Pago exitoso con tarjeta corporativa2. Mediante Pasos Declarativos * field
Sección titulada «2. Mediante Pasos Declarativos * field»@tc-profile-001Scenario: Creacion de nuevo perfil * field automate = apply * field modulo = "usuarios" Given el administrador accede al panelScenario Outline
Sección titulada «Scenario Outline»Para evaluar matrices de datos, Testform soporta dos modalidades de ejecucion segun la necesidad de seguimiento en el estado:
Modalidad 1: Caso Unico con Tabla de Ejemplos
Sección titulada «Modalidad 1: Caso Unico con Tabla de Ejemplos»Si deseas que todo el conjunto de datos se registre y reporte como un solo caso de prueba en el ledger:
@tc-email-validationScenario Outline: Validacion de formatos de correo electronico Given el usuario ingresa el correo "<email>" When intenta continuar con el registro Then el sistema responde con el resultado "<resultado>"
Examples: | email | resultado | | usuario@demo.com | valido | | usuario-sin-arroba| invalido | | @dominio.com | invalido |Modalidad 2: Casos Dinamicos Unicos con @unique y Plantilla
Sección titulada «Modalidad 2: Casos Dinamicos Unicos con @unique y Plantilla»Si necesitas que cada fila de la tabla Examples genere un caso de prueba independiente en el estado, utiliza la etiqueta especial @unique junto con una plantilla <columna> en el tag de identidad:
@unique @tc-auth-<rol>Scenario Outline: Validacion de permisos segun perfil Given el usuario inicia sesion con credenciales de "<rol>" When accede a la seccion "<seccion>" Then el sistema autoriza el acceso a "<modulo>"
Examples: | rol | seccion | modulo | | admin | ajustes | seguridad | | auditor | reportes | finanzas | | operador | operaciones | inventario |Durante el procesamiento (testform plan o apply):
- Testform detecta el tag
@uniquey la presencia de variables<...>. - Interpola cada fila de la tabla sustituyendo el valor de la columna correspondiente:
@tc-auth-admin,@tc-auth-auditory@tc-auth-operador. - Remueve automaticamente el tag
@uniquede los metadatos finales. - Registra cada combinacion como un recurso
testcaseindependiente y rastreable en el state ledger.