En ingeniería y sus diversas subdisciplinas , las pruebas de aceptación son pruebas que se realizan para determinar si se cumplen los requisitos de una especificación o contrato . Pueden implicar pruebas químicas , pruebas físicas o pruebas de rendimiento . [1]
En ingeniería de sistemas , puede implicar pruebas de caja negra realizadas en un sistema (por ejemplo: una pieza de software , muchas piezas mecánicas fabricadas o lotes de productos químicos) antes de su entrega. [2]
En pruebas de software , el ISTQB define las pruebas de aceptación como:
Pruebas formales con respecto a las necesidades, requisitos y procesos de negocios del usuario realizadas para determinar si un sistema satisface los criterios de aceptación [3] y para permitir que el usuario, los clientes u otra entidad autorizada determinen si aceptan el sistema.
— Glosario estándar de términos utilizados en pruebas de software [4] : 2
La prueba final del ciclo de vida de control de calidad, la prueba de aceptación del usuario, se lleva a cabo justo antes del lanzamiento final para evaluar si el producto o la aplicación pueden manejar escenarios del mundo real. Al replicar el comportamiento del usuario, verifica si el sistema satisface los requisitos comerciales y rechaza los cambios si no se cumplen ciertos criterios. [5]
Algunas formas de pruebas de aceptación son las pruebas de aceptación del usuario (UAT), las pruebas del usuario final, las pruebas de aceptación operativa (OAT), el desarrollo impulsado por pruebas de aceptación (ATDD) y las pruebas de campo (aceptación). Los criterios de aceptación son los criterios que un sistema o componente debe satisfacer para ser aceptado por un usuario, cliente u otra entidad autorizada. [6]
Las pruebas son un conjunto de actividades que se llevan a cabo para facilitar el descubrimiento y/o la evaluación de las propiedades de uno o más elementos bajo prueba. [7] Cada prueba, conocida como caso de prueba, realiza un conjunto de actividades de prueba predefinidas, desarrolladas para impulsar la ejecución del elemento de prueba para cumplir con los objetivos de prueba; incluyendo la implementación correcta, la identificación de errores, la verificación de calidad y otros detalles valiosos. [7] El entorno de prueba generalmente se diseña para que sea idéntico, o lo más parecido posible, al entorno de producción previsto. Incluye todas las instalaciones, hardware, software, firmware, procedimientos y/o documentación destinados o utilizados para realizar la prueba de software. [7]
Los casos de prueba UAT y OAT se derivan idealmente en colaboración con clientes comerciales, analistas comerciales, evaluadores y desarrolladores. Estas pruebas deben incluir tanto pruebas de lógica comercial como condiciones del entorno operativo. Los clientes comerciales (propietarios de productos) son los principales interesados en estas pruebas. A medida que las condiciones de prueba alcanzan con éxito sus criterios de aceptación, los interesados tienen la seguridad de que el desarrollo está avanzando en la dirección correcta. [8]
Es posible que sea necesario realizar el conjunto de pruebas de aceptación varias veces, ya que es posible que no todos los casos de prueba se ejecuten dentro de una sola iteración de prueba. [9]
El conjunto de pruebas de aceptación se ejecuta utilizando procedimientos de prueba de aceptación predefinidos para indicar a los evaluadores qué datos utilizar, los procesos paso a paso que deben seguir y el resultado esperado después de la ejecución. Los resultados reales se conservan para compararlos con los resultados esperados. [9] Si los resultados reales coinciden con los resultados esperados para cada caso de prueba, se dice que el caso de prueba pasa. Si la cantidad de casos de prueba que no pasan no supera el umbral predeterminado del proyecto, se dice que el conjunto de pruebas pasa. Si lo hace, el sistema puede rechazarse o aceptarse en las condiciones acordadas previamente entre el patrocinador y el fabricante.
El resultado esperado de una ejecución de prueba exitosa:
El objetivo es brindar confianza en que el producto desarrollado cumple con los requisitos funcionales y no funcionales. El propósito de realizar pruebas de aceptación es que, una vez completadas y siempre que se cumplan los criterios de aceptación, se espera que los patrocinadores aprueben el desarrollo o la mejora del producto como si cumpliera con los requisitos definidos (acordados previamente entre la empresa y el proveedor o desarrollador del producto).
Las pruebas de aceptación del usuario (UAT) consisten en un proceso de verificación de que una solución funciona para el usuario. [10] No se trata de una prueba del sistema (para garantizar que el software no se bloquee y cumpla con los requisitos documentados), sino que garantiza que la solución funcionará para el usuario (es decir, prueba que el usuario acepta la solución); los proveedores de software a menudo se refieren a esto como "prueba beta".
Estas pruebas deben ser realizadas por el usuario final previsto , o un experto en la materia (SME), preferiblemente el propietario o cliente de la solución bajo prueba, y proporcionar un resumen de los hallazgos para confirmar que se procederá después de la prueba o revisión. En el desarrollo de software , la UAT como una de las etapas finales de un proyecto a menudo ocurre antes de que un cliente o consumidor acepte el nuevo sistema. Los usuarios del sistema realizan pruebas en línea con lo que ocurriría en escenarios de la vida real. [11]
Los materiales que se le entreguen al evaluador deben ser similares a los que tendrá el usuario final. Se les deben dar situaciones de la vida real, como las tres tareas más comunes o difíciles que realizarán los usuarios a los que representan. [12]
La UAT actúa como verificación final de la funcionalidad comercial requerida y del funcionamiento adecuado del sistema, emulando las condiciones del mundo real en nombre del cliente que paga o de un gran cliente específico. Si el software funciona como se requiere y sin problemas durante el uso normal, se puede extrapolar razonablemente el mismo nivel de estabilidad en la producción. [13]
Las pruebas de usuario, generalmente realizadas por clientes o usuarios finales, normalmente no se centran en identificar problemas cosméticos simples como errores ortográficos, ni en defectos evidentes , como fallas del software ; los evaluadores y desarrolladores identifican y solucionan estos problemas durante las fases anteriores de pruebas unitarias , pruebas de integración y pruebas del sistema.
La UAT debe ejecutarse en escenarios de prueba. [14] [15] Los escenarios de prueba suelen diferir de los casos de prueba funcionales o del sistema en que representan un recorrido de "jugador" o "usuario". La naturaleza amplia del escenario de prueba garantiza que el enfoque esté en el recorrido y no en detalles técnicos o específicos del sistema, evitando los pasos de prueba "clic a clic" para permitir una variación en el comportamiento de los usuarios. Los escenarios de prueba se pueden dividir en "días" lógicos, que suelen ser aquellos en los que el actor (jugador/cliente/operador) o el sistema (backoffice, front end) cambian. [16]
En la industria, una prueba de aceptación de fábrica (FAT) común es la prueba de aceptación de fábrica (FAT). Esta prueba se lleva a cabo antes de la instalación del equipo. La mayoría de las veces, los evaluadores no solo verifican que el equipo cumpla con las especificaciones, sino también que sea completamente funcional. Una FAT generalmente incluye una verificación de integridad, una verificación de los requisitos contractuales, una prueba de funcionalidad (ya sea mediante simulación o una prueba de función convencional) y una inspección final. [17] Los resultados de estas pruebas brindan a los clientes confianza sobre cómo funcionará el sistema en producción. También puede haber requisitos legales o contractuales para la aceptación del sistema.
Las pruebas de aceptación operativa (OAT) se utilizan para comprobar la preparación operativa (prelanzamiento) de un producto, servicio o sistema como parte de un sistema de gestión de calidad . Las OAT son un tipo común de pruebas de software no funcionales , que se utilizan principalmente en proyectos de desarrollo y mantenimiento de software . Este tipo de pruebas se centran en la preparación operativa del sistema que se va a respaldar y/o que se convertirá en parte del entorno de producción. [18]
La prueba de aceptación es un término utilizado en metodologías de desarrollo de software ágil , particularmente en programación extrema , que hace referencia a la prueba funcional de una historia de usuario por parte del equipo de desarrollo de software durante la fase de implementación. [19]
El cliente especifica los escenarios que se van a probar cuando una historia de usuario se ha implementado correctamente. Una historia puede tener una o varias pruebas de aceptación, lo que sea necesario para garantizar que la funcionalidad funcione. Las pruebas de aceptación son pruebas de sistema de caja negra. Cada prueba de aceptación representa un resultado esperado del sistema. Los clientes son responsables de verificar la exactitud de las pruebas de aceptación y revisar los puntajes de las pruebas para decidir qué pruebas fallidas son las de mayor prioridad. Las pruebas de aceptación también se utilizan como pruebas de regresión antes de una versión de producción. Una historia de usuario no se considera completa hasta que haya pasado sus pruebas de aceptación. Esto significa que se deben crear nuevas pruebas de aceptación para cada iteración o el equipo de desarrollo informará que no hay progreso. [20]
Los tipos típicos de pruebas de aceptación incluyen los siguientes
Según el Project Management Institute , los criterios de aceptación son un "conjunto de condiciones que se deben cumplir antes de aceptar los entregables". [26] Los requisitos que se encuentran en los criterios de aceptación para un componente determinado del sistema suelen ser muy detallados. [27]