Capitulo 2
Capitulo 2
Capitulo 2
PRUEBAS DURANTE EL
CICLO DE VIDA DEL
SOFTWARE
Capítulo 2. Pruebas durante el Ciclo de Vida del Software
2.1 Modelos de desarrollo de software
2.1.1 (K2) Desarrrollo de software y pruebas de software.
2.1.2 (K1) Modelos de ciclo de vida de desarrollos de software
en contexto.
2.2 Niveles de prueba
2.2.1 (K2) Pruebas de componente.
2.2.2 (K2) Pruebas de integración.
2.2.3 (K2) Pruebas de sistema.
2.2.4 (K2) Pruebas de aceptación.
2.3 Tipos de Pruebas
2.3.1 (K2) Pruebas funcionales, no funcionales y caja blanca.
2.3.2 (K1) Tipos y niveles de pruebas.
2.3.3 (K2) Pruebas de confirmación y regresión.
2.4 Proceso de mantenimiento
2.4.1 (K2) Activadoes de mantenimiento.
2.4.2 (K2) Análisis de impacto.
Capítulo 2. Pruebas durante todo el
ciclo de vida del software
2.1 Modelos de desarrollo de software
Modelos de desarrollo secuenciales
Un modelo de desarrollo secuencial describe el proceso de desarrollo de
software como un flujo lineal y secuencial de actividades. Esto significa que
cualquier fase en el proceso de desarrollo debe comenzar cuando se complete
la fase anterior. En teoría, no hay superposición de fases, pero en la práctica, es
beneficioso tener retroalimentación temprana de la siguiente fase.
Diseño de
pruebas de
Pruebas de
Diseño Técnico
integración Integración
Los requisitos de negocio se
usan para generar las De forma temprana se generan
pruebas de aceptación, las pruebas necesarias para
Especificación Diseño de
mientras que el siguiente Pruebas verificar que los distintos niveles
de pruebas
nivel, se usa para derivar las Unitarias
Componentes unitarias de desarrollo se han
pruebas del sistema implementado según lo definido
en los requisitos
Iteración 2
Iteración 3
Entregas iterativas/incrementales
Capítulo 2. Pruebas durante todo el
ciclo de vida del software
2.1 Modelos de desarrollo de software
Algunos • RUP
modelos • SCRUM
interativos • Kanban
incrementales
• Spiral
Capítulo 2. Pruebas durante todo el
ciclo de vida del software
2.1 Modelos de desarrollo de software
Rational Unified Process (RUP)
Proceso de desarrollo orientado a objetos, que provee una guía, plantillas y
ejemplos para todas las etapas del desarrollo de sistemas utilizando la notación
UML para el modelado de requisitos. En RUP los casos de uso son usualmente
utilizados como la base de pruebas.
PULL
Las tareas no están programadas, esperan en
el backlog y se mueven al tablero Kanban en
cuanto hay espacio disponible, cuando el
equipo tiene la capacidad de trabajar en ella.
Planeacion Analisis de
Se determinan
riesgos
objetivos, alternativas y Evaluación de alternativas,
restricciones. se identifican y resuelven
12 riesgos.
43
• Prototipo 1
• Prototipo 2
Las pruebas de regresión son cada vez más importantes a medida que el sistema crece.
Por ejemplo, el desarrollo de un sistema de gestión interna debe diferir del desarrollo de
un sistema de seguridad critica.
Dependiendo del contexto del proyecto, puede ser necesario combinar o reorganizar los
niveles de prueba y/o las actividades de prueba.
También es posible combinar los propios modelos del ciclo de vida de desarrollo de
software.
Capítulo 2. Pruebas durante el Ciclo de Vida del Software
2.1 Modelos de desarrollo de software
2.1.1 (K2) Desarrrollo de software y pruebas de software.
2.1.2 (K1) Modelos de ciclo de vida de desarrollos de software en
contexto.
2.2 Niveles de prueba
2.2.1 (K2) Pruebas de componente.
2.2.2 (K2) Pruebas de integración.
2.2.3 (K2) Pruebas de sistema.
2.2.4 (K2) Pruebas de aceptación.
2.3 Tipos de Pruebas
2.3.1 (K2) Pruebas funcionales, no funcionales y caja blanca.
2.3.2 (K1) Tipos y niveles de pruebas.
2.3.3 (K2) Pruebas de confirmación y regresión.
2.4 Proceso de mantenimiento
2.4.1 (K2) Activadoes de mantenimiento.
2.4.2 (K2) Análisis de impacto.
Capítulo 2. Pruebas durante todo el ciclo de vida del software
2.2 Niveles de Pruebas
1 3
Pruebas
Unitarias
2 Pruebas de 4
[Desarrollador] Pruebas de Sistema Pruebas de
Integración [Tester] Aceptación
[Desarrollador & [Usuario
Tester] final/cliente]
• Objetivos específicos.
• Bases de prueba, referencias para generar casos de prueba.
• Objeto de prueba (es decir, lo que se está probando).
• Defectos y fallos que pueden encontrar.
• Enfoques y responsabilidades.
Objetivos
• Reducir el riesgo. Integración
01010101
010100 Objetos de prueba
• Componentes, unidades o módulos
• Código y estructura de datos
• Clases
• Módulos de bases de datos
Defectos y fallos
• Funcionamiento incorrecto, por ejemplo con respecto a la
especificación de diseño.
• Problemas de flujo de datos.
• Código y lógica incorrectos.
Capítulo 2. Pruebas durante todo el ciclo de vida del software
2.2 Niveles de Pruebas
Enfoques de prueba y reponsabilidades
• Realizadas por el desarrollador
• Test Driven Development
• Pruebas funcionales, no funcionales, estructurales.
Ambiente de pruebas
• Ambiente de desarrollo.
• En este nivel no todos los componentes o funcionalidad se
encuentran desarrollados, así que para poder probar, es necesario el
uso de arneses [driver y stubs].
Capítulo 2. Pruebas durante todo el ciclo de vida del software
2.2 Niveles de Pruebas
Objetivos
• Reducir el riesgo. Componente
• Verificar que los atributos funcionales y no funcionales de las
interfaces sean los diseñados y especificados.
• Generar confianza sobre la calidad de las interfaces. Niveles de
• Encontrar defectos en las interfaces, componentes o sistemas.
Pruebas
• Prevenir la propagación de defectos a niveles de prueba
superiores.
Capítulo 2. Pruebas durante todo el ciclo de vida del software
2.2 Niveles de Pruebas
Para este plan de estudios se consideran 2 niveles de pruebas de
integración:
1. Integración de componentes: prueban las interacciones e interfaces entre los
componentes integrados. Se realizan después de las pruebas de componentes y
generalmente están automatizadas. En el desarrollo iterativo e incremental, las pruebas
de integración de componentes suelen formar parte del proceso de integración
continua.
Módulo/ Módulo/
Sistema A Sistema B
Pruebas de Integración
Base de Pruebas
• Diseño de software.
• Diagramas de secuencia.
• Especificaciones de interfaz y protocolos de comunicación.
• Casos de uso y flujos de trabajo.
• Arquitectura a nivel de componente o de sistema.
• Definiciones de interfaces externas.
Defectos y fallos
Integración de componentes:
• Componentes que transmiten datos incorrectos o el dato no se
transmite.
• Codificación incorrecta de datos.
• Mala o nula comunicación entre componentes.
• Secuenciación o sincronización incorrecta de las llamadas a la
interfaz.
• Incompatibilidad de la interfaz.
Integración de sistemas:
• Estructuras de mensajes inconsistentes entre sistemas.
• Datos incorrectos, datos faltantes o codificación incorrecta de datos.
• Incompatibilidad de la interfaz.
• Fallos en la comunicación entre sistemas.
• Incumplimiento de las normas de seguridad obligatorias.
Capítulo 2. Pruebas durante todo el ciclo de vida del software
2.2 Niveles de Pruebas
Ambiente de Pruebas
• Ambiente de desarrollo y pruebas.
• En este nivel puede ser necesario la utilización de arnéses de prueba
[drivers o stubs] para comprobar la integración.
• Usan monitores, para observar el tráfico de datos entre
componentes.
Capítulo 2. Pruebas durante todo el ciclo de vida del software
2.2 Niveles de Pruebas
Objetivos Integración
• Verificar que los comportamientos funcionales y no funcionales
del sistema son los diseñados y especificados.
• Validar que el sistema está completo y que funcionará como se Componente
espera.
• Generar confianza en la calidad del sistema considerado como
un todo. Niveles de
• Encontrar defectos.
• Prevenir la propagación de defectos a niveles de prueba
Pruebas
superiores o a producción.
Capítulo 2. Pruebas durante todo el ciclo de vida del software
2.2 Niveles de Pruebas
Bases de pruebas
• Especificaciones de requisitos del sistema y del software,
[funcionales y no funcionales].
• Informes de análisis de riesgo.
• Casos de uso.
• Épicas e historias de usuario.
• Modelos de comportamiento del sistema.
• Diagramas de estado.
• Manuales de sistema y de usuario.
Objetos de prueba
• Aplicaciones.
• Sistemas hardware/software.
• Sistemas operativos.
• Sistema sujeto a prueba (System Under Test).
• Configuración del sistema y datos de configuración.
Capítulo 2. Pruebas durante todo el ciclo de vida del software
2.2 Niveles de Pruebas
Defectos y fallos
• Cálculos incorrectos.
• Comportamiento funcional o no funcional del sistema incorrecto o
inesperado.
• Control y/o flujos de datos incorrectos dentro del sistema.
• Incapacidad para llevar a cabo, de forma adecuada y completa, las
tareas funcionales punto a punto.
• Fallo del sistema para operar correctamente en el/los entorno/s de
producción.
• Fallo del sistema para funcionar como se describe en los manuales
del sistema y de usuario.
Capítulo 2. Pruebas durante todo el ciclo de vida del software
2.2 Niveles de Pruebas
Ambiente de pruebas
El ambiente en condiciones ideales debe de corresponder al ambiente
objetivo final o de producción.
Capítulo 2. Pruebas durante todo el ciclo de vida del software
2.2 Niveles de Pruebas
Objetivos Sistema
• Las pruebas de aceptación normativa se llevan a cabo para validar cualquier norma
que deba cumplirse, gubernamentales, legales o de seguridad física. El principal
objetivo es crear confianza en que se ha logrado la conformidad contractual o
normativa.
• Beta: En esta prueba el software es liberado a los clientes potenciales para que sea
probado en su propio ambiente, es una prueba de bajo costo que retroalimenta
eficientemente a la organización, pues el software será usado en diferentes ambientes.
Capítulo 2. Pruebas durante todo el ciclo de vida del software
2.2 Niveles de Pruebas
Bases de pruebas
• Procesos de negocio.
• Requisitos de usuario y negocio.
• Normativas, contratos legales y estándares.
• Casos de uso, historías de usuario.
• Requisitos del sistema.
• Documentación del sistema o del usuario.
• Procedimientos de instalación.
• Informes de análisis de riesgo.
Objetos de prueba
• Sistema sujeto a prueba [SUT].
• Configuración del sistema y datos de configuración.
• Procesos de negocio para un sistema totalmente integrado.
• Sistemas de recuperación y sitios críticos
• Procesos operativos y de mantenimiento.
• Formularios.
• Informes.
• Datos de producción existentes y transformados.
Capítulo 2. Pruebas durante todo el ciclo de vida del software
2.2 Niveles de Pruebas
Defectos y fallos
• Flujos de trabajo del sistema que no cumplen con requisitos de
negocio o de usuario.
• Las reglas de negocio no se implementan de forma correcta.
• El sistema no satisface los requisitos contractuales o reglamentarios.
• Fallos como vulnerabilidades de seguridad, rendimiento o
funcionamiento inadecuado en una plataforma soportada.
Capítulo 2. Pruebas durante todo el ciclo de vida del software
2.2 Niveles de Pruebas
Ambiente de pruebas
• Las pruebas deben realizarse en un entorno de pruebas lo más parecido al
entorno productivo.
• En este nivel el sistema debe de estar instalado completamente, ya no deben
utilizarse controladores (drivers) y cabos (Stubs)para realizar las pruebas, a
menos que estos cumplan una funcion de algo que no existe en nuestro
ambiente como podría ser una conexión con una entidad externa.
Capítulo 2. Pruebas durante el Ciclo de Vida del Software
2.1 Modelos de desarrollo de software
2.1.1 (K2) Desarrrollo de software y pruebas de software.
2.1.2 (K1) Modelos de ciclo de vida de desarrollos de software
en contexto.
2.2 Niveles de prueba
2.2.1 (K2) Pruebas de componente.
2.2.2 (K2) Pruebas de integración.
2.2.3 (K2) Pruebas de sistema.
2.2.4 (K2) Pruebas de aceptación.
2.3 Tipos de Pruebas
2.3.1 (K2) Pruebas funcionales, no funcionales y caja blanca.
2.3.2 (K1) Tipos y niveles de pruebas.
2.3.3 (K2) Pruebas de confirmación y regresión.
2.4 Proceso de mantenimiento
2.4.1 (K2) Activadores de mantenimiento.
2.4.2 (K2) Análisis de impacto.
Capítulo 2. Pruebas durante todo el ciclo de vida del software
2.3 Tipos de Pruebas
Pruebas Pruebas No
Funcionales Funcionales
Pruebas
Pruebas de
Asociadas al
Caja Blanca
Cambio
Capítulo 2. Pruebas durante todo el ciclo de vida del software
2.3 Tipos de Pruebas
Pruebas Funcionales
Se centran en probar la funcionalidad del sistema y prestaciones descritas en
requisitos funcionales y en productos de trabajo como: especificaciones de
requisitos de negocio, épicas, historias de usuario, casos de uso,
especificaciones funcionales, o requisitos sin documentar. Las funciones
describen:
Pruebas No Funcionales
Evalúan las características de los sistemas y el software, como la usabilidad, la
eficiencia del desempeño o seguridad. Estas pruebas verifican:
Una vez que corregido un defecto debe de ser probado, la prueba que
se realiza para confirmar la corrección exitosa se denomina prueba de
confirmación.
Esta prueba debe ser repetida de la misma forma que la primera vez
utilizando los mismos casos de prueba, datos de entrada y en el
mismo ambiente.
Hay que determinar qué tan extensiva debe ser la regresión, las
posibilidades pueden ser las siguientes:
• Volver a ejecutar parte del sistema en donde se han detectado fallas y que
se han corregido en la nueva versión de software.
• Probar las partes del programa que fueron modificadas.
• Probar las partes del sistema que fueron recientemente integradas.
• Probar aquellas partes del programa que tienen mayor riesgo para la
aplicación.
• ¡Probar el sistema completo!, (en los casos en los que el entorno de
prueba cambia completamente, ya que existirán efectos colaterales).
Alcance
• Corregir defectos descubiertos en el uso operativo.
• Extensión de funcionalidad para eliminar o modificar funcionalidades ya
entregadas.
• Conservar o mejorar las características de calidad no funcionales del
componente o sistema a lo largo de su vida útil, especialmente: eficiencia
de desempeño, fiabilidad, seguridad, compatibilidad y portabilidad.
• Corrección de funcionalidad existente por fallos en producción.
Activadores de Mantenimiento
Se pueden clasificar en:
• Migración de una plataforma a otra, que puede requerir pruebas operativas del nuevo
entorno y del software modificado, o pruebas de conversión de datos cuando los datos
de otra aplicación se migren al sistema en mantenimiento.