Testingsoft 12614340058387 Phpapp01
Testingsoft 12614340058387 Phpapp01
Testingsoft 12614340058387 Phpapp01
El testing de software
delti.com.ar
NOV 2009
Destinatarios de la charla
La necesidad de implementar un metodologa de QAT
Para los que les interesa la calidad del software. Para los que entienden que el testing es una inversin. Para los que saben que el tester debe ser externo. Para los que quieren conocer aspectos bsicos de las ventajas del testing.
Qu es TESTING
La necesidad de implementar un metodologa de QAT
encontrar
Qu es TESTING
El proceso consistente en demostrar que el sistema no presenta errores El proceso de verificar que el programa hace lo que debera hacer E. W. Dijkstra , el testing puede probar la presencia de errores pero no la ausencia de ellos. Software Testing es el proceso de evaluar un Sistema o Componente de un Sistema de forma manual o automtica para verificar que satisface los requisitos esperados, o para identificar diferencias entre los Resultados esperados y los reales (IEEE, 1983) Un test fracasa cuando no se encuentra ningn error
Qu aporta el TESTING
La necesidad de implementar un metodologa de QAT
Calidad durante todo el proceso Disminucin de costos Reduccin de riesgos Optimizacin de recursos El seguimiento de estndares
aumentar, administrar y monitorear la calidad de los entregables
85% de los defectos de la aplicacin se produce al inicio de la etapa de construccin Mientras ms se demora en encontrar un error, ms costoso ser repararlo
Depuracin
Destruccin
1956
1957-1978
1979-1982
1983-1987
1988- PRESENTE
Demostracin
Evaluacin
Costos NO conformidad
Costos de Calidad
gastos de prevencin
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.
$1 $3
$ 10 $ 27 $ 50
3 prevencin
$ 150
Falta de estndares Falta de recursos (RH; Herramientas; documentos, etc.) Falta de capacitacin Comienzo tarde de las pruebas gastos de prevencin Excusas de falta de tiempo / costos No entenderlo como un proceso insoslayable dentro de la ingeniera del software Falta de planes Programadores o Analistas probando y no testers
Sin Testing
La necesidad de implementar un metodologa de QAT
Implementar Testing
La necesidad de implementar un metodologa de QAT
Si se est en las etapas iniciales del proyecto conviene empezar por la verificacin de requerimientos y la validacin de arquitectura, mientras que si ya se est avanzado, es mejor revisar el diseo o directamente el cdigo
Tipos deTesting
De caja negra (Black-box): No esta basada en el conocimiento del cdigo o diseo interno, determina la funcionalidad del sistema.
De caja blanca (White-box): Esta basada en la lgica interna de la aplicacin y el cdigo. Hace una cobertura de declaraciones del cdigo, ramas, caminos y condiciones. Unitaria (o de unidad) (Unit): Es la escala mas pequea de la prueba, esta basada en la funcionalidad de los mdulos del programa, como funciones, procedimientos, mdulos de clase, etc.
Tipos deTesting
La necesidad de implementar un metodologa de QAT
Integracin incremental: Cuando nuevas funciones son ingresadas al sistema se hace la prueba basndose en la funcionalidad, la dependencia con otros mdulos y la integracin con el programa completo. De integracin (Integration): Se basa en las pruebas de conexiones y comunicaciones entre diferentes mdulos. Es esencial en sistemas de cliente_servidor o red. Funcional (Functional): La caja negra hace la prueba funcional de los requerimientos de la aplicacin y generalmente es realizada por el programador, en cambio, la prueba funcional es realizada por los testers.
Tipos deTesting
De sistema (System): Es una prueba de caja negra incluyendo todos los componentes del sistema desde el hardware a la documentacin. De fin a fin: Es similar a la prueba de sistema pero esta involucra la interaccin con otro hardware, bases de datos y redes. De sanidad: Determina si la nueva versin de un software esta bien realizada y si necesita un nuevo esfuerzo en la prueba de software. Por ejemplo la nueva versin de un programa cumple con casi todos los requisitos pero destruye la base de datos al leerla, por lo tanto se dice que este software no esta en una condicin sana.
Tipos deTesting
La necesidad de implementar un metodologa de QAT
De aceptacin (Acceptance): Es la prueba final basada en las especificaciones del usuario o basada en el uso del programa por el usuario final luego de un periodo de tiempo. De carga: Esta basada en las aplicaciones bajo cargas pesadas, generalmente usadas en sitios web y en servidores con gran cantidad de datos donde se determina en cuales puntos existen degradaciones del sistema. De rendimiento respuesta (Perfomance): Es una de las pruebas finales y sirve para definir los requerimientos y la calidad del software, en base a las pruebas de carga y estrs. Incluye entrevistas con el usuario y programador.
Tipos deTesting
La necesidad de implementar un metodologa de QAT
De estrs: Es una prueba de carga y rendimiento o respuesta (perfomance) basada en la Funcionalidad del sistema bajo cargas pesadas, un gran numero de repeticiones, manejo de grandes datos y demasiadas preguntas a bases de datos grandes. De instalacin y desinstalacin: Determina la eficiencia de los procesos que instalan y desinstalan las aplicaciones del programa. De recuperacin: Es la prueba que evala que tan bien se recupera el sistema luego de bloqueos, fallas del hardware u otros problemas catastrficos.
Tipos deTesting
La necesidad de implementar un metodologa de QAT
De seguridad: Evala que tan bien el sistema se protege contra accesos, internos o externos, no autorizados, esta prueba requiere sofisticadas tcnicas y herramientas. De compatibilidad: Evala el desempeo del software en diferentes hardware, sistemas operativos, redes, etc. De exploracin: Es una prueba informal del software que no esta basada en ningn plan o caja de prueba y a menudo los testers aprenden del programa al explorar todas las aplicaciones posibles.
Tipos deTesting
De anuncio: Es similar a la prueba de exploracin pero los testers deben tener suficiente nocin sobre el funcionamiento del programa antes de comenzar esta prueba. Incluye reunin con analistas y programadores. De usuario: Determina si el usuario se desenvuelve satisfactoriamente con el programa.
De comparacin: En esta prueba se comparan los pro y los contra del programa con los programas creados con la competencia.
Tipos deTesting
Alfa (Alpha): Es la prueba cuando la aplicacin esta cerca de la entrega al usuario. Se hacen pequeos cambios generalmente en el diseo de interfaces. Esta prueba es hecha por usuarios. Beta (Beta): Es la bsqueda de defectos en el programa completo. Generalmente es hecha por usuarios.
De mutacin (Mutation): Esta prueba esta basada en la introduccin deliberada de diferentes cdigos Externos al programa (defectos) para reexaminar si estos defectos pueden ser detectados. Requiere gran disponibilidad de recursos de computacin.
Test Plan El tester no debe ser el desarrollador La empresa desarrolladora no debe hacer el testeo final Revisin de resultados (qu haga lo que tiene que hacer y que no haga lo que no tiene que hacer) Registro de resultados Equipo de testers Recursos del Test Plan
Tendencias Testing
La necesidad de implementar un metodologa de QAT
Profesionalizacin RH Planificacin Lugar jerarqua en el proceso de software Certificaciones Comenzar las actividades de testing lo antes posible
Reflexiones Testing
Las fallas de los sistemas motivan a los clientes a ir a la competencia. El alto costo del fracaso hace del Testing una obligacin. La presin por la liberacin cada vez ms rpida del producto presiona a los testers. El testing como estrategia organizacional El testing es una inversin El testing como un mal necesario al final del proceso El testing como el grupo que viene a destruir lo que otros construyeron Tercerizar el testing La necesidad de implementar un metodologa de QAT
Certificaciones Testing
ISEB/ISQTB (Information Systems Examinations Board/): Ofrece cursos y certificaciones en diferentes niveles: Foundation, Intermediate y Practicioner. Actualmente tambin se est preparando una certificacin tipo Advanced.
IIST (International Institute of Software Testing): Este instituto ofrece dos tipos de certificaciones, Certified Software Test Professional (CSTP) y Certified Test Manager (CTM) QAI (Quality Assurance Institute): Este instituto ofrece dos tipos de certificaciones Certified Software Quality Analyst (CSQA) y Certified Software Tester (CSTE). ASQ (American Society for Quality): Bajo la ASQ, existen una serie de certificaciones orientadas a la Calidad del Software. Quizs las que ms se adecen a las responsabilidades del Tester seran Quality Engineer (CQE) y Software Quality Engineer (CSQE).