Calidad De Software Diapositivas
-
Upload
juancabicho -
Category
Technology
-
view
23.076 -
download
8
description
Transcript of Calidad De Software Diapositivas
Calidad de Software
Ing. Felipe Aliaga Cavero
CAPACIDAD IFundamentos de la Calidad
de Software
Calidad en el Proceso de Software
CAPACIDAD IIModelos y Estándares de
Calidad de Software
•ISO 9000
•CMM (Estados Unidos)
•Tick It (Inglaterra)
•Bootstrap (Europa)
•ISO/SPICE (Australia)
Modelos de Calidad de Software – Calidad del Proceso
ISO: INTERNATIONAL ORGANIZATION FOR STANDARIZATION
COMITÉS TÉCNICOS (TC)
SUBCOMITÉS (SC)
GRUPOS DE TRABAJO (WG)
Borradorde WG
WD
Borradorde comité
CD
Borrador de norma intern.
DIS
Borrador final norma intern.
FDIS
Norma intern.
IS
Especificación técnica (TS) Informe técnico (TR)
Especificación pública (PAS) Acuerdo técnico de la industria (ITA)
ISO 9000
• UNE-EN ISO 9000:2000 Sistemas de gestión de la calidad. Fundamentos y vocabulario (ISO 9000:2000)
• UNE-EN ISO 9001:2000 Sistemas de gestión de la calidad. Requisitos (ISO 9001:2000)
• UNE-EN ISO 9004:2000 Sistemas de gestión de la calidad.
Directrices para la mejora del desempeño (ISO 9004:2000)
• Norma ISO 19011, que proporciona orientación relativa a las auditorías de sistemas de gestión de la calidad y de gestión ambiental.
NORMAS ISO 9000
ISO 9000
NORMAS ISO 9000
ISO 9000
RAZONES PARA USAR ISO 9000
Demanda del cliente Necesidad de mejorar procesos/sistemas
ISO 9000
ISO 9000
• Enfoque al cliente
• Liderazgo
• Participación del personal
• Enfoque basado en procesos • Enfoque de sistema para la gestión
• Mejora continua
• Enfoque basado en hechos para la toma de decisión • Relaciones mutuamente beneficiosas con el proveedor
PRINCIPIOS DE GESTIÓN DE LA CALIDAD
ISO 9000
OBJETO Y CAMPO DE APLICACIÓN
a) las organizaciones que buscan ventajas por medio de la implementación de un sistema de gestión de la calidad;
b) las organizaciones que buscan la confianza de sus proveedores en que sus requisitos para los productos serán satisfechos;
c) los usuarios de los productos;
d) aquellos interesados en el entendimiento mutuo de la terminología utilizada en la gestión de la calidad (por ejemplo: proveedores, clientes, entes reguladores);
e) todos aquellos que, perteneciendo o no a la organización, evalúan o auditan el sistema de gestión de la calidad para determinar su conformidad con los requisitos de la Norma ISO 9001
f) todos aquellos que, perteneciendo o no a la organización, asesoran o dan formación sobre el sistema de gestión de la calidad adecuado para dicha organización;
g) aquellos quienes desarrollan normas relacionadas.
ISO 9000
FUNDAMENTOS DE LOS SISTEMAS DE GESTIÓN DE LA CALIDAD
•Base racional para los sistemas de gestión de la calidad
•Requisitos para los sistemas de gestión de la calidad y requisitos para los productos
•Enfoque de sistemas de gestión de la calidad
•Enfoque basado en procesos
•Política de la calidad y objetivos de la calidad
•Papel de la alta dirección dentro del sistema de gestión de la calidad
•Documentación
•Evaluación de los sistemas de gestión de la calidad
•Mejora continua
•Papel de las técnicas estadísticas
•Sistemas de gestión de la calidad y otros sistemas de gestión
•Relación entre los sistemas de gestión de la calidad y los modelos de excelencia
ISO 9000
Enfoque de sistemas de gestión de la calidad
• Determinar las necesidades y expectativas de los clientes y de otras partes interesadas;
• Establecer la política y objetivos de la calidad de la organización;
• Determinar los procesos y las responsabilidades necesarias para el logro de los objetivos de la calidad;
• Determinar y proporcionar los recursos necesarios para el logro de los objetivos de la calidad;
• Establecer los métodos para medir la eficacia y eficiencia de cada proceso;
• Aplicar estas medidas para determinar la eficacia y eficiencia de cada proceso;
• Determinar los medios para prevenir no conformidades y eliminar sus causas;
• Establecer y aplicar un proceso para la mejora continua del sistema de gestión de la calidad.
ISO 9000
Enfoque basado en procesos
ISO 9000
Enfoque basado en procesos
ISO 9000
• Establecer y mantener la política de la calidad y los objetivos de la calidad de la organización;
• Promover la política de la calidad y los objetivos de la calidad a través de la organización para aumentar la toma de conciencia, la motivación y la participación;
• Asegurarse del enfoque hacia los requisitos del cliente en toda la organización;
• Asegurarse de que se implementan los procesos apropiados para cumplir con los requisitos de los clientes y de otras partes interesadas y para alcanzar los objetivos de la calidad;
• Asegurarse de que se ha establecido, implementado y mantenido un sistema de gestión de la calidad eficaz y eficiente para alcanzar los objetivos de la calidad;
• Asegurarse de la disponibilidad de los recursos necesarios;
• Revisar periódicamente el sistema de gestión de la calidad;
• Decidir sobre las acciones en relación con la política y con los objetivos de la calidad;
• Decidir sobre las acciones para la mejora del sistema de gestión de la calidad.
Papel de la alta dirección
ISO 9000
Cada organización debería determinar qué procesos deben documentarse en función de los requisitos de su cliente y de los legales o reglamentarios aplicables, de la naturaleza de sus actividades y de su estrategia corporativa global.
Al determinar qué procesos deberían documentarse la organización podría considerar factores tales como:
- el efecto sobre la calidad
- el riesgo de insatisfacción del cliente
- los requisitos legales y reglamentario
- el riesgo económico
- la eficacia y eficiencia
- la competencia del personal
- la complejidad de los procesos
ISO 9000
Evaluación de los sistemas de gestión de la calidad
Procesos de evaluación:
• ¿Se ha identificado y definido apropiadamente el
proceso?
• ¿Se han asignado las responsabilidades?
• ¿Se han implementado y mantenido los
procedimientos?
• ¿Es el proceso eficaz para lograr los resultados
requeridos? Auditorías del sistema de gestión de la calidad
Revisión del sistema de gestión de la calidad
ISO 9000
Mejora continua
a) Análisis y evaluación de la situación existente para identificar
áreas para la mejora;
b) Establecimiento de los objetivos para la mejora;
c) Búsqueda de posibles soluciones para lograr los objetivos;
d) Evaluación de dichas soluciones y su selección;
e) Implementación de la solución seleccionada;
f) Medición, verificación, análisis y evaluación de los resultados
de la implementación para determinar que se han alcanzado
los objetivos
ISO 9000
CAPACIDAD IIIMétricas en la Calidad de
Software
Modelo Mc-Call
CAPACIDAD IVActividades de Control de
Calidad de Software
Calidad del Producto
Verificación & Validación
Pruebas de Software
Contenidos
• Introducción• Pruebas de Caja Blanca
– Prueba del Camino Básico– Pruebas de Estructuras de Control
• Pruebas de Caja Negra– Partición Equivalente– Análisis de Valores Límite
• Herramientas para Pruebas
Introducción
• Pruebas: factor crítico para garantizar la calidad del software
• Una prueba conlleva la intención de descubrir algún error
• Un caso de prueba es bueno cuando su ejecución conlleva una alta probabilidad de encontrar un error
• El éxito de la prueba se mide en función de la capacidad de detectar un error que estaba oculto
PruebaPrueba
Modelo de Modelo de FiabilidadFiabilidad
DepuraciónDepuración
EvaluaciónEvaluación
ConfiguraciónConfiguracióndel Softwaredel Software
ConfiguraciónConfiguraciónde lade la
PruebaPrueba
ErroresErrores
CorrecionesCorreciones
PredicciónPredicciónFiabilidadFiabilidad
Resultados Resultados esperadosesperados
Resultados de Resultados de la pruebala prueba
Datos de tasa Datos de tasa de errorde error
... Introducción
... Introducción
• Tipos de Pruebas:– Unitarias– de Integración– de Aceptación– de Regresión– de Carga– Alpha– Beta– ...
... Introducción
• El diseño de casos de prueba para la verificación del software puede significar un esfuerzo considerable (cerca del 50% del tiempo total de desarrollo)
• Para Pruebas Unitarias existen fundamentalmente dos enfoques: – Pruebas de Caja Blanca (o Pruebas Estructurales) – Pruebas de Caja Negra (o Pruebas Funcionales)
• Combinar ambos enfoques permite lograr mayor fiabilidad
• Conceptos – Error: acción humana que produce una falta– Falta: algo que está mal en un producto (modelo,
código, documento, etc.)– Fallo: manifestación de una falta– Defecto: error, falta o fallo
• Verificación y Validación– Verificación: ¿estamos construyendo el producto
correctamente? – Validación: ¿estamos construyendo el producto
correcto?
... Introducción
• La prueba de la caja blanca usa la estructura de control del diseño procedural para derivar los casos de prueba
• Idea: confeccionar casos de prueba que garanticen que se verifican todos los caminos independientes
• Verificaciones para cada camino independiente:– Probar sus dos facetas desde el punto de vista lógico,
es decir, verdadera y falsa– Ejecutar todos los bucles en sus límites operacionales– Ejercitar las estructuras internas de datos
Pruebas de Caja Blanca
• Propuesta por Tom McCabe (1976)
• La idea es derivar casos de prueba a partir de un conjunto dado de caminos independientes
• Camino independiente es aquel que introduce por lo menos una sentencia de procesamiento (o valor de condición) que no estaba considerada
• Para obtener el conjunto un conjunto de caminos independientes se construirá el Grafo de Flujo asociado y se calculará su Complejidad Ciclomática
... Pruebas de Caja BlancaPrueba del Camino Básico
Pruebas de Caja BlancaPrueba del Camino Básico - Grafo de Flujo
Secuencia
ifWhile
then else
endif
CASE
opción1
no opción1
END CASE
opción2
no opción2
...
...
no opciónN
opciónN
Pruebas de Caja BlancaPrueba del Camino Básico - ... Grafo de Flujo
AristasAristas
NodosNodos
RegiónRegión
Pruebas de Caja BlancaPrueba del Camino Básico - Complejidad Ciclomática
• Complejidad ciclomática de un grafo de flujo V(G) establece el número de caminos independientes
• Puede calcularse de tres formas alternativas:
– El número de regiones del grafo de flujo
– V(G) = A - N + 2, donde A es el número de aristas y N es el número de nodos
– V(G) = P + 1, donde P es el número de nodos predicado
Pruebas de Caja BlancaPrueba del Camino Básico - ... Complejidad Ciclomática
V(G) = 4
– El grafo de la figura tiene cuatro regiones.
– 11 aristas - 9 nodos + 2 = 4
– 3 nodos predicado + 1 = 4
1111
2, 32, 3
11111111
10101010
9999
88887777
6666 4, 54, 54, 54, 5
Pruebas de Caja BlancaPrueba del Camino Básico - Conjunto Básico
11
2, 32, 3
1111
1010
99
8877
66 4, 54, 5
Un conjunto de caminos independientesUn conjunto de caminos independientesCamino 1: 1-11Camino 1: 1-11Camino 2: 1-2-3-4-5-10-1-11Camino 2: 1-2-3-4-5-10-1-11Camino 3: 1-2-3-6-8-9-10-1-11Camino 3: 1-2-3-6-8-9-10-1-11Camino 4: 1-2-3-6-7-9-10-1-11Camino 4: 1-2-3-6-7-9-10-1-11
El caminoEl camino1-2-3-4-5-10-1-2-3-6-8-9-10-1-111-2-3-4-5-10-1-2-3-6-8-9-10-1-11
No se considera un camino independiente, No se considera un camino independiente, ya que es simplemente una combinación ya que es simplemente una combinación de caminos ya especificadosde caminos ya especificados
Los cuatro caminos anteriores constituyen Los cuatro caminos anteriores constituyen un un conjunto básicoconjunto básico para el grafo para el grafo
Pruebas de Caja BlancaPrueba del camino básico - ... Conjunto Básico
• Tratamiento de Condiciones Compuestas
• Ejemplo :
IF a OR b THEN procedimiento x
ELSE
procedimiento y
ENDIF
a
xy
b x
Nodos Predicado
False True
False True
Pruebas de Caja BlancaPrueba del camino básico - Derivación de casos de prueba
• Pasos para realizar las pruebas:
1. A partir del diseño o del código fuente, dibujar el grafo de flujo asociado
2. Se calcula la complejidad ciclomática del grafo
3. Se determina un conjunto básico de caminos independientes
4. Se preparan los casos de prueba que obliguen a la ejecución de cada camino del conjunto básico
Pruebas de caja blancaPrueba del camino básico - ... Derivación de casos de prueba
PROCEDURE imprime_media(VAR x, y : real;)PROCEDURE imprime_media(VAR x, y : real;)VAR resultado : real;VAR resultado : real;resultado:=0;resultado:=0;IF (x < 0 OR y < 0)IF (x < 0 OR y < 0)THENTHEN
WRITELN(WRITELN(““x e y deben ser positivos”);x e y deben ser positivos”);ELSEELSE
resultado := (x + y)/2resultado := (x + y)/2WRITELN(WRITELN(““La media es: “, resultado);La media es: “, resultado);
ENDIFENDIFEND imprime_mediaEND imprime_media
11
22
33
44
55
66
Ejemplo:Ejemplo:
Pruebas de Caja BlancaPrueba del camino básico - ... Derivación de casos de prueba
11
22
3344
44
66
55
V(G) = 2+1 = 3. Por lo tanto, hV(G) = 2+1 = 3. Por lo tanto, hay que ay que
determinar tres caminos independientes. determinar tres caminos independientes.
Por ejemplo:Por ejemplo:
Camino 1: 1-2-3-5-6Camino 1: 1-2-3-5-6Camino 2: 1-2-4-6Camino 2: 1-2-4-6Camino 3: 1-2-3-4-6Camino 3: 1-2-3-4-6
Casos de prueba para cada camino:Casos de prueba para cada camino:
Camino 1: Escoger algún x e y tales que se Camino 1: Escoger algún x e y tales que se cumpla x >= 0 AND y >= 0cumpla x >= 0 AND y >= 0
Camino 2: Escoger algún x tal que se Camino 2: Escoger algún x tal que se cumpla x < 0cumpla x < 0
Camino 3: Escoger algún x e y tales que se Camino 3: Escoger algún x e y tales que se cumpla x >= 0 AND y < 0cumpla x >= 0 AND y < 0
FalseFalse
FalseFalse
TrueTrue
TrueTrue
x < 0x < 0
y < 0y < 0
Pruebas de Caja BlancaOtras Pruebas de Caja Blanca – Prueba de Condiciones
Prueba de condiciones. Tipos de errores que pueden aparecer en una condición:
– Existe un error en un operador lógico– Existe un error en un paréntesis lógico
– Existe un error en un operador relacional– Existe un error en una expresión aritmética
BuclesBuclessimplessimples
BuclesBuclesanidadosanidados
BuclesBuclesconcatenadosconcatenados Bucles noBucles no
estructuradosestructurados
Pruebas de Caja BlancaOtras Pruebas de Caja Blanca – Prueba de Bucles
• Pruebas para Bucles simples (n es el número máximo de iteraciones permitidos por el bucle)
– Pasar por alto totalmente el bucle
– Pasar una sola vez por el bucle
– Pasar dos veces por el bucle
– Hacer m pasos por el bucle con m < n
– Hacer n-1, n y n + 1 pasos por el bucle
Pruebas de Caja BlancaOtras Pruebas de Caja Blanca – ... Prueba de Bucles
• Pruebas para Bucles Anidados
– Comenzar en el bucle más interior estableciendo los demás bucles en sus valores mínimos
– Realizar las pruebas de bucle simple para el más interior manteniendo los demás en sus valores mínimos
– Avanzar hacia fuera confeccionando pruebas para el siguiente bucle manteniendo todos los externos en los valores mínimos y los demás bucles anidados en sus valores típicos
– Continuar el proceso hasta haber comprobado todos los bucles
Pruebas de Caja BlancaOtras Pruebas de Caja Blanca – ... Prueba de Bucles
• Pruebas para Bucles concatenados
– Siempre que los bucles concatenados sean independientes se puede aplicar lo relativo a bucles simples/anidados. En caso de ser dependientes se evaluarán como bucles anidados
• Pruebas para Bucles no estructurados
– Siempre que se usen los mecanismos que aporta la programación estructurada, este tipo de bucles no estarán presentes
Pruebas de Caja BlancaOtras Pruebas de Caja Blanca – ... Prueba de Bucles
• Las pruebas de caja negra se centran en los requisitos funcionales del software
• La prueba de la caja negra intenta encontrar errores de los siguientes tipos:
– Funciones incorrectas o inexistentes– Errores relativos a las interfaces– Errores en estructuras de datos o en accesos a
bases de datos externas– Errores debidos al rendimiento– Errores de inicialización o terminación
Pruebas de Caja Negra
Pruebas de Caja NegraPartición Equivalente
• La partición equivalente es un método que divide el campo de entrada de un programa en clases de datos
• Una condición de entrada es un valor numérico específico, un rango de valores, un miembro de un conjunto de valores o lógica
• Una clase de equivalencia representa un conjunto de estados válidos y no válidos para una condición de entrada
• La prueba de partición equivalente se basa en evaluar las clases de equivalencia para una condición de entrada
Pruebas de Caja NegraPartición Equivalente
Paso 1: Identificar Clases de Equivalencia
– Se examina cada condición de entrada y se divide en dos o más grupos.
– Se identifican dos tipos de clases: Clases de equivalencia válidas
Clases de equivalencia no válidasCondición de entrada
Clases de Equivalencia Válidas
Clases de Equivalencia No ´Válidas
• Si la condición de entrada es un:
– Rango, se define una clase de equivalencia válida y dos no válidas
– Valor específico, se define una clase de equivalencia válida y dos no válidas
– Miembro de conjunto, se define una clase de equivalencia válida y otra no válida
– Lógica, se define una clase válida y otra no válida
Pruebas de Caja Negra
... Partición Equivalente Paso 1: Identificar Clases de Equivalencia
– Asignar un número único a cada clase de equivalencia
– Escribir casos de prueba que cubran tantas clases válidas no incorporadas como sea posible hasta que se cubran todas las clases de equivalencia válidas
– Escribir casos de prueba que cubran una sola clase no válida no incorporada hasta que se cubran todas las clases de equivalencia no válidas.
Pruebas de Caja Negra… Partición Equivalente
Paso 1: Identificar Clases de Equivalencia
Pruebas de Caja NegraAnálisis de Valores Límite
• La técnica de Análisis de Valores Límites selecciona casos de prueba que ejerciten los valores límite
• Complementa la prueba de partición equivalente. En lugar de realizar la prueba con cualquier elemento de la partición equivalente, se escogen los valores en los bordes de la clase
• Se derivan tanto casos de prueba a partir de las condiciones de entrada como con las de salida
• Un usuario puede conectarse al banco por Internet y realizar una serie de operaciones bancarias. Una vez accedido al banco con las consiguientes medidas de seguridad (clave de acceso y demás), se requiere la siguiente entrada:– Código del banco. En blanco o número de tres dígitos. En este último
caso, el primero de los tiene que ser mayor que 1– Código de sucursal. Un número de cuatro dígitos. El primero de ellos
mayor de 0– Número de cuenta. Número de cinco dígitos– Clave personal. Valor alfanumérico de cinco posiciones. Este valor se
introducirá según la orden que se desee realizar– Orden. Puede estar en blanco o ser una de las dos cadenas siguientes:
“Talonario”“Movimientos”En el primer caso el usuario recibirá un talonario de cheques, mientras que en el segundo recibirá los movimientos del mes en curso. Si este código está en blanco, el usuario recibirá los dos documentos
Pruebas de Caja NegraEjemploPruebas de Caja NegraEjemplo
Condición de Entrada
Tipo Clase Equivalencia Válida
Clase Equivalencia No Válida
Código banco Lógica (puede estar o no) Si está es Rango
1: En blanco2: 100<= Código banco <= 999
3: Un valor no numérico4: Código banco < 1005: Código banco > 999
Código sucursal
Rango 6: 1000 <= Código sucursal <= 9999
7: Código sucursal < 10008: Código sucursal >=
9999
Nº Cuenta Valor 9: Cualquier número de cinco dígitos
10: Número de más de cinco dígitos
11: Número de menos de cinco dígitos
Clave Valor 12: Cualquier cadena de caracteres alfanuméricos de 5 posiciones
13: Cadena de menos de cinco posiciones
14: Cadena de más de cinco posiciones
Orden Conjunto, con comportamiento distinto
15: “”16: “Talonario”17: “Movimientos”
18: Cadena distinta de blanco y de las válidas
a) Derivar casos de prueba para el ejemplo
b) Complementar con casos de prueba según análisis de valores límite
Pruebas de Caja Negra… Ejemplo
Pruebas de Caja Negra… Ejemplo
NúmeroClases de
EquivalenciaPropósito del Caso
Datos de Prueba
Condición de Entrada1
Condición de Entrada2
…Condición
de Entradan
Herramientas para Pruebas• Tipos de Herramientas para Pruebas
– Record/Playback– Analizadores de Código – Analizadores de Cobertura (coverage analyzers)– Analizadores de Memoria– Herramientas de Carga/Desempeño– Herramientas para probar sitios Web– Otras – para administración de pruebas, documentación de
errores y control de configuración
• Links http://www.aptest.com/resources.html http://www.softwareqatest.com/