clase 05a calidad verificacion validacion
TRANSCRIPT
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
2
¿calidad del software?…
¿calidad?
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?
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
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
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
7
¿existe alguna relación entre la calidad de un producto de software y sus requisitos?
¿funcionales?¿no funcionales?
Calidad y Requisitos
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
9
¿fallas de software?¿incidente?
¿“falla” o “feature”?
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!
11
una falla de software ocurre cuando un programa no
cumple con las especificaciones, es decir,
con el comportamiento esperado de dicho programa
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
13
¿Fallas de Software?
¿les pareció lo suficientemente costoso?
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)
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)
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
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
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
19
¿se puede/debe medirla calidad del software?
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
21
Calidad: Medir, Verificar y Asegurar
verificar / medirla calidad
vsasegurar la calidad
¿cuál es la diferencia?¿cuál es más importante?
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)
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?
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?
25
Es decir, para hacer software de calidad
(asegurar la calidad)es necesario tener buenos procesos, buen personal,
buenas prácticas, etc...
Calidad: Asegurar...
26
¿costo de la calidad?
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
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
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í
30
verificación y validación(dos conceptos muy usados y muy malentendidos)
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
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 ...
33
verificaciónde la calidad
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)
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)
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
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...
42
Gracias
¡Gracias!