Вы находитесь на странице: 1из 38

Pruebas de Software

Introducción a las Pruebas de Software


Contenido

Contenido

• Métodos Dinámicos de Evaluación


• El ciclo de vida de la Calidad. 
• Conceptos Generales de Pruebas. 
• Proceso de Pruebas de Software.
• Objetivos de las Pruebas de Software. 
• Beneficios de las Pruebas de Software. 
• Tipos de Pruebas. 
• Características de Calidad de un Producto de Software. 
• Relación Productos de Desarrollo y Niveles de Prueba. 
• Pruebas en el Ciclo de Desarrollo de Software. 
• Herramientas de Apoyo a las Pruebas de Software.
• Herramientas que Automatizan las Pruebas de Software
Métodos Dinámicos de Evaluación - Pruebas
El Ciclo de Vida de la Calidad

La calidad de un proceso contribuye a la calidad de un producto.


La calidad de un producto contribuye a la calidad en uso del producto.
El Ciclo de Vida de la Calidad

Un claro ejemplo de esto son los


costos de errores en el proceso
de Gestión de Requerimientos;
corregir un error de requerimiento
después del desarrollo puede
resultar en un costo 100 veces
mayor que corregir un error en la
implementación.
Conceptos Generales de Pruebas

¿Qué son las Pruebas?

“El proceso de operar un sistema o un componente


bajo condiciones especificadas, observando o
registrando los resultados, y de hacer una evaluación
de un cierto aspecto del sistema o del componente.”

“Las pruebas muestran la IEEE Estándar Glossary of Software Enginerineering Terminology

presencia de errores pero


nunca la ausencia de ellos”
Conceptos Generales de Pruebas

¿Qué son las Pruebas?

“Las pruebas son un proceso


que se da de forma concurrente
al ciclo de desarrollo del
producto de software, usando y
manteniendo los instrumentos
de pruebas para medir y
El propósito es analizar, diseñar y
mejorar la calidad del software
que es probado. ” elegir los subconjuntos de
requerimientos apropiados para
ejecutar aquellas pruebas con las
cuales sea más probable
descubrir no conformidades en el
producto de software.
Conceptos Generales de Pruebas

Ideas Generales

• La prueba exhaustiva del software es


impracticable (no se pueden probar
todas las posibilidades de su
funcionamiento ni siquiera en
programas sencillos)

• El objetivo de las pruebas es la


detección de defectos en el software
(descubrir un error es el éxito de una
prueba)

• Mito - un defecto implica que somos


malos profesionales y que debemos
sentirnos culpables. Todo el mundo
comete errores.

• El descubrimiento de un defecto
significa un éxito para la Mejora de la
Calidad
Conceptos Generales de Pruebas

Error (error): Es una decisión


Los fallos son producidos
incorrecta tomada durante el
por defectos, que son el
desarrollo de un sistema de
resultado de errores. Los
software (usualmente una
fallos existen en la
suposición incorrecta).
ejecución del programa,
los defectos en el
software, y los errores en
las personas.
Defecto (defect, fault, «bug»):
Es una propiedad del software que
puede hacer que se comporte de
una manera no deseada , por
ejemplo, un proceso, una
definición de datos o un paso de
procesamiento incorrectos en un
programa.

Fallo (failure): es la situación en la


cual un software en ejecución
efectivamente se comporta de una
manera no deseada.
Conceptos Generales de Pruebas
Proceso de Pruebas de Software

El proceso de prueba conlleva la realización de un conjunto de tareas a lo largo del ciclo


de vida del desarrollo del producto de software.
Objetivos de las Pruebas de Software

En el Producto:

• Detectar no conformidades antes de


que el producto sea instalado en el
cliente o usuario final.

• Garantizar la aceptación de los


productos por parte de los clientes o
usuarios finales.

• Asegurar que el producto (Sistema)


este listo para ser utilizado desde el
punto de vista funcional.

• Mostrar que cada una de las partes del


producto funciona correctamente.

• Mejoramiento en la satisfacción de
clientes o usuarios finales.
Objetivos de las Pruebas de Software

En el Equipo de desarrollo

• Disminución del reproceso

• Apropiación de la cultura de calidad por


parte del equipo humano

• Equipo humano entrenado en las áreas


claves del proceso de aseguramiento de
calidad de software

• Función de aseguramiento de calidad de


software documentada
Beneficios de las Pruebas de Software

• Incrementan la productividad del


equipo de desarrollo.
• Facilitan la detección temprana de no
conformidades.
• Son un mecanismo objetivo para
asegurar que los requerimientos de los
productos se cumplen.
• Son una evaluación objetiva de los
resultados.
Tipos de Pruebas

Los Tipos de Pruebas se pueden visualizar desde dos enfoques:

• Estrategia (momento en el que se realiza) – Niveles Prueba


– Pruebas Unidad
– Pruebas Integración
– Pruebas Sistemas
– Pruebas Regresión
– Pruebas Alpha & Beta
– Pruebas Aceptación

• El objetivo
– Pruebas funcionales
– Pruebas Seguridad
– Pruebas Desempeño (Carga)
– Pruebas Resistencia (Stress)
– Pruebas Volumen
– Pruebas Concurrencia
Tipos de Pruebas

Niveles de Pruebas
Tipos de Pruebas

• Pruebas Unidad
Las pruebas de unidad centran
su proceso de verificación en la
menor unidad de software, el
módulo

 Su objetivo es probar la
funcionalidad del código.
 Intentan encontrar casos en los
que el módulo no atiende a su
especificación.
 Especialmente indicadas en los
módulos que van a ser interfaz
con el usuario.

Ejemplo: Verificar en la aplicación la


funcionalidad de registro de usuarios.
Tipos de Pruebas

• Pruebas Integración
Las pruebas de integración en un producto de software se
presenta tanto en la integración entre módulos que hacen
parte del mismo producto como para soluciones que están
conformadas por varios.

– Integración entre módulos. El objetivo de estas


pruebas es verificar que los módulos o
componentes que conforman el producto
funcionan correctamente en conjunto o integrados.
– Integración entre productos. Tiene como objetivo
verificar la interoperabilidad entre productos que
garanticen el funcionamiento adecuado de la
solución.

Ejemplo: Se ofrece una solución a un cliente el cual tiene 3


componentes: Fuera de verificar que los módulos
1. Un portal de acceso. (creación de curso y foro) de cada
2. Una herramienta para E-Learning. componente funcionen correctamente de
3. Un sistema de indicadores de gestión para medir la acuerdo a las especificaciones, se debe
utilización del portal y del E-learning. probar que la integración de los
componentes
Una de las funcionalidades compartidas entre (módulos y productos) operen
aplicaciones es: Cuando se crea un nuevo curso adecuadamente como solución.
automáticamente se creará un foro en el portal para
que los integrantes del curso participen de él.
Tipos de Pruebas

• Pruebas Regresión – Asegurar que cualquier no conformidad encontrada en el sistema ha sido


corregida y que ninguna de las funcionalidades liberadas previamente ha fallado como resultado
de las correcciones.

• Pruebas Sistemas – El objetivo es verificar que los procesos soportados por la aplicación se
cumplen completamente, es decir, los procesos fluyen desde su inicio hasta el final. Se hace
reutilización de instrumentos de prueba.
Tipos de Pruebas

• Pruebas de Aceptación
Realizadas con los clientes y
define su aceptación del
software.¿Quién define el nivel
de la prueba de aceptación?

– ¿Quién plantea y escribe


los instrumentos de
pruebas?
– ¿Quién ejecuta las
pruebas?
– ¿Cuál es el criterio de éxito
/ falla para la prueba de
aceptación?
Tipos de Pruebas

• Pruebas Alpha y Beta

Son pruebas de Sistemas que se realizan


integrando al grupo de testers un
conjunto de potenciales usuarios de la
aplicación. Estos usuarios Conscientes
de que el producto no ha sido liberado
usan su experiencia para advertir sobre
potenciales fallas de la aplicación. La
diferencia fundamental entre estas
pruebas radica en la ubicación del equipo
de pruebas; Alpha son las pruebas
que se realizan internamente en la casa
de software y Beta las que se realizan
externamente en el cliente.
Tipos de Pruebas

En los tiempos de Windows®, las versiones


preliminares del producto seguían una progresión
bastante estándar. Primero se tenía las versiones alfa,
que se usaban de forma interna y, posiblemente, se
compartían con partners de desarrollo de software
ajenos al equipo del producto de Windows.

Después de las versiones alfa, naturalmente, vienen


las versiones beta, que se envían a una audiencia algo
más amplia. Las versiones beta incluyen a personas
que no son desarrolladores de software, como
usuarios
finales a los que les gusta probar software aún no
comercializado y empresas que desean avanzar con la
evaluación del nuevo sistema operativo para
determinar la compatibilidad del producto nuevo no
sólo con sus aplicaciones internas críticas, sino
también con la red corporativa, las configuraciones
estándar de hardware y las herramientas de
administración del sistema
Tipos de Pruebas

• Pruebas de Seguridad - La prueba de


seguridad intenta verificar que los
mecanismos de protección
incorporados en el sistema lo
protegerán, de hecho, de accesos
impropios. Durante la prueba de
seguridad, el responsable de la prueba
desempeña el papel de un individuo
que desea entrar al sistema sin ser
autorizado.

• Pruebas Desempeño (Carga) - Prueba


dirigida a evaluar la conformidad de un
sistema o componente con
requerimientos de desempeño
específicos. Normalmente esto se lleva a
cabo usando una herramienta de prueba
automática para simular un gran número
de usuarios.
Tipos de Pruebas

• Pruebas Resistencia (Stress):

La prueba de resistencia ejecuta un sistema


de forma que demande recursos en cantidad,
frecuencia o volúmenes anormales.

Por ejemplo:

– Diseñar pruebas especiales que generen


diez interrupciones por segundo, cuando las
normales son una o dos;
– Incrementar las frecuencias de datos de
entrada en un orden de magnitud con el fin
de comprobar cómo responden las
funciones de entrada;
– Ejecutar casos de prueba que puedan dar
problemas en un sistema operativo virtual o
– Diseñar casos de prueba que produzcan
excesivas búsquedas de datos residentes
en disco.
Tipos de Pruebas

• Prueba de Volumen - Prueba con la


cual se confirma que cualquier valor
que pudiera llegar a ser grande en un
cierto plazo (como por ejemplo logs,
archivos de datos, etc…), puede ser
acomodado por el programa y no
causará que el programa deje de
trabajar o degrade su operación en
alguna forma.

• Prueba de Concurrencia - Prueba


multiusuario encaminada a
determinar los efectos de acceder el
mismo código de aplicación, modulo o
registros de una base de datos.
Identifica y mide el nivel de bloqueo
(locking), bloqueo mutuo entre
usuarios (deadlocking), uso de hilos
simples (single-threaded) y semáforos
de bloqueo (locking-semaphores).
Características de Calidad de un Producto de Software

En 1991 el comité técnico de la


ISO/IEC publicó la norma
internacional ISO9126 que
establece los lineamientos
generales para la evaluación
de un producto de software a
partir de seis características de
calidad
Características de Calidad de un Producto de Software
Características de Calidad de un Producto de Software
Características de Calidad de un Producto de Software

Tabla 1 – Correlación entre atributos de calidad y niveles de prueba


Relación Productos de Desarrollo y Niveles de Prueba
Pruebas en el Ciclo de Desarrollo de Software

Pruebas en el Proceso de desarrollo de Software


Pruebas en el Ciclo de Desarrollo de Software

Pruebas en el Proceso de desarrollo de Software


Pruebas en el Ciclo de Desarrollo de Software

Pruebas en el Proceso de desarrollo de Software


Pruebas en el Ciclo de Desarrollo de Software

Pruebas en el Proceso de desarrollo de Software


Herramientas de Apoyo a las Pruebas de Software

Herramientas que apoyan el Proceso

Están orientadas al modelado y diseño de las


aplicaciones, el análisis estático del código, el
análisis dinámico del código, el "profiling" (medir
la rapidez con que se ejecuta un programa) de las
aplicaciones y el afinado del código de acceso a
base de datos.

DevPartner: Para la detección de errores, depuración y análisis de rendimiento de aplicaciones


para Microsoft.NET y para JAVA.

AnalystStudio: Identificar necesidades del usuario, Gestión de requerimientos, Modelado del negocio
y Casos de uso.

Kanav: Gestión de requerimientos, Definición de procesos de desarrollo de software,


gestionar, evaluar, decidir, planificar y tomar el control de la ejecución de los
proyectos.

Subversion: Sistema de control de versiones, se encarga de mantener un árbol histórico de


ficheros y directorios a lo largo del tiempo.
Herramientas de Apoyo a las Pruebas de Software

Herramientas que Automatizan las Pruebas

Estas herramientas están orientadas a construir un


conjunto de pruebas mínimo necesarias que garanticen
que la aplicación cumple con los requerimientos del
cliente.

• Junit: Tests unitarios de aplicaciones Java

 TestStudio: Conjunto de herramientas que permiten verificar la calidad de las aplicaciones en sus tres
dimensiones: funcionalidad, confiabilidad y desempeño.

 Cactus: Extensión de Junit

 Jmeter: Pruebas de estrés en aplicaciones web

 Jtest: Detectar errores, que antes sólo podían ser identificados en las fases de integración y
ejecución del código

 Jcrawler: Aplicación destinada a realizar pruebas de estrés sobre aplicaciones web, que simula los
patrones de navegación típicos de los seres humanos y mantiene una carga constante sobre
la aplicación, haciendo los test más realistas.

Вам также может понравиться