Testing Software

  • Published on
    25-May-2015

  • View
    18.409

  • Download
    0

Embed Size (px)

DESCRIPTION

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

Transcript

<ul><li> 1. El testing de software<br />La necesidad <br />de implementar un metodologa de QAT<br />NOV 2009<br />delti.com.ar<br /></li></ul> <p> 2. Destinatarios de la charla<br /></p> <ul><li>Para los que les interesa la calidad del software. </li></ul> <p> 3. Para los que entienden que el testing es una inversin. 4. Para los que saben que el tester debe ser externo. 5. Para los que quieren conocer aspectos bsicos de las ventajas del testing.La necesidad <br />de implementar un metodologa de QAT<br />El testing de softwareAnlisis de la necesidad de implementar un metodologa de QAT<br /> 6. Qu es TESTING<br />evaluar calidadidentificar corregirfallas<br />defectoserroresconocerbuscar encontrar<br />gestinproduccin costoscambiarplan <br />pruebasdemostrar garantavalorriesgo<br />La necesidad <br />de implementar un metodologa de QAT<br />El testing de softwareAnlisis de la necesidad de implementar un metodologa de QAT<br /> 7. Qu es TESTING<br />El proceso consistente en demostrar que elsistema no presenta errores<br />El proceso de verificar que el programa hace lo que debera 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 automtica 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 ningn error<br />La necesidad <br />de implementar un metodologa de QAT<br />El testing de softwareAnlisis de la necesidad de implementar un metodologa de QAT<br /> 8. Qu aporta el TESTING<br /></p> <ul><li>Calidad durante todo el proceso </li></ul> <p> 9. Disminucin de costos 10. Reduccin de riesgos 11. Optimizacin de recursos 12. El seguimiento de estndares aumentar, administrar y monitorear la calidad de los entregables<br />La necesidad <br />de implementar un metodologa de QAT<br />El testing de softwareAnlisis de la necesidad de implementar un metodologa de QAT<br /> 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 metodologa de QAT<br />Prod. Especificado<br />85% de los defectos de la aplicacin se produce al inicio de la etapa de construccin <br />Mientras ms se demora en encontrar un error, ms costoso ser repararlo <br />El testing de softwareAnlisis de la necesidad de implementar un metodologa de QAT<br /> 14. Visin estratgica del TESTING<br />factor econmico, CEO/CIO, decisin estratgica<br />La necesidad <br />de implementar un metodologa de QAT<br />El testing de softwareAnlisis de la necesidad de implementar un metodologa de QAT<br /> 15. Evolucin del Testing<br />Depuracin<br />Destruccin<br />Prevencin<br />Mejoramiento<br />La necesidad <br />de implementar un metodologa de QAT<br />1956<br />1957-1978<br />1979-1982<br />1983-1987<br />1988- PRESENTE<br />Demostracin<br />Evaluacin<br />El testing de softwareAnlisis de la necesidad de implementar un metodologa de QAT<br /> 16. Costos del Testing<br />Costos de Calidad se refiere a los recursos que se destinarn 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 ms 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 metodologa de QAT<br />El testing de softwareAnlisis de la necesidad de implementar un metodologa de QAT<br /> 17. gastos de prevencin <br />Costos del Testing<br />Costos de Conformidad<br />Costos NO conformidad<br />los gastos que surgende la pruebade programadores y/o testers<br />formacin, requisitos y las revisiones de cdigo, y otras actividades que promuevan un buen software. <br />Costos de Calidad<br />los fallos internos<br /> (antes de la liberacin) <br />fallos externos <br />(post liberacin). <br />gastos de prevencin <br />costos de evaluacin<br />La necesidad <br />de implementar un metodologa de QAT<br />errores encontrados por los clientes <br />planificacin de las actividades de ensayo, el desarrollo de la prueba, los casos y datos, y la ejecucin de esos casos de prueba una vez.<br />Crosby y JM Juran, JimCampenella, en los principios de costes de calidad<br />El testing de softwareAnlisis de la necesidad de implementar un metodologa de QAT<br /> 18. Etapa y Costos del Testing<br />Bugs un costo de $ 1 cuando se encontr durante la revisin, $ 10 si se detecta a travs de pruebas de desarrollo, $ 100 si se detecta a travs de pruebas de probador, y $ 1.000 cuando lo encuentran los clientes. Si una organizacin 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 reparacin durante el testing, $ 100 costo de reparacin despus de la entrega (IBM Gartner)<br />La necesidad <br />de implementar un metodologa de QAT<br />El testing de softwareAnlisis de la necesidad de implementar un metodologa de QAT<br /> 19. gastos de prevencin <br />Etapa y Costos del Testing<br />$ 1<br />Requerimientos<br />1<br />$ 3<br />Diseo<br />2<br />Codificacin<br />$ 10<br />3<br />La necesidad <br />de implementar un metodologa de QAT<br />Pruebas de desarrollo<br />$ 27<br />4<br />Pruebas aceptacin<br />$ 50<br />5<br />Produccin<br />$ 150<br />6<br />El testing de softwareAnlisis de la necesidad de implementar un metodologa de QAT<br /> 20. gastos de prevencin <br />Realidad del Testing<br /></p> <ul><li>Falta de estndares </li></ul> <p> 21. Falta de recursos (RH; Herramientas; documentos, etc.) 22. Falta de capacitacin 23. Comienzo tarde de las pruebas 24. Excusas de falta de tiempo / costos 25. No entenderlo como un proceso insoslayable dentro de la ingeniera del software 26. Falta de planes 27. Programadores o Analistas probando y no testersLa necesidad <br />de implementar un metodologa de QAT<br />El testing de softwareAnlisis de la necesidad de implementar un metodologa de QAT<br /> 28. Sin Testing<br /></p> <ul><li>Baja calidad </li></ul> <p> 29. Prdida de imagen 30. Prdidas econmicas 31. Fallas en sistemas crticosLa necesidad <br />de implementar un metodologa de QAT<br />El testing de softwareAnlisis de la necesidad de implementar un metodologa de QAT<br /> 32. Implementar Testing<br />Si se est en las etapas iniciales del proyecto <br />convieneempezar por la verificacin de <br />requerimientos y la validacin de arquitectura, <br />mientras que si ya se est avanzado, es mejor <br />revisar el diseo o directamente el cdigo <br />La necesidad <br />de implementar un metodologa de QAT<br />El testing de softwareAnlisis de la necesidad de implementar un metodologa de QAT<br /> 33. Tipos deTesting<br />De caja negra (Black-box):<br />No esta basada en el conocimiento del cdigo o diseo interno, <br />determina la funcionalidad del sistema.<br />De caja blanca (White-box):<br />Esta basada en la lgica interna de la aplicacin y el cdigo. Hace una <br />cobertura de declaraciones del cdigo, ramas, caminos y condiciones.<br />Unitaria (o de unidad) (Unit):<br />Es la escala mas pequea de la prueba, esta basada en la funcionalidad <br />de los mdulos del programa, como funciones, procedimientos, mdulos<br />de clase, etc. <br />La necesidad <br />de implementar un metodologa de QAT<br />El testing de softwareAnlisis de la necesidad de implementar un metodologa de QAT<br /> 34. Tipos deTesting<br />Integracin incremental:<br />Cuando nuevas funciones son ingresadas al sistema se hace la prueba <br />basndose en la funcionalidad, la dependencia con otros mdulos y la <br />integracin con el programa completo.<br />De integracin (Integration):<br />Se basa en las pruebas de conexiones y comunicaciones entre diferentes <br />mdulos. 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 aplicacin 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 metodologa de QAT<br />El testing de softwareAnlisis de la necesidad de implementar un metodologa de QAT<br /> 35. Tipos deTesting<br />De sistema (System):<br />Es una prueba de caja negra incluyendo todos los componentes del sistema<br />desde elhardware a la documentacin.<br />De fin a fin:<br />Es similar a la prueba de sistema pero esta involucra la interaccin con otro<br />hardware, bases de datos y redes.<br />De sanidad:<br />Determina si la nueva versin de un software esta bien realizada y si <br />necesita un nuevo esfuerzo en la prueba de software. Por ejemplo la nueva<br />versin 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 condicin sana.<br />La necesidad <br />de implementar un metodologa de QAT<br />El testing de softwareAnlisis de la necesidad de implementar un metodologa de QAT<br /> 36. Tipos deTesting<br />De aceptacin (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 estrs. Incluye <br />entrevistas con el usuario y programador.<br />La necesidad <br />de implementar un metodologa de QAT<br />El testing de softwareAnlisis de la necesidad de implementar un metodologa de QAT<br /> 37. Tipos deTesting<br />De estrs:<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 instalacin y desinstalacin:<br />Determina la eficiencia de los procesos que instalan y desinstalan las <br />aplicaciones del programa.<br />De recuperacin:<br />Es la prueba que evala que tan bien se recupera el sistema luego de bloqueos, <br />fallasdel hardware u otros problemas catastrficos.<br />La necesidad <br />de implementar un metodologa de QAT<br />El testing de softwareAnlisis de la necesidad de implementar un metodologa de QAT<br /> 38. Tipos deTesting<br />De seguridad:<br />Evala que tan bien el sistema se protege contra accesos, internos o externos, <br />no autorizados, esta prueba requiere sofisticadas tcnicas y herramientas.<br />De compatibilidad:<br />Evala el desempeo del software en diferentes hardware, sistemas operativos,<br />redes, etc.<br />De exploracin:<br />Es una prueba informal del software que no esta basada en ningn 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 metodologa de QAT<br />El testing de softwareAnlisis de la necesidad de implementar un metodologa de QAT<br /> 39. Tipos deTesting<br />De anuncio:<br />Es similar a la prueba de exploracin pero los testers deben tener suficiente <br />nocin sobre el funcionamiento del programa antes de comenzar esta <br />prueba. Incluye reunin con analistas yprogramadores.<br />De usuario:<br />Determina si el usuario se desenvuelve satisfactoriamente con el programa.<br />De comparacin:<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 metodologa de QAT<br />El testing de softwareAnlisis de la necesidad de implementar un metodologa de QAT<br /> 40. Tipos deTesting<br />Alfa (Alpha):<br />Es la prueba cuando la aplicacin esta cerca de la entrega al usuario. Se hacen <br />pequeos cambios generalmente en el diseo de interfaces. Esta prueba es <br />hecha por usuarios.<br />Beta (Beta):<br />Es la bsqueda de defectos en el programa completo. Generalmente es hecha <br />por usuarios.<br />De mutacin (Mutation):<br />Esta prueba esta basada en la introduccin deliberada de diferentes cdigos <br />Externos al programa (defectos) para reexaminar si estos defectos pueden ser <br />detectados. Requiere gran disponibilidad de recursos de computacin.<br />La necesidad <br />de implementar un metodologa de QAT<br />El testing de softwareAnlisis de la necesidad de implementar un metodologa de QAT<br /> 41. Cuestiones claves del Testing<br /></p> <ul><li>Test Plan </li></ul> <p> 42. El tester no debe ser el desarrollador 43. La empresa desarrolladora no debe hacer el testeo final 44. Revisin de resultados (qu haga lo que tiene que hacer y que no haga lo que no tiene que hacer) 45. Registro de resultados 46. Equipo de testers 47. Recursos del Test PlanLa necesidad <br />de implementar un metodologa de QAT<br />El testing de softwareAnlisis de la necesidad de implementar un metodologa de QAT<br /> 48. Tendencias Testing<br /></p> <ul><li>Profesionalizacin RH </li></ul> <p> 49. Planificacin 50. Lugar jerarqua en el proceso de software 51. Certificaciones 52. Comenzar las actividades de testing lo antes posibleLa necesidad <br />de implementar un metodologa de QAT<br />El testing de softwareAnlisis de la necesidad de implementar un metodologa de QAT<br /> 53. Reflexiones Testing<br /></p> <ul><li>Las fallas de los sistemas motivan a los clientesa ir a la competencia.El alto costo del fracaso hace del Testing una obligacin. </li></ul> <p> 54. La presin por la liberacin cada vez ms rpida del producto presiona a los testers. 55. El testing como estrategia organizacional 56. El testing es una inversin 57. El testing como un mal necesario al final del proceso 58. El testing como el grupo que viene a destruir lo que otros construyeron 59. Tercerizar el testingLa necesidad <br />de implementar un metodologa de QAT<br />El testing de softwareAnlisis de la necesidad de implementar un metodologa de QAT<br /> 60. CertificacionesTesting<br />ISEB/ISQTB (InformationSystemsExaminationsBoard/): Ofrece cursos y <br />certificaciones en diferentes niveles: Foundation, Intermediate y <br />Practicioner. Actualmente tambin se est preparando una certificacin 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. Quizs las que ms se adecen a<br />las responsabilidades del Tester seran QualityEngineer (CQE) y Software Quality<br />Engineer(CSQE).<br />La necesidad <br />de implementar un metodologa de QAT<br />El testing de softwareAnlisis de la necesidad de implementar un metodologa de QAT<br /> 61. GRACIAS POR SU ATENCIN<br />La necesidad <br />de implementar un metodologa de QAT<br />info@delti.com.ar<br />testingsoftware.com.ar<br /></p>