1. ISO/IEC 9126
“Calidad de Producto de Software”
IEEE 829
“Documentación de las pruebas
Software”
MsC. Ing Sergio Toro Tejada
sertoro12@Gmail.com
2. Introducción
Hablar de calidad del software implica la
necesidad de contar con parámetros que permitan
establecerlos niveles mínimos que un producto de
este tipo debe alcanzar para que se considere de
calidad.
3. ISO/IEC 9126
ISO/IEC 9126
Es un estándar internacional para la evaluación
de la calidad del software.
El objetivo fundamental de esta norma es para
hacer frente a algunos de los prejuicios
humanos conocidos que pueden afectar
negativamente a la entrega y percepción de un
proyecto de desarrollo de software.
Está supervisado por el proyecto SQuaRE, ISO
25000:2005, el cuál sigue los mismos
conceptos.
4. ISO/IEC 9126
ISO/IEC 9126
Este estándar propone:
MODELO DE CALIDAD.
METRICAS INTERNAS.
METRICAS EXTERNAS.
LA CALIDAD EN EL USO DE METRICAS.
5. ISO/IEC 9126
MODELO DE CALIDAD
El modelo de calidad establecido en la primera
parte del estándar, ISO/ IEC 9126-1, clasifica la
calidad del software en un conjunto estructurado
de características y subcaracterísticas de la
siguiente manera:
7. ISO/IEC 9126
MODELO DE CALIDAD
Funcionalidad
Un conjunto de atributos que se relacionan con la
existencia de un conjunto de funciones y sus
propiedades específicas. Las funciones son
aquellas que satisfacen las necesidades implícitas
o explícitas.
9. ISO/IEC 9126
MODELO DE CALIDAD
Funcionalidad
Adecuación - Se enfoca a evaluar si el
software cuenta con un conjunto de funciones
apropiadas para efectuar las tareas que fueron
especificadas en su definición.
10. ISO/IEC 9126
MODELO DE CALIDAD
Funcionalidad
Exactitud - Este atributo permite evaluar si el
software presenta resultados o efectos acordes
a las necesidades para las cuales fue creado.
Interoperabilidad – Permite evaluar la
habilidad del software de interactuar con otros
sistemas.
11. ISO/IEC 9126
MODELO DE CALIDAD
Funcionalidad
Seguridad - Atributos del software
relacionados con su habilidad para prevenir
acceso no autorizado ya sea accidental o
deliberado, a programas y datos.
Conformidad – Evalúa si el software se
adhiere a estándares, convenciones o
regulaciones en leyes.
12. ISO/IEC 9126
MODELO DE CALIDAD
Fiabilidad
Un conjunto de atributos relacionados con la
capacidad del software de mantener su nivel de
prestación, bajo condiciones establecidas durante
un período establecido.
Las subcaracteristicas que el estándar sugiere
son:
14. ISO/IEC 9126
MODELO DE CALIDAD
Fiabilidad
Madurez – Permite medir la frecuencia de falla
por errores en el software.
Recuperabilidad – Se refiere a la capacidad
de restablecer el nivel de operación y recobrar
los datos que hayan sido afectados
directamente por una falla, así como al tiempo y
el esfuerzo necesarios para lograrlo.
15. ISO/IEC 9126
MODELO DE CALIDAD
Fiabilidad
Tolerancia a fallos - Atributos del software que
se relacionan con su habilidad para mantener
un nivel especificado de desempeño en casos
de fallas de software.
Cumplimiento de Fiabilidad - La capacidad
del producto software para adherirse a normas,
relacionadas con la fiabilidad.
16. ISO/IEC 9126
MODELO DE CALIDAD
Usabilidad
Un conjunto de atributos que permiten evaluar el
esfuerzo necesario que deberá invertir el usuario
para utilizar el sistema.
18. ISO/IEC 9126
MODELO DE CALIDAD
Usabilidad
Aprendizaje – La forma como el software
permite al usuario aprender su uso.
Comprensión - Atributos del software que se
relacionan al esfuerzo de los usuarios para
reconocer el concepto lógico y sus
aplicaciones.
19. ISO/IEC 9126
MODELO DE CALIDAD
Usabilidad
Operatividad – La manera como el software
permite al usuario operarlo y controlarlo.
Atractividad – La presentación del software
debe ser atractivo al usuario. Esto se refiere a
las cualidades del software para hacer más
agradable al usuario, ejemplo, el diseño gráfico.
Conformidad de uso – La capacidad del
software de cumplir los estándares o normas
relacionadas a su usabilidad.
20. ISO/IEC 9126
MODELO DE CALIDAD
Eficiencia
Conjunto de atributos relacionados con la relación
entre el nivel de desempeño del software y la
cantidad de recursos necesitados bajo
condiciones establecidas.
22. ISO/IEC 9126
MODELO DE CALIDAD
Eficiencia
Comportamiento en el tiempo - Atributos del
software que se relacionan con los tiempos de
respuesta y procesamiento, el rendimiento
cuando realiza su función en condiciones
específicas. Ejemplo, ejecutar el procedimiento
más complejo del software y esperar su tiempo
de respuesta.
23. ISO/IEC 9126
MODELO DE CALIDAD
Eficiencia
Comportamiento de recursos - Usar las
cantidades y tipos de recursos adecuados
cuando el software lleva a cabo su función bajo
condiciones determinadas.
Conformidad de eficiencia – la capacidad que
tiene el software para cumplir con los
estándares relacionados a la eficiencia.
24. ISO/IEC 9126
MODELO DE CALIDAD
Mantenibilidad
Conjunto de atributos relacionados con la facilidad
de extender, modificar o corregir errores en un
sistema software.
26. ISO/IEC 9126
MODELO DE CALIDAD
Mantenibilidad
Estabilidad - La forma como el software evita
efectos inesperados para modificaciones del
mismo.
Facilidad de análisis - Atributos del software
relacionados con las identificaciones de partes
a modificar.
27. ISO/IEC 9126
MODELO DE CALIDAD
Mantenibilidad
Facilidad de cambio - La capacidad del
software para que la implementación de una
modificación se pueda realizar, incluye
codificación, diseño y documentación de
cambios.
Facilidad de pruebas – La forma como el
software permite realizar pruebas a las
modificaciones sin poner el riesgo los datos.
28. ISO/IEC 9126
MODELO DE CALIDAD
Portabilidad
Conjunto de atributos relacionados con la
capacidad que tiene el software para ser
trasladado de un entorno a otro.
Capacidad de instalación - Atributos del
software relacionados con el esfuerzo
necesario para instalar el software.
29. ISO/IEC 9126
MODELO DE CALIDAD
Portabilidad
Conjunto de atributos relacionados con la
capacidad de un sistema software para ser
transferido desde una plataforma a otra. Es la
capacidad que tiene el software para ser
trasladado de un entorno a otro.
Capacidad de instalación - Atributos del software
relacionados con el esfuerzo necesario para instalar el
software en un ambiente especificado.
30. ISO/IEC 9126
MODELO DE CALIDAD
Portabilidad
Capacidad de reemplazamiento - La
capacidad que tiene el software para ser
remplazado por otro software del mismo tipo, y
para el mismo objetivo.
31. ISO/IEC 9126
MODELO DE CALIDAD
Portabilidad
Adaptabilidad - Es como el software se adapta a
diferentes entornos especificados (hardware o sistemas
operativos) sin que implique reacciones negativas ante
el cambio
Co-Existencia - La forma de compartir recursos
comunes con otro software o dispositivo.
32. ISO/IEC 9126
MODELO DE CALIDAD
Calidad en uso
Calidad en uso es la calidad del software que el usuario
final refleja, la forma como el usuario final logra realizar los
procesos con satisfacción, eficiencia y exactitud.
Eficacia.
Productividad.
Seguridad.
Satisfacción.
33. ISO/IEC 9126
MODELO DE CALIDAD
PREGUNTAS GENERALES DE LAS CARACTERISTICAS DEL
MODELO DE CALIDAD
CARACTERISTICA PREGUNTA
FUNCIONALIDAD ¿Las funciones y Propiedades
satisfacen Las necesidades
Explícitas e implícitas; esto es,
el qué?
CONFIABILIDAD ¿Puede mantener el nivel de
rendimiento, bajo ciertas
condiciones y por cierto
tiempo?
USABILIDAD ¿El software, es fácil de usar y
de aprender?
EFICIENCIA ¿Es rápido y
Minimalista en cuanto a uso
de recursos, bajo ciertas
condiciones?
CAPACIDAD DE
MANTENIMIENTO
¿Es fácil de modificar y
testear?
34. ISO/IEC 9126
MODELO DE CALIDAD
PREGUNTAS GENERALES DE LAS CARACTERISTICAS
DEL MODELO DE CALIDAD
CARACTERISTICA PREGUNTA
PORTABILIDAD ¿Es fácil de transferir de un
ambiente a otro?
CALIDAD EN USO ¿Muestra el usuario final
aceptación y seguridad del
software?
35. ISO/IEC 9126
Métricas
Conceptos básicos de Métricas
El IEEE define como métrica como ¨una medida
cuantitativa del grado en que un sistema,
componente o proceso posee un atributo dado¨.
Métricas internas
Son aquellas que no dependen de la ejecución del
software (medidas estáticas).
Métricas externas
Son aquellas aplicables al software en ejecución.
36. ISO/IEC 9126
Proceso de evaluación de
software
El proceso de evaluación de software se inicia con
una visión cualitativa y deriva en una evaluación
cuantitativa, siendo todo el proceso documentado
y cumpliendo los siguientes pasos:
37. ISO/IEC 9126
Proceso de evaluación de software
Proceso de evaluación de software
Estado del software Conocimiento del el
estado del software, para la entrega al cliente.
Identificar el tipo de software Especificar el
tipo de software a evaluar, si es un sistema
operativo, software de seguridad, software de
ofimática, lenguaje de programación, base de
datos, aplicativo a la medida, entre otros.
38. ISO/IEC 9126
Proceso de evaluación de software
Proceso de evaluación de software
Perfiles de evaluadores - Se debe tener en
cuenta que los desarrolladores están
preocupados en características de calidad del
software como mantenibilidad y portabilidad.
39. ISO/IEC 9126
Proceso de evaluación de software
Proceso de evaluación de software
Especificar los objetivos - Conocer los objetivos
tanto generales como específicos del software.
Aplicar el modelo de calidad – Aplicar la calidad de
uso.
Criterios de evaluación - Los criterios para evaluar el
software se dividen en dos grandes bloques: uno
dedicado a criterios que son aplicables a cualquier tipo
de software (criterios generales), y otro conjunto
compuesto por criterios adaptables al grupo de
software evaluados (criterios específicos).
40. ISO/IEC 9126
Proceso de evaluación de software
Proceso de evaluación de software
Seleccionar métricas
Niveles o escalas, A cada métrica seleccionada le asigna
un puntaje máximo de referencia.
La suma de los puntajes máximos de todas las métricas
debe ser igual o aproximada a 100 puntos.
El personal que participa en la evaluación debe establecer
niveles de calificación cualitativa con base a los puntajes,
por ejemplo:
De 0 a 1 Inaceptable.
De 2 a 3 mínimo aceptable
Más de 3 Aceptable o satisfactorio
41. ISO/IEC 9126
Proceso de evaluación de software
Proceso de evaluación de software
Seleccionar métricas
Otro ejemplo de calificación cualitativa puede ser:
Deficiente
Insuficiente
Aceptable
Sobresaliente
Excelente.
42. ISO/IEC 9126
Proceso de evaluación de software
Proceso de evaluación de software
Establecer criterios - Las persona que participa en el
proceso de evaluación debe tener criterios con respecto
al indicador que se esta analizando, Es importante
tener en cuenta que el criterio debe ajustar al tipo de
software que se va a evaluar.
Tomar medidas - Para la medición, las métricas
seleccionadas se aplican al software. Los resultados
son valores expresados en las escalas de las métricas,
definidos previamente.
Resultados - El proceso de evaluación genera un
cuadro de resultados por cada uno de los principales
indicadores y el total final de resultado.
43. ISO/IEC 9126
Proceso de evaluación de software
Proceso de evaluación de software
Documentación - El proceso de evaluación se
documenta, indicando la fecha, empresa, los cargos,
nombres y apellidos, dependencia de las personas que
participan en el proceso de evaluación, especificando
las etapas en las que participaron.
Seguimiento - Si el resultado de la evaluación tiene
observaciones o indicadores de calidad bajos, y el
personal que lo evalúa permite realizar la corrección.
44. ISO/IEC 9126
El modelo de calidad McCall está organizado
sobre tres tipos de Características de Calidad:
Factores (especificar): Describen la visión
externa del software, como es visto por los
usuarios.
Criterios (construir): Describen la visión interna
del software, como es visto por el desarrollador.
Métricas (controlar): Se definen y se usan para
proveer una escala y método para la medida.
45. IEEE 829
IEEE 829
También conocida como la 829 Estándar para software
y prueba del sistema de documentación .
El propósito de esta norma es describir un conjunto de
documentos básicos de pruebas software.
46. IEEE 829
IEEE 829
La documentación de las pruebas de software también
debe describir los casos de prueba de los distintos tipos de
usuarios y cómo van a utilizar el software. El caso de
prueba incluye una descripción de cómo el software ha
sido probado para imitar cada tipo de acciones del usuario.
47. IEEE 829
IEEE 829
En un proyecto de desarrollo de software existe un
conjunto de documentos asociados a cada una de las
fases del ciclo de vida: planificación, análisis, diseño,
construcción,... Podemos considerar el proceso de testing
como un proyecto que se ejecuta en paralelo con el
desarrollo y en el que se pueden distinguir tres grandes
etapas:
Preparación de la pruebas
Ejecución de las pruebas
Finalización de las pruebas.
.
48. IEEE 829
IEEE 829
Propone una serie de documentos que encajan en las
etapas de testing de la siguiente forma:
Preparación de las pruebas
Plan de pruebas
Especificación de diseño de pruebas
Especificación de casos de prueba
Especificación de procedimientos de prueba
Informe de transferencia de elementos de prueba
Ejecución de las pruebas
Registro de pruebas
Informe de incidentes
Finalización de las pruebas
Informe de resumen de pruebas.
.
49. IEEE 829
PREPARACIÓN DE LAS PRUEBAS
PREPARACIÓN DE LAS PRUEBAS
La fase de preparación de las pruebas es la que
más documentación requiere ya que implica
definir aspectos como el calendario de pruebas,
qué se quiere probar, cómo se va a probar,
sobre qué entorno de pruebas, etc. El primer
paso en la documentación del proceso de
pruebas es la creación del plan de pruebas.
.
51. IEEE 829
PREPARACIÓN DE LAS PRUEBAS
PREPARACIÓN DE LAS PRUEBA
Plan de pruebas
Constituye el plan maestro que va a dirigir los
esfuerzos de testing de un proyecto
determinado. Un plan de pruebas debe
contemplar los siguientes aspectos:
.
52. IEEE 829
PREPARACIÓN DE LAS PRUEBAS
PREPARACIÓN DE LAS PRUEBA
Plan de pruebas
Qué elementos y funcionalidades del producto software van a
ser probados (y cuáles no).
Quién va a realizar las pruebas (asignar responsabilidades) y
qué recursos se necesitan en cuanto a personas.
Qué elementos y funcionalidades del producto software van a
ser probados (y cuáles no), es decir el alcance de las pruebas.
.
53. IEEE 829
PREPARACIÓN DE LAS PRUEBAS
PREPARACIÓN DE LAS PRUEBA
Documento de especificación de diseño
de pruebas
Este documento especifica las características y
funcionalidades que se quieren probar del producto
software y su priorización, así como los criterios de
éxito/fallo de las pruebas. Por ejemplo, en un módulo de
gestión de usuarios, las siguientes podrían ser
condiciones de prueba: “Un usuario puede darse de alta
en el sistema”, “Un usuario puede darse de baja en el
sistema”.
.
54. IEEE 829
PREPARACIÓN DE LAS PRUEBAS
PREPARACIÓN DE LAS PRUEBA
Documento de especificación de casos de
prueba
Los elementos relevantes que deben indicar el documento de casos
de prueba son:
Las precondiciones que se han de dar antes de la ejecución del
caso de prueba. Por ejemplo, “El usuario con nombre “Juan”
no debe existir en el sistema”. Interdependencias entre los casos de
test.
Por ejemplo, si hay un caso de test que crea con éxito un
usuario con nombre “Juan”, tendría que ser
ejecutado después del caso anterior para que las
precondiciones del primero se puedan cumplir.
55. IEEE 829
PREPARACIÓN DE LAS PRUEBAS
PREPARACIÓN DE LAS PRUEBA
Documento de especificación de los
procedimientos de prueba
Este documento específica aspectos como:
Los pasos detallados de cómo ejecutar cada test y el orden de
ejecución. La configuración exacta del entorno de pruebas.
Por ejemplo, un procedimiento de pruebas podría contener
instrucciones como las:
Paso 1: Recrear la base de datos ejecutando el script “bbdd.sql”.
Paso 2: Cargar usuarios en base de datos con el script
“usuarios.sql”.
Paso 3: Acceder a la URL http://pruebas/login
.
56. IEEE 829
PREPARACIÓN DE LAS PRUEBAS
PREPARACIÓN DE LAS PRUEBA
Informe de transmisión de elementos
de pruebas
Cuyo propósito es describir los elementos que van a
entrar en una fase de pruebas. De esta forma los
técnicos de pruebas pueden tener la garantía de que los
elementos que van a probar están preparados y saben
dónde localizarlos.
.
.
57. IEEE 829
DOCUMENTACIÓN DURANTE LA EJECUCIÓN
DE LAS PRUEBAS
DOCUMENTACIÓN DURANTE LA
EJECUCIÓN DE LAS PRUEBAS
Durante la ejecución de las pruebas es fundamental
conocer el estado del proceso de testing, saber qué
pruebas se han ejecutado y cuáles quedan pendientes,
qué defectos se han encontrado, etc. Para ello, se crean
los registros de pruebas y los informes de incidentes.
58. IEEE 829
DOCUMENTACIÓN DURANTE LA EJECUCIÓN
DE LAS PRUEBAS
DOCUMENTACIÓN DURANTE LA EJECUCIÓN DE
LAS PRUEBAS
Registro de pruebas
El registro de pruebas documenta los aspectos relativos
a la ejecución de las pruebas: qué test se han
ejecutado, quién y cuándo los ha ejecutado, en qué
orden, en qué entorno, si el test ha pasado o ha fallado.
59. IEEE 829
DOCUMENTACIÓN DURANTE LA EJECUCIÓN
DE LAS PRUEBAS
DOCUMENTACIÓN DURANTE LA EJECUCIÓN DE
LAS PRUEBAS
Informe de incidentes
debe contener toda la información necesaria para la
identificación y resolución del incidente: entradas
utilizadas, resultados esperados, resultados obtenidos,
paso del procedimiento en el que se ha producido el
incidente, configuración del entorno, valoración del
impacto.
60. IEEE 829
DOCUMENTACIÓN PARA LA FINALIZACIÓN
DE LAS PRUEBAS
DOCUMENTACIÓN PARA LA FINALIZACIÓN
DE LAS PRUEBAS
Una vez finalizado el proceso de pruebas,
se tiene que proporcionar suficiente información
para que los involucrados en el proyecto puedan
conocer los resultados y tomar decisiones.
61. IEEE 829
DOCUMENTACIÓN PARA LA FINALIZACIÓN
DE LAS PRUEBAS
Informe de resumen de pruebas
Este informe proporciona información sobre
las pruebas realizadas y el tiempo consumido, así como
valoraciones acerca de la calidad del proceso de testing realizado,
del nivel de calidad alcanzado en el producto.
Este informe final puede servir como base para planificar mejoras
futuras en el proceso de testing.
Sintetiza toda la información pertinente acerca del proceso de
prueba realizado, en particular:
Qué tan bien se realizaron las pruebas
El número de incidentes encontrados y descripción de los más
importantes
Evaluación de la calidad del sistema probado
Qué es lo que se hizo y cuánto se tardó