You are on page 1of 141

Calidad de Software

Ing. Felipe Aliaga Cavero

CAPACIDAD I Fundamentos de la Calidad de Software

Calidad en el Proceso de Software

CAPACIDAD II Modelos y Estndares de Calidad de Software

Modelos de Calidad de Software Calidad del Proceso

ISO 9000 CMM (Estados Unidos) Tick It (Inglaterra)

Bootstrap (Europa)
ISO/SPICE (Australia)

ISO 9000
ISO: INTERNATIONAL ORGANIZATION FOR STANDARIZATION

COMITS TCNICOS (TC)

SUBCOMITS (SC)

GRUPOS DE TRABAJO (WG)

Borrador de WG WD

Borrador de comit CD

Borrador de norma intern. DIS

Borrador final norma intern. FDIS

Norma intern. IS

Especificacin tcnica (TS)

Informe tcnico (TR)

Especificacin pblica (PAS)

Acuerdo tcnico de la industria (ITA)

ISO 9000
NORMAS ISO 9000

UNE-EN ISO 9000:2000 Sistemas de gestin de la calidad. Fundamentos y vocabulario (ISO 9000:2000)
UNE-EN ISO 9001:2000 Sistemas de gestin de la calidad. Requisitos (ISO 9001:2000) UNE-EN ISO 9004:2000 Sistemas de gestin de la calidad. Directrices para la mejora del desempeo (ISO 9004:2000) Norma ISO 19011, que proporciona orientacin relativa a las auditoras de sistemas de gestin de la calidad y de gestin ambiental.

ISO 9000
NORMAS ISO 9000

ISO 9000
RAZONES PARA USAR ISO 9000

Demanda del cliente

Necesidad de mejorar procesos/sistemas

ISO 9000

ISO 9000
PRINCIPIOS DE GESTIN DE LA CALIDAD Enfoque al cliente

Liderazgo
Participacin del personal Enfoque basado en procesos Enfoque de sistema para la gestin Mejora continua Enfoque basado en hechos para la toma de decisin Relaciones mutuamente beneficiosas con el proveedor

ISO 9000
OBJETO Y CAMPO DE APLICACIN a) las organizaciones que buscan ventajas por medio de la implementacin de un sistema de gestin de la calidad;

b) las organizaciones que buscan la confianza de sus proveedores en que sus requisitos para los productos sern satisfechos;
c) los usuarios de los productos; d) aquellos interesados en el entendimiento mutuo de la terminologa utilizada en la gestin de la calidad (por ejemplo: proveedores, clientes, entes reguladores); e) todos aquellos que, perteneciendo o no a la organizacin, evalan o auditan el sistema de gestin de la calidad para determinar su conformidad con los requisitos de la Norma ISO 9001

f) todos aquellos que, perteneciendo o no a la organizacin, asesoran o dan formacin sobre el sistema de gestin de la calidad adecuado para dicha organizacin;
g) aquellos quienes desarrollan normas relacionadas.

ISO 9000
FUNDAMENTOS DE LOS SISTEMAS DE GESTIN DE LA CALIDAD Base racional para los sistemas de gestin de la calidad Requisitos para los sistemas de gestin de la calidad y requisitos para los productos Enfoque de sistemas de gestin de la calidad Enfoque basado en procesos Poltica de la calidad y objetivos de la calidad Papel de la alta direccin dentro del sistema de gestin de la calidad Documentacin Evaluacin de los sistemas de gestin de la calidad Mejora continua Papel de las tcnicas estadsticas Sistemas de gestin de la calidad y otros sistemas de gestin Relacin entre los sistemas de gestin de la calidad y los modelos de excelencia

ISO 9000
Enfoque de sistemas de gestin de la calidad Determinar las necesidades y expectativas de los clientes y de otras partes interesadas; Establecer la poltica y objetivos de la calidad de la organizacin; 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 mtodos 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 gestin de la calidad.

ISO 9000
Enfoque basado en procesos

ISO 9000
Enfoque basado en procesos

ISO 9000
Papel de la alta direccin
Establecer y mantener la poltica de la calidad y los objetivos de la calidad de la organizacin;

Promover la poltica de la calidad y los objetivos de la calidad a travs de la organizacin para aumentar la toma de conciencia, la motivacin y la participacin;
Asegurarse del enfoque hacia los requisitos del cliente en toda la organizacin; 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 gestin de la calidad eficaz y eficiente para alcanzar los objetivos de la calidad; Asegurarse de la disponibilidad de los recursos necesarios;

Revisar peridicamente el sistema de gestin de la calidad;


Decidir sobre las acciones en relacin con la poltica y con los objetivos de la calidad; Decidir sobre las acciones para la mejora del sistema de gestin de la calidad.

ISO 9000
Cada organizacin debera determinar qu procesos deben documentarse en funcin 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 deberan documentarse la organizacin podra considerar factores tales como: el efecto sobre la calidad

el riesgo de insatisfaccin del cliente


los requisitos legales y reglamentario el riesgo econmico la eficacia y eficiencia la competencia del personal la complejidad de los procesos

ISO 9000
Evaluacin de los sistemas de gestin de la calidad

Procesos de evaluacin:

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?

Auditoras del sistema de gestin de la calidad Revisin del sistema de gestin de la calidad

ISO 9000
Mejora continua

a) Anlisis y evaluacin de la situacin existente para identificar reas para la mejora; b) Establecimiento de los objetivos para la mejora; c) Bsqueda de posibles soluciones para lograr los objetivos; d) Evaluacin de dichas soluciones y su seleccin; e) Implementacin de la solucin seleccionada; f) Medicin, verificacin, anlisis y evaluacin de los resultados de la implementacin para determinar que se han alcanzado los objetivos

CAPACIDAD III Mtricas en la Calidad de Software

Modelo Mc-Call

CAPACIDAD IV Actividades de Control de Calidad de Software

Calidad del Producto

Verificacin & Validacin

Pruebas de Software

Contenidos
Introduccin Pruebas de Caja Blanca Prueba del Camino Bsico Pruebas de Estructuras de Control Pruebas de Caja Negra Particin Equivalente Anlisis de Valores Lmite Herramientas para Pruebas

Introduccin
Pruebas: factor crtico para garantizar la calidad del software
Una prueba conlleva la intencin de descubrir algn error Un caso de prueba es bueno cuando su ejecucin conlleva una alta probabilidad de encontrar un error

El xito de la prueba se mide en funcin de la capacidad de detectar un error que estaba oculto

... Introduccin
Configuracin del Software Resultados de la prueba Prueba Datos de tasa de error Configuracin de la Prueba Evaluacin Errores

Depuracin Correciones

Resultados esperados Modelo de Fiabilidad Prediccin Fiabilidad

... Introduccin
Tipos de Pruebas: Unitarias de Integracin de Aceptacin de Regresin de Carga Alpha Beta ...

... Introduccin
El diseo de casos de prueba para la verificacin 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

... Introduccin
Conceptos Error: accin humana que produce una falta Falta: algo que est mal en un producto (modelo, cdigo, documento, etc.) Fallo: manifestacin de una falta Defecto: error, falta o fallo Verificacin y Validacin Verificacin: estamos construyendo el producto correctamente? Validacin: estamos construyendo el producto correcto?

Pruebas de Caja Blanca


La prueba de la caja blanca usa la estructura de control del diseo 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 lgico, es decir, verdadera y falsa Ejecutar todos los bucles en sus lmites operacionales Ejercitar las estructuras internas de datos

... Pruebas de Caja Blanca


Prueba del Camino Bsico

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 condicin) 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 Ciclomtica

Pruebas de Caja Blanca


Prueba del Camino Bsico - Grafo de Flujo
Secuencia
no opcin1 no opcin2 no opcinN

end if

...
CASE
then else opcin2

...

opcinN

if

While

opcin1

END CASE

Pruebas de Caja Blanca


Prueba del Camino Bsico - ... Grafo de Flujo
Aristas

Nodos

Regin

Pruebas de Caja Blanca


Prueba del Camino Bsico - Complejidad Ciclomtica

Complejidad ciclomtica de un grafo de flujo V(G) establece el nmero de caminos independientes


Puede calcularse de tres formas alternativas: El nmero de regiones del grafo de flujo V(G) = A - N + 2, donde A es el nmero de aristas y N es el nmero de nodos V(G) = P + 1, donde P es el nmero de nodos predicado

Pruebas de Caja Blanca


Prueba del Camino Bsico - ... Complejidad Ciclomtica
1 1

V(G) = 4
2, 3

6 6

4, 5 4, 5

El grafo de la figura tiene cuatro regiones. 11 aristas - 9 nodos + 2 = 4 3 nodos predicado + 1 = 4

7 7 9 9

8 8

10 10

11 11

Pruebas de Caja Blanca


Prueba del Camino Bsico - Conjunto Bsico
1

2, 3

Un conjunto de caminos independientes Camino 1: 1-11 Camino 2: 1-2-3-4-5-10-1-11 Camino 3: 1-2-3-6-8-9-10-1-11 Camino 4: 1-2-3-6-7-9-10-1-11
4, 5

El camino 1-2-3-4-5-10-1-2-3-6-8-9-10-1-11

9 10

No se considera un camino independiente, ya que es simplemente una combinacin de caminos ya especificados


Los cuatro caminos anteriores constituyen un conjunto bsico para el grafo
11

Pruebas de Caja Blanca


Prueba del camino bsico - ... Conjunto Bsico

Tratamiento de Condiciones Compuestas


Ejemplo :
IF a OR b THEN procedimiento x ELSE procedimiento y ENDIF

Nodos Predicado a

False
b

True
x

False
y

True
x

Pruebas de Caja Blanca


Prueba del camino bsico - Derivacin de casos de prueba

Pasos para realizar las pruebas: 1. A partir del diseo o del cdigo fuente, dibujar el grafo de flujo asociado 2. Se calcula la complejidad ciclomtica del grafo 3. Se determina un conjunto bsico de caminos independientes 4. Se preparan los casos de prueba que obliguen a la ejecucin de cada camino del conjunto bsico

Pruebas de caja blanca


Prueba del camino bsico - ... Derivacin de casos de prueba
Ejemplo: PROCEDURE imprime_media(VAR x, y : real;) VAR resultado : real; 3 resultado:=0; IF (x < 0 OR y < 0) 2 THEN WRITELN( e y deben ser positivos); 4 x ELSE resultado := (x + y)/2 WRITELN( La media es: , resultado); ENDIF END imprime_media

Pruebas de Caja Blanca


Prueba del camino bsico - ... Derivacin de casos de prueba
1

V(G) = 2+1 = 3. Por lo tanto, hay que determinar tres caminos independientes.
x<0
False

2
True

Por ejemplo:
4

y<0
False

3
True

Camino 1: 1-2-3-5-6 Camino 2: 1-2-4-6 Camino 3: 1-2-3-4-6 Casos de prueba para cada camino:
Camino 1: Escoger algn x e y tales que se cumpla x >= 0 AND y >= 0 Camino 2: Escoger algn x tal que se cumpla x < 0 Camino 3: Escoger algn x e y tales que se cumpla x >= 0 AND y < 0

Pruebas de Caja Blanca


Otras Pruebas de Caja Blanca Prueba de Condiciones

Prueba de condiciones. Tipos de errores que pueden aparecer en una condicin: Existe un error en un operador lgico Existe un error en un parntesis lgico Existe un error en un operador relacional Existe un error en una expresin aritmtica

Pruebas de Caja Blanca


Otras Pruebas de Caja Blanca Prueba de Bucles

Bucles anidados Bucles concatenados Bucles no estructurados

Bucles simples

Pruebas de Caja Blanca


Otras Pruebas de Caja Blanca ... Prueba de Bucles

Pruebas para Bucles simples (n es el nmero mximo 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 Blanca


Otras Pruebas de Caja Blanca ... Prueba de Bucles

Pruebas para Bucles Anidados Comenzar en el bucle ms interior estableciendo los dems bucles en sus valores mnimos Realizar las pruebas de bucle simple para el ms interior manteniendo los dems en sus valores mnimos Avanzar hacia fuera confeccionando pruebas para el siguiente bucle manteniendo todos los externos en los valores mnimos y los dems bucles anidados en sus valores tpicos Continuar el proceso hasta haber comprobado todos los bucles

Pruebas de Caja Blanca


Otras 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 evaluarn como bucles anidados
Pruebas para Bucles no estructurados Siempre que se usen los mecanismos que aporta la programacin estructurada, este tipo de bucles no estarn presentes

Pruebas de Caja Negra


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 inicializacin o terminacin

Pruebas de Caja Negra


Particin Equivalente

La particin equivalente es un mtodo que divide el campo de entrada de un programa en clases de datos
Una condicin de entrada es un valor numrico especfico, un rango de valores, un miembro de un conjunto de valores o lgica Una clase de equivalencia representa un conjunto de estados vlidos y no vlidos para una condicin de entrada La prueba de particin equivalente se basa en evaluar las clases de equivalencia para una condicin de entrada

Pruebas de Caja Negra


Particin Equivalente Paso 1: Identificar Clases de Equivalencia Se examina cada condicin de entrada y se divide en dos o ms grupos. Se identifican dos tipos de clases:
Clases de equivalencia vlidas Clases de equivalencia no vlidas
Condicin de entrada Clases de Equivalencia Vlidas Clases de Equivalencia No Vlidas

Pruebas de Caja Negra

... Particin Equivalente


Paso 1: Identificar Clases de Equivalencia
Si la condicin de entrada es un:
Rango, se define una clase de equivalencia vlida y dos no vlidas Valor especfico, se define una clase de equivalencia vlida y dos no vlidas Miembro de conjunto, se define una clase de equivalencia vlida y otra no vlida Lgica, se define una clase vlida y otra no vlida

Pruebas de Caja Negra Particin Equivalente


Paso 1: Identificar Clases de Equivalencia
Asignar un nmero nico a cada clase de equivalencia Escribir casos de prueba que cubran tantas clases vlidas no incorporadas como sea posible hasta que se cubran todas las clases de equivalencia vlidas

Escribir casos de prueba que cubran una sola clase no vlida no incorporada hasta que se cubran todas las clases de equivalencia no vlidas.

Pruebas de Caja Negra


Anlisis de Valores Lmite
La tcnica de Anlisis de Valores Lmites selecciona casos de prueba que ejerciten los valores lmite
Complementa la prueba de particin equivalente. En lugar de realizar la prueba con cualquier elemento de la particin 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

Pruebas de Caja Negra


Ejemplo
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 dems), se requiere la siguiente entrada: Cdigo del banco. En blanco o nmero de tres dgitos. En este ltimo caso, el primero de los tiene que ser mayor que 1 Cdigo de sucursal. Un nmero de cuatro dgitos. El primero de ellos mayor de 0 Nmero de cuenta. Nmero de cinco dgitos Clave personal. Valor alfanumrico de cinco posiciones. Este valor se introducir segn 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 cdigo est en blanco, el usuario recibir los dos documentos

Condicin de Entrada

Tipo

Clase Equivalencia Vlida

Clase Equivalencia No Vlida

Cdigo banco Lgica (puede 1: En blanco 3: Un valor no numrico estar o no) Si est 2: 100<= Cdigo banco <= 999 4: Cdigo banco < 100 es Rango 5: Cdigo banco > 999
Cdigo sucursal N Cuenta Rango 6: 1000 <= Cdigo sucursal <= 9999 9: Cualquier nmero de cinco dgitos 7: Cdigo sucursal < 1000 8: Cdigo sucursal >= 9999 10: Nmero de ms de cinco dgitos 11: Nmero de menos de cinco dgitos 13: Cadena de menos de cinco posiciones 14: Cadena de ms de cinco posiciones

Valor

Clave

Valor

12: Cualquier cadena de caracteres alfanumricos de 5 posiciones

Orden

Conjunto, con comportamiento distinto

15: 16: Talonario 17: Movimientos

18: Cadena distinta de blanco y de las vlidas

Pruebas de Caja Negra Ejemplo


a) Derivar casos de prueba para el ejemplo b) Complementar con casos de prueba segn anlisis de valores lmite
Datos de Prueba Nmero Clases de Equivalencia Propsito del Caso Condicin de Entrada1 Condicin de Entrada2 Condicin de Entradan

Herramientas para Pruebas


Tipos de Herramientas para Pruebas Record/Playback Analizadores de Cdigo Analizadores de Cobertura (coverage analyzers) Analizadores de Memoria Herramientas de Carga/Desempeo Herramientas para probar sitios Web Otras para administracin de pruebas, documentacin de errores y control de configuracin Links
http://www.aptest.com/resources.html http://www.softwareqatest.com/