Ir al contenido

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.

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 del Feature:).
  • 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 @high
Feature: 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-001

Metadatos 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:

@critical @component-billing @tc-billing-001
Scenario: Pago exitoso con tarjeta corporativa
@tc-profile-001
Scenario: Creacion de nuevo perfil
* field automate = apply
* field modulo = "usuarios"
Given el administrador accede al panel

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-validation
Scenario 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 @unique y la presencia de variables <...>.
  • Interpola cada fila de la tabla sustituyendo el valor de la columna correspondiente: @tc-auth-admin, @tc-auth-auditor y @tc-auth-operador.
  • Remueve automaticamente el tag @unique de los metadatos finales.
  • Registra cada combinacion como un recurso testcase independiente y rastreable en el state ledger.