Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.

Clase 05a calidad verificacion validacion

1.717 Aufrufe

Veröffentlicht am

Veröffentlicht in: Technologie
  • Als Erste(r) kommentieren

Clase 05a calidad verificacion validacion

  1. 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 1
  2. 2. ¿calidad del software? … ¿calidad? 2
  3. 3. ¿Calidad? La calidad es sinónimo de software que funciona acorde a lo especificado por el cliente 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? 3
  4. 4. ¿Calidad? tres visiones distintas usuario necesidades, valor, desarrolladores facilidad de uso, fallas / ¿qué tanto puedo dormir errores, recuperación de noche? frente a fallas / errores ¿qué tan miserable es mi trabajo? ¿qué tan fácil de entender, mantener y modificar es el producto en el que estoy trabajando? negocio retorno de inversión relación costo beneficio ¿qué tan fácil de mantener y modificar es el producto? 4
  5. 5. ¿Calidad? Tiene su impacto externa principal en la Usualmente es la que percepción que tiene de alguna forma ve el cliente del (sufre o disfruta) el producto cliente directamente Tiene su impacto principal en lo ¿calidad de mantenible y flexible software? interna que es el software Es la que desarrollado usualmente vemos (muy importante) (sufrimos) los desarrolladores o Generalmente sufre indirectamente (aunque no el cliente necesariamente), una buena calidad interna tiende a producir un producto con buena calidad externa 5
  6. 6. ¿Calidad? tres visiones distintas usuario necesidades, valor, desarrolladores facilidad de uso, fallas / ¿qué tanto puedo dormir errores, recuperación de noche? frente a fallas / errores ¿qué tan miserable es mi trabajo? Calidad Externa ¿qué tan fácil de entender, mantener y modificar es el producto en el que estoy trabajando? negocio retorno de inversión Calidad Interna relación costo beneficio ¿qué tan fácil de mantener y modificar es el producto? 6
  7. 7. Calidad y Requisitos ¿existe alguna relación entre la calidad de un producto de software y sus requisitos? ¿funcionales? ¿no funcionales? 7
  8. 8. ¿Calidad? La calidad del software es el conjunto de cualidades que lo caracterizan y que determinan su utilidad y existencia Para que un software sea útil y su existencia tenga sentido, entre otras cosas, tiene que satisfacer las necesidades de los clientes/usuarios 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?) 8
  9. 9. ¿fallas de software? ¿incidente?¿“falla” o “feature”? 9
  10. 10. (1) (3) desarrolladores (opcional) introducen algún tipo de usuarios error en el código del disparan el error en elsistema, o fallan en prever código o utilizan elalguna forma en la que se usará el sistema (2) software de una forma imprevista (error humano) sistema se pone en producción con los defectos introducidos involuntariamente por los desarrolladores (4) BU resultado G ! Se produce algún tipo de consecuencia no deseada ¿algo explota? ¿algo se estrella? etc 10
  11. 11. una falla de software ocurre cuando un programa no cumple con las especificaciones, es decir, con el comportamientoesperado de dicho programa 11
  12. 12. ¿Fallas de Software? ¿el costo que producen las 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 12
  13. 13. ¿Fallas de Software? ¿les pareció lo suficientemente costoso? 13
  14. 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) 14
  15. 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) 15
  16. 16. ¿Fallas de Software? el costo de no poder poner un sistema en producción debido a su baja calidad Un error en el sistema de manejo de equipajes costó, al aeropuerto de Denver en EEUU, más de $ 1.1 millones diarios No 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 16
  17. 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 ships radar warning systems were programmed to identify the Exocet missile as "friendly" because the British arsenal includes the Exocets homing device and allowed the missile to reach its target, namely the Sheffield ¿Karma? ¿Justicia poética? ¿Causalidad? … 17 Se podrían decir muchas sutilezas, pero no tengo ganas
  18. 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 entonces el software funcionaba correctamente, en la medida en que los operadores se volvieron más diestros usando el software, comenzaron a utilizar más rápidamente la IU lo que generó la falla 18
  19. 19. ¿se puede/debe medirla calidad del software? 19
  20. 20. ¿Calidad? la calidad del software se puede medir (aunque no siempre es fácil) Cantidad de Cantidad de Cantidad de defectos por línea defectos por defectos por de código Release “x” unidad Conformidad con Aserciones por Estándares de Complejidad líneas de código Programación Ciclomática Cobertura de Cualquier Cantidad de Código tipo de prueba aplicada Pruebas y las métricas resultantes Estudios / Pruebas Otras... de Usabilidad 20
  21. 21. Calidad: Medir, Verificar y Asegurar verificar / medir la calidad vs asegurar la calidad ¿cuál es la diferencia? ¿cuál es más importante? 21
  22. 22. Calidad: Medir y Verificar ¿recuerdan el proceso en cascada? ¿por qué estamos Definición de Requerimientos hablando de pruebas y de Diseño de Sistema calidad en una y de Software etapa tan temprana Implementación del curso? y Pruebas de Unidades (sobre todo de calidad interna) Integración y Prueba del Sistema ¿qué sucede si Operación y aquí encontramos Mantenimiento un problema? 22
  23. 23. Calidad: Medir y Verificar Visión clásica -> 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 Definición de Requerimientos imprescindible tener en cuenta tanto la obtención de la calidad final de un producto, Diseño de como su control durante todas las etapas Sistema del ciclo de vida del software y de Software Implementación y Pruebas de Unidades Integración y Prueba del Sistema Operación y Mantenimiento ¿cómo se ataca este problema desde la visión ágil? 23
  24. 24. Calidad: Medir y Verificar VS Asegurar Proceso, Prácticas Aseguramiento de la Calidad Recursos Equipos, Insumos, Calidad RRHH (en general) ¿pruebas continuas (de software) del producto? ¿integración continua? ¿entregas frecuentes? Producto (no necesariamente Verificación la versión final) de la Calidad 24
  25. 25. Calidad: Asegurar... Es decir, para hacer software de calidad (asegurar la calidad) es necesario tener buenos procesos, buen personal, buenas prácticas, etc... 25
  26. 26. ¿costo de la calidad? 26
  27. 27. Calidad: Costo / Relatividad la calidad es relativa, varía de un sistema a otro 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 27
  28. 28. Calidad: Costo / Relatividad la calidad tiene un precio asociado encontrar un balance adecuado es clave The Cost of Quality http://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 28
  29. 29. Calidad: Costo / Relatividad usted quiere estar aquí Mayor Costo Mayor Calidad 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 29
  30. 30. verificación y validación(dos conceptos muy usados y muy malentendidos) 30
  31. 31. Verificación y Validación Relación Calidad Relación CLIENTE (en general) ESPECIFICACIONES -> (de software) -> ESPECIFICACIONES PRODUCTO PRODUCTO Validación: ¿Se Verificación: ¿Se está construyendo el está construyendo el producto correcto? producto correctamente? Cumple con las Cumple con las expectativas del cliente especificaciones ¿El software CORRE / FUNCIONA como debería? 31
  32. 32. Verificación y Validación Modelado Ingeniería Construcción Pruebas Entrega Diseño Diseño de de e de la de la Arq. Detallado Negocios Requisitos Integración Aplicación Aplicación … Todo el Proceso de Desarrollo ... Verificación y Validació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... 32
  33. 33. verificaciónde la calidad 33
  34. 34. Verificación Software Técnicas dinámicas Pruebas (Corriendo el producto) Verificación Producto de la Calidad Inspecciones Análisis Verificación Revisiones Técnicas Estático Formal Técnicas estáticas (Sin correr el software o producto) 34
  35. 35. Verificación Software(Técnicas Estáticas) ¿% errores detectados? ¿eficientes o no? Ver Sommerville 6ed Otras... pág. 429 observaciones De Documentos de Fagan en IBM (Requerimientos, Ver visión de las Diseño, Pruebas, inspecciones en XP etcétera) Automatizadas (Ej: LINT, Compiladores, IDEs) Inspecciones De Interfaz de Checkstyle Revisiones Técnicas Usuario FindBugs PDM De Código Hammurapi Análisis (Análisis estático, Estático sin ejecutar) Manuales (Revisiones de Código) Revisiones Formales Programación por Pares 35
  36. 36. Verificación Software(Técnicas Dinámicas) Aspecto a Evaluar Grano del Componente No Funcionales a Probar Rendimiento, De Sistema Stress (fin a fin) Funcionales De Integración Instalación Unitaria Pruebas Seguridad Otras Conocimiento Nivel de Aceptación del Código Automatización Caja Negra Manuales Alfa De Regresión Caja Blanca (automatizadas) Beta 36
  37. 37. Calidad: Algunas Historias... 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) 41
  38. 38. Gracias ¡Gracias! 42

×