Crear una ejecución
Abre un proyecto y haz clic en New run (o usa el botón + en el listado de ejecuciones). El modal New test run solicita:
| Campo | Notas |
|---|---|
| Name | Obligatorio. Una etiqueta corta para esta ejecución. |
| Description | Opcional. Notas en texto libre sobre lo que cubre esta ejecución. |
| Environment | Selecciona uno de los entornos configurados en el proyecto. El entorno predeterminado del proyecto se preselecciona automáticamente cuando carga la lista. Si el proyecto no tiene entornos, el selector queda deshabilitado — consulta Entornos para crear uno. |
| Default assignee | Opcional. Asigna un miembro del equipo a todos los casos de la ejecución. |
| Cases | Opcional. Agrega casos desde el repositorio ahora, o añádelos más tarde desde el tablero de ejecución. |
Para vaciar la selección de entorno después de que se haya preseleccionado el predeterminado, elige la opción None en la parte superior del desplegable.
El entorno vinculado se muestra en el encabezado del detalle de la ejecución, en la tabla del listado y en el panel resumen lateral. Si el entorno asociado se elimina posteriormente, las ejecuciones que lo referenciaban siguen mostrando su nombre como etiqueta histórica.
Panel de ejecución de un run
Al abrir un caso desde el tablero de ejecución (/projects/:projectId/runs/:runId), Probara despliega un panel deslizable con todo lo necesario para ejecutar el caso en sitio: descripción y condiciones del caso, pasos con sus datos y resultados esperados, banda de resultado y el historial de intentos previos.
El panel es el mismo en runs open y closed — los controles se deshabilitan u ocultan solo cuando el run está abortado (una ejecución cerrada y no abortada sigue siendo totalmente editable), pero el layout no cambia.
Atajos de teclado
Una vez que el panel tiene foco, puedes ejecutar el caso completo sin tocar el ratón.
| Tecla | Acción |
|---|---|
1 / P | Marcar el paso enfocado (o el caso) como Aprobado |
2 / F | Marcar como Fallido |
3 / S | Marcar como Omitido |
4 / B | Marcar como Bloqueado |
ArrowDown | Mover el foco al siguiente encabezado de paso |
ArrowUp | Mover el foco al encabezado anterior |
Escape | Cerrar el panel (o cerrar el popover de atajos si está abierto) |
? | Mostrar/ocultar el popover con la lista de atajos |
Cuando ningún paso tiene foco, los atajos de marcado actúan sobre la banda del resultado del caso. Si un paso está enfocado, los atajos marcan ese paso.
Los atajos quedan suspendidos mientras escribes en un input, un textarea o un elemento contenteditable (escribir P en el campo de resultado actual inserta la letra en lugar de marcar el paso).
En el panel de intento de solo lectura (al abrir un intento desde la pestaña Historial), los atajos de marcado quedan inertes — sigues navegando entre pasos con las flechas y cerrando con Escape.
Auto-avance
Después de marcar un paso, Probara hace scroll al siguiente paso sin probar y expande su disclosure si tiene datos, resultado esperado, una nota de resultado actual o adjuntos. Si no queda ningún paso sin probar por delante, el foco cae al paso sin probar más cercano hacia atrás.
El auto-avance no cambia el caso activo en el panel — solo el paso enfocado dentro de ese caso. El marcado a nivel caso (vía la banda Case result) sigue avanzando al siguiente caso sin probar en la lista visible, salvo cuando marcas Fallido o Bloqueado, que abre el flujo de captura de defectos antes de avanzar.
Captura de defectos (Fallido / Bloqueado)
Al marcar el caso como Fallido o Bloqueado, Probara abre el modal Registrar un defecto después de guardar el marcado. El auto-avance al siguiente caso sin probar espera a que cierres el modal.
Puedes:
- Creación rápida — título prefijado con el snapshot del caso (autofoco), severidad
majory prioridadmediumpor defecto. Pulsa Enter o Crear y vincular para crear el defecto y vincularlo a este intento. - Vinculados antes — hasta cinco sugerencias de defectos ya ligados a este caso de prueba (un clic para vincular).
- Buscar existente — cualquier defecto del proyecto por título o
D-<número>. - Omitir por ahora — cerrar sin vincular; el avance continúa.
Escape en el modal equivale a Omitir. Con el modal abierto, Escape en el panel no cierra el slide-over de debajo.
Los marcados Aprobado y Omitido a nivel caso siguen igual — sin modal, avance inmediato. Los marcados por paso nunca abren este modal. Enviar resultado masivo desde la barra de selección abre su propio modal Agregar resultado en modo masivo (ver más abajo la sección “Barra de selección de la ejecución”); cuando reporta un defecto, abre este MISMO modal Registrar un defecto — crear un defecto nuevo o buscar y vincular uno existente, con reapertura automática cuando el defecto vinculado está resuelto o cerrado, igual que en el flujo individual. La única diferencia es el alcance: se crea o vincula un solo defecto y se enlaza al nuevo resultado de cada caso seleccionado en una sola petición.
Los defectos vinculados aparecen como chips D-<n> bajo la cabecera del panel (punto de color según estado, título completo al pasar el cursor). Se actualizan tras un vínculo exitoso sin recargar la página.
En la pestaña Creación rápida, el campo de descripción se prefija con los pasos fallidos del caso (título, precondición, esperado vs. actual por paso) y, cuando el intento tiene adjuntos de resultado, una sección Evidence que lista el nombre y el enlace de descarga de cada adjunto. El encabezado Evidence y el resto de la descripción autocompuesta siempre están en inglés, sin importar tu idioma de interfaz — así el texto prefijado se mantiene consistente para la triaje de defectos entre equipos. Puedes editar la descripción libremente antes de crear o vincular el defecto.
Redimensionar el panel
Arrastra el borde izquierdo del panel para redimensionarlo. La anchura que elijas se guarda en localStorage (tcms:run-case-panel-width) y se restaura al recargar.
La anchura se acota entre 360 px (mínimo) y min(1100 px, 95 % del viewport) (máximo). Tanto el panel en vivo como el de intento solo-lectura comparten esa anchura.
Modo expandido
Pulsa el icono Maximize (⤢) en el header del panel para abrirlo como un diálogo a pantalla completa, centrado. En viewports de 1024 px o más, los bloques DATA y RESULTADO ESPERADO se distribuyen en dos columnas dentro de cada paso; todo lo demás (resultado actual, adjuntos) ocupa la fila completa.
Pulsa el icono Minimize (en el mismo slot) o el fondo para volver al panel deslizable. Al volver, el panel mantiene la posición de scroll que tenía.
Menú ⋯ de la ejecución (editar, abortar, volver a ejecutar y eliminar)
El menú ⋯ del encabezado expone acciones de ciclo de vida según el estado del run y tu rol en la organización. El mismo menú, con los mismos ítems y comportamiento, también está disponible desde el disparador ⋯ de cada fila en la lista de ejecuciones del proyecto — no hace falta abrir un run para editarlo, abortarlo, volver a ejecutarlo o eliminarlo.
| Acción | Visible cuando | Rol mínimo |
|---|---|---|
| Editar | Run open | Miembro (viewer no puede ejecutar) |
| Abortar | Run open | Miembro (viewer no puede ejecutar) |
| Volver a ejecutar | Run closed (completada o abortada) | Miembro (viewer no puede ejecutar) |
| Eliminar | Run open o closed | Admin u owner |
Editar abre un modal dedicado para cambiar el name, description, environment y milestone de la ejecución, y para volver a seleccionar sus casos — reutilizando el mismo selector de casos exclusivo de repositorio que la creación, precargado con la selección actual de la ejecución y sus asignados por caso. El asignado por defecto es una configuración exclusiva de la creación: el modal de Editar nunca lo muestra ni lo envía, tenga o no la ejecución uno. Guardar aplica los metadatos mediante el PATCH /api/v1/runs/:runUlid ya existente y los cambios de casos mediante el PATCH /api/v1/runs/:runUlid/cases atómico (ver referencia de API). Deseleccionar un caso que ya tiene un resultado registrado o tiempo acumulado dispara una confirmación destructiva que indica cuántos casos se ven afectados antes de que el guardado continúe; cancelar deja la ejecución completamente intacta. Un caso quitado y vuelto a agregar siempre vuelve como untested — su resultado y tiempo anteriores no se restauran. Editar solo se ofrece mientras la ejecución está open; en cuanto se cierra — automáticamente o con Completar — usa Volver a ejecutar en lugar de Editar.
Abortar termina anticipadamente una ejecución abierta sin fingir que terminó: los casos que seguían sin probar permanecen sin probar, los resultados y adjuntos existentes se conservan, y la ejecución se cierra con un estado proyectado Abortada (chip amarillo/warn). Abortar es terminal: los controles de caso de una ejecución abortada quedan desactivados y su tablero muestra un aviso de solo lectura, a diferencia de una ejecución completada (cerrada, no abortada), que sigue siendo totalmente editable. Las ejecuciones abortadas siguen contando como finalizadas para la autocompletación de hitos y el progreso de planes de prueba, pero no aportan ningún conteo de casos a ninguno de los dos.
No existe Reabrir — una ejecución, una vez cerrada, se queda cerrada; nada de lo que hagas dentro de ella (marcar, reintentar, añadir casos) la reabre. Volver a ejecutar reemplaza a Reabrir en el mismo lugar del menú, en ejecuciones tanto completadas como abortadas: abre el diálogo Clonar ejecución de prueba (Título obligatorio, un interruptor “Clonar con responsables” y un selector múltiple con búsqueda de los seis estados de caso a incluir — vacío significa todos) y crea una ejecución abierta completamente nueva a partir de la terminada. La ejecución de origen nunca se modifica.
Eliminar es irreversible: quita el run, todos los casos, resultados, adjuntos e instantáneas en cascada. La fila run.deleted permanece en Actividad del workspace con el scorecard final; la pestaña Actividad del run desaparece con el run. Solo admins y owners pueden eliminar. Eliminar sigue disponible en ejecuciones abortadas.
Todas las acciones abren un diálogo de confirmación (o el modal de Clonar, para Volver a ejecutar) antes de ejecutarse; el diálogo de Abortar y el paso de confirmación destructiva de Editar tienen estilo destructivo. El propio paso de metadatos/selector de casos de Editar es la superficie de edición en sí, no una confirmación.
Guardar el resultado actual
Cuando un paso está marcado, el textarea de Resultado actual queda disponible. Al teclear, Probara guarda los cambios al perder el foco y muestra un indicador junto a la etiqueta:
Los cambios de texto del resultado actual en un caso abierto y sin probar emiten eventos run.case_step_actual_result_set en la pestaña Actividad del run (y en Actividad del workspace) con un diff de → a. Si en la misma petición guardas adjuntos, el diff de texto se fusiona en el evento run.result_attachment_committed existente en lugar de crear una segunda fila.
Guardando…mientras la petición está en curso.Guardadocuando termina con éxito.
El textarea crece verticalmente con el contenido, así notas largas se ven completas sin scroll interno.
Seguimiento del tiempo
Probara mide cuánto tarda en ejecutarse cada caso y lo guarda como tiempo dedicado. El total del run en el listado de ejecuciones y el total por suite del tablero son la suma de esos valores, así que cuantos más casos marques, más claro queda en qué se va el tiempo.
El cronómetro silencioso
Al abrir un caso para ejecutarlo, se inicia un cronómetro que acumula mientras el caso está abierto — de forma silenciosa. No hay cronómetro ni campo de tiempo visible mientras trabajas, así que nunca estás pendiente de un reloj mientras pruebas. Cuando marcas el caso, el tiempo transcurrido se guarda en la misma petición que el resultado — una sola acción registra estado y tiempo a la vez.
Es un cronómetro simple: solo cuenta el tiempo que el caso está abierto, sin pausa ni detección de inactividad. Las pruebas legítimas a menudo no generan actividad en el navegador — puedes estar probando en un teléfono u otro dispositivo, trabajando en otra aplicación o leyendo un caso largo — así que Probara nunca intenta adivinar cuándo “dejaste de trabajar”. Si el tiempo registrado no coincide con la realidad, puedes corregirlo una vez marcado el caso (ver más abajo).
No hace falta marcar el caso para conservar el tiempo: si abandonas la página a mitad de ejecución (cierras la pestaña, navegas a otra parte), Probara vuelca el tiempo acumulado al caso antes de descargarse, sin cambiar su estado. Al reabrir el caso más tarde, el cronómetro continúa desde ese valor guardado.
Revisar y corregir el tiempo registrado
El tiempo capturado se muestra — como un campo editable Tiempo dedicado — solo después de marcar el caso. No hay campo de tiempo mientras el caso está sin marcar; aparece cuando el caso tiene un resultado, para que puedas revisar lo que se registró y ajustarlo si hace falta (ejecutaste parte del caso sin conexión, o te apartaste por algo ajeno).
- El campo se precarga con el valor registrado. Al enfocarlo se congela lo que se muestra para que puedas escribir.
- Los formatos aceptados son
mm:ss,Xm YsyXs— por ejemplo02:30,2m 30so45s. - Confirma con Enter o al salir del campo. Un valor válido se guarda de inmediato y reemplaza el tiempo registrado — en cualquier dirección, así que puedes reducir un valor sobrecontado o aumentarlo. Editar un caso marcado actualiza solo su tiempo, no su resultado. Un valor inválido muestra una pista en línea y no se guarda.
- Una edición confirmada posterior reemplaza el valor guardado, así que puedes corregirlo tantas veces como necesites.
Un valor introducido a mano siempre prevalece sobre el capturado automáticamente.
Qué no se cronometra
Los casos marcados con la acción Enviar resultado de la barra de selección siguen el total que ingreses ahí — si lo dejas vacío, mantienen un tiempo vacío (mostrado como —) igual que un marcado individual sin tiempo; un total que sí ingreses se divide en partes iguales entre los casos seleccionados (ver más abajo la sección “Barra de selección de la ejecución”). En cualquier caso, el tiempo siempre se puede ingresar o corregir a mano después. Las ejecuciones creadas antes de que existiera el seguimiento del tiempo no se rellenan retroactivamente; sus casos siguen en — hasta que se reejecuten.
Pestaña Historial y panel de intento
Cambia a la pestaña Historial para ver cada marcado registrado del caso, del más reciente al más antiguo, sobre una línea de tiempo vertical:
- La fila más reciente lleva una insignia Actual.
- Las filas que no son el primer intento del caso muestran un indicador de Reintento.
- Cada fila incluye el ejecutor (avatar + nombre), el estado como chip tonal, la duración con numerales tabulares y una fecha relativa (“hace 2 h” / “ayer” / etc.).
Pulsa cualquier fila para abrir el panel de intento de solo lectura — una instantánea del caso tal como estaba en ese marcado. El toolbar del header te permite expandirlo, saltar de vuelta a Historial y cerrar.
Adjuntos
Pulsa la miniatura de un adjunto para abrir el lightbox a resolución completa:
ArrowRight/ArrowLeftnavegan entre los adjuntos del mismo paso.Escapecierra el lightbox.- El lightbox no toca el estado subyacente: pulsar una miniatura en el editor en vivo nunca activa el botón de eliminar adyacente.
Adjuntos de resultado
Marcar un caso como Fallido o Bloqueado abre un modal Add result para capturar un comentario y el tiempo revisado — también puedes adjuntar archivos como evidencia de todo el intento, aparte de cualquier captura por paso.
- Se acepta cualquier tipo de archivo (capturas de pantalla, logs, videos, archivos HAR, PDFs, etc.), hasta 32 MB por archivo y 20 archivos por intento. Una lista corta de tipos bloqueados impide ejecutables/scripts (por ejemplo, equivalentes a
.exe,.sh,.bat); todo lo demás está permitido. - Arrastra y suelta archivos sobre la zona de arrastre, o haz clic para abrir un selector de archivos. Cada archivo se sube con su propio indicador de progreso; puedes quitar un archivo antes de confirmar.
- Las imágenes (
PNG,JPEG,WebP) se muestran en línea como miniaturas con el mismo lightbox de vista previa que los adjuntos de paso. Cualquier otro tipo de archivo — incluyendo GIF y SVG — se muestra como una fila de archivo genérica con ícono, nombre, tamaño y un enlace de descarga. Esta es una decisión de seguridad deliberada: GIF y SVG pueden contener scripts embebidos, así que siempre fuerzan la descarga en lugar de mostrarse en línea. - Los archivos aparecen en la sección Resultado actual una vez que confirmas, junto a tu comentario.
- Editable mientras el run está abierto o cerrado-y-no-abortado: abre Add result para agregar o quitar adjuntos del intento actual. Volver a marcar un caso inicia un intento completamente nuevo con cero adjuntos — la evidencia del intento anterior permanece intacta en su propia entrada del Historial. Una vez que el run está abortado, los adjuntos (y el resto del intento) pasan a ser de solo lectura.
- Cuota de almacenamiento de la organización: tu organización tiene un límite de almacenamiento compartido (5 GB por defecto) que cubre todos los tipos de adjunto en Probara, no solo los adjuntos de resultado. Si un guardado excedería ese límite, se rechaza el lote completo con un error claro — el comentario y el tiempo revisado que ya guardaste nunca se ven afectados. Todavía no hay una interfaz de autoservicio para la cuota; el límite de una organización puede aumentarse a pedido (contacta a soporte).
Barra de selección de la ejecución
Al pasar el cursor sobre una fila de caso o el encabezado de una banda de suite (o al llevar el foco de teclado hasta ella) se revela su checkbox de selección — marcar una banda de suite selecciona todos los casos de su subárbol completo, incluidos los descendientes anidados y cualquier caso oculto actualmente por un filtro activo. Seleccionar uno o más casos anima la entrada de una barra de selección en línea, justo debajo de la barra de filtros (se oculta solo en una ejecución abortada — una ejecución abierta o cerrada-y-no-abortada la mantiene). Muestra el número de seleccionados y permite enviar un resultado, reintentar o eliminar todos los casos seleccionados de un clic.
Enviar resultado abre el mismo modal Agregar resultado que se usa para un solo caso, pero en modo masivo: el campo Resultado siempre parte en Aprobado cuando el modal se abre (sin importar el estado actual de los casos seleccionados, e incluso si lo cambiaste y cancelaste la vez anterior), el tiempo registrado es opcional y, si lo ingresas, se divide en partes iguales entre los casos seleccionados (una pista sutil bajo el campo indica entre cuántos casos se dividirá), y el comentario y los adjuntos compartidos se copian al nuevo resultado de cada caso. Reportar un defecto (disponible solo para Fallido/Bloqueado, igual que en el modal individual) abre el mismo modal Registrar un defecto que se usa para un solo caso: crear un defecto nuevo, o buscar y vincular uno existente, con reapertura automática cuando el defecto vinculado está resuelto o cerrado — la elección se integra en la misma petición masiva, así que se crea o vincula un solo defecto y se enlaza al nuevo resultado de cada caso seleccionado. Al completarse, un aviso confirma el número D-<n> del defecto, ya sea recién creado o uno existente que vinculaste. Cada gesto — incluido el paso del defecto, cuando se usa — envía una sola petición masiva y genera una fila en la pestaña Actividad del run (y en Actividad del workspace), con una lista expandible de los casos tocados.
La barra se contrae al limpiar la selección — con Limpiar selección o desmarcando cada caso — o cuando el run se aborta.
Quitar un caso
Cada fila de caso en un run abierto o cerrado-y-no-abortado incluye un menú de acciones ⋮ al final de la fila. Por ahora ofrece una sola entrada, Quitar de la run, que saca ese caso del run. Al elegirla se pide confirmación; al confirmar se quita el caso (junto con su resultado registrado) y se registra una fila run.case_removed en la pestaña Actividad del run. El menú no aparece solo en una ejecución abortada, donde el tablero es de solo lectura.
Buscar y filtrar casos
Sobre los grupos de suites, la pestaña Casos de prueba usa la misma barra de búsqueda y filtros que el resto de Probara: un campo de búsqueda seguido de una barra de filtros con tres dimensiones.
- Búsqueda — escribe para buscar por el título del caso (sin distinguir mayúsculas). El filtrado ocurre por completo en el navegador, sobre los casos ya cargados del run; no hay ninguna petición adicional.
- Estado — un filtro permanente de selección múltiple sobre los cinco estados de resultado (Sin ejecutar, Aprobado, Fallido, Omitido, Bloqueado). Seleccionar más de un estado los combina con O: el caso se muestra si coincide con cualquiera de los estados elegidos. Dejar Estado vacío no filtra por estado.
- Asignado — un filtro removible construido a partir de los miembros del run, con una opción Sin asignar que coincide con los casos que no tienen a nadie asignado (
assigneeUlidvacío). - Prioridad — un filtro removible cuyas opciones se derivan de los valores de prioridad presentes en los casos del run. Solo se ofrecen las prioridades que realmente aparecen; no hay una opción sintética de “sin prioridad”, y la lista se actualiza a medida que cambian los casos del run.
Entre el campo de búsqueda y los tres filtros, cada dimensión activa se combina con Y — un caso permanece visible solo cuando satisface todas. Cuando nada coincide, el tablero muestra un estado vacío en lugar de cualquier grupo de suite. La suite no es un filtro a propósito — el tablero ya agrupa los casos en bandas por suite.
El estado completo de los filtros (el texto de búsqueda y las selecciones de Estado, Asignado y Prioridad) se sincroniza con la URL, de modo que una vista de ejecución filtrada se puede compartir, guardar en marcadores y sobrevive a una recarga — al reabrir la URL se restauran los mismos casos visibles.
Movimiento reducido
Si tu sistema operativo activa el modo de movimiento reducido (prefers-reduced-motion: reduce), todas las transiciones del panel — entrada/salida, stagger del cuerpo del paso, animación del donut, hover translate del historial — se vuelven instantáneas. La funcionalidad no cambia.