En ingeniería y sus diversas subdisciplinas , las pruebas de aceptación son una prueba realizada para determinar si se cumplen los requisitos de una especificación o contrato . Puede 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 comerciales 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 del 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 puede 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. [ cita necesaria ]
Algunas formas de pruebas de aceptación son las pruebas de aceptación del usuario (UAT), las pruebas de usuario final, las pruebas de aceptación operativa (OAT), las pruebas de aceptación de desarrollo impulsado (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. [5]
Las pruebas son un conjunto de actividades realizadas para facilitar el descubrimiento y/o la evaluación de las propiedades de uno o más elementos bajo prueba. [6] Cada prueba individual, conocida como caso de prueba, ejerce un conjunto de actividades de prueba predefinidas, desarrolladas para impulsar la ejecución del elemento de prueba para cumplir con los objetivos de la prueba; incluyendo la implementación correcta, la identificación de errores, la verificación de la calidad y otros detalles valiosos. [6] El entorno de prueba suele estar diseñado para ser 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 destinada o utilizada para realizar las pruebas de software. [6]
Lo ideal es que los casos de prueba de UAT y OAT se deriven en colaboración con clientes comerciales, analistas comerciales, evaluadores y desarrolladores. Es fundamental que estas pruebas incluyan tanto pruebas de lógica de negocio como de 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, las partes interesadas tienen la seguridad de que el desarrollo avanza en la dirección correcta. [7]
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 en una sola iteración de prueba. [8]
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 a seguir y el resultado esperado después de la ejecución. Los resultados reales se conservan para compararlos con los resultados esperados. [8] 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. En caso afirmativo, el sistema podrá ser rechazado o aceptado en las condiciones previamente acordadas entre el patrocinador y el fabricante.
El resultado previsto de una ejecución exitosa de la prueba:
El objetivo es brindar confianza de que el producto desarrollado cumple con los requisitos tanto funcionales como 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 que el desarrollo/mejora del producto satisface los requisitos definidos (previamente acordados entre la empresa y el proveedor/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. [9] No se trata de probar el sistema (garantizar que el software no falle y cumpla con los requisitos documentados) sino más bien de garantizar que la solución funcionará para el usuario (es decir, probar que el usuario acepta la solución); Los proveedores de software a menudo se refieren a esto como "pruebas Beta".
Esta prueba debe ser realizada por el usuario final previsto , o un experto en la materia (PYME), preferiblemente el propietario o cliente de la solución bajo prueba, y proporcionar un resumen de los hallazgos para su confirmación para continuar 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 acepte el nuevo sistema. Los usuarios del sistema realizan pruebas acordes a lo que ocurriría en escenarios de la vida real. [10]
Es importante que los materiales entregados al evaluador sean similares a los materiales que tendrá el usuario final. A los evaluadores se les deben presentar escenarios de la vida real, como las tres tareas más comunes o difíciles que realizarán los usuarios que representan. [11]
La UAT actúa como una verificación final de la funcionalidad comercial requerida y el 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 según lo requerido y sin problemas durante el uso normal, se puede extrapolar razonablemente el mismo nivel de estabilidad en producción. [12]
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 destacados , como fallas de software ; Los evaluadores y desarrolladores identifican y solucionan estos problemas durante las fases anteriores de prueba unitaria , prueba de integración y prueba del sistema.
La UAT debe ejecutarse en escenarios de prueba. [13] [14] Los escenarios de prueba generalmente difieren de los casos de prueba funcionales o del sistema en que representan un viaje de "jugador" o "usuario". La naturaleza amplia del escenario de prueba garantiza que la atención se centre en el recorrido y no en los 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 generalmente son donde cambia el actor (jugador/cliente/operador) o el sistema (backoffice, front-end). [15]
En la industria, una UAT común es una prueba de aceptación en fábrica (FAT). Esta prueba se realiza 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 suele incluir 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 funcionamiento convencional) y una inspección final. [16] Los resultados de estas pruebas dan a los clientes confianza en cómo funcionará el sistema en producción. También pueden existir requisitos legales o contractuales para la aceptación del sistema.
Las pruebas de aceptación operativa (OAT) se utilizan para llevar a cabo la preparación operativa (prelanzamiento) de un producto, servicio o sistema como parte de un sistema de gestión de calidad . OAT es un tipo común de prueba de software no funcional , utilizado principalmente en proyectos de desarrollo y mantenimiento de software . Este tipo de prueba se centra en la preparación operativa del sistema para ser compatible y/o para convertirse en parte del entorno de producción. [17]
Las pruebas de aceptación son un término utilizado en metodologías ágiles de desarrollo de software , particularmente en programación extrema , y se refiere a las pruebas funcionales de una historia de usuario por parte del equipo de desarrollo de software durante la fase de implementación. [18]
El cliente especifica escenarios para 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 algún 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 tienen la mayor prioridad. Las pruebas de aceptación también se utilizan como pruebas de regresión antes de un lanzamiento de producción. Una historia de usuario no se considera completa hasta que haya pasado las 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á cero progreso. [19]
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 deben cumplirse antes de aceptar los entregables". [25] Los requisitos que se encuentran en los criterios de aceptación para un componente determinado del sistema suelen ser muy detallados. [26]