Uploaded by theaxeblue

CST - T1

advertisement
INGENIERÍA INFORMÁTICA
CALIDAD DEL
SOFTWARE
TEMA: Conceptos
Iniciales.
Ing. David Sánchez Rivero
Concepto: la calidad se ha convertido hoy en día en uno de los
principales objetivos estratégicos para las organizaciones debido a
que, cada vez más , su supervivencia depende de la calidad de los
productos y servicios que ponen a disposición de los usuarios y
clientes y de la satisfacción de estos.
Definiciones:
Según el diccionario de la Real Academia Española, la calidad es:
1. Propiedad o conjunto de propiedades inherentes a algo, que
permiten juzgar su valor.
2. Buena calidad, superioridad o excelencia.
3. Adecuación de un producto o servicio a las características
especificadas.
4. Carácter, genio, índole.
5. Condición o requisito que se pone en un contrato.
Diversos gurús de esta área han dejado su definición de calidad
como ser:
Joseph Juran: “la palabra calidad tiene múltiples significados. Los
dos significados que dominan el uso de la palabra son: 1. La
calidad consiste en las características del producto que
satisfacen las necesidades del cliente y les proporcionan por
tanto satisfacción con el producto. 2. Calidad consiste en
ausencia de deficiencias… Es conveniente estandarizar en una
corta definición la palabra calidad como adecuación al uso”.
W. Edwards Deming: “la dificultad de definir calidad es traducir las
necesidades futuras del usuario en características medibles, de
manera que un producto pueda ser diseñado y producido para
dar satisfacción al usuario al precio que paga…”
Armand Feigenbaum: “la calidad de producto o servicio puede ser
definida como características totales compuestas de producto y
servicio de marketing, ingeniería, fabricación y mantenimiento
por medio de las cuales el producto y servicio en uso cumplirá
las expectativas del cliente”.
Calidad del Software & Testing
2
El término calidad de software se refiere al grado de desempeño de
las principales características con las que debe cumplir un sistema
computacional durante su ciclo de vida (Fig. 1), dichas
características de cierta manera garantizan que el cliente cuente
con un sistema confiable, lo cual aumenta su satisfacción frente a la
funcionalidad y eficiencia del sistema construido.
Figura 1. Ciclo de vida del software
El concepto de calidad de software, según R. Pressman se asocia a
la "concordancia con los requisitos funcionales y de rendimiento
explícitamente establecidos con los estándares de desarrollo
plenamente documentados y con las características implícitas que
se espera de todo software desarrollado profesionalmente", con
base en los requisitos funcionales y no funcionales identificados en
la etapa de análisis del sistema, insumo principal para implementar
dichos requisitos con los atributos mínimos de calidad, fomentando
la aplicación de procesos estandarizados y criterios necesarios en
cada una de sus etapas, así se fomenta que el avance en el ciclo de
vida del software minimice el riesgo de fracaso del proyecto. Por su
parte, el Instituto de Ingenieros Eléctricos y Electrónicos (IEEE)
define calidad de software como "el grado con el que un sistema,
componente o proceso cumple los requerimientos especificados y
las necesidades o expectativas del cliente o usuario", denotando
que el énfasis radica en los requisitos específicos del sistema y en la
búsqueda de la satisfacción del cliente.
Calidad del Software & Testing
3
La calidad puede verse desde varios puntos de vista:
• Vista trascendental: la calidad es algo que se reconoce pero no
se define. Por lo que se puede concebir la calidad como un
ideal al que se intenta llegar, aunque no lo conseguimos debido
a deficiencias en la tecnología, en el proceso de fabricación, en
la compresión, etc. Esta vista no resulta demasiado útil para la
gestión de la calidad.
• Vista del usuario: la calidad es adecuación al propósito. Por lo
que se puede cuantificar las características de los productos,
medirlos y establecer objetivos a alcanzar.
• Vista del fabricante: la calidad es conformidad con las
especificaciones. Esta concepción de la calidad expande su
alcance para examinar la calidad durante la producción y
después de la entrega del producto. Se trata de una vista
centrada en el proceso.
• Vista basada en valor: la calidad depende de la cantidad que el
cliente esté dispuesto a pagar.
Hay que tener en cuenta que la calidad puede tener varios
orígenes:
• La calidad realizada: la que es capaz de obtener la persona que realiza el
trabajo, gracias a su habilidad en la ejecución de una tarea. Se potencia
con la mejora de las habilidades personales y técnicas de los
participantes en un proceso.
• La calidad planificada: la que se ha pretendido obtener. Es la que
aparece descrita en una especificación, en un documento de diseño o
en un plano. Es, por tanto, la que se le ha encomendado conseguir al
responsable de ejecutar el trabajo. Se potencia con la elaboración de
una especificación que sirva de buena referencia a los participantes de
un proceso.
• La calidad necesaria: la que el cliente exige con mayor o menor grado de
concreción o, al menos, la que le gustaría recibir. Se potencia con una
adecuada obtención de información de la idea de calidad de los clientes.
Calidad del Software & Testing
4
Conceptos relacionados con la calidad
Requisito: necesidad o expectativa establecida, generalmente
implícita u obligatoria.
Satisfacción del cliente: la percepción del cliente (que puede ser
externo o interno) sobre el grado en que se han cumplido sus
requisitos.
Capacidad de una organización, sistema o proceso: es la aptitud
para realizar un producto que cumple los requisitos para el mismo.
Conceptos relacionados con la gestión de la calidad
Política de la calidad: intenciones globales y orientaciones de una
organización relativas a la calidad tal como se expresan
formalmente por la alta dirección.
Sistema de gestión de la calidad: sistema de gestión para dirigir y
controlar una organización con respecto a la calidad.
Planificación de la calidad: parte de la gestión de la calidad
enfocada al establecimiento de los objetivos de la calidad y a la
especificación de los procesos operativos necesarios y de los
recursos relacionados para cumplir los objetivos de la calidad.
Control de la calidad: parte de la gestión de la calidad orientada al
cumplimiento de los requisitos de la calidad.
Aseguramiento de la calidad: parte de la gestión de la calidad
orientada a proporcionar confianza en que se cumplirán los
requisitos de la calidad.
Mejora de la calidad: parte de la gestión de la calidad orientada a
aumentar la capacidad de cumplir con los requisitos de la calidad.
Calidad del Software & Testing
5
Desde mediados del siglo pasado hasta la actualidad se han
propuesto diversos modelos para la gestión de la calidad y se han
aprobado diversas normas, varias de las cuales han sido aplicadas
en las organizaciones.
Gestión de la Calidad Total
La TQM, Total Quality Management, representa una “actitud” o
“filosofía” por la cual la organización pretende ofrecer a sus clientes
productos y servicios que satisfagan completamente sus
necesidades. Para ello se impregna la cultura de calidad en todos
los aspectos de la organización, se implementan los procesos
correctamente desde el principio y se intenta erradicar los defectos
de todo tipo de tareas.
La gestión de la calidad total concibe la organización como un
conjunto de procesos que se pueden gestionar siguiendo el ciclo
Planificar-Hacer-Verificar-Actuar que fue desarrollado por Walter
Shewhart y popularizado por W. Edwards Deming, por lo que se lo
conoce como Ciclo de Deming:
•Planificar: establecer los objetivos y procesos necesarios para
conseguir resultados de acuerdo con los requisitos del cliente
y las políticas de la organización.
•Hacer: implementar los procesos.
•Verificar: realizar el seguimiento y la medición de los
procesos y los productos respecto a las políticas, los objetivos
y los requisitos para el producto, e informar sobre los
resultados.
•Actuar: tomar acciones para mejorar continuamente el
desempeño de los procesos.
La gestión de la calidad total se basa, además, en otros principios
que persiguen la mejora continua de los procesos incorporando el
conocimiento y la experiencia de los trabajadores. Y son:
compromiso de la alta gestión con todos los empleados, reducción
de los ciclos de desarrollo, producción just in time, reducción de
costos de productos y servicios, etc.
Calidad del Software & Testing
6
NORMAS ISO 9000
La International Organization for Standarization nació en 1947 con
el propósito de facilitar la coordinación internacional de las normas
técnicas en los diferentes campos de la industria. Pueden ser
miembros de ISO todos los países que lo deseen, representados a
través de su organismo nacional de normalización. Por ejemplo,
ANSI (American National Standards Institute) por USA.
En algunas áreas, ISO colabora con otras organizaciones, por
ejemplo, en el campo de las tecnologías de la información forma,
junto con la IEC, el Joint Technical Commitee 1(JTC1).
El proceso de elaboración de una norma internacional, hasta su
publicación definitiva, puede ser bastante largo.
Normas sobre Calidad
La primera publicación de las normas ISO 9000 se realizó en 1987 y
cumpliendo el protocolo de ISO que obliga a que todas las normas
sean revisadas por lo menos cada cinco años.
Básicamente la norma ISO 9000 está compuesta por cuatro normas:
UNE-EN ISO 9000: Sistema de Gestión de la Calidad. Fundamentos y
vocabulario. Describe los fundamentos de los sistemas de gestión
de calidad y especifica su terminología.
UNE-EN ISO 9001: Sistema de Gestión de la Calidad. Requisitos. Esta
norma establece los requisitos para un sistema de gestión de
calidad que pueden utilizarse para su aplicación interna por las
organizaciones, para certificación o con fines contractuales. Se
centra en la eficacia.
UNE-EN ISO 9004: Gestión para el éxito sostenido de una
organización. Enfoque de gestión de la calidad. Persigue una mejora
continua de desempeño.
UNE-EN ISO 19011: Directrices para la auditoría de sistemas de
gestión de la calidad y/o medioambiental.
Calidad del Software & Testing
7
La familia ISO 9000 se basa en ocho principios de gestión de la
calidad que pueden ser utilizados por la dirección con el fin de
conducir a la organización hacia una mejora en el desempeño:
• Enfoque al cliente: las organizaciones dependen de sus clientes
y por lo tanto deberían comprender las necesidades actuales y
futuras de los clientes, satisfacer los requisitos de los mismos y
esforzarse en exceder sus expectativas.
• Liderazgo: los líderes establecen la unidad de propósito y la
orientación de la organización.
• Participación del personal: todo el personal es esencial para la
organización y su total compromiso posibilita que sus
habilidades sean utilizadas en beneficio de la organización.
• Enfoque basado en procesos: una ventaja de este enfoque es el
control continuo que proporciona sobre los vínculos entre los
procesos individuales dentro del sistema de procesos, así como
sobre su combinación e interacción.
• Enfoque de sistema para la gestión: identificar, entender y
gestionar los procesos interrelacionados como un sistema
contribuye a la eficiencia y eficacia de la organización en el
logro de sus objetivos.
• Mejora continua: la mejora continua del desempeño debe ser
un objetivo permanente.
• Enfoque basado en hechos para la toma de decisiones: las
decisiones eficaces se basan en el análisis de los datos y la
información.
• Relaciones mutuamente beneficiosas con el proveedor: para
crear valor entre la organización y los proveedores.
Calidad del Software & Testing
8
Norma ISO 9001
Esta norma internacional especifica los requisitos para un
sistema de gestión de calidad, cuando una organización:
• Necesita demostrar su capacidad para proporcionar
regularmente productos que satisfagan los requisitos del
cliente y los legales y reglamentarios aplicables.
• Aspira a aumentar la satisfacción del cliente a través de
la aplicación eficaz del sistema, incluidos los procesos
para la mejora continua del sistema y el aseguramiento
de la conformidad con los requisitos del cliente y los
legales y reglamentarios aplicables.
Todos los requisitos de esta norma internacional son
genéricos y se pretende que sean aplicables a todas las
organizaciones sin importar su tipo, tamaño y producto
suministrado.
Calidad del Software & Testing
9
Los modelos de calidad de software generalmente están
estructurados en factores de calidad que a su vez se componen de
criterios que son evaluados desde lo general a lo particular, y
permitir la reducción de la subjetividad en la asignación de un valor,
ya sea cuantitativo o cualitativo.
Así mismo, los modelos de calidad de software se clasifican de
acuerdo con el enfoque de evaluación, ya sea a nivel de producto,
proceso o calidad en uso.
Calidad a nivel de producto
La principal finalidad del modelo de calidad de producto es
especificar y evaluar el cumplimiento de criterios del producto, para
lo cual se aplican medidas internas y/o medidas externas. Por esta
razón, algunas normas y estándares han definido la calidad a nivel
de producto en tres tipos: interna, externa y en uso. Este enfoque
está orientado a verificar el cumplimiento de las características que
permitan alcanzar la satisfacción del cliente en cuanto a los
requisitos definidos en las etapas iniciales del proceso de
desarrollo.
Calidad a nivel de proceso
La calidad de un sistema software debe ser programada desde el
inicio del proyecto, y posteriormente en cada etapa del proceso de
desarrollo se debe llevar a cabo el control y seguimiento de los
aspectos de calidad, para minimizar los riesgos y ofrecer soporte
continuo, se garantiza así un óptimo nivel de cumplimiento de los
factores de calidad, teniendo en cuenta que si en alguna de las
etapas se deja de lado la verificación de los factores y criterios es
posible que se presente deficiencia en alguno de éstos y disminuirá
el nivel de calidad no solo del proceso, sino también del producto
en desarrollo.
Calidad del Software & Testing
10
Calidad en uso
Es importante resaltar que aunque en diferentes escenarios se
utilizan los términos usabilidad y calidad en uso, con el mismo
propósito y de forma intercambiable tienen significados distintos,
principalmente porque el concepto de calidad en uso es más amplio
y abarca más elementos que la usabilidad, y esta última es una de
las características de calidad de un producto software. La calidad en
uso se define como el "conjunto de atributos relacionados con la
aceptación por parte del usuario final y seguridad", y está basada
en la eficacia, productividad, seguridad y satisfacción, según ISO/IEC
9126.
Modelos a nivel de producto
McCall: Uno de los modelos pioneros en la evaluación de la calidad
de software, McCall se basa en once factores de calidad y los
mismos están organizados en tres ejes, donde el usuario puede
examinar la calidad del producto.
• Operación del Producto: se refiere a las características de
operación y los factores de calidad que integran este apartado son:
• Facilidad de Uso: por parte de los usuarios del sistema.
• Integridad: para proteger al programa de accesos que no
han sido autorizados.
• Eficiencia: en la ejecución del programa y en la utilización de
recursos por parte del mismo.
• Corrección o exactitud.
• Fiabilidad: que el sistema no falle.
• Revisión del producto: es la habilidad para ser cambiado e incluye
los siguientes factores:
• Facilidad de prueba: asegurar que el programa esté libre de
errores y conoce las especificaciones del usuario.
• Facilidad de Mantenimiento: esfuerzo requerido para
encontrar y solucionar errores que se presenten en la
operación del sistema.
Calidad del Software & Testing
11
• Flexibilidad: facilidad de realizar cambios.
• Transición del Producto: describe la adaptación al nuevo
ambiente e incluye los siguientes factores de calidad:
• Reusabilidad: se puede volver a usar el software.
• Portabilidad: capacidad de transferir un programa de un
ambiente a otro.
• Interoperabilidad: se puede unir a un sistema con otro.
Boehm: Es un modelo incremental, dividido en regiones de tareas y
estas a su vez en conjuntos de tareas, las cuales se ajustan a la
cantidad de iteraciones que el equipo defina, y cada iteración se
divide en cuatro sectores: planeación, análisis de riesgo, ingeniería
y evaluación.
WebQEM: es una metodología de evaluación de calidad de sitios
Web (Web-site Quality Evaluation method), diseñada para la
evaluación siguiendo seis fases: planificación y programación de la
evaluación de calidad, definición y especificación de requerimientos
de calidad, definición e implementación de la evaluación elemental,
definición e implementación de la evaluación global, análisis de
resultados, conclusión y documentación, validación de métricas.
ISO 25000: También llamadas como SQuaRE, cuyo propósito es
guiar el desarrollo con los requisitos y la evaluación de atributos de
calidad, principalmente: la adecuación funcional, eficiencia de
desempeño, compatibilidad, capacidad de uso, habilidad,
seguridad, mantenibilidad y portabilidad.
Calidad del Software & Testing
12
Históricamente se han desarrollado para evaluar la calidad de los
productos software diferente modelos que pretenden seguir las
directrices de calidad de otros tipos de productos: descomponer la
calidad en una categoría de características más sencillas que facilita
su estudio.
Como ya se vio uno de los modelos clásicos más utilizados es el
desarrollado por McCall, en el que la calidad de un producto
software se descompone en 11 características o factores de calidad
agrupados en tres ejes o categorías.
La evolución de estos modelos sobre calidad de producto software
lo constituye la familia ISO/IEC 25000, basada especialmente sobre
las normas ISO/IEC 9126 e ISO/IEC 14598.
Familia ISO/IEC 25000
Esta familia de normas se organiza en cinco apartados:
ISO/IEC 2500n: División de Gestión de Calidad. Las normas que
forman este apartado definen todos los modelos, términos y
definiciones comunes referenciados por todas las otras normas de
la familia 25000.
ISO/IEC 2501n: División de Modelo de Calidad. La norma de este
apartado presenta un modelo de calidad detallada incluyendo
características para calidad interna, externa y en uso.
ISO/IEC 2502n: División de Medición de Calidad. Estas normas
incluyen un modelo de referencia de la medición de la calidad del
producto, definiciones de medidas de calidad (interna, externa y en
uso) y guías prácticas para su aplicación.
ISO/IEC 2503n: División de Requisitos de Calidad. Estas normas
ayudan a especificar requisitos de calidad que pueden ser utilizados
en el proceso de licitación de requisitos de calidad del producto
software a desarrollar o como entrada al proceso de evaluación.
ISO/IEC 2504n: División de la Evaluación de Calidad. Este apartado
incluye normas que proporcionan requisitos, recomendaciones y
guías para la evaluación del producto software.
Calidad del Software & Testing
13
Este modelo distingue ocho características de calidad de un producto
software.
Adecuación Funcional: capacidad del producto software para
proporcionar funciones que satisfacen necesidades declaradas e
implícitas cuando se usa en las condiciones especificadas.
Se subdivide a su vez en:
• Completitud funcional: grado en el cual el conjunto de
funcionalidades cubre todas las tareas y los objetivos del
usuario especificados.
• Corrección funcional: capacidad del producto o sistema para
proveer resultados correctos con el nivel de precisión
requerido.
• Adecuación funcional: capacidad del producto software para
proporcionar un conjunto apropiado de funciones para tareas y
objetivos de usuario especificados.
Fiabilidad: capacidad de un sistema o componente para desempeñar
las funciones especificadas, cuando se usa bajo las condiciones y el
periodo de tiempo especificados.
Se subdivide a su vez en:
• Madurez: capacidad del sistema para satisfacer las necesidades
de fiabilidad en condiciones normales.
• Disponibilidad: capacidad del sistema o componente de estar
operativo y accesible para su uso cuando se requiere.
• Tolerancia a fallos: capacidad del sistema o componente para
operar según lo previsto en presencia de fallos hardware o
software.
• Capacidad de recuperación: capacidad del producto software
para recuperar los datos directamente afectados y restablecer
el estado deseado del sistema en caso de interrupción o fallo.
Eficiencia de Desempeño: esta característica trata del desempeño
relativo al total de recursos utilizados bajo determinadas condiciones.
Se subdivide a su vez en:
Calidad del Software & Testing
14
• Comportamiento temporal: los tiempos de respuesta y
procesamiento y los ratios de through de un sistema cuando
lleva a cabo sus funciones bajo condiciones determinadas en
relación con un banco de pruebas (benchmark) establecido.
• Utilización de recursos: las cantidades y tipos de recursos
utilizados cuando el software lleva a cabo sus función bajo
condiciones determinadas.
Capacidad de uso (Usabilidad): capacidad del producto software para
ser entendido, aprendido, usado y resultar atractivo para el usuario,
cuando se usa bajo determinadas condiciones.
Se subdivide a su vez en:
• Capacidad para reconocer su adecuación: capacidad del producto
que permite al usuario entender si el software es adecuado para
sus necesidades.
• Capacidad para ser usado: capacidad del producto que permite al
usuario operarlo y controlarlo con facilidad.
• Protección contra errores de usuario: capacidad del sistema para
proteger a los usuarios de hacer errores.
• Estética de la interfaz de usuario: capacidad de la interfaz de
usuario de agradar y satisfacer la interacción con el usuario.
• Capacidad de aprendizaje técnico: capacidad del producto que
permite al usuario aprender su aplicación.
• Accesibilidad técnica: capacidad del producto que permite que
sea utilizado por usuarios con determinadas discapacidades.
Calidad del Software & Testing
15
Download