Pruebas de Aceptación del Usuario (UAT): Proceso, Lista de Verificación y Ejemplos Reales
El software puede pasar todas las pruebas y aun así fallarle a las personas que lo necesitan. La UAT es la prueba final de que resuelve el verdadero problema empresarial. Descubra quién debe ejecutarlo, cómo planificarlo y cuándo aprobarlo.
- Las pruebas de aceptación del usuario verifican que el software satisfaga las necesidades comerciales reales, utilizando escenarios reales.
- Lo administran usuarios o clientes comerciales, no el equipo que creó el software.
- El control de calidad pregunta “¿funciona según lo especificado?”, mientras que la UAT pregunta “¿resuelve el problema?”.
- Acuerde los criterios de entrada, los criterios de salida y quién firma antes de que comience la UAT.
Una vez, un equipo entrega un sistema de gastos que supera todas las pruebas técnicas. El primer día, el equipo de finanzas descubre que no puede gestionar reclamaciones multidivisa, que constituyen una gran parte de su trabajo. Nada estaba “roto”, pero no era utilizable. Las pruebas de aceptación del usuario existen para detectar exactamente ese tipo de brecha antes del lanzamiento.
Esta guía cubre en qué se diferencia UAT de otras pruebas, cómo ejecutarla paso a paso y cómo decidir cuándo está listo para su lanzamiento. El escenario anterior y los ejemplos siguientes son ilustrativos y el proceso debe ampliarse para adaptarse a su proyecto.
¿Qué es la UAT?
La UAT suele ser la fase de prueba final antes del lanzamiento, donde los usuarios previstos confirman que el software puede hacer su trabajo en condiciones realistas. También se le llama prueba de usuario final o prueba de aceptación. Se produce después del desarrollo y las pruebas del sistema, cuando se espera que el producto sea estable.
Su propósito no es encontrar todos los errores. En esta etapa, la mayoría de ellos ya deberían haber desaparecido. El objetivo es la validación: ¿construimos lo correcto? Los evaluadores verifican que el producto coincida con las especificaciones. La UAT valida que la especificación y el producto realmente satisfacen la necesidad.
Pruebas UAT frente a pruebas de control de calidad
| Aspecto | Control de calidad o pruebas del sistema. | UAT |
|---|---|---|
| pregunta principal | ¿Funciona según lo especificado? | ¿Satisface la necesidad del negocio? |
| Realizado por | Probadores e ingenieros de control de calidad | Usuarios o clientes comerciales |
| Sincronización | Durante y después del desarrollo | Justo antes del lanzamiento |
| Basado en | Requisitos y diseños. | Flujos de trabajo empresariales reales |
| Enfoque | Defectos, casos extremos, integraciones. | Usabilidad y adecuación al propósito |
| Conocimiento técnico | A menudo alto | No es necesario |
| Resultado | Informes de errores | Aceptación o rechazo |
La UAT no reemplaza otras pruebas. Si los usuarios siguen encontrando errores básicos, la compilación no estaba lista y usted está perdiendo su tiempo limitado. Esos problemas pertenecen a niveles de prueba anteriores y pruebas de regresión.
¿Quién dirige la UAT?
| Rol | Responsabilidad |
|---|---|
| Usuarios finales | Ejecute escenarios y brinde comentarios |
| Propietario de producto o analista de negocios | Define el alcance y escribe o revisa escenarios. |
| Coordinador de la UAT o líder de control de calidad | Planifica las sesiones, apoya a los evaluadores, realiza un seguimiento de los problemas. |
| Desarrolladores | Solucionar problemas y responder preguntas técnicas |
| Patrocinador empresarial | Toma la decisión final de aprobación |
Elija evaluadores que realmente hagan el trabajo hoy. Un gestor de reclamaciones experimentado detectará problemas que un administrador o un apoderado nunca detectaría. Incluya una variedad de experiencia, porque un nuevo empleado a menudo revela pasos confusos que un experto soluciona sin darse cuenta. Y asegúrese de que sus gerentes liberen tiempo para esto, ya que la UAT no puede tener éxito con una carga de trabajo completa.
Tipos de UAT
| Tipo | lo que comprueba | Ejemplo |
|---|---|---|
| Aceptación empresarial | Cumple con los objetivos comerciales | El personal completa un reclamo real de principio a fin. |
| Prueba alfa | Pruebas internas en un entorno controlado | El personal prueba una nueva aplicación antes que los usuarios externos |
| Pruebas beta | Clientes reales en condiciones reales. | Una vista previa pública limitada |
| Aceptación del contrato | Cumple con los términos del contrato acordados. | Un cliente verifica un sistema entregado |
| Aceptación regulatoria | Cumple con las normas legales o de cumplimiento | Cheques para normas sanitarias o bancarias. |
| Aceptación operativa | Listo para funcionar en producción. | Backups, seguimiento y procesos de soporte |
El proceso UAT de siete pasos
1. Definir alcance y objetivos
Decida qué se acepta, qué está fuera de alcance y qué resultados comerciales son importantes. Por ejemplo: “El personal de finanzas puede enviar, aprobar y pagar un informe de gastos en cualquier moneda admitida”.
2. Acordar los criterios de aceptación
Escriba en lenguaje sencillo cómo se ve el éxito, idealmente al inicio del proyecto en lugar de la semana anterior al lanzamiento. Los criterios vagos dan lugar a discusiones posteriores.
3. Elija e informe a los probadores
Seleccione usuarios reales, explique el propósito, muéstreles cómo registrar comentarios y deje en claro que están probando el software en lugar de ser probados ellos mismos. Mucha gente se preocupa por hacer algo mal.
4. Preparar el entorno y los datos.
El entorno UAT debería parecerse lo más posible a la producción. Utilice datos realistas, configure los roles de usuario correctos y verifique integraciones como el correo electrónico. Si copia datos de producción, primero oculte la información personal. Ejecute una prueba de humo rápida para que los evaluadores no lleguen y encuentren una compilación defectuosa.
5. Escribe escenarios
Báselo en flujos de trabajo reales en lugar de botones individuales. Deberían leerse como el trabajo, no como el software. Nuestra guía para caso de prueba versus escenario de prueba explica cuántos detalles necesita.
6. Ejecute las pruebas y recopile comentarios.
Realice sesiones con alguien disponible para ayudar. Recopile problemas en un solo lugar, con capturas de pantalla. Deje también algo de tiempo para la exploración libre, ya que la gente prueba cosas que los guiones nunca anticipan. Las pruebas exploratorias ofrecen técnicas útiles para esto.
7. Corregir, volver a probar y cerrar sesión
Clasifique los comentarios, corrija lo que importa y haga que los mismos usuarios confirmen las correcciones. Luego registre una decisión formal.
Un caso de prueba UAT
Un caso de prueba UAT debería ser fácil de seguir para alguien sin conocimientos técnicos. A continuación se muestra un ejemplo de un sistema de gastos:
ID: UAT-012
Scenario: Submit a foreign currency expense claim
User role: Sales employee
Before: Logged in, with a USD receipt ready
Steps:
1. Create a new expense claim
2. Enter a client dinner of 80 USD and attach the receipt
3. Submit the claim for approval
Expected: The amount is converted to INR at the current rate
The manager receives an approval request
The claim shows as "Awaiting approval"
Result: Pass / Fail
Comments:
Tester / Date:
Tenga en cuenta que describe una tarea real, no detalles técnicos, y que deja espacio para comentarios. Esos comentarios frecuentemente resultan ser la parte más valiosa, como “esto funciona, pero nunca encontraría ese botón”.
Consejo: Observe al menos a un usuario hacer esto en persona o durante una llamada. La gente suele trabajar con software confuso y nunca informarlo. Verlos dudar te dice más de lo que te dirá un “Pase”.
Criterios de entrada y salida
| Criterios de entrada (listo para comenzar) | Criterios de salida (listo para terminar) |
|---|---|
| La prueba del sistema está completa | Se han ejecutado todos los escenarios críticos. |
| No hay errores críticos o altos abiertos | No hay errores críticos abiertos |
| El entorno y los datos están listos | Se ha alcanzado la tasa de aprobación acordada |
| Se revisan los escenarios | Los temas pendientes tienen un plan acordado |
| Los evaluadores están informados y disponibles | El patrocinador empresarial ha firmado |
Estos encajan en el ciclo de vida de prueba de software más amplio. Establezca los números con sus partes interesadas de antemano. “Decidiremos cuando nos parezca correcto” tiende a llevar a un sí apresurado, impulsado por la fecha límite.
Manejo de comentarios
La retroalimentación de UAT es una combinación de cosas y no todas son errores. Ordenarlo en categorías:
| Tipo | Ejemplo | acción habitual |
|---|---|---|
| defecto | El total está mal calculado. | Corrección, según la gravedad |
| Requisito perdido | No se admiten múltiples monedas | Arreglar antes del lanzamiento o volver a planificar |
| Problema de usabilidad | Los usuarios no pueden encontrar el botón de enviar. | A menudo vale la pena arreglarlo |
| Solicitud de cambio | “¿También se podría exportar a PDF?” | Añadir al trabajo pendiente |
| Problema de formación | La función funciona, pero se malinterpretó. | Guías de actualización |
Utilice reglas claras sobre qué bloquea una versión, como se describe en severidad versus prioridad. Y responda a todos los elementos, incluidos los que rechace. La gente deja de dar retroalimentación si parece desaparecer. Nuestra guía sobre cómo escribir un informe de error puede ayudar a los evaluadores a describir los problemas con claridad.
lista de verificación UAT
Antes de la UAT
- El alcance y los criterios de aceptación se acuerdan por escrito.
- Las pruebas del sistema y de regresión han finalizado.
- Se elige a los evaluadores, se les informa y se les da tiempo.
- Entorno, cuentas y datos realistas están listos
- Los datos personales en copias han sido enmascarados.
- Los escenarios son revisados por la empresa.
- Se crea un lugar para registrar los problemas.
- Se nombra al propietario de la aprobación
Durante la UAT
- Un contacto de soporte está disponible
- Los problemas se clasifican todos los días
- El progreso se comparte con las partes interesadas
- Las correcciones se implementan y se vuelven a probar de forma controlada.
Después de la UAT
- Se han comprobado los criterios de salida.
- Los problemas conocidos están documentados, con los propietarios.
- Se registra la aprobación formal
- Se actualizan las notas de capacitación y versión
- Se ha celebrado una breve retrospectiva.
UAT en equipos ágiles
La UAT tradicional llega como una gran fase al final, donde una sorpresa sale cara. Los equipos ágiles acortan ese ciclo. Los propietarios de productos revisan cada historia según sus criterios de aceptación durante el sprint, y los usuarios ven el software en funcionamiento en las revisiones del sprint. Muchos equipos todavía ejecutan una UAT enfocada antes de un lanzamiento importante, particularmente cuando varias funciones se combinan en un solo flujo de trabajo.
Con lanzamientos frecuentes, técnicas como indicadores de funciones e implementaciones canarias permiten a los usuarios reales probar nuevos trabajos gradualmente. Tenga en cuenta que estas complementan las pruebas de aceptación, pero no las reemplazan automáticamente, especialmente en industrias reguladas que necesitan un registro formal.
Errores comunes
- Tratarlo como una formalidad. Una aprobación sin ningún uso real no protege a nadie.
- Usar los evaluadores incorrectos. Los desarrolladores y el control de calidad tienen demasiado conocimiento del sistema para representar a los usuarios.
- Comenzando con una compilación inestable. Los evaluadores pierden confianza e interés rápidamente.
- Dejándolo para el último minuto. Entonces no hay tiempo para arreglar lo que aprendes.
- Usar datos poco realistas. Los datos de prueba rara vez presentan los casos tan complicados que presenta el trabajo real.
- Dejar crecer el alcance. Trate las nuevas ideas como solicitudes de cambio, a menos que sean verdaderos obstáculos.
Conclusión
La UAT es su última oportunidad para saber, antes de su lanzamiento, si el software realmente ayuda a las personas que lo utilizarán. Planifíquelo desde el inicio de un proyecto, reclute usuarios reales y acuerde cómo será el éxito. Para su próxima versión, pruebe un cambio simple: siéntese con un usuario durante un escenario real y no diga nada mientras trabaja.
Preguntas frecuentes
¿Qué son las pruebas de aceptación del usuario en palabras simples?
Es la verificación final en la que los usuarios reales prueban el software con tareas realistas para confirmar que satisface sus necesidades, antes de su lanzamiento.
¿Quién es responsable de la UAT?
Los usuarios comerciales o clientes ejecutan las pruebas. Un propietario de producto o un líder de control de calidad generalmente coordina y un patrocinador comercial generalmente toma la decisión final.
¿Cuál es la diferencia entre UAT y pruebas de sistema?
Las pruebas del sistema verifican que el software funcione según lo especificado y las realizan evaluadores. La UAT comprueba que satisface las necesidades del negocio y lo realizan los usuarios.
¿Cuándo ocurre la UAT?
Generalmente después de las pruebas del sistema y antes del lanzamiento en producción, una vez que el software esté estable. Los equipos ágiles también pueden realizar comprobaciones de aceptación más pequeñas en cada sprint.
¿Se puede automatizar la UAT?
Partes de ello, como comprobaciones repetidas de los flujos de trabajo empresariales. Sin embargo, para juzgar si el software es útil y adecuado para su propósito todavía se necesitan personas reales.
sigue aprendiendo
¿Necesitas ayuda con pruebas, WordPress o SEO?
Ayudamos a los equipos a enviar mejor software y hacer crecer sus sitios. Cuéntenos en qué está trabajando y le sugeriremos un siguiente paso claro.
Más guías sobre testing, IA y desarrollo moderno
¿Te gustó este artículo? Elige un tema y salta directo a nuestros tutoriales más recientes.
Explicación de las alucinaciones de la IA: por qué los modelos de lenguaje inventan cosas y cómo reducirlas
Se explicaron las alucinaciones de la IA: qué son, por qué los modelos de lenguaje las producen, tipos comunes, cómo reducirlas con conexión a tierr…
Leer artículo →DevOpsExplicación de las variables de entorno: archivos .env, secretos y configuración bien hechos
Variables de entorno explicadas con ejemplos de Python que ejecutamos: leerlas y configurarlas, por qué cada valor es una cadena, archivos .env, her…
Leer artículo →Desarrollo de softwareExplicación de la limitación de velocidad de API: algoritmos, encabezados y manejo de errores 429
La limitación de la tasa de API se explica con una simulación que ejecutamos: depósito de tokens, ventana fija, ventana deslizante, 429 respuestas, …
Leer artículo →Automatización de pruebasBurlarse en Python: unittest.mock, patch y los errores que hacen que las pruebas mientan
Burlarse en Python con unittest.mock, probado: Mock y return_value, side_effect, parches donde se usa un nombre, especificación y autospec, fechas d…
Leer artículo →Pruebas de softwareExplicación de la cobertura del código: cobertura de línea versus sucursal y lo que realmente significa 100%
Cobertura del código explicada con una ejecución real de cobertura.py: cobertura de línea, rama y condición, lectura de un informe, por qué una cobe…
Leer artículo →Bases de datos y SQLDELETE vs TRUNCATE vs DROP en SQL: diferencias, reversión y cuándo usar cada uno
DELETE vs TRUNCATE vs DROP explicado con SQL probado: qué elimina cada uno, reversión, activadores, restablecimiento de identidad, velocidad y en qu…
Leer artículo →Bases de datos y SQLVistas SQL explicadas: cree, use y evite los errores, con ejemplos
Vistas SQL explicadas con consultas que ejecutamos: creación de una vista, resultados en vivo, ocultación de columnas, rendimiento, vistas actualiza…
Leer artículo →Desarrollo de softwareInterfaz TypeScript versus tipo: diferencias reales, probadas con el compilador
Interfaz TypeScript versus tipo, verificado con el compilador real: qué pueden hacer ambos, qué puede hacer solo uno, fusión de declaraciones, exten…
Leer artículo →Desarrollo de softwarePython *args y **kwargs explicados: funciones flexibles con ejemplos claros
Python *args y **kwargs explicados con el código que ejecutamos: empaquetado y desempaquetado, orden de parámetros, argumentos solo de palabras clav…
Leer artículo →Desarrollo de softwareFunciones Lambda de Python: sintaxis, usos reales y cuándo no utilizarlas
Funciones lambda de Python explicadas con el código que ejecutamos: sintaxis, clasificación con clave, mapa y filtro, cierres, trampa de enlace tard…
Leer artículo →Inteligencia artificial¿Qué son los agentes de IA? Cómo funcionan, con un bucle de agente simple que puedes ejecutar
¿Qué son los agentes de IA? Una guía sencilla sobre el bucle del agente, las herramientas, la memoria y las barreras de seguridad, con un pequeño bu…
Leer artículo →DevOpsMonitoreo versus observabilidad: la verdadera diferencia, con registros, métricas y seguimientos
Explicación del monitoreo versus observabilidad: fallas conocidas y desconocidas, registros, métricas y seguimientos, un recorrido por incidentes de…
Leer artículo →DevOpsDocker Volumes versus Bind Mounts: persistir los datos del contenedor de la manera correcta
Se explican los volúmenes de Docker frente a los montajes de enlace: por qué desaparecen los datos del contenedor, volúmenes con nombre, montajes de…
Leer artículo →Automatización de pruebasTDD vs BDD: diferencias clave, una función creada en ambos sentidos y cuándo usar cada una
TDD vs BDD explicado con una característica de descuento construida en ambos sentidos: refactor rojo-verde con el código que ejecutamos, escenarios …
Leer artículo →Pruebas de softwarePruebas de Aceptación de Usuario (UAT): Proceso, Lista de Verificación y Ejemplos Reales
Explicación de las pruebas de aceptación del usuario: quién las ejecuta, en qué se diferencia del control de calidad, un proceso de siete pasos, una…
Leer artículo →Bases de datos y SQLValores NULL de SQL explicados: IS NULL, COALESCE, NULLIF y las trampas que se deben evitar
Los valores NULL de SQL se explican con las consultas que ejecutamos: lógica de tres valores, IS NULL, COALESCE, NULLIF, cómo los agregados, las uni…
Leer artículo →Bases de datos y SQLDeclaración SQL CASE WHEN: sintaxis, ejemplos reales y errores comunes
CASO SQL CUANDO se explicó con las consultas que ejecutamos: formularios simples y buscados, orden de condiciones, pivotes con SUMA, trucos COUNT, c…
Leer artículo →Desarrollo de software¿Qué es JWT? Tokens web JSON explicados con un ejemplo práctico
¿Qué es JWT? JSON Web Tokens explicó: las tres partes, un token creado y manipulado en el código que ejecutamos, JWT vs sesiones, almacenamiento, to…
Leer artículo →Desarrollo de softwareExplicación del bucle de eventos de JavaScript: pila de llamadas, microtareas y temporizadores con ejemplos
El bucle de eventos de JavaScript explicado con el código que ejecutamos: pila de llamadas, colas de tareas y microtareas, por qué setTimeout 0 no e…
Leer artículo →Desarrollo de softwareExplicación de los generadores y el rendimiento de Python: ahorre memoria con ejemplos reales
Los generadores de Python y el rendimiento se explican con el código que ejecutamos: cómo se pausan y reanudan, midieron el ahorro de memoria, canal…
Leer artículo →Inteligencia artificial¿Qué son las incrustaciones? Los vectores y la similitud del coseno se explican de forma sencilla
¿Qué son las incrustaciones? Una guía en lenguaje sencillo sobre vectores, similitud de cosenos y búsqueda semántica, con un pequeño ejemplo que eje…
Leer artículo →DevOpsImplementación azul-verde versus implementación canaria: diferencias, compensaciones y cómo elegir
Explicación de la implementación azul-verde versus canaria: cómo funciona cada uno, costo, riesgo y reversión, agrupación estable de usuarios que pr…
Leer artículo →Automatización de pruebasPruebas inestables: qué las causa y cómo solucionarlas para siempre
Pruebas inestables explicadas con demostraciones que realizamos: las causas principales, cómo confirmar y diagnosticar una, correcciones adecuadas p…
Leer artículo →Pruebas de softwarePruebas de carga frente a pruebas de estrés: diferencias, métricas y ejemplos de k6
Explicación de las pruebas de carga frente a las pruebas de estrés: qué prueba cada una, pruebas de picos y de absorción, las métricas que importan,…
Leer artículo →Pruebas de softwareCaso de prueba frente a escenario de prueba: diferencias clave, ejemplos y cuándo utilizar cada uno
Caso de prueba versus escenario de prueba explicado: definiciones claras, una tabla en paralelo, una función de restablecimiento de contraseña tomad…
Leer artículo →Bases de datos y SQLOptimización de consultas SQL: lea planes de ejecución y corrija consultas lentas, con tiempos
Optimización de consultas SQL probada en un millón de filas: lea planes de ejecución, agregue los índices correctos, corrija filtros no sargables, u…
Leer artículo →Bases de datos y SQLSQL UNION vs UNION ALL: diferencias, ejemplos y rendimiento probado
SQL UNION vs UNION ALL explicado con consultas que ejecutamos: duplicados, las reglas que siguen ambos, un error de datos real, rendimiento medido, …
Leer artículo →Desarrollo de softwareTutorial de JavaScript Fetch API: GET, POST, manejo de errores y tiempos de espera
Un tutorial de JavaScript Fetch API probado en un servidor local: GET y POST, por qué 404 no arroja, un asistente reutilizable, cadenas de consulta,…
Leer artículo →Desarrollo de softwareManejo de archivos Python: lectura, escritura, CSV, JSON y pathlib con ejemplos
El manejo de archivos Python se explica con el código que ejecutamos: modos abiertos, lectura de archivos grandes, CSV, JSON, pathlib, archivos bina…
Leer artículo →Desarrollo de softwareClases y objetos de Python: tutorial de programación orientada a objetos con ejemplos reales
Clases y objetos de Python explicados con el código que ejecutamos: __init__, métodos, atributos de clase versus instancia, herencia, propiedades, m…
Leer artículo →Inteligencia artificial¿Qué es un modelo de lenguaje grande? Cómo funcionan los LLM, explicados sin exageraciones
¿Qué es un modelo de lenguaje grande? Los LLM explicados en lenguaje sencillo: tokens, incrustaciones, atención, entrenamiento, ventanas de temperat…
Leer artículo →DevOpsComandos de Linux para principiantes: la guía esencial de terminal con ejemplos
Comandos de Linux para principiantes, agrupados por tarea: navegación, archivos, visualización de registros, grep, canalizaciones, permisos, proceso…
Leer artículo →Automatización de pruebasSelenium vs Playwright: diferencias clave, comparación de códigos y cuál elegir
Comparación de Selenium vs Playwright: arquitectura, espera, soporte de navegador e idioma, depuración, la misma prueba en ambas herramientas, conse…
Leer artículo →Pruebas de softwarePartición de equivalencia: técnica de diseño de pruebas explicada con ejemplos resueltos
Explicación de la partición de equivalencia: cómo encontrar particiones válidas e inválidas, ejemplos prácticos para edades, contraseñas y cupones, …
Leer artículo →Pruebas de softwareSeveridad vs Prioridad en Pruebas de Software: Diferencias, Matriz y Ejemplos Reales
Explicación de gravedad versus prioridad en las pruebas de software: definiciones claras, una matriz de cuatro vías con ejemplos, escalas de niveles…
Leer artículo →Bases de datos y SQLTutorial de subconsultas SQL: tipos, subconsultas correlacionadas y EXISTENCIAS con ejemplos
Un tutorial de subconsultas SQL con consultas que ejecutamos: subconsultas escalares, IN, FROM y SELECT, subconsultas correlacionadas, EXISTS, la tr…
Leer artículo →Bases de datos y SQLTransacciones SQL y ACID explicados: COMMIT, ROLLBACK y niveles de aislamiento
Transacciones SQL y ACID explicadas con una transferencia bancaria que ejecutamos: COMMIT, ROLLBACK, puntos de guardado, bloqueos, niveles de aislam…
Leer artículo →Desarrollo de softwareGit merge vs rebase: diferencias, ejemplos y cuándo usar cada uno
Git merge vs rebase explicado con salida real del log, una tabla comparativa, la regla de oro del rebase y un flujo de trabajo seguro para equipos.
Leer artículo →Desarrollo de softwareList comprehension en Python: sintaxis, ejemplos y cuándo evitarla
List comprehension en Python explicada: sintaxis, filtros, if-else, bucles anidados, tiempos medidos y cuándo es mejor un bucle for normal.
Leer artículo →