Testing Software

22,103 views
21,754 views

Published on

Desayuno realizado en nov 2009 sobre la importancia de implementar metodologias de QAT

2 Comments
9 Likes
Statistics
Notes
No Downloads
Views
Total views
22,103
On SlideShare
0
From Embeds
0
Number of Embeds
94
Actions
Shares
0
Downloads
762
Comments
2
Likes
9
Embeds 0
No embeds

No notes for slide

Testing Software

  1. 1. El testing de software<br />La necesidad <br />de implementar un metodología de QAT<br />NOV 2009<br />delti.com.ar<br />
  2. 2. Destinatarios de la charla<br /><ul><li>Para los que les interesa la calidad del software.
  3. 3. Para los que entienden que el testing es una inversión.
  4. 4. Para los que saben que el tester debe ser externo.
  5. 5. Para los que quieren conocer aspectos básicos de las ventajas del testing.</li></ul>La necesidad <br />de implementar un metodología de QAT<br />El testing de softwareAnálisis de la necesidad de implementar un metodología de QAT<br />
  6. 6. Qué es TESTING<br />evaluar calidadidentificar corregirfallas<br />defectoserroresconocerbuscar encontrar<br />gestiónproducción costoscambiarplan <br />pruebasdemostrar garantíavalorriesgo…<br />La necesidad <br />de implementar un metodología de QAT<br />El testing de softwareAnálisis de la necesidad de implementar un metodología de QAT<br />
  7. 7. Qué es TESTING<br />El proceso consistente en demostrar que el sistema no presenta errores<br />El proceso de verificar que el programa hace lo que debería hacer<br />E. W. Dijkstra , “el testing puede probar la presencia de errores pero no la <br />ausencia de ellos”.<br />Software Testing es el proceso de evaluar un Sistema o Componente de <br />un Sistema de forma manual o automática para verificar que satisface los <br />requisitos esperados, o para identificar diferencias entre los Resultados <br />esperados y los reales (IEEE, 1983)<br />Un test fracasa cuando no se encuentra ningún error<br />La necesidad <br />de implementar un metodología de QAT<br />El testing de softwareAnálisis de la necesidad de implementar un metodología de QAT<br />
  8. 8. Qué aporta el TESTING<br /><ul><li>Calidad durante todo el proceso
  9. 9. Disminución de costos
  10. 10. Reducción de riesgos
  11. 11. Optimización de recursos
  12. 12. El seguimiento de estándares </li></ul>aumentar, administrar y monitorear la calidad de los entregables<br />La necesidad <br />de implementar un metodología de QAT<br />El testing de softwareAnálisis de la necesidad de implementar un metodología de QAT<br />
  13. 13. Objetivos del TESTING<br />Inicio<br />Del<br />Sistema<br />Prod. Requerido<br />GAP Usuario<br />Prod. Entregado<br />GAP IT<br />La necesidad <br />de implementar un metodología de QAT<br />Prod. Especificado<br />85% de los defectos de la aplicación se produce al inicio de la etapa de construcción <br />Mientras más se demora en encontrar un error, más costoso será repararlo <br />El testing de softwareAnálisis de la necesidad de implementar un metodología de QAT<br />
  14. 14. Visión estratégica del TESTING<br />factor económico, CEO/CIO, decisión estratégica<br />La necesidad <br />de implementar un metodología de QAT<br />El testing de softwareAnálisis de la necesidad de implementar un metodología de QAT<br />
  15. 15. Evolución del Testing<br />Depuración<br />Destrucción<br />Prevención<br />Mejoramiento<br />La necesidad <br />de implementar un metodología de QAT<br />1956<br />1957-1978<br />1979-1982<br />1983-1987<br />1988- PRESENTE<br />Demostración<br />Evaluación<br />El testing de softwareAnálisis de la necesidad de implementar un metodología de QAT<br />
  16. 16. Costos del Testing<br />Costos de Calidad se refiere a los recursos que se destinarán en un proyecto para asegurar que el servicio o producto final cumpla satisfactoriamente con los requisitos preestablecidos por el cliente y así poder considerarlo como un resultado final exitoso.<br /> Todo Project Manager debe considerar que por más experiencia que posea su equipo de proyecto, la calidad no se conseguirá por casualidad, ni de forma accidental; por lo que los Costos de la Calidad al igual que sucede con otras tareas de un proyecto, deben ser planeados, medidos y presupuestados<br />La necesidad <br />de implementar un metodología de QAT<br />El testing de softwareAnálisis de la necesidad de implementar un metodología de QAT<br />
  17. 17. gastos de prevención <br />Costos del Testing<br />Costos de Conformidad<br />Costos NO conformidad<br />los gastos que surgen de la prueba de programadores y/o testers<br />formación, requisitos y las revisiones de código, y otras actividades que promuevan un buen software. <br />Costos de Calidad<br />los fallos internos<br /> (antes de la liberación) <br />fallos externos <br />(post liberación). <br />gastos de prevención <br />costos de evaluación<br />La necesidad <br />de implementar un metodología de QAT<br />errores encontrados por los clientes <br />planificación de las actividades de ensayo, el desarrollo de la prueba, los casos y datos, y la ejecución de esos casos de prueba una vez.<br />Crosby y JM Juran, JimCampenella, en los principios de costes de calidad<br />El testing de softwareAnálisis de la necesidad de implementar un metodología de QAT<br />
  18. 18. Etapa y Costos del Testing<br />Bugs un costo de $ 1 cuando se encontró durante la revisión, $ 10 si se detecta a través de pruebas de desarrollo, $ 100 si se detecta a través de pruebas de probador, y $ 1.000 cuando lo encuentran los clientes. Si una organización no llevó a cabo ninguna prueba formal, los desarrolladores pueden encontrar 250 errores y 750 los clientes (Software testingoffersbigROI ByJennetteMullaney)<br />El Testing es un 30 - 40 % del costo total (Software EngineeringInstitute)<br />Costo $ 1 durante los requerimientos, $ 60 la reparación durante el testing, $ 100 costo de reparación después de la entrega (IBM – Gartner)<br />La necesidad <br />de implementar un metodología de QAT<br />El testing de softwareAnálisis de la necesidad de implementar un metodología de QAT<br />
  19. 19. gastos de prevención <br />Etapa y Costos del Testing<br />$ 1<br />Requerimientos<br />1<br />$ 3<br />Diseño<br />2<br />Codificación<br />$ 10<br />3<br />La necesidad <br />de implementar un metodología de QAT<br />Pruebas de desarrollo<br />$ 27<br />4<br />Pruebas aceptación<br />$ 50<br />5<br />Producción<br />$ 150<br />6<br />El testing de softwareAnálisis de la necesidad de implementar un metodología de QAT<br />
  20. 20. gastos de prevención <br />Realidad del Testing<br /><ul><li>Falta de estándares
  21. 21. Falta de recursos (RH; Herramientas; documentos, etc.)
  22. 22. Falta de capacitación
  23. 23. Comienzo tarde de las pruebas
  24. 24. Excusas de falta de tiempo / costos…
  25. 25. No entenderlo como un proceso insoslayable dentro de la ingeniería del software
  26. 26. Falta de planes
  27. 27. Programadores o Analistas probando y no testers</li></ul>La necesidad <br />de implementar un metodología de QAT<br />El testing de softwareAnálisis de la necesidad de implementar un metodología de QAT<br />
  28. 28. Sin Testing<br /><ul><li>Baja calidad
  29. 29. Pérdida de imagen
  30. 30. Pérdidas económicas
  31. 31. Fallas en sistemas críticos</li></ul>La necesidad <br />de implementar un metodología de QAT<br />El testing de softwareAnálisis de la necesidad de implementar un metodología de QAT<br />
  32. 32. Implementar Testing<br />Si se está en las etapas iniciales del proyecto <br />conviene empezar por la verificación de <br />requerimientos y la validación de arquitectura, <br />mientras que si ya se está avanzado, es mejor <br />revisar el diseño o directamente el código <br />La necesidad <br />de implementar un metodología de QAT<br />El testing de softwareAnálisis de la necesidad de implementar un metodología de QAT<br />
  33. 33. Tipos deTesting<br />De caja negra (Black-box):<br />No esta basada en el conocimiento del código o diseño interno, <br />determina la funcionalidad del sistema.<br />De caja blanca (White-box):<br />Esta basada en la lógica interna de la aplicación y el código. Hace una <br />cobertura de declaraciones del código, ramas, caminos y condiciones.<br />Unitaria (o de unidad) (Unit):<br />Es la escala mas pequeña de la prueba, esta basada en la funcionalidad <br />de los módulos del programa, como funciones, procedimientos, módulos<br />de clase, etc. <br />La necesidad <br />de implementar un metodología de QAT<br />El testing de softwareAnálisis de la necesidad de implementar un metodología de QAT<br />
  34. 34. Tipos deTesting<br />Integración incremental:<br />Cuando nuevas funciones son ingresadas al sistema se hace la prueba <br />basándose en la funcionalidad, la dependencia con otros módulos y la <br />integración con el programa completo.<br />De integración (Integration):<br />Se basa en las pruebas de conexiones y comunicaciones entre diferentes <br />módulos. Es esencial en sistemas de cliente_servidor o red.<br />Funcional (Functional):<br />La caja negra hace la prueba funcional de los requerimientos de la aplicación y <br />generalmente es realizada por el programador, en cambio, la prueba funcional <br />es realizada por los testers.<br />La necesidad <br />de implementar un metodología de QAT<br />El testing de softwareAnálisis de la necesidad de implementar un metodología de QAT<br />
  35. 35. Tipos deTesting<br />De sistema (System):<br />Es una prueba de caja negra incluyendo todos los componentes del sistema<br />desde el hardware a la documentación.<br />De fin a fin:<br />Es similar a la prueba de sistema pero esta involucra la interacción con otro<br />hardware, bases de datos y redes.<br />De sanidad:<br />Determina si la nueva versión de un software esta bien realizada y si <br />necesita un nuevo esfuerzo en la prueba de software. Por ejemplo la nueva<br />versión de un programa cumple con casi todos los requisitos pero destruye<br />la base de datos al leerla, por lo tanto se dice que este software no esta en <br />una condición sana.<br />La necesidad <br />de implementar un metodología de QAT<br />El testing de softwareAnálisis de la necesidad de implementar un metodología de QAT<br />
  36. 36. Tipos deTesting<br />De aceptación (Acceptance):<br />Es la prueba final basada en las especificaciones del usuario o basada en el <br />uso del programa por el usuario final luego de un periodo de tiempo.<br />De carga:<br />Esta basada en las aplicaciones bajo cargas pesadas, generalmente usadas en <br />sitios web y en servidores con gran cantidad de datos donde se determina en <br />cuales puntos existen degradaciones del sistema.<br />De rendimiento ó respuesta (Perfomance):<br />Es una de las pruebas finales y sirve para definir los requerimientos y la <br />calidad del software, en base a las pruebas de carga y estrés. Incluye <br />entrevistas con el usuario y programador.<br />La necesidad <br />de implementar un metodología de QAT<br />El testing de softwareAnálisis de la necesidad de implementar un metodología de QAT<br />
  37. 37. Tipos deTesting<br />De estrés:<br />Es una prueba de carga y rendimiento o respuesta (perfomance) basada en la <br />Funcionalidad del sistema bajo cargas pesadas, un gran numero de <br />repeticiones, manejo de grandes datos y demasiadas preguntas a bases de<br />datos grandes.<br />De instalación y desinstalación:<br />Determina la eficiencia de los procesos que instalan y desinstalan las <br />aplicaciones del programa.<br />De recuperación:<br />Es la prueba que evalúa que tan bien se recupera el sistema luego de bloqueos, <br />fallas del hardware u otros problemas catastróficos.<br />La necesidad <br />de implementar un metodología de QAT<br />El testing de softwareAnálisis de la necesidad de implementar un metodología de QAT<br />
  38. 38. Tipos deTesting<br />De seguridad:<br />Evalúa que tan bien el sistema se protege contra accesos, internos o externos, <br />no autorizados, esta prueba requiere sofisticadas técnicas y herramientas.<br />De compatibilidad:<br />Evalúa el desempeño del software en diferentes hardware, sistemas operativos,<br />redes, etc.<br />De exploración:<br />Es una prueba informal del software que no esta basada en ningún plan o caja <br />de prueba y a menudo los testers aprenden del programa al explorar todas las <br />aplicaciones posibles.<br />La necesidad <br />de implementar un metodología de QAT<br />El testing de softwareAnálisis de la necesidad de implementar un metodología de QAT<br />
  39. 39. Tipos deTesting<br />De anuncio:<br />Es similar a la prueba de exploración pero los testers deben tener suficiente <br />noción sobre el funcionamiento del programa antes de comenzar esta <br />prueba. Incluye reunión con analistas y programadores.<br />De usuario:<br />Determina si el usuario se desenvuelve satisfactoriamente con el programa.<br />De comparación:<br />En esta prueba se comparan los pro y los contra del programa con los <br />programas creados con la competencia.<br />La necesidad <br />de implementar un metodología de QAT<br />El testing de softwareAnálisis de la necesidad de implementar un metodología de QAT<br />
  40. 40. Tipos deTesting<br />Alfa (Alpha):<br />Es la prueba cuando la aplicación esta cerca de la entrega al usuario. Se hacen <br />pequeños cambios generalmente en el diseño de interfaces. Esta prueba es <br />hecha por usuarios.<br />Beta (Beta):<br />Es la búsqueda de defectos en el programa completo. Generalmente es hecha <br />por usuarios.<br />De mutación (Mutation):<br />Esta prueba esta basada en la introducción deliberada de diferentes códigos <br />Externos al programa (defectos) para reexaminar si estos defectos pueden ser <br />detectados. Requiere gran disponibilidad de recursos de computación.<br />La necesidad <br />de implementar un metodología de QAT<br />El testing de softwareAnálisis de la necesidad de implementar un metodología de QAT<br />
  41. 41. Cuestiones claves del Testing<br /><ul><li>Test Plan
  42. 42. El tester no debe ser el desarrollador
  43. 43. La empresa desarrolladora no debe hacer el testeo final
  44. 44. Revisión de resultados (qué haga lo que tiene que hacer y que no haga lo que no tiene que hacer)
  45. 45. Registro de resultados
  46. 46. Equipo de testers
  47. 47. Recursos del Test Plan</li></ul>La necesidad <br />de implementar un metodología de QAT<br />El testing de softwareAnálisis de la necesidad de implementar un metodología de QAT<br />
  48. 48. Tendencias Testing<br /><ul><li>Profesionalización RH
  49. 49. Planificación
  50. 50. Lugar jerarquía en el proceso de software
  51. 51. Certificaciones
  52. 52. Comenzar las actividades de testing lo antes posible</li></ul>La necesidad <br />de implementar un metodología de QAT<br />El testing de softwareAnálisis de la necesidad de implementar un metodología de QAT<br />
  53. 53. Reflexiones Testing<br /><ul><li>Las fallas de los sistemas motivan a los clientes a ir a la competencia.El alto costo del fracaso hace del Testing una obligación.
  54. 54. La presión por la liberación cada vez más rápida del producto presiona a los testers.
  55. 55. El testing como estrategia organizacional
  56. 56. El testing es una inversión
  57. 57. El testing como un mal necesario al final del proceso
  58. 58. El testing como el grupo que viene a destruir lo que otros construyeron
  59. 59. Tercerizar el testing</li></ul>La necesidad <br />de implementar un metodología de QAT<br />El testing de softwareAnálisis de la necesidad de implementar un metodología de QAT<br />
  60. 60. Certificaciones Testing<br />ISEB/ISQTB (InformationSystemsExaminationsBoard/): Ofrece cursos y <br />certificaciones en diferentes niveles: Foundation, Intermediate y <br />Practicioner. Actualmente también se está preparando una certificación tipo <br />Advanced. <br /> IIST (International Institute of Software Testing): Este instituto ofrece dos<br />tipos de certificaciones, CertifiedSoftware Test Professional (CSTP) y <br />CertifiedTest Manager (CTM)<br />QAI (QualityAssuranceInstitute): Este instituto ofrece dos tipos de <br />certificaciones CertifiedSoftware QualityAnalyst (CSQA) y Certified<br />Software Tester (CSTE).<br />ASQ (American SocietyforQuality): Bajo la ASQ, existen una serie de <br />certificaciones orientadas a la Calidad del Software. Quizás las que más se adecúen a<br />las responsabilidades del Tester serían QualityEngineer (CQE) y Software Quality<br />Engineer(CSQE).<br />La necesidad <br />de implementar un metodología de QAT<br />El testing de softwareAnálisis de la necesidad de implementar un metodología de QAT<br />
  61. 61. GRACIAS POR SU ATENCIÓN<br />La necesidad <br />de implementar un metodología de QAT<br />info@delti.com.ar<br />testingsoftware.com.ar<br />

×