Testing Software

28
El testing de software NOV 2009 L a n e c e s i d a d d e i m p l e m e n t a r u n m e t o d o l o g í a d e Q A T delti.com.ar

description

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

Transcript of Testing Software

Page 1: Testing Software

El testing de software

NOV 2009

La necesidad de im

plementar un m

etodología de QA

T

delti.com.ar

Page 2: Testing Software

Destinatarios de la charla

Para los que les interesa la calidad del software. Para los que entienden que el testing es una inversión. Para los que saben que el tester debe ser externo. Para los que quieren conocer aspectos básicos de las

ventajas del testing.

El testing de softwareAnálisis de la necesidad de implementar un metodología de QAT

La necesidad de im

plementar un m

etodología de QA

T

Page 3: Testing Software

Qué es TESTING

El testing de softwareAnálisis de la necesidad de implementar un metodología de QAT

evaluar calidad identificar corregir fallas

defectos errores conocer buscar encontrar

gestión producción costos cambiar plan

pruebas demostrar garantía valor riesgo…

La necesidad de im

plementar un m

etodología de QA

T

Page 4: Testing Software

Qué es TESTING

El testing de softwareAnálisis de la necesidad de implementar un metodología de QAT

El proceso consistente en demostrar que el sistema no presenta errores

El proceso de verificar que el programa hace lo que debería 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 automática 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 ningún error

La necesidad de im

plementar un m

etodología de QA

T

Page 5: Testing Software

Qué aporta el TESTING

El testing de softwareAnálisis de la necesidad de implementar un metodología de QAT

• Calidad durante todo el proceso• Disminución de costos• Reducción de riesgos• Optimización de recursos• El seguimiento de estándares

aumentar, administrar y monitorear la calidad de los entregables

La necesidad de im

plementar un m

etodología de QA

T

Page 6: Testing Software

Objetivos del TESTING

El testing de softwareAnálisis de la necesidad de implementar un metodología de QAT

85% de los defectos de la aplicación se produce al inicio de la etapa de construcción Mientras más se demora en encontrar un error, más costoso será repararlo

InicioDel

Sistema

Prod. Especificado

Prod. Requerido

Prod. Entregado

GAP Usuario

GAP IT

La necesidad de im

plementar un m

etodología de QA

T

Page 7: Testing Software

Visión estratégica del TESTING

El testing de softwareAnálisis de la necesidad de implementar un metodología de QAT

factor económico, CEO/CIO, decisión estratégica

La necesidad de im

plementar un m

etodología de QA

T

Page 8: Testing Software

Evolución del Testing

El testing de softwareAnálisis de la necesidad de implementar un metodología de QAT

1956 1957-1978 1979-1982 1983-1987 1988- PRESENTE

Depuración Destrucción PrevenciónMejoramiento

Demostración Evaluación

La necesidad de im

plementar un m

etodología de QA

T

Page 9: Testing Software

Costos del Testing

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.

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

El testing de softwareAnálisis de la necesidad de implementar un metodología de QAT

La necesidad de im

plementar un m

etodología de QA

T

Page 10: Testing Software

La necesidad de im

plementar un m

etodología de QA

T

gastos de prevención

Costos del Testing

El testing de softwareAnálisis de la necesidad de implementar un metodología de QAT

Crosby y JM Juran, Jim Campenella, en los principios de costes de calidad

Cost

os d

e Ca

lidad

Costos de Conformidad Costos NO conformidad

gast

os d

e pr

even

ción

cost

os d

e ev

alua

ción

los fallos internos (antes de la liberación)

fallos externos (post liberación).

formación, requisitos y las revisiones de código, y otras actividades que

promuevan un buen software.

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.

errores encontrados por los clientes

los gastos que surgen de la prueba de

programadores y/o testers

Page 11: Testing Software

Etapa y Costos del Testing

El testing de softwareAnálisis de la necesidad de implementar un metodología de QAT

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 testing offers big ROI By Jennette Mullaney)

El Testing es un 30 - 40 % del costo total (Software Engineering Institute)

Costo $ 1 durante los requerimientos, $ 60 la reparación durante el testing, $ 100 costo de reparación después de la entrega (IBM – Gartner)

La necesidad de im

plementar un m

etodología de QA

T

Page 12: Testing Software

gastos de prevención

Etapa y Costos del Testing

El testing de softwareAnálisis de la necesidad de implementar un metodología de QAT

Requerimientos 1

Diseño 2

Codificación 3

Pruebas de desarrollo 4

Pruebas aceptación 5

Producción 6

$ 1

$ 3

$ 10

$ 27

$ 50

$ 150

La necesidad de im

plementar un m

etodología de QA

T

Page 13: Testing Software

gastos de prevención

Realidad del Testing

El testing de softwareAnálisis de la necesidad de implementar un metodología de QAT

• Falta de estándares• Falta de recursos (RH; Herramientas; documentos, etc.)• Falta de capacitación• Comienzo tarde de las pruebas• Excusas de falta de tiempo / costos…• No entenderlo como un proceso insoslayable dentro de la

ingeniería del software• Falta de planes • Programadores o Analistas probando y no testers

La necesidad de im

plementar un m

etodología de QA

T

Page 14: Testing Software

Sin Testing

El testing de softwareAnálisis de la necesidad de implementar un metodología de QAT

• Baja calidad• Pérdida de imagen• Pérdidas económicas• Fallas en sistemas críticos

La necesidad de im

plementar un m

etodología de QA

T

Page 15: Testing Software

Implementar Testing

El testing de softwareAnálisis de la necesidad de implementar un metodología de QAT

Si se está en las etapas iniciales del proyecto conviene empezar por la verificación de requerimientos y la validación de arquitectura, mientras que si ya se está avanzado, es mejor revisar el diseño o directamente el código

La necesidad de im

plementar un m

etodología de QA

T

Page 16: Testing Software

Tipos deTesting

El testing de softwareAnálisis de la necesidad de implementar un metodología de QAT

De caja negra (Black-box):No esta basada en el conocimiento del código o diseño interno, determina la funcionalidad del sistema.

De caja blanca (White-box):Esta basada en la lógica interna de la aplicación y el código. Hace una cobertura de declaraciones del código, ramas, caminos y condiciones.

Unitaria (o de unidad) (Unit):Es la escala mas pequeña de la prueba, esta basada en la funcionalidad de los módulos del programa, como funciones, procedimientos, módulos de clase, etc.

La necesidad de im

plementar un m

etodología de QA

T

Page 17: Testing Software

Tipos deTesting

El testing de softwareAnálisis de la necesidad de implementar un metodología de QAT

Integración incremental:Cuando nuevas funciones son ingresadas al sistema se hace la prueba basándose en la funcionalidad, la dependencia con otros módulos y la integración con el programa completo.

De integración (Integration):Se basa en las pruebas de conexiones y comunicaciones entre diferentes módulos. Es esencial en sistemas de cliente_servidor o red.

Funcional (Functional):La caja negra hace la prueba funcional de los requerimientos de la aplicación y generalmente es realizada por el programador, en cambio, la prueba funcional es realizada por los testers.

La necesidad de im

plementar un m

etodología de QA

T

Page 18: Testing Software

Tipos deTesting

El testing de softwareAnálisis de la necesidad de implementar un metodología de QAT

De sistema (System):Es una prueba de caja negra incluyendo todos los componentes del sistema desde el hardware a la documentación.

De fin a fin:Es similar a la prueba de sistema pero esta involucra la interacción con otro hardware, bases de datos y redes.

De sanidad:Determina si la nueva versión de un software esta bien realizada y si necesita un nuevo esfuerzo en la prueba de software. Por ejemplo la nueva versión 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 condición sana.

La necesidad de im

plementar un m

etodología de QA

T

Page 19: Testing Software

Tipos deTesting

El testing de softwareAnálisis de la necesidad de implementar un metodología de QAT

De aceptación (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 estrés. Incluye entrevistas con el usuario y programador.

La necesidad de im

plementar un m

etodología de QA

T

Page 20: Testing Software

Tipos deTesting

El testing de softwareAnálisis de la necesidad de implementar un metodología de QAT

De estrés: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 instalación y desinstalación:Determina la eficiencia de los procesos que instalan y desinstalan las aplicaciones del programa.

De recuperación:Es la prueba que evalúa que tan bien se recupera el sistema luego de bloqueos, fallas del hardware u otros problemas catastróficos.

La necesidad de im

plementar un m

etodología de QA

T

Page 21: Testing Software

Tipos deTesting

El testing de softwareAnálisis de la necesidad de implementar un metodología de QAT

De seguridad:Evalúa que tan bien el sistema se protege contra accesos, internos o externos, no autorizados, esta prueba requiere sofisticadas técnicas y herramientas.

De compatibilidad:Evalúa el desempeño del software en diferentes hardware, sistemas operativos,redes, etc.

De exploración:Es una prueba informal del software que no esta basada en ningún plan o caja de prueba y a menudo los testers aprenden del programa al explorar todas las aplicaciones posibles.

La necesidad de im

plementar un m

etodología de QA

T

Page 22: Testing Software

Tipos deTesting

El testing de softwareAnálisis de la necesidad de implementar un metodología de QAT

De anuncio:Es similar a la prueba de exploración pero los testers deben tener suficiente noción sobre el funcionamiento del programa antes de comenzar esta prueba. Incluye reunión con analistas y programadores.

De usuario:Determina si el usuario se desenvuelve satisfactoriamente con el programa.

De comparación:En esta prueba se comparan los pro y los contra del programa con los programas creados con la competencia.

La necesidad de im

plementar un m

etodología de QA

T

Page 23: Testing Software

Tipos deTesting

El testing de softwareAnálisis de la necesidad de implementar un metodología de QAT

Alfa (Alpha):Es la prueba cuando la aplicación esta cerca de la entrega al usuario. Se hacen pequeños cambios generalmente en el diseño de interfaces. Esta prueba es hecha por usuarios.

Beta (Beta):Es la búsqueda de defectos en el programa completo. Generalmente es hecha por usuarios.

De mutación (Mutation):Esta prueba esta basada en la introducción deliberada de diferentes códigos Externos al programa (defectos) para reexaminar si estos defectos pueden ser detectados. Requiere gran disponibilidad de recursos de computación.

La necesidad de im

plementar un m

etodología de QA

T

Page 24: Testing Software

Cuestiones claves del Testing

El testing de softwareAnálisis de la necesidad de implementar un metodología de QAT

• Test Plan• El tester no debe ser el desarrollador• La empresa desarrolladora no debe hacer el testeo final• Revisión 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

La necesidad de im

plementar un m

etodología de QA

T

Page 25: Testing Software

Tendencias Testing

El testing de softwareAnálisis de la necesidad de implementar un metodología de QAT

• Profesionalización RH• Planificación• Lugar jerarquía en el proceso de software• Certificaciones • Comenzar las actividades de testing lo antes

posible

La necesidad de im

plementar un m

etodología de QA

T

Page 26: Testing Software

Reflexiones Testing

El testing de softwareAnálisis de la necesidad de implementar un metodología de QAT

• 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.

• La presión por la liberación cada vez más rápida del producto presiona a los testers.

• El testing como estrategia organizacional• El testing es una inversión• 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 im

plementar un m

etodología de QA

T

Page 27: Testing Software

Certificaciones Testing

El testing de softwareAnálisis de la necesidad de implementar un metodología de QAT

ISEB/ISQTB (Information Systems Examinations Board/): Ofrece cursos y certificaciones en diferentes niveles: Foundation, Intermediate y Practicioner. Actualmente también se está preparando una certificación 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. Quizás las que más se adecúen a las responsabilidades del Tester serían Quality Engineer (CQE) y Software Quality Engineer (CSQE).

La necesidad de im

plementar un m

etodología de QA

T

Page 28: Testing Software

GRACIAS POR SU ATENCIÓN

La necesidad de im

plementar un m

etodología de QA

T

[email protected]