Documentos de Académico
Documentos de Profesional
Documentos de Cultura
En este artículo se revisan y comparan los modelos de calidad más usados para
especificar los atributos de calidad del software y las métricas para medirlos, en
contraste con las pruebas cuyo objetivo es validar o verificar el buen
funcionamiento y el cumplimiento de las especificaciones.
Indice de contenidos
De forma general, el conjunto de las pruebas (Testing) tiene como objetivo evaluar
la calidad de un producto, mejorándolo si cabe, mediante la identificación de
defectos, problemas y discrepancias.
Tipo I: Las que nos sirven para comprobar que el software hace lo que tiene
que hacer (siguiendo las especificaciones y requerimientos) y que lo hace
correctamente. Se centra en la búsqueda de errores o discrepancias
(respecto a los requerimientos y especificaciones).
Tipo II: Las que nos sirven para comprobar que el software opera
óptimamente, de acuerdo con los atributos de calidad estándares y
específicos. Se centra en la performance y el funcionamiento óptimo en la
interacción con el usuario y con el entorno.
QA: news – N10
Las actividades de V&V, tal como se describen en IEEE 1012, no se llevan a cabo
puntualmente, sino que se realizan de forma iterativa a lo largo del ciclo de vida del
software, desde su diseño hasta su retirada, pasando por su construcción.
Podemos encontrarnos con una aplicación que entre sus funcionalidades está la de
buscar registros en una base de datos. Esta tarea la puede hacer correctamente,
pero puede tardar varios minutos, enlentenciendo así el trabajo de los usuarios.
Una prueba del Tipo I no detectaría errores en esta función, mientras que una
prueba del Tipo II daría un resultado negativo, indicando que esta función tendría
que mejorarse.
Otra aplicación puede funcionar correctamente y presentar las pantallas y los datos
con la velocidad suficiente, pero las opciones para el manejo de la aplicación se
pueden presentar en menús muy complicados, siendo difícil encontrar las opciones
o teniendo el usuario que pasar por numerosas pantallas para llegar a la
información que busca. En este caso tampoco se encontrarían errores en las
pruebas del primer tipo, pero algunas de las pruebas del segundo tipo nos darían
resultados negativos.
El presente artículo está dedicado a los modelos de calidad que se centran en este
segundo gran tipo de pruebas, en ocasiones difíciles de concretar, o de hacer
tangibles, como pueden ser la Facilidad de uso, la Idoneidad o la Facilidad de
aprendizaje, por ejemplo.
A menudo, cuando se habla de calidad del software 1, tenemos que concretar cuáles
son las propiedades que hacen que podamos decir que un software es de “buena”
calidad. Por eso, para concretar en qué nos hemos de fijar para evaluar el software,
se divide el concepto de calidad en una serie de características, atributos o
factores, como por ejemplo:
1
Según el IEEE Std. 1061: “Software quality is the degree in which software possesses a desired
combination of quality attributes. The purpose of software metrics is to make assessments throughout the
software life cycle as to whether the software quality requirements are being met…. The use of software
metrics reduces subjectivity in the assesment and control of software quality by providing a quantitative
basis for making decisions about software quality….However, the use of metrics does not eliminate the
need for human judgment in software assessment.”
QA: news – N10
El estándar ISO/IEC 15939 define una Entidad como un objeto que puede ser
caracterizado mediante la medición del conjunto de sus atributos, y un Atributo
como una característica medible de una entidad. Para nosotros, en este artículo,
una aplicación o software o sistema informático es una entidad 2.
Según IEEE Std 1061 3 una Métrica de calidad de un software es una función
cuyas entradas son datos del software y cuyas salidas son valores numéricos que
pueden interpretarse como el grado en el cual el sofware posee un atributo que
afecta a su calidad.
2
Para más detalles se puede consulta el estándar ISO/IEC Guide 99:2007 (más comúnmente conocido
como VIM), que recopila un conjunto de definiciones y términos relacionados con la ciencia de la
medición (metrología) en general y no sólo de la ingeniería del software.
3
El IEEE 1061 Standard for a Software Quality Metrics Methodology , define una metodología para llevar
a cabo la identificación, implementación, y evaluación de métricas para procesos y productos software,
válida para todas las fases del ciclo de vida del software, independientemente del modelo de desarrollo y
del tipo de ciclo de vida (cascada, iterativo e incremental, etc.).Este estándar no prescribe explícitamente
las métricas que tienen que utilizarse, sino que se limina sugerir el uso de métricas en la gestión de
proyectos de desarrollo e implantación de software, con objeto de mejorar la calidad del producto
obtenido.
QA: news – N10
Calidad del proceso. Que sirven para supervisar la ejecución del proyecto,
midiendo tiempos y fases, y para evaluar y hacer el seguimiento de los
riesgos.
Calidad del producto. Que se centran en las características del software, en
lugar de en el proceso seguido para su producción.
Fc= c1 * m1 + c2 * m2 + … + cn * mn
– mi métrica i
Según Pressman (1998) las métricas para determinar los factores de calidad
pueden ser:
– Facilidad de auditoria
– Exactitud
– Completitud
– Concisión
– Consistencia
– Tolerancia de errores
– Eficiencia de la ejecución
– Facilidad de expansión
– Generalidad
– Instrumentación
– Modularidad
– Facilidad de operación
– Seguridad
– Auto-documentación
– Simplicidad
– Facilidad de traza
– Formación
QA: news – N10
Por otra parte, el estándar CMM (Capability Maturity Model), elaborado por el SEI
(Universidad Carnegie Mellon), permite determinar la madurez de los procesos de
calidad relacionados con las tecnologías de la información en una organización e
identifica las prácticas clave requeridas para incrementar la madurez de los
mismos. El estándar ISO/IEC 15504 (SPICE) está basado en este modelo. Sin
embargo, CMM y sus derivados, como SPICE, CMMi o TMMi, no entran a considerar
los atributos de calidad y las métricas, por lo que caen fuera del ámbito del
presente artículo.
Fig.5. Esquema que muestra las similitudes entre los modelos GQM e ISO 9126, en
cuanto a la descomposición de las características o atributos básicos de calidad
(objetivos o goals en GQM) en subcaracterísticas (Questions para GQM), y a la
determinación de las métricas a utilizar para medirlas.
QA: news – N10
Los valores men y may corresponden al menor y mayor grado de satisfacción para
cada atributo medido; el valor v corresponde al valor obtenido en la medición del
atributo; s viene a ser el grado de satisfacción.
cada criterio las métricas para evaluarlo, indicando los valores máximo y mínimo
aceptables.
Facilidad de Operación
Facilidad de Comunicación
Facilidad de Aprendizaje
¿Es seguro? Puedo controlar su uso?. Grado con que puede controlarse
2 Integridad
el acceso al software o a los datos a personal no autorizado
Facilidad de Auditoría
Control de Acceso
Completitud
Consistencia
Trazabilidad
¿Lo hace de forma exacta todo el tiempo?. Grado que se puede esperar
4 Fiabilidad de una aplicación lleve a cabo las operaciones especificadas y con la
precisión requerida
Precisión
Consistencia
Tolerancia a fallos
QA: news – N10
Modularidad
Simplicidad
Eficiencia en Ejecución
Eficiencia en Almacenamiento
Modularidad
Simplicidad
Consistencia
Concisión
Autodescripción
Modularidad
Simplicidad
Autodescripción
Instrumentación
Autodescripción
Capacidad de expansión
Generalidad
QA: news – N10
Modularidad
Autodescripción
Generalidad
Modularidad
Compatibilidad de comunicaciones
Compatibilidad de datos
Autodescripción
Modularidad
Métrica Descripción
documentación
Eficiencia en la
El tiempo de ejecución es el óptimo en función de la tarea ejecutada.
ejecución
Facilidad de
Comprobar la conformidad con los estándares.
auditoría
Facilidad de
Facilidad con la que el usuario puede operar el sistema.
operación
Debe poseer un buen sistema de ayudas para que los nuevos usuarios
Formación no encuentren muchas dificultades para aprender el manejo del
sistema.
Independencia del
Grado en que el software es independiente del entorno de software en
sistema de
que se ejecuta (especialmente en lo referente al sistema operativo).
software
Tolerancia de
Grado de pérdida o corrupción de datos cuando se produce un fallo.
errores
Fig. 6. Esquema de las relaciones entre las métricas y los factores en el modelo de
McCall.
QA: news – N10
Por ejemplo, para aplicar las métricas asociadas al criterio de calidad “completitud”,
dentro del factor de calidad “corrección” tendríamos que usar la siguiente lista de
comprobación:
Fig.7. Grado de correlación entre los distintos factores. Circulos blancos indican
alta correlación (un alto grado de calidad en un factor implica probablemente un
alto grado de calidad en el otro) y circulos negros indican baja correlación.
QA: news – N10
4
El modelo de Boehm (1978)
Las características de alto nivel representan las tres preguntas básicas que los
usuarios del software se hacen:
4
http://sunset.usc.edu/Research_Group/barry.html.
QA: news – N10
Portabilidad.
Confiabilidad.
Eficiencia.
Usabilidad.
Fácil de entender.
Fácil de probar.
Flexibilidad.
dirigir el desarrollo del producto de software 5. Por este motivo se centra en hacer
corresponder una serie de atributos internos del software con su implicación en
atributos externos observables y medibles. Es decir, atributos de alto nivel, como la
fiabilidad no pueden aplicarse directamente durante el desarrollo de un software;
en su lugar hay que considerar una serie de propiedades cuya resultante sea un
comportamiento fiable del software. De esta forma, a diferencia del modelo de
McCall, la calidad se construye de abajo hacia arriba (bottom-up), desde las
propiedades tangibles de bajo nivel hacia los atributos de calidad de alto nivel.
1. Corrección
2. Cualidades internas
3. Cualidades contextuales
4. Cualidades descriptivas
5
De hecho, Dromey propone el uso de diferentes modelos de calidad para cada etapa de desarrollo del
software. Así tenemos un modelo de calidad para los requerimientos, un modelo de calidad para el diseño
y un modelo de calidad para la implementeación. Cada uno de estos modelos tiene su propio conjunto de
atributos de calidad de algo nivel y subatributos.
QA: news – N10
6
ISO/IEC 9126 se subdivide en cuatro partes:
6
Desde el 2005 el estándar ISO/IEC 94126 fue asumido e integrado en el proyecto SQuaRE (Software
product Quality Requirements and Evaluation), desarrollado con la ISO 25000.
QA: news – N10
Una de las novedades de la ISO 9126, respecto a los modelos anteriores, es que
incluye la Funcionalidad como característica de calidad 7. Además se hace una
distinción entre calidad interna, calidad externa y calidad en uso. Los atributos que
pueden medirse durante el proceso de desarrollo se consideran internos, mientras
que los atributos externos son los que se pueden medir durante el proceso de
testing. Por otro lado la “calidad en uso” es la que es percibida por el usuario.
Fig.11. Esquema conceptual de las relaciones entre los diferentes tipos de calidad
en ISO 9126.
7
En el enfoque del presente artículo, los atributos y las pruebas relacionadas con la funcionalidad los
consideraríamos como de Tipo I (enfocados principalmente en la detección de errores y discrepancias, en
lugar de centrarse en la mejora u optimización).
QA: news – N10
Nombre Descripción
8
Esta característica se evalúa con pruebas que en general son de lo que aquí hemos denominado tipo I, es decir,
buscan la existencia de errores respecto al funcionamiento requerido.
QA: news – N10
TMap® (Test Management Approach) fue originalmente creado por Sogeti en 1995,
adaptando los modelos de calidad más comunes, y fue actualizado en el 2006 con
un enfoque más dirigido a procesos de negocio (TMap Next).
Catálogos de Atributos
Conclusión
En todos los casos existe un esfuerzo clasificador que nos permita concretar y hacer
medible aspectos del software que pueden llegar a ser muy subjetivos.
Bibliografía consultada
o IEEE Std 1061-1998 IEEE Standard for a Software Quality Metrics Methodology
o Boehm, B. W., Brown, J. R., Kaspar, H., Lipow, M., McLeod, G., and Merritt, M.,
Characteristics of Software Quality, North Holland, 1978.
o McCall, J. A., Richards, P. K., and Walters, G. F., "Factors in Software Quality",
Nat.Tech.Information Service, no. Vol. 1, 2 and 3, 1977.
o Dromey, R. G., "A model for software product quality", IEEE Transactions on
Software Engineering, no. 2,pp. 146-163, 1995.
o TMap Next, for result-driven testing (Tim Koomen, Leo van der Aalst, Bart
Broekman, Michiel Vroon). UTN Publishers (Second Ed. 2007).
o Barbacci, Mario, Mark Klein, Thomas Longstaff, and Charles Weinstock. "Quality
Attributes." Technical Report CMU/SEI-95-TR-021 ESC-TR-95-021. 1995.
Software Engineering Institute, Carnegie Mellon University, Pittsburgh, PA.