Técnicas Avanzadas de Automatización de Pruebas III
Proceso de pruebas fundamental
Un desarrollo en cascada sigue unos pasos claramente definidos, que es un proceso de siete etapas , cada etapa sólo tiene una conexión hacia atrás con la etapa anterior. Las pruebas sólo representan una etapa en el proceso que se corresponde con la aceptación final del producto.
Independientemente del modelo de procedimiento las pruebas se llevan a cabo en diferentes momentos del proceso de desarrollo de software. Las pruebas en sí deben ser entendidas también como un proceso.
El proceso de pruebas incluye las siguientes fases:
- Planificación y control
- Análisis y diseño
- Implementación y Ejecución
- Evaluación y Documentación
- Cierre de Pruebas
A continuación se describe cada una de estas fases
Planificación de las pruebas
Comienza con el inicio del proceso de desarrollo
Principales tareas:
- Determinar el alcance y los riesgos
- Identificar los objetivos de las pruebas y los criterios de finalización
- Seleccionar y priorizar las pruebas (p.ej. Según el riesgo)
- Determinar las técnicas, cobertura, herramientas, entorno y equipos de prueba
- Determinar los métodos y estrategia
- Planificar actividades
- Adquirir/planificar los recursos
- Personal
- Entorno y medios de apoyo
- Coste
La planificación debe tomar en consideración la información que le proporcionen las actividades de control y monitorización
Control de las pruebas
Comparar el progreso real con el planificado. Incluye tomar las acciones necesarias para llevar a cabo la misión y alcanzar los objetivos del proyecto.
Para ello, el proyecto de pruebas ha de ser monitorizado a lo largo de toda su vida. Algunos ejemplos de metricas pueden ser:
- % del trabajo realizado en preparar casos de prueba
- % de trabajo hecho en la preparación del entorno
- % Ejecución de casos
- Información de defectos
- Cobertura de requisitos, riesgos o código
- Confianza subjetiva de los probadores en el producto
- Fechas de los hitos de prueba
- Costes de las pruebas
Principales tareas:
- Tomar decisiones basadas en la información que le proporciona la monitorización de las pruebas
- Repriorizar las pruebas cuando aparece un riesgo identificado (p.ej. Retraso en la entrega de sw)
- Cambiar la planificación según la disponibilidad del entorno
Análisis y diseño de las pruebas
Las acciones a realizar en esta etapa son las siguientes:
- Analizar la documentación en base a la cual se van a generar los casos de prueba
- Evaluar la capacidad de los objetos de ser probados
- Diseñar y priorizar casos de prueba lógicos en base a los métodos establecidos en la estrategia de pruebas
- Identificar los datos de prueba, a menudo son necesarios datos “anónimos”
- Establecer las condiciones marco
- Diseñar / adaptar el entorno de pruebas. Identificar infraestructuras necesarias
- Definir la operación del entorno de prueba, incluyendo la administración de los usuarios
Implementación de las pruebas
Se realiza un desarrollo, implementación y priorización de casos de prueba, en su caso, se pueden escribir scripts de pruebas automatizadas, se crean secuencias de prueba para mejorar la eficiencia de la ejecución, se implementan controladores de pruebas.
hay que implementar/configurar/verificar el entorno de pruebas, instalar las herramientas que se vayan a utilizar para la realización de las pruebas
Integrar los datos de prueba
Ejecución de las pruebas
En la etapa de ejecución de las pruebas, las acciones a realizar son las siguientes
- Ejecutar los casos / secuencias de prueba
- Registrar y analizar resultados. Registro de:
- Objeto de la prueba
- Probador
- Datos de prueba
- Resultado
- Una vez realizadas las pruebas hay que comparar los resultados obtenidos con los resultados esperados e informar acerca de las discrepancias, analizándolas y estableciendo su origen (error en código, en los datos de prueba, en el caso de prueba, en la forma de ejecutar la prueba, …)
- Finalmente. repetir actividades de prueba según la acción que se lleve a cabo para cada discrepancia
Evaluación y documentación de las pruebas
Si no se cumplen criterios, habrá que comprobar, en determinados casos, si realmente es posible cumplirlos, también habrá que comprobar si la planificación de las pruebas necesita ser adaptada. En su caso, los errores encontrados llevan a un nuevo ciclo de pruebas – empezando por la especificación de los casos de prueba. Se ha de proporcionar información suficiente para ayudar a la decisión de si se ha de continuar o no con las pruebas y finalmente, se ha de generar un informe final de pruebas dirigido a las áreas afectadas.
Actividades de cierre
Dentro de las actividades de cierre, las acciones a realizar son las siguientes:
- Recoger datos de las actividades de prueba completadas para consolidar experiencia
- Cierre de los informes de incidencias o apertura de solicitudes de cambio para todos los puntos que sigan abiertos
- Comprobación de que entregables han sido efectivamente entregados y aprobados
- Documentación de la aceptación del sistema
- Archivado de las pruebas, el entorno de pruebas y la infraestructura de pruebas para posterior reutilización
- Análisis de las lecciones aprendidas para futuros proyectos
Criterios de finalización de las pruebas
Cobertura de código:
- x% de código del programa ha debido ser ejecutado
Cobertura de riesgos
- Los casos de prueba de una clase de riesgo definida (p.ej. De la máxima prioridad) se han debido ejecutar sin errores
Ratio de localización de errores
- El número de errores encontrados por hora de esfuerzo de pruebas desciende de un valor establecido
- Si se encuentra, p.ej., menos de un error nuevo por hora de esfuerzo de pruebas, las pruebas finalizarán
- Aquí se tiene en cuenta la rentabilidad de las pruebas que no se da a partir de un determinado ratio
Finalización de las pruebas por motivos de coste o tiempo
- P.ej. a causa de una planificación escasa de recursos
- Origina, por norma general, costes adicionales por la aparición posterior de errores
Tanto si estás buscando trabajar full time, como suplementar tus actuales ingresos con desarrollos adicionales a los que estás haciendo en tu actual trabajo, o quieres implicarte en el desarrollo de proyectos opensource y apoyar a la comunidad, rellena el formulario que hay a continuación y nos pondremos en contacto contigo para ver los proyectos en los que podemos colaborar