Introduccion Al Proceso de Pruebas
Introduccion Al Proceso de Pruebas
Introduccion Al Proceso de Pruebas
Documento de la Unidad 1
Para Evaluar el Saber
De la Materia de Evaluación y mejora para el desarrollo del
software
Tecnologías de la Información
Área
Desarrollo de Software Multiplataforma
Elaborado por:
Fabian Guadalupe Ibarra Carrizales
Maestro:
M.A.T.I José Luis Flores Leandro
1
Función del proceso de pruebas en el desarrollo, mantenimiento y
operación de software.
Antes de ver la funciones del del proceso de pruebas en el desarrollo, mantenimiento y operación de
software un pequeño párrafo de:
• El cliente/persona que proporciona los requisitos en nombre de la organización del cliente puede no
saber exactamente qué es lo que se requiere o puede olvidarse de proporcionar algunos detalles, lo
que puede llevar a que falten características.
• La persona que está recopilando los requisitos puede malinterpretarlos o no cumplirlos por completo
al documentarlos.
• Durante la fase de diseño, si hay problemas en el diseño, esto puede conducir a errores en el futuro.
• Los errores pueden ser introducidos durante la fase de desarrollo durante un error humano, falta de
experiencia, etc.
• Los probadores pueden perder errores durante la fase de prueba debido a errores humanos, falta de
tiempo, experiencia insuficiente, etc.
• Es posible que los clientes no dispongan del ancho de banda necesario para probar todas las
funciones del producto y que liberen el producto a sus usuarios finales, lo que puede dar lugar a que
los usuarios finales encuentren errores en la aplicación.
1
Proceso de pruebas y calidad.
El proceso de prueba generalmente implica que el organismo electoral trabaje de manera conjunta con los
proveedores para asegurar que los bienes o servicios son los adecuados para los objetivos establecidos.
Puede ser un proceso corto para los productos estándar, o uno prolongado cuando los productos tienen que
ser diseñados o fabricados para propósitos específicos.
Para la mayoría de los componentes tecnológicos, se debe preparar una estrategia de prueba muy
estructurada y cuidadosa antes de recibir los productos para efectuar las pruebas. La estrategia debe ser
diseñada para probar que el producto ejecuta debidamente todas las funciones requeridas conforme a las
especificaciones.
En particular, sobre todo cuando la tecnología va a ser utilizada en grandes volúmenes o en situaciones de
gran presión que impliquen plazos perentorios o gran cantidad de información a usuarios, la tecnología debe
ser sometida a rigurosas pruebas de carga para asegurar que resiste todas las presiones reales. Dada la
naturaleza de gran presión que implican las elecciones, el proceso de prueba de la tecnología es crucial
para el éxito del proceso electoral.
Entre los pasos que puede comprender la estrategia para probar la nueva tecnología, se pueden considerar
los siguientes:
Las pruebas de calidad en un Software ERP son todos aquellos procesos cuya ejecución permiten
conocer la calidad del mismo, así como los posibles fallos que puedan existir a corto, medio o largo
plazo. Cuando se realizan pruebas en los software de gestión empresarial es posible predecir su
comportamiento durante la implantación, su grado de manejabilidad y su interfaz gráfica.
2
Los siete principios para las pruebas.
Es muy complicado hacer absolutamente todas las combinaciones de casos posibles para poder probar un
aplicativo, y digo complicado porque tal vez no sea imposible, si eres una súper compañía que tiene el
musculo financiero y quieres invertir una gran cantidad de dinero en calidad, pues bueno, ese será tu caso
pero no el de la mayoría. Normalmente probamos lo más riesgoso o aseguramos cierto porcentaje de calidad
en el software. La generalidad de los testers no probamos absolutamente todo, exceptuando creería yo los
probadores de la NASA o aparatos médicos, donde la vida de las personas se ve en juego, esto ya es un
tema muy delicado que te lleva a pensar que tanto debes invertir en el aseguramiento de la calidad del
software, y no obstante nos encontramos con errores que nadie ha detectado, es por esto que no es posible
realizar pruebas exhaustivas.
Principio 3: Pruebas Tempranas (“Early Testing”)
Las pruebas no solo son sobre el software funcionando, podemos empezar desde mucho antes, desde la
misma documentación, los probadores tenemos una gran capacidad de análisis, buscando todos los
caminos y variantes que se pueden presentar, es por esto que apoyamos mucho con nuestra revisión
temprana a la documentación, también durante el proceso de desarrollo de software. Aquí es donde entra
en parte la experiencia, y es que los probadores podemos generar los casos de pruebas antes del inicio del
desarrollo y allí es donde ahora se ha vuelvo muy importante trabajar con TDD, BDD y ATDD. Por favor
incorpora este principio de pruebas tempranas en todos tus proyectos.
3
Principio 5: Paradoja del Pesticida
Si repetimos las mismas pruebas una y otra vez, eventualmente la misma serie de casos de pruebas dejará
de encontrar defectos nuevos. Para superar esta “paradoja del pesticida”, los casos de pruebas deben
revisarse periódicamente y deben escribirse nuevos casos de pruebas y diferentes, con esto podremos
testear distintas partes del software o del sistema con el objetivo de poder detectar más defectos. Si te
quedas repitiendo las mismas pruebas en las mismas condiciones no vas a ser efectivo. Los bugs se
volverán resistentes a ti, es por eso que deberás cambiar tu pesticida (tu forma de testear) constantemente
para poder encontrar nuevos defectos.
Este principio me gusta mucho utilizarlo cuando mi cliente me pregunta cuánto tiempo me voy a demorar, y
es que las pruebas dependen del contexto, es decir, no es lo mismo probar un software médico, a una
página web o hasta un carrito de compras. Y sin irnos muy lejos, como es bien sabido, un único aplicativo
dependerá su funcionamiento si está en un ambiente de pruebas a un ambiente de desarrollo. Es p or esto
que todo depende del contexto, no es lo mismo caminar 1 Kilómetro subiendo una montaña rocosa o si es
solo un paso por la playa.
La planificación de pruebas es la actividad de definir los objetivos de las pruebas y la especificación de las
actividades de pruebas con vistas a cumplir los objetivos y la misión establecidos.
4
El control de pruebas es la actividad constante de comparar el progreso real con el plan previsto, e informar
sobre el estado de las pruebas, incluyendo la existencia de desviaciones con respecto a lo que se había
planificado. Implica la adopción de las medidas necesarias para cumplir la misión y los objetivos del
proyecto. A efectos del control de pruebas, las actividades de pruebas deben monitorizarse a lo largo del
proyecto. La planificación de pruebas tiene en cuenta el feedback de las actividades de co ntrol y
seguimiento.
El análisis y el diseño de pruebas es la actividad durante la cual los objetivos de las pruebas generales se
transportan en condiciones de prueba y casos de prueba tangibles.
1. Revisar la base de pruebas 1 ( especificación de requisitos,el nivel de integridad del software es decir;
nivel de riesgo, informes de análisis de riesgos, arquitectura, el diseño y las especificaciones de
interfaz).
2. Evaluar las testabilidad de la base de prueba y de los objetos de prueba.
3. Identificar y priorizar las condiciones de prueba en base al análisis de los elementos de prueba, la
especificación, el comportamiento y la estructura del software.
4. Diseñar y priorizar los casos de prueba de alto nivel.
5. Identificar los datos de prueba necesarios para soportar las condiciones de prueba y los casos de
prueba.
6. Diseñar la configuración del entorno de pruebas e identificar cualquier infraestructura y herramientas
necesarias.
7. Crear una trazabilidad bidireccional entre la base de pruebas y los casos de prueba.
5
La implementación y ejecución de pruebas incluye las siguientes tareas principales:
• Finalizar , implementar y priorizar los casos de prueba (incluyendo la identificación de los datos de
prueba).
• Desarrollar y priorizar procedimientos de prueba, crear datos de prueba y, de manera opcional,
preparar arneses de pruebas y redactar guiones de pruebas automatizados.
• Crear juegos de pruebas a partir de los procedimientos de prueba para lograr una ejecución de
pruebas eficiente.
• Verificar que el entorno de pruebas ha sido correctamente configurado.
• Verificar y actualizar una trazabilidad bidireccional entre la base de pruebas y los casos de prueba.
• Ejecutar los procedimientos de prueba manualmente o recurriendo a herramientas de ejecución de
pruebas, conforme a la secuencia prevista.
• Registrar los resultados de la ejecución de las pruebas y registrar las identidades y las versiones del
software probado, así como, las herramientas de prueba y los productos de soporte de pruebas.
• Comparar los resultados reales con los resultados esperados.
• Reportar las discrepancias en forma de incidencias y analizar con vistas a establecer sus causas
(ejemplo, un defecto en el código o en los datos de pruebas especificados o en el documento de
prueba, o un error en la forma en que se ha ejecutado la prueba).
• Repetir las actividades de pruebas como resultado de una medida adoptada para cada discrepancia,
por ejemplo, la repetición de una prueba que ha fallado anteriormente con vistas a confirmar que su
corrección (pruebas de confirmación), la ejecución de una prueba corregida y/o la ejecución de
pruebas con vistas a garantizar que los defectos no se han introducido en áreas no modificadas del
software o que la subsanación del defecto no ha revelado la existencia de otros defectos (pruebas de
regresión).
La evaluación de los criterios de salida es la actividad que evalúa la ejecución de pruebas contra los objetivos
definidos. Esta evaluación debería hacerse para cada nivel de prueba.
6
Cierre de pruebas
Durante la fase de cierre de pruebas de un proceso se recopilan los datos e aquellas actividades de pruebas
finalizadas con el objetivo de consolidar la experiencia, los productos de soporte de pruebas, los hechos y
las cifras. Las actividades de cierre de pruebas tienen lugar en los hitos del proyecto, tales como el
lanzamiento de un sistema de software, la finalización (o anulación) de un proyecto de pruebas, la
consecución de un hito, o la finalización de una versión de mantenimiento.
• Comprobar cuáles de los productos entregables previstos han sido efectivamente entregados.
• Cerrar los informes de incidencias o aportar modificaciones a aquellos que siguen abiertos.
• Documentar la aceptación del sistema.
• Finalizar y archivar los productos de soporte de prueba, el entorno de pruebas y la infraestructura de
pruebas para su posterior uso.
• Entregar los productos de soporte de prueba a la organización de mantenimiento.
• Analizar las lecciones aprendidas para determinar los cambios necesarios en futuras versiones y
proyectos.
• Utilizar la información recopilada para mejorar la madurez de las pruebas.
7
Mapas conceptuales
1
2
3
4