clase 05a calidad verificacion validacion

38
1 Introducción a la Calidad y Pruebas de Software ¿seguro que el software funciona bien? ¿seguro que hace lo que el cliente quiere que haga? Universidad de los Andes Demián Gutierrez Febrero 2013

Upload: demian-gutierrez

Post on 28-Jun-2015

1.141 views

Category:

Technology


3 download

TRANSCRIPT

Page 1: Clase 05a calidad verificacion validacion

1

Introducción a la Calidady Pruebas de Software

¿seguro que el software funciona bien?¿seguro que hace lo que el cliente quiere que haga?

Universidad de los AndesDemián Gutierrez

Febrero 2013

Page 2: Clase 05a calidad verificacion validacion

2

¿calidad del software?…

¿calidad?

Page 3: Clase 05a calidad verificacion validacion

3

La calidad es sinónimo de software que funciona acorde a lo especificado por el

cliente

¿Calidad?

Hoy en día, se considera que una de las mejores métricas de calidad de software es la

satisfacción del cliente con respecto al producto desarrollado

¿será suficiente?

Page 4: Clase 05a calidad verificacion validacion

4

desarrolladores¿qué tanto puedo dormir

de noche?¿qué tan miserable es mi

trabajo?¿qué tan fácil de

entender, mantener y modificar es el producto

en el que estoy trabajando?

negocioretorno de inversión

relación costo beneficio¿qué tan fácil de

mantener y modificar es el producto?

usuarionecesidades, valor,

facilidad de uso, fallas / errores, recuperación frente a fallas / errores

¿Calidad?

tres visiones distintas

Page 5: Clase 05a calidad verificacion validacion

5

¿Calidad?

Tiene su impacto principal en lo

mantenible y flexible que es el software

desarrollado(muy importante)

Generalmente (aunque no

necesariamente), una buena calidad interna tiende a producir un producto con buena

calidad externa

¿calidad de software?

externaUsualmente es la que

de alguna forma ve (sufre o disfruta) el

cliente directamente

internaEs la que

usualmente vemos (sufrimos) los

desarrolladores o sufre indirectamente

el cliente

Tiene su impacto principal en la

percepción que tiene el cliente del

producto

Page 6: Clase 05a calidad verificacion validacion

6

desarrolladores¿qué tanto puedo dormir

de noche?¿qué tan miserable es mi

trabajo?¿qué tan fácil de

entender, mantener y modificar es el producto

en el que estoy trabajando?

negocioretorno de inversión

relación costo beneficio¿qué tan fácil de

mantener y modificar es el producto?

usuarionecesidades, valor,

facilidad de uso, fallas / errores, recuperación frente a fallas / errores

¿Calidad?

tres visiones distintas

Calidad Interna

Calidad Externa

Page 7: Clase 05a calidad verificacion validacion

7

¿existe alguna relación entre la calidad de un producto de software y sus requisitos?

¿funcionales?¿no funcionales?

Calidad y Requisitos

Page 8: Clase 05a calidad verificacion validacion

8

La calidad del software es el conjunto de cualidades que lo caracterizan y que determinan su utilidad y existencia

La calidad es sinónimo de eficiencia, flexibilidad, corrección, confiabilidad, mantenibilidad, portabilidad,

usabilidad, seguridad, integridad y cualquier otro atributo que se defina que debe tener un producto de software

(¿suenan conocidos esos atributos?)

¿Calidad?

Para que un software sea útil y su existencia tenga sentido, entre otras cosas, tiene que satisfacer las necesidades de

los clientes/usuarios

Page 9: Clase 05a calidad verificacion validacion

9

¿fallas de software?¿incidente?

¿“falla” o “feature”?

Page 10: Clase 05a calidad verificacion validacion

10

(1)desarrolladores

introducen algún tipo de error en el código del

sistema, o fallan en prever alguna forma en la que se

usará el sistema(error humano)

(3)(opcional)usuarios

disparan el error en el código o utilizan el

software de una forma imprevista

(4)resultado

Se produce algún tipo de consecuencia no deseada

¿algo explota?¿algo se estrella?

etc

(2)sistema

se pone en producción con los defectos

introducidos involuntariamente por los

desarrolladores

BUG!

Page 11: Clase 05a calidad verificacion validacion

11

una falla de software ocurre cuando un programa no

cumple con las especificaciones, es decir,

con el comportamiento esperado de dicho programa

Page 12: Clase 05a calidad verificacion validacion

12

¿Fallas de Software?

¿el costo que producenlas fallas del software?

(video)

http://www.youtube.com/watch?v=kYUrqdUyEpI

http://www.youtube.com/watch?v=gp_D8r-2hwk

http://www.youtube.com/watch?v=EMVBLg2MrLs

Page 13: Clase 05a calidad verificacion validacion

13

¿Fallas de Software?

¿les pareció lo suficientemente costoso?

Page 14: Clase 05a calidad verificacion validacion

14

¿Fallas de Software?

el costo que producen las fallas del software se puede apreciar en varios

casos de estudio:

La explosión del ARIANE 5 ocasionada por un error de software costó, a la Agencia Espacial Europea, $370 millones

(el video que acaban de ver)

Page 15: Clase 05a calidad verificacion validacion

15

¿Fallas de Software?

NASA Mars Climate Orbiter: For nine months, the Mars Climate Orbiter was speeding through space and speaking to NASA in metric. But the engineers on the ground were

replying in non-metric English($125 millones perdidos por una confusión de unidades)

Page 16: Clase 05a calidad verificacion validacion

16

¿Fallas de Software?

Un error en el sistema de manejo de equipajes costó, al aeropuerto de Denver en EEUU, más de $ 1.1 millones diariosNo pudieron abrir el nuevo aeropuerto a tiempo, tuvieron que esperar hasta resolver el problema, hacer que el sistema de manejo de equipaje fuera estable les tomó más de 6 meses

el costo de no poder poner un sistema en producción debido a su baja calidad

Page 17: Clase 05a calidad verificacion validacion

17

¿Fallas de Software?

este costo es incalculable cuando estas fallas afectan la vida humana:

Una falla en el sistema de defensa Patriot permitió que un misil SCUD iraquí impactará una barraca de soldados americanos en

Dhahran causando la muerte de 28 personas y dejando 98 heridos

The British destroyer H.M.S. Sheffield was sunk in the Falkland Islands war. According to one report, the ship's radar warning systems were programmed to identify the Exocet missile as "friendly" because the British arsenal includes the Exocet's

homing device and allowed the missile to reach its target, namely the Sheffield

¿Karma? ¿Justicia poética? ¿Causalidad? …Se podrían decir muchas sutilezas, pero no tengo ganas

Page 18: Clase 05a calidad verificacion validacion

18

¿Fallas de Software?

un ejemplo más dramático:

desperfectos en el software de la máquina de radioterapia Therac-25

produjeron varias muertes por sobredosis

si los operadores usaban lentamente a IU entoncesel software funcionaba correctamente,

en la medida en que los operadores se volvieronmás diestros usando el software, comenzaron a utilizar

más rápidamente la IU lo que generó la falla

Page 19: Clase 05a calidad verificacion validacion

19

¿se puede/debe medirla calidad del software?

Page 20: Clase 05a calidad verificacion validacion

20

la calidad del software se puede medir(aunque no siempre es fácil)

¿Calidad?

Cantidad dedefectos por

Release

Cantidad dedefectos por línea

de código

Cantidad dePruebas

Cobertura deCódigo

Otras...

Conformidad conEstándares deProgramación

Estudios / Pruebasde Usabilidad

Aserciones porlíneas de código

Cantidad dedefectos por“x” unidad

ComplejidadCiclomática

Cualquiertipo de prueba aplicada

y las métricasresultantes

Page 21: Clase 05a calidad verificacion validacion

21

Calidad: Medir, Verificar y Asegurar

verificar / medirla calidad

vsasegurar la calidad

¿cuál es la diferencia?¿cuál es más importante?

Page 22: Clase 05a calidad verificacion validacion

22

Definición deRequerimientos

Diseño deSistema

y de Software

Implementacióny Pruebas de

Unidades

Integración yPrueba del

Sistema

Operación yMantenimiento

¿qué sucede si aquí encontramos

un problema?

Calidad: Medir y Verificar

¿recuerdan el proceso en cascada?

¿por qué estamos hablando de pruebas y de

calidad en una etapa tan temprana

del curso?(sobre todo de calidad interna)

Page 23: Clase 05a calidad verificacion validacion

23

La calidad del software puede medirse después de elaborado el producto. Pero esto puede resultar muy costoso si se

detectan problemas derivados de imperfecciones en el diseño, por lo que es

imprescindible tener en cuenta tanto la obtención de la calidad final de un producto, como su control durante todas las etapas

del ciclo de vida del software

Definición deRequerimientos

Diseño deSistema

y de Software

Implementacióny Pruebas de

Unidades

Integración yPrueba del

Sistema

Operación yMantenimiento

Calidad: Medir y Verificar

Visión clásica ->

¿cómo se ataca este problema desde la visión ágil?

Page 24: Clase 05a calidad verificacion validacion

24

Calidad(en general)(de software)

Producto(no necesariamente

la versión final)

Proceso,Prácticas

RecursosEquipos,Insumos,

RRHH

Aseguramientode la Calidad

Verificaciónde la Calidad

Calidad: Medir y Verificar VS Asegurar

¿pruebas continuasdel producto?

¿integración continua?¿entregas frecuentes?

Page 25: Clase 05a calidad verificacion validacion

25

Es decir, para hacer software de calidad

(asegurar la calidad)es necesario tener buenos procesos, buen personal,

buenas prácticas, etc...

Calidad: Asegurar...

Page 26: Clase 05a calidad verificacion validacion

26

¿costo de la calidad?

Page 27: Clase 05a calidad verificacion validacion

27

Calidad: Costo / Relatividad

Un software elaborado para el control de naves espaciales debe ser confiable al nivel de "cero fallas"

un producto de software para ser explotado durante un largo período (10 años o más), necesita ser confiable, mantenible y

flexible para disminuir los costos de mantenimiento y perfeccionamiento durante el tiempo de explotación

Un software hecho para ejecutarse una sola vez no requiere el mismo nivel de calidad que los productos anteriores

la calidad es relativa,varía de un sistema a otro

Page 28: Clase 05a calidad verificacion validacion

28

Calidad: Costo / Relatividad

la calidad tiene un precio asociadoencontrar un balance adecuado es

clave

The Cost of Qualityhttp://asq.org/learn-about-quality/cost-of-quality/overview/overview.html

es decir el costo de NO hacer un producto con la calidad suficiente

vs

el costo de hacer un producto con excesiva calidad

Page 29: Clase 05a calidad verificacion validacion

29

Calidad: Costo / Relatividad

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

Costo de Desarrollo

Costo de Mantenimiento, Soporte, Cambio, Operación, etc

Costo Total

Mayor CalidadMay

or C

osto

Mayor Calidad

usted quiereestar aquí

Page 30: Clase 05a calidad verificacion validacion

30

verificación y validación(dos conceptos muy usados y muy malentendidos)

Page 31: Clase 05a calidad verificacion validacion

31

Calidad(en general)(de software)

Validación: ¿Seestá construyendo elproducto correcto?

Verificación: ¿Seestá construyendo el

productocorrectamente?

Cumple con lasexpectativas del cliente

Cumple con lasespecificaciones

RelaciónCLIENTE

->ESPECIFICACIONES

PRODUCTO

RelaciónESPECIFICACIONES

->PRODUCTO

¿El software CORRE / FUNCIONA como

debería?

Verificación y Validación

Page 32: Clase 05a calidad verificacion validacion

32

Verificación y Validación

Verificación y Validación

Modeladode

Negocios

Ingenieríade

Requisitos

DiseñoArq.

DiseñoDetallado

Construccióne

Integración

Pruebasde la

Aplicación

Entregade la

Aplicación

el buen software depende de los detalles, en el proceso de validación y verificación se pulen los detalles y se

atan los cabos sueltos...

… Todo el Proceso de Desarrollo ...

Page 33: Clase 05a calidad verificacion validacion

33

verificaciónde la calidad

Page 34: Clase 05a calidad verificacion validacion

34

ProductoVerificación

de la Calidad

Pruebas

InspeccionesRevisiones Técnicas

AnálisisEstático

VerificaciónFormal

Técnicas dinámicas

(Corriendo el producto)

Verificación Software

Técnicas estáticas(Sin correr el software o producto)

Page 35: Clase 05a calidad verificacion validacion

35

InspeccionesRevisiones Técnicas

De Documentos(Requerimientos,Diseño, Pruebas,

etcétera)

De Interfaz deUsuario

De Código(Análisis estático,

sin ejecutar)

Otras...

Automatizadas(Ej: LINT,

Compiladores, IDEs)CheckstyleFindBugs

PDMHammurapi

Manuales(Revisionesde Código)

Revisiones FormalesProgramación por Pares

¿% errores detectados?¿eficientes o no?

Ver Sommerville 6edpág. 429 observaciones

de Fagan en IBMVer visión de las

inspecciones en XP

AnálisisEstático

Verificación Software(Técnicas Estáticas)

Page 36: Clase 05a calidad verificacion validacion

36

Verificación Software(Técnicas Dinámicas)

Conocimientodel Código

Caja Negra

Caja Blanca

Aspecto a Evaluar

Funcionales

No Funcionales

Rendimiento,Stress

Instalación

Seguridad

Nivel deAutomatización

Manuales

De Regresión(automatizadas)

Grano delComponente

a Probar

De Sistema(fin a fin)

De Integración

Unitaria

Otras

Alfa

Beta

Aceptación

Pruebas

Page 37: Clase 05a calidad verificacion validacion

41

algunas historias sobre fallas de

software:

http://www.cs.tau.ac.il/~nachumd/verify/horror.html

http://www.cse.lehigh.edu/~gtan/bug/softwarebug.html

http://www.wired.com/software/coolapps/news/2005/11/69355

http://www.it-cortex.com/Stat_Failure_Rate.htm

http://www.rand.org/pubs/papers/P4947/(este artículo es particularmente interesante, a pesar de ser de 1972)

Calidad: Algunas Historias...

Page 38: Clase 05a calidad verificacion validacion

42

Gracias

¡Gracias!