# Defectos

> Registra bugs entre ejecuciones, filtra el listado del proyecto y revisa intentos vinculados.

Los **defectos** son registros de bugs por proyecto numerados en secuencia (`D-1`,
`D-2`, …). Abre **Defectos** en la barra lateral del proyecto para ver el listado,
o regístralos mientras ejecutas una prueba.

## El listado de defectos

Cada fila de la tabla empieza con el número y el título del defecto, y luego muestra
el estado, la severidad y la prioridad (opciones de los campos de sistema de tu
organización), el responsable, cuántos intentos de ejecución se vincularon, cuándo
se vio por última vez en una ejecución y cuándo se creó. **Última vez** y
**Antigüedad** muestran la fecha con el tiempo transcurrido debajo; pasa el cursor
sobre una fecha para ver la hora exacta.

Cuando ningún defecto coincide con la búsqueda y los filtros, la tabla se reemplaza
por un panel con **Limpiar filtros**, que restablece la búsqueda y todos los filtros
a la vez.

Los miembros tienen un menú **⋯** al final de cada fila (y en cada entrada en el
teléfono) para actuar sobre un defecto sin abrirlo: **Asignarme**, **Asignar** a
cualquier miembro o dejarlo sin asignar, **Ver** o **Eliminar**. El estado se
cambia desde la página del defecto. Eliminar pide confirmación y
borra el defecto de forma permanente junto con sus adjuntos y vínculos.

En una pantalla angosta (ancho de teléfono) el listado presenta los mismos
defectos como una pila de entradas con reglas en lugar de una tabla: cada
entrada encabeza con el número y el título del defecto, y lista debajo como
campos etiquetados el estado, la severidad, prioridad, responsable, ocurrencias,
última vez visto y antigüedad. Todos los valores, filtros y el orden que tienes
en una pantalla más ancha siguen ahí — solo cambia la disposición. Desde el
ancho de tableta en adelante el listado es la tabla con reglas descrita aquí.

La búsqueda y un chip permanente de **Estado** están siempre presentes en la barra
de filtros; la búsqueda coincide con títulos o números de defecto (`D-12` o `12`).
El chip de Estado se muestra siempre (no tiene **×** y nunca aparece en **Añadir
filtro**): haz clic en él para abrir su editor emergente y marcar uno o más
estados, o déjalo vacío. La severidad, la prioridad y el responsable se agregan
desde **Añadir filtro** y aparecen como chips removibles: haz clic en un chip para
abrir su editor emergente y marcar valores. Cada uno de estos es de **selección
múltiple**: marca varias severidades, prioridades o responsables y la lista muestra
los defectos que coincidan con **cualquiera** de los valores marcados (el chip pasa
a indicar "2 seleccionados"). Los distintos filtros se combinan con **y**: severidad
∈ \{Crítica, Mayor\} _y_ responsable ∈ \{Ana, Bruno\}. Los filtros activos quedan en la
URL para compartir la vista; un enlace con un solo valor sigue funcionando.

### Columnas personalizadas

Usa **Columnas** en la barra de herramientas para mostrar campos personalizados
del defecto después de las columnas integradas. Los campos de opción muestran el
nombre con su color; casillas, fechas y miembros usan la misma vista de solo
lectura que el detalle del defecto. Los textos se muestran en una línea, los de
un párrafo sin su formato (pasa el cursor para ver el valor completo si está
truncado). Los defectos sin valor guardado muestran un guion largo.

La selección de columnas se guarda por proyecto en este navegador. Si un campo
deja de ser visible en el proyecto, su columna se omite en silencio en la
siguiente visita.

### Filtros personalizados

**Añadir filtro** lista los campos personalizados filtrables (opciones, casilla y
selector de miembro) junto con los filtros integrados de severidad, prioridad y
responsable. Al elegir uno se añade un chip cuyo editor se abre de inmediato: no se
aplica ningún filtro hasta que elijas un valor. Cada editor ofrece la opción
**(vacío)** para defectos sin valor guardado en ese campo — incluidos los que solo
muestran un valor predeterminado en el detalle. Los filtros personalizados se
evalúan solo contra **filas de valor guardadas**; un predeterminado visible en el
detalle no cumple un filtro por opción hasta que el valor se guarde.

Los filtros personalizados aparecen en la URL como parámetros `cf` y se combinan
con los filtros integrados. Usa la **×** de un chip para quitarlo (eliminando su
entrada `cf`). Un rango de antigüedad elegido desde la franja de métricas también
aparece como un chip removible.

### Franja de métricas

Encima de la barra de filtros, una franja compacta resume los defectos abiertos del
proyecto: el recuento de abiertos con una barra de distribución por severidad y su
leyenda (una entrada por opción de la organización, incluyendo ceros), antigüedad
(0–7, 7–14, 14–30 y más de 30 días desde la creación) con la edad del defecto
abierto más antiguo, la tasa de reapertura y el tiempo medio de resolución (MTTR).
Haz clic en una entrada de severidad o en un rango de antigüedad para aplicar los
filtros correspondientes (solo defectos abiertos y en progreso). Si las métricas no
cargan, la franja se oculta y el listado sigue funcionando.

El ítem **Defectos** en la barra lateral del proyecto muestra una insignia con el
recuento de abiertos cuando es mayor que cero.

Haz clic en una fila para abrir el detalle. Usa **Cargar más** si hay más defectos
de los que caben en una página.

Los miembros y roles superiores pueden usar **Nuevo defecto** para crear desde el
listado. Su **Descripción** admite formato e imágenes: pega o suelta una imagen
en ella, o teclea **/** y elige **Imagen**. El diálogo incluye una sección **Campos personalizados** cuando el
proyecto tiene definiciones visibles para defectos; los campos obligatorios deben
completarse antes de enviar. Los valores vacíos omitidos no se envían — la API
materializa los predeterminados al leer. Los visualizadores solo pueden consultar.

## Registrar desde una ejecución

Al marcar un caso como **Fallido** o **Bloqueado**, primero se abre el modal
de **Agregar resultado** para que revises el desenlace, agregues un comentario
y ajustes el tiempo registrado — no se guarda nada hasta que confirmas. Si
activas el interruptor de defecto antes de confirmar, a continuación se abre
el modal de **Reportar defecto** contra el intento recién guardado. Puedes
vincular un defecto existente o crear uno rápido. Las sugerencias incluyen
defectos vinculados antes; si seleccionas uno **Resuelto** o **Cerrado**, se
anuncia que vincularlo lo reabrirá, y al confirmar se vincula el nuevo intento
y el defecto vuelve a **Abierto** en el mismo paso. Los defectos vinculados
aparecen como chips en el panel del caso; haz clic en un chip para ir al
detalle. Una **flecha hacia atrás** junto al título de Reportar defecto vuelve
al modal de Agregar resultado sin crear ni vincular nada, por si necesitas
corregir el resultado primero.

Con la [integración con GitHub](https://docs.probara.net/es/guides/integrations/github/) conectada, el modal **Reportar
defecto** ofrece además **Crear también un issue de GitHub**: cuando el defecto se guarda, se abre un
diálogo con el issue precargado desde el resultado fallido. Consulta
[Crear un issue desde un defecto o un resultado fallido](https://docs.probara.net/es/guides/integrations/github/#crear-un-issue-desde-un-defecto-o-un-resultado-fallido).

La creación rápida (**Enter** o **Crear y vincular**) sigue siendo de un solo
gesto cuando todo campo obligatorio de defecto visible en el proyecto tiene un
valor por defecto no vacío (o cuando no hay campos obligatorios). Si un campo
obligatorio no tiene predeterminado, se abre el diálogo completo **Nuevo defecto**
con el título del formulario rápido; al enviarlo se crea el defecto, se vincula el
intento marcado y se cierran ambos diálogos. Si el servidor
rechaza una creación rápida porque se añadió un campo obligatorio en mitad de la
sesión, se abre el mismo diálogo prefijado en lugar de un error crudo.

Durante la ejecución, el panel resumen a la derecha lista cada defecto distinto
vinculado a esa ejecución como chips `D-<n>`. Al **Completar** la ejecución, la
confirmación menciona cuántos defectos están vinculados si quedan casos sin probar
o al cerrar con defectos vinculados.

## Detalle del defecto

La página de detalle usa una columna principal a ancho completo y un **panel
lateral** derecho (apilado debajo del contenido principal en pantallas estrechas).

El **encabezado** muestra migas de pan (`<proyecto> › defectos › D-<n>`), el
título, insignias de severidad y prioridad, cuántos intentos de ejecución están
vinculados (y cuándo se vio por última vez el defecto) y un control de estado con
descripciones breves de cada transición permitida.

La **columna principal** contiene, de arriba abajo:

- La **descripción**, que admite formato e imágenes: pega o suelta una imagen en
  ella, o teclea **/** y elige **Imagen**
- Una sección de **Evidencia** (una cuadrícula de mosaicos de adjuntos: las
  imágenes de los textos del defecto y después sus archivos, con un mosaico
  **Añadir archivo** para miembros)
- Una tarjeta de **Casos afectados** — casos vinculados manualmente y casos
  detectados por ejecuciones fallidas, con recuentos de ocurrencias, últimos
  resultados y (para defectos **Resueltos**) insignias de verificación con
  sugerencias de cerrar/reabrir en un banner sobre la tabla
- Pestañas **Ocurrencias** y **Actividad**

Los encabezados de sección (**Description**, **Evidence**, **Affected cases**) usan
los valores localizados por defecto de tu organización salvo que un administrador
los haya renombrado en **Workspace → Campos personalizados** (filas **Core**).
Los títulos renombrados se muestran tal cual en todos los idiomas; el encabezado
de casos afectados sigue añadiendo el recuento de casos vinculados cuando aplica.

**Ocurrencias** es una tabla de cada intento vinculado, del más reciente al más
antiguo (ejecución, caso, resultado, fecha de ejecución, quién lo vinculó).
Selecciona una fila para abrir la instantánea congelada del intento (solo lectura).
**Actividad** muestra el historial de auditoría (creación, cambios, estado,
vínculos).

El **panel lateral** reúne las propiedades del defecto: estado, los campos de
sistema de severidad y prioridad, luego responsable, reportador, etiquetas, hito,
enlace de duplicado, marcas de creación/actualización y demás **campos
personalizados** visibles (editables en línea para miembros; solo lectura para
visualizadores). Un campo de párrafo admite formato e imágenes, como la
descripción. El hilo de comentarios no está en el panel: es la última sección
de la página (ver [Hilo de discusión](#hilo-de-discusión)).

En teléfono o tableta (por debajo de 1024 px) este panel lateral no es una
columna. Una banda **Detalles** debajo del encabezado de la página lleva el
estado del defecto, y al activarla se abren las propiedades como hoja inferior.

Los miembros pueden editar título, descripción, estado, responsable, etiquetas e
hito desde el encabezado y el panel lateral. Severidad y prioridad se
editan como campos personalizados de sistema en el panel lateral (no mediante PATCH del
defecto). Los cambios de estado siguen un ciclo guiado:

| Desde       | Estados permitidos             |
| ----------- | ------------------------------ |
| Abierto     | En progreso, Resuelto, Cerrado |
| En progreso | Abierto, Resuelto, Cerrado     |
| Resuelto    | Cerrado, Abierto (reapertura)  |
| Cerrado     | Abierto (reapertura)           |

Elegir **Resuelto** o **Cerrado** exige una resolución en un diálogo. Las
resoluciones **Duplicado** deben apuntar a un defecto canónico (`D-<n>`); las
cadenas se aplanan al raíz automáticamente. Reabrir limpia la resolución, el
duplicado de y las marcas de tiempo del ciclo.

### Redimensionar y contraer el panel de resumen

En pantallas de escritorio (1024 px o más) el panel lateral tiene los mismos controles manuales que los demás paneles de resumen.

Arrastra su **borde de entrada**: hacia la izquierda el panel se ensancha y hacia la derecha se estrecha. Con el control enfocado, `ArrowLeft` lo ensancha un paso y `ArrowRight` lo estrecha otro, y un **doble clic** restablece su ancho predeterminado.

El **botón circular con chevron en el borde izquierdo del panel** — aparece al pasar el cursor por el panel o al llegar a él con Tab — o la tecla `]` lo contrae en una columna de lectura de 56 px. Como un defecto no tiene gráfico de progreso, esta columna **no lleva anillo de progreso ni porcentaje** — muestra la fila de teclas con íconos directamente, y cada tecla abre los valores de esa sección en un emergente anclado junto a la columna. **Todas las propiedades siguen siendo accesibles**: los mismos campos se alojan en los emergentes de sus teclas, y no se elimina ningún valor. El mismo botón, en el mismo lugar, vuelve a expandir el panel.

**El ancho y el estado contraído son compartidos por los cuatro paneles de resumen** — ejecuciones, planes de prueba, hitos y defectos — de modo que redimensionar o contraer aquí también se aplica a los otros tres, y ambos ajustes sobreviven a una recarga.

### Casos afectados

La tarjeta **Casos afectados** muestra todos los casos de prueba asociados a un
defecto, independientemente de cómo se creó la asociación. Un caso puede aparecer
porque una ejecución fallida lo vinculó automáticamente, porque un miembro lo
añadió manualmente, o por ambas razones a la vez.

**Vincular un caso manualmente**

Los miembros (roles de propietario, administrador o miembro) ven el botón
**+ Vincular caso** en el encabezado de la tarjeta. Haz clic para abrir el diálogo de
búsqueda, escribe parte del título del caso o su número `C-<n>` y selecciona un
resultado. Los casos archivados y los que ya están en el listado quedan excluidos
del selector. El caso aparece de inmediato con una insignia **Vinculado** que indica
que fue añadido manualmente. Los visualizadores no ven el botón.

**Leer el listado**

Cada fila muestra el número de caso, el título, el recuento de ocurrencias (cuántos
intentos de ejecución vincularon este defecto con ese caso) y el chip de último
resultado. La insignia **Vinculado** identifica los casos añadidos con **+ Vincular caso**.
Un caso vinculado manualmente que también aparece en ejecuciones muestra la insignia
junto a su recuento de ocurrencias: ambos orígenes se combinan en una sola fila.

Cuando no hay casos afectados, la tarjeta muestra un estado vacío con el acceso
rápido **Vincular un caso** (visible solo para miembros).

**Quitar un caso**

Abre el menú de tres puntos de cualquier fila para quitarlo. La acción disponible
depende de cómo se añadió el caso:

- **Desvincular** — disponible para casos vinculados manualmente (los que tienen la
  insignia **Vinculado**). Elimina el vínculo manual. Si el caso aún tiene ocurrencias
  de ejecución, permanece en la lista como caso derivado de ejecuciones (sin la
  insignia); si no tenía ocurrencias, desaparece por completo.
- **Descartar** — disponible para casos derivados de ejecuciones (los que no tienen la
  insignia **Vinculado**). Oculta el caso de este defecto sin modificar ningún resultado
  de ejecución. Un caso descartado reaparece automáticamente si vuelve a fallar en
  una nueva ejecución posterior al descarte.

Ambas acciones abren un diálogo de confirmación antes de ejecutarse. Los
visualizadores no ven el menú de tres puntos.

### Bucle de verificación

Con un defecto **Resuelto**, la tabla **Casos afectados** añade una columna de
verificación. Cada caso muestra una insignia:

- **Verificado** — el caso pasó tras la resolución (sugerencia de cerrar).
- **Falló tras resolver** — volvió a fallar o bloquearse (sugerencia de reabrir).
- **Verificación pendiente** — no se ha ejecutado desde la resolución; vuelve a
  correr esos casos para comprobar la corrección.

El banner sobre la tabla nunca cambia el estado por sí solo: usa el control de
estado o las CTAs sugeridas, que pasan por los mismos flujos que el encabezado.

### Galería de evidencia

La sección **Evidencia** lista cada imagen de la descripción y de los campos
personalizados de párrafo del defecto, con el campo que la contiene
(**Descripción** o el nombre del campo personalizado), y después los archivos
subidos al defecto, marcados como **Archivo**. Una imagen usada en dos campos
aparece una sola vez, con ambos nombres.

Las subidas aceptan **cualquier tipo de archivo** — capturas de pantalla, logs,
archivos HAR, PDF, videos, hojas de cálculo, volcados de fallo — hasta 32 MiB por
archivo y 20 archivos por defecto; las imágenes de los textos no cuentan para
esos 20. Los miembros suben archivos con el mosaico discontinuo **Añadir
archivo**. Para quitar archivos, pulsa **Editar** junto al contador de la
sección: cada archivo muestra un botón para quitarlo y **Listo** termina la
edición. Quitar un archivo se aplica al instante. Una imagen no tiene botón para
quitarla: bórrala de su texto y saldrá de la sección al guardar el texto. Los
visualizadores ven la sección pero no pueden subir ni quitar nada.

Cada adjunto se muestra como un mosaico con su nombre y su extensión: las imágenes
(PNG, JPEG, WebP) con una miniatura y los demás archivos con un icono. Al hacer
clic en cualquier mosaico se abre el visor de adjuntos en ese archivo. Las
imágenes, los videos, el audio y los archivos de texto (logs, Markdown, JSON) se
previsualizan ahí; un archivo sin vista previa, como un PDF o un ZIP, muestra
**Vista previa no disponible** y un botón **Descargar**. Para descargar sin abrir
el visor, pasa el cursor sobre un mosaico y usa su botón de descarga. Los
archivos ejecutables (`.exe`, `.msi`, `.sh`, `.bat` y similares) se rechazan de
inmediato y nunca se almacenan.

Cada adjunto de evidencia cuenta para la cuota de almacenamiento de tu
organización. Si una subida haría que la organización supere su límite de
almacenamiento, se rechaza con un mensaje distinto de cuota excedida y no se
adjunta nada.

### Hilo de discusión

El hilo de **Comentarios** es la última sección de la página del defecto, debajo
de **Ocurrencias** y **Actividad**, con un compositor para miembros. Publicar añade el comentario sin recargar la página.
Puedes editar o eliminar los tuyos; los administradores de la organización pueden
eliminar cualquier comentario. Los comentarios editados muestran el marcador
**(editado)**. Si el autor abandona la organización, sus comentarios permanecen
con un marcador de autor eliminado. Los visualizadores pueden leer el hilo pero
no publicar, editar ni eliminar.
