Documentos de Académico
Documentos de Profesional
Documentos de Cultura
MATERIAL DE LECTURA
INTRODUCCIÓN
Con este material abordaremos temas relacionados a la creación de Plan de pruebas, los
diferentes tipos de planes, cuando sería necesario crear uno u otro, además
aprenderemos sobre campos que contiene un plan de pruebas y cómo completarlos,
todos estos conceptos con enfoque en la gestión de proyectos con pruebas
automatizadas, aprenderemos también algunos conceptos de calidad asociados a la
automatización de pruebas y veremos la importancia de la gestión de proyecto en el ciclo
de desarrollo de software.
Introducción
Profundizaremos los temas vistos anteriormente los asociaremos a la gestión y control de
calidad en el proceso de desarrollo de software y la automatización.
Actualmente la tecnología nos ha facilitado nuestro día a día, convirtiendo los sistemas informáticos en
nuestros grandes aliados, pero cuando fallan pueden tener consecuencias catastróficas, incluso muerte
y destrucción de gran magnitud.
En nuestra historia han ocurrido una gran cantidad de fallos causados por errores de software,
originando numerosas pérdidas económicas y humanas, como parte introductora al proceso de gestión
en pruebas de desarrollo de software, te compartimos algunas de las más impactantes:
1. Mariner 1.
En el año 1962, la Nasa se disponía a realizar el lanzamiento al espacio de la misión Mariner 1, con el
fin de navegar la órbita de Venus. Un error de programación representó la diferencia entre el éxito y una
catástrofe total.
La Mariner 1 fue creada para recabar datos sobre la temperatura y atmósfera de Venus, pero no logró
salir de la atmósfera de la tierra. La catástrofe se originó a solo 5 minutos del despegue debido a la
mala transcripción de un código, el fracaso del Mariner 1 produjo la pérdida de 18,5 millones de dólares
a la Nasa, ¿Que produjo la falla? Falta de un guión “-“ en el código.
2. Therac-25.
En 1982 fue fabricada una máquina diseñada para la administración de radioterapia a pacientes con
cáncer llamada la Therac-25, era controlada exclusivamente por un computador sin tener sistemas de
protección mecánicos para evitar irradiar a pacientes con dosis muy altas.
Entre 1985 y 1987 la máquina tuvo un error de software, el cual ocasionó la sobredosis de radiación a 6
pacientes, 100 veces más elevadas a las que exigía su tratamiento ocasionando la muerte de al menos
3 de ellos.
Este error fue causado por el divisor en la unidad de coma flotante, el cual contaba con una tabla de
división errónea, al que le faltaban 5 entradas cobre 1000 causando este este fallo.
6. Ariane 5.
El 4 de junio de 1996 el cohete espacial no tripulado Ariane 5 fue destruido a solo unos segundos de
su despegue en su vuelo inaugural, destruyendo consigo 4 satélites destinados a estudiar la
interacción del campo magnético de la tierra con los vientos solares.
Esta catástrofe fue provocada debido a que surgió un problema cuando el sistema de guiado intentó
convertir la velocidad lateral de la nave de 64 a 16 bits, siendo este un número demasiado elevado,
produciendo un error de desbordamiento, deteniendo el sistema, provocando su autodestrucción en
tan solo 37 segundos después del despegue.
7. Efecto Y2K.
Este error milenial se basó en la programación de las fechas en los sistemas informáticos.
Para el siglo XX los programadores trataban de optimizar el espacio del que se disponía para guardar
información, utilizando como truco guardar fechas como dd/mm/aa en lugar de dd/mm/aaaa.
Para el cambio del siglo XX al siglo XXI se desconfiaba en esta forma de programación, debido a que
esta podría provocar un caos mundial cuando la fecha realizara el cambio de 31/12/1999 al
01/01/2000, porque para el software existente sería 01/01/00, es decir, del año 1900 atrasando 100 a
todos los artefactos tecnológicos produciendo en ellos errores fatales.
La tarjeta destruyó la red de área local, después de que comenzó a enviar datos a la red, causando
el colapso de toda la red responsable de la revisión secundaria de los pasajeros, esto ocurrió durante
el mes de más actividad del aeropuerto y en uno de los días más concurridos de la semana.
10. El error de Knight Capital.
Knight Capital es una empresa dedicada a la compra y venta de acciones de la bolsa de Wall Street,
la compañía acudió a una aplicación para realizar transacciones de manera automática programando
una cantidad de compras y ventas sé que debían realizar en una cantidad durante unos días.
En el 2012, el sistema tuvo un fallo de software y en vez de ejecutar las operaciones rigiéndose por
una línea de tiempo planificada, terminó por realizar las transacciones una tras otra, causando una
pérdida de casi 500 millones de dólares, en tan solo 45 minutos de mal funcionamiento la compañía
estuvo a punto de perderlo todo.
Estos errores que mencionamos solo han sido algunos entre tantos que han ocurrido en la historia
del software, si bien podemos observar la falta de una metodología para realizar pruebas o la
inexistencia de ellas, provocaron las consecuencias vistas.
Los sistemas son desarrollados por personas y por esta sola razón en cualquier fase se puede
cometer un error que puede generar un defecto en el software, si éste no es detectado y se llega a
ejecutar la aplicación tendremos grandes riesgos. Realizar pruebas de software es la manera de
prevenir o sencillamente corregir posibles desviaciones de un software antes que provoque este tipo
de afectaciones, es allí donde las empresas de testing, tenemos la responsabilidad de brindar
soluciones tecnológicas donde se ejecuten procesos y procedimientos de calidad alineadas al ciclo
de desarrollo de software, para lograr mejorar el funcionamiento y obtener un producto final de
acuerdo a las necesidades del usuario.
Es por eso que antes de que los usuarios tengan acceso a cualquier software o función nueva,
debemos ponerlo a prueba a fondo: probar e intentar romperlo. Debemos asegurarnos de que todo lo
que hagan los usuarios, responda según lo diseñado. En resumen, necesitamos un plan de prueba o
también conocido como test plan.
Antes de poner en marcha un proceso de control de calidad, es importante comprender los pasos
que lo componen, hay muchas formas de implementar un sistema de garantía de calidad, podríamos
definir los siguientes pasos entre los esenciales:
1. Analizar requerimientos: Es más costoso arreglar un error detectado durante las pruebas,
que prevenirlo en la fase de diseño de requerimientos, los profesionales del control de calidad
deben participar en el análisis y definición de los requerimientos del software, funcionales
como no funcionales de esa manera asegurar que los QAs reciban requerimientos
coherentes, exhaustivos y trazables.
2. Planificar las pruebas: Se utiliza como base la información obtenida durante la fase de análisis de
requerimientos para planificar las pruebas necesarias.
3. Diseñar las pruebas: Los testers deben crear casos de prueba y listas de comprobación que
cubran los requerimientos del software.
Se recomienda comenzar con pruebas exploratorias para familiarizarse con el software y así sumar
casos de pruebas adicionales a los escritos en base a requerimientos.
4. Ejecución de pruebas y notificación de defectos: Se realizan las pruebas, comenzando con las
pruebas estáticas analizando la documentación de requerimientos, despues los niveles más bajos
donde se aplican las pruebas unitarias o de componentes y de esa manera ir reportando defectos
desde que se comienza a desarrollar el software y a medida que va evolucionando ir probando en los
diferentes niveles, reportar defectos e informe de las pruebas.
5. Re-test y regression test: Una vez reportados y corregidos los errores, se vuelve a probar la
funcionalidad afectada para asegurarse de que realmente se haya corregido, además se realizan
pruebas de regresión con la finalidad de verificar que las correcciones no afectaron las funciones
existentes.
6. Refactoring test: Después de que los desarrolladores emitan una notificación de actualización del
software donde deberán detallarse las características implementadas, errores corregidos y
limitaciones, se debe identificar las funcionalidades afectadas por los cambios y diseñar pruebas que
cubran el alcance de las modificaciones.
También será necesario realizar pruebas de humo para asegurarse de que cada funcionalidad sea
estable.
7. Aplicar mejoras continuas. La garantía de calidad es sinónimo de mejora continua. Los resultados
o la información obtenida de la encuesta de una organización o de otras herramientas de
retroalimentación del cliente deben utilizarse ahora para realizar los cambios necesarios en el proceso
de garantía de calidad.
Esto puede implicar un mayor desarrollo del liderazgo, la formación en el servicio al cliente, una mayor
dotación de personal, correcciones en el proceso de producción, cambios en el producto o servicio que
fabrica o presta, etc.
8. Medir resultados. Aunque puede haber muchas razones para implantar un proceso de garantía de
calidad, uno de sus principales objetivos es garantizar que la organización satisfaga las necesidades
de sus clientes. Cuando una organización no lo consigue, es difícil obtener un retorno positivo de la
inversión y la existencia de la organización queda en entredicho.
Desde el primer momento, hay que asegurarse de que haya objetivos cuantificables y de que todos los
implicados sepan lo que hay que conseguir. Si no se alcanzan los objetivos, hay que asegurarse de
que todos tengan claro qué medidas correctoras son necesarias para garantizar la seguridad y la
satisfacción del cliente.
9. Implementar DevOps. DevOps aplica prácticas ágiles para los equipos de QA y Ops,
simplificando la construcción, validación, despliegue y desarrollo del software. Elimina los
conflictos entre los equipos de desarrollo y de control de calidad, y tiene otras ventajas:
Plan de pruebas
Un plan de prueba es una de las partes más importantes de cualquier proceso de desarrollo de
software, este debe describir cómo se asegurará de que nuestro producto o función haga lo que
se supone que debe hacer y no se rompa cuando los usuarios más lo necesiten.
Pero, ¿qué deberíamos incluir en el plan de prueba? ¿Qué tan profundo debe llegar realmente
para asegurarnos de que el producto se mantenga y sus usuarios obtengan lo que esperan?
Este debe ser un documento detallado que describa la estrategia de prueba, los objetivos, los
recursos necesarios, el cronograma y los criterios de éxito para probar una nueva característica o
pieza de software específica.
El objetivo principal, por supuesto, es descubrir defectos, errores y cualquier otra brecha que
pueda hacer que el software no actúe como se esperaba o que brinde una mala experiencia a sus
usuarios.
Por ejemplo, las pruebas de aceptación del usuario (UAT) son completamente diferentes de las
pruebas de estrés y carga, y su plan deberá adaptarse a su objetivo final.
● Análisis de productos/software.
● Desarrollar la estrategia de pruebas.
● Definir los objetivos de las pruebas.
● Planificación de recursos.
● Calendario y estimación.
● Determinar los resultados de las pruebas.
Tipos de Plan de pruebas
Existen diferentes tipos de planes de pruebas, entre los que podemos destacar plan de pruebas
maestro y de liberación o lanzamiento. Entendamos sus diferencias.
Un plan de pruebas tiene como objetivo definir cómo se llevarán a cabo las pruebas, así como,
determinar qué supuestos se tendrán en cuenta para establecer un estándar de calidad del producto
a analizar.
Un plan maestro de pruebas se utiliza en un escenario más amplio, que implica al producto en su
conjunto.
● Incluye los escenarios de prueba que se ejecutarán en todas las fases de prueba a lo largo del
ciclo de vida de desarrollo de la aplicación.
● El resultado será un documento de publicación del plan de pruebas que contenga los casos de
prueba correspondientes a los escenarios de prueba planteados.
El Plan de Pruebas de lanzamiento / despliegue
● Incluye todas y cada una de las pruebas que se ejecutarán durante el lanzamiento /
despliegue de la aplicación, además describe el alcance, el enfoque, los recursos y el
calendario de ejecución de las pruebas pero siempre con foco en el lanzamiento de la
aplicación bajo prueba.
● Tendremos un Plan de Pruebas de Lanzamiento cada vez que una nueva versión de nuestra
aplicación sea lanzada.
Sólo en el caso de los grandes proyectos, necesitamos un Plan Maestro de Pruebas que requiera la
ejecución de todas las fases de pruebas. Sin embargo, la preparación de un plan Test Release
básico por ambiente es suficiente para los proyectos pequeños.
Los Planes Maestros de Pruebas/Release se utilizan como guías para el equipo de pruebas,
centralizando toda la documentación necesaria para el aseguramiento de la calidad del producto a
probar.
CONCLUSIÓN
Conocer la diferencia entre los tipos de planes de prueba es extremadamente importante para el
proceso de garantía de calidad del software.
Al no saber diferenciarlas, es muy probable que el área de pruebas no tenga una dirección adecuada
al momento de realizar sus actividades, no garantizando, por lo tanto, la certeza de que el producto a
probar tendrá la confiabilidad mínima necesaria para cumplir con sus objetivos de negocio.
¿Qué podría incluir en mi plan de prueba?
En términos generales, hay algunas áreas principales que son convenientes incluir y que actuarán
como la base del documento:
Después de una breve introducción que destaca los objetivos del plan de prueba, el alcance de
alto nivel y el cronograma, se deberá definir lo que se probará o no probará.
● Criterio de salida: ¿cuándo está bien dejar de probar una función y asumir que la función
tiene éxito en hacer lo que se propuso hacer?
● Criterios de suspensión: ¿cuándo debería pausar una prueba? ¿Existe un umbral de
errores en el que debería dejar de realizar pruebas y empezar a buscar soluciones?
¿Cuáles son los pasos para cerrarlo y documentar lo que se ha hecho hasta ahora?
● Requisitos de reanudación: ¿cómo se sabe cuándo reanudar una prueba en pausa?
¿Cuáles son los pasos para revisar lo que se ha hecho y retomar?
Por otro lado, es una buena idea en este punto enumerar las suposiciones y riesgos.
En otras palabras: ¿qué se supone que va a suceder y cuáles son algunos de los riesgos
durante las pruebas?
Por último, describir las necesidades de recursos y el cronograma del proyecto de prueba.
Es decir: ¿Quién está a cargo de las pruebas y qué recursos necesitan (tanto técnicos como
humanos)? ¿Cuándo se realizarán las pruebas y durante cuánto tiempo?
Responsabilidades: ¿Cuáles son los resultados deseados?
¿Cuáles son los entregables de prueba requeridos?
Esto significa los datos que se desean recopilar, cómo agruparlos en los informes y los problemas
y tareas que se devolverán al equipo de desarrollo.
Para asegurarse de que no se pierda nada, cada entrega de prueba debe asignarse a una persona
específica del equipo en una sección sobre roles y responsabilidades.
● Una lista de todas las características del software (funcionalidad, GUI, normas de
rendimiento) que deben probarse.
●
● El resultado ideal o punto de referencia para cada aspecto del software que necesita ser
probado. Este es el punto de referencia contra el cual se comparará todos los resultados
reales.
● Criterios de suspensión: Establece los puntos de referencia para suspender todas las
pruebas. Por ejemplo, si los miembros del equipo de control de calidad descubren que el
50% de los casos de prueba han fallado, se suspenderán todas las pruebas hasta que los
desarrolladores resuelvan todos los errores identificados hasta el momento.
● Criterios de salida: define los puntos de referencia que significan la finalización con éxito
de una fase de prueba o proyecto. Los criterios de salida son los resultados esperados de
las pruebas y deben cumplirse antes de pasar a la siguiente fase de desarrollo. Por
ejemplo, el 80% de todos los casos de prueba deben ser calificados como exitosos antes
de que una característica particular o pieza de software pueda ser considerada adecuada
para el uso público.
Esta parte del plan de pruebas decide la medida de los recursos (número de probadores y
equipos) que requiere el proyecto. También ayuda a los responsables de las pruebas a formular
un calendario y una estimación correctamente calculados para el proyecto.
Disponibilidad de personal, número de días de trabajo, plazos de los proyectos, disponibilidad diaria
de recursos. riesgos asociados al proyecto que han sido evaluados en una fase anterior.
El alcance de la automatización significa el área de su aplicación bajo Prueba que será automatizada.
Asegúrate de haber recorrido con precisión y conocer el estado de las pruebas de tu equipo, la
cantidad de datos de prueba y también el entorno en donde se realizan las pruebas. A continuación
se ofrecen consejos adicionales para ayudarte a determinar el alcance de las pruebas
automatizadas:
● Viabilidad técnica
● La complejidad de los casos de prueba
● Las características o funciones que son importantes para el negocio
● El grado de reutilización de los componentes del negocio
● La capacidad de utilizar los mismos casos de prueba para las pruebas entre navegadores.
Es por ello que en este módulo continuaremos desarrollando otros tipos de pruebas: las pruebas
estáticas y las pruebas dinámicas. Estas se complementan entre sí y nos permiten entregar un
software con la mejor calidad posible.
Se utilizan este tipo de pruebas para examinar cualquier producto de trabajo, como por ejemplo:
● Especificaciones, requisitos de negocio, funcionales y de seguridad.
● Épicas, historias de usuarios y criterios de aceptación.
● Especificaciones de arquitectura y diseño.
● Código.
● Productos de prueba: planes, casos, procedimientos y guiones de prueba.
● Manuales de usuario.
● Contratos, planes de proyecto, calendarios y presupuestos.
Proceso de revisión
Dentro de las pruebas estáticas, una forma de detectar errores es mediante un proceso de
revisión.
Revisiones formales:
● Tienen roles definidos
● Siguen un proceso establecido
● Deben ser documentadas.
Revisiones Informales:
● No siguen un proceso definido
● No son documentadas formalmente.
El grado de formalidad del proceso de revisión está relacionado con factores como:
Requisitos funcionales
Definen lo que un sistema permite hacer desde el punto de vista del usuario. Estos requisitos
deben estar especificados de manera explícita. Por ejemplo: “El campo de monto acepta
únicamente valores numéricos con dos decimales” (pruebas funcionales y de sistema).
Requisitos no funcionales
Definen condiciones de funcionamiento del sistema en el ambiente operacional. Ejemplos:
Requisito de usabilidad: la usabilidad se define como el esfuerzo que necesita hacer un usuario
para aprender, usar, ingresar datos e interpretar los resultados obtenidos de un software de
aplicación (pruebas de usabilidad).
Con los conocimientos de esta guía podremos comenzar a crear nuestros propios planes de prueba,
incluso dependiendo la magnitud del proyecto podremos saber si crear un plan de prueba maestro o un
plan de pruebas de lanzamiento, sin embargo como material de apoyo sugerimos los siguientes videos.
Esta guía tendrá como soporte 3 documentos que servirán de base para aprender a crear un plan
de pruebas.
Además habrán 2 documentos adicionales con los siguientes nombres “Modelo 1 Plan de
Pruebas con definiciones” y “Modelo 2 Plan de Pruebas con definiciones”, ambos son modelos
con definiciones de cada parte de un plan de prueba que nos servirá como base para crear un plan
de prueba desde cero con solo hacer una copia y colocar los datos de nuestro proyecto encima del
documento.