Beneficios del testing automatizado v2.0

35
Automatización de Testing Beneficios de su aplicación Competencias profesionales Experiencias exitosas Emilio Etlis(PracticalWeb) & Gustavo Terrera (TestingBaires)

description

Esta presentación, considera los siguientes puntos: -Importancia de la automatización del Testing. -Diferentes tipos de automatización para aprovechar sus beneficios -Herramientas para soportar diferentes enfoques en automatización -RRHH y su aprovechamiento para la automatización -Actualidad & Tendencias -Experiencias exitosas en automatización en empresas

Transcript of Beneficios del testing automatizado v2.0

Page 1: Beneficios del testing automatizado v2.0

Automatización de TestingBeneficios de su aplicación

Competencias profesionalesCompetencias profesionalesExperiencias exitosas

Emilio Etlis (PracticalWeb)

&

Gustavo Terrera (TestingBaires)

Page 2: Beneficios del testing automatizado v2.0

Beneficios del Testing Automatizado

◊ Contenido– Importancia de la automatización del Testing.

– Diferentes tipos de automatización para aprovechar sus beneficios

– Herramientas para soportar diferentes enfoques en automatización

– RRHH y su aprovechamiento para la automatización– RRHH y su aprovechamiento para la automatización

– Actualidad & Tendencias

– Experiencias exitosas en automatización en empresas

Page 3: Beneficios del testing automatizado v2.0

Importancia de la Automatización del Testing

– Áreas que puede solucionar un proceso de automatización:

• Área Funcional > Reglas de Negocio

• Área Funcional > Front End

• Área Funcional > Back End

• Área Performance > Transacciones críticas

• Área Seguridad > SQL Injection• Área Seguridad > SQL Injection

• Área Seguridad > Validaciones mínimas

• Área Usabilidad > Ayudas

• Área Usabilidad > Validaciones GUI

• Área Homologación > Versiones

• Área Homologación > Ambientes

• Área Homologación > Browsers

• Área Homologación > Sistemas Operativos

Page 4: Beneficios del testing automatizado v2.0

Beneficios y Resultados

– Beneficios:

• Cobertura de Casos de Prueba

• Reutilización de Casos de Prueba

• Foco en el negocio

• Eficiencia en los procesos de prueba

• Mejora en los tiempos de ejecución

• Mejora en los tiempos de entrega

– Resultados:

• Reducción de los tiempos de proyectos de prueba

• Optimización de los recursos

• Incremento de la cobertura de casos de prueba

• Mejora en los tiempos de gestión

Page 5: Beneficios del testing automatizado v2.0

Algunas pautas para alcanzar los objetivos

Escenario común:

Al aumentar la producción del área de Desarrollo, muchas veces se acortan los tiempos de entrega de versiones generadas, provocando que se instale una cierta incertidumbre en cuanto a la calidad del producto que deberá

pasarse a producción.

Alternativa con la Automatización:

Hacer foco en la calidad antes de cada liberación de productos o versiones.

Consideraciones:

◊ Seleccionar la herramienta

◊ Decidir la estrategia y metodología

Page 6: Beneficios del testing automatizado v2.0

Consideraciones para la gestión general

◊ Automatizar aquellos componentes que sean menos susceptibles alcambio.

◊ Mantenimiento de los productos internos automatizados (casos deprueba, datos, objetos, scripts, otros)

◊ Comunicación entre los Developers y Testers.

◊ Formaciones constantes a toda la línea para identificar ventajas y◊ Formaciones constantes a toda la línea para identificar ventajas ylimitaciones de la automatización.

◊ Informes vinculados con las pruebas automatizadas.

◊ Gestión de las pruebas en los diferentes entornos .

◊ Producción y mantenimiento de datos para las pruebas automatizadas.

◊ Montaje del framework adecuado para el proyecto.

◊ Manejo de las expectativas

Page 7: Beneficios del testing automatizado v2.0

Pruebas en Dispositivos Móviles – Otra realidad

◊ Crecimiento de usuarios con dispositivos móviles.

◊ Foco en que el usuario obtenga una experiencia excelentes.

◊ Comportamiento de emuladores frente al comportamiento real de losdispositivos

◊ Tipos de prueba dirigidas a:– la funcionalidad– la funcionalidad

– la compatibilidad

– la interoperabilidad

– la localización

– la usabilidad

◊ Consideraciones:– Pruebas automatizadas en escenarios de pruebas multicapa (GUI y API)

– Experiencia visual del usuario

– Pruebas de tecnologías emergentes (nuevos objetos)

Page 8: Beneficios del testing automatizado v2.0

Pruebas en Dispositivos Móviles – Otra realidad

◊ Tipos de prueba dirigidas a

– la funcionalidad

• Relacionadas con qué hace la aplicación y si cumple los requisitos funcionalesespecíficos.

– la compatibilidad

• Relacionadas con que sea compatible con todos los sistemas operativos móviles yque funcione correctamente en todos ellos.

– la interoperabilidad

• Relacionada con el intercambio de información con otras aplicaciones o con eldispositivo móvil desde la aplicación.

Page 9: Beneficios del testing automatizado v2.0

Pruebas en Dispositivos Móviles – Otra realidad

◊ Tipos de prueba dirigidas a

– la localización

• Relacionadas con el software de red, la documentación y sobre todo que los datosque se envían esté correctamente cifrado y no sean peligrosos para la integridaddel usuario final.

– la usabilidad

– Relacionadas con tareas como instalar y configurar actualizaciones, ayudas, contactos, yotros componentes. Algunos de los motivos de la importancia que merecen este tipo depruebas:

• incremento diario de personas que acceden a dispositivos móviles

• la experiencia de usuarios de telefonía móvil es menor a la de los usuarios de pc

• existen actualmente una variedad importante de plataformas de acceso

Page 10: Beneficios del testing automatizado v2.0

Equipo de pruebas automatizas

◊ Equipo de prueba dedicado.

◊ Conseguir el apoyo de otras áreas de la empresa.

◊ Coincidencias de las habilidades con las responsabilidades de función.

◊ Perfil más técnico.

◊ Autoridad necesaria para llevar a cabo sus responsabilidades.

◊ Equipo modelo:– Jefe de Equipo

– Desarrolladores de Prueba

– Desarrolladores de Guiones

– Bibliotecarios de Prueba

– Enlace con el cliente

– Enlace de Desarrollo

– Enlace de Sistemas

Page 11: Beneficios del testing automatizado v2.0

Equipo de pruebas automatizas

◊ Jefe de Equipo– Responsable de desarrollar el plan de pruebas

– Responsable de gestionar a los miembros del equipo

– Responsable de la coordinación con las otras áreas

◊ Desarrolladores de Prueba◊ Desarrolladores de Prueba– Expertos en la funcionalidad de la aplicación

– Responsables del desarrollo de los casos de prueba

– Responsables de la ejecución, análisis y presentación de resultados

– Deben estar capacitados en la forma de desarrollar las pruebas

Page 12: Beneficios del testing automatizado v2.0

Equipo de pruebas automatizas

◊ Desarrolladores de Guiones– Expertos en la herramienta de prueba

– Experiencia en programación

– Responsables del desarrollo y mantenimiento del framework de pruebas

– Responsables en el apoyo a los guiones y la publicación del mapa de aplicaciones

◊ Bibliotecarios de Prueba– Responsable de gestionar el control de la configuración, cambio y versión de los

elementos de la biblioteca de prueba.

– Responsable de definir y aplicar procedimientos de check in y check out a los archivos ydocumentación relacionada.

Page 13: Beneficios del testing automatizado v2.0

Equipo de pruebas automatizas

◊ Enlace con el cliente– Representa a la comunidad de usuarios de la aplicación

◊ Enlace de Desarrollo– Representa a los programadores que proporcionarán el software de aplicación para la

pruebaprueba

◊ Enlace de Sistemas– Representa al grupo de apoyo de la red y el administrador de base de datos

Page 14: Beneficios del testing automatizado v2.0

Qué es el Testing Automatizado

◊ Es el testing de aplicaciones realizado con herramientas de automatización

◊ Se entiende que se automatiza lo que se puede repetir con la menorintervención humana posible

◊ Generalmente se utiliza para ejecutar las pruebas automáticamente

◊ Algunas veces permite también generar automáticamente datos depruebaprueba

Page 15: Beneficios del testing automatizado v2.0

Ventajas del Testing Automatizado

◊ Reducir el tiempo de las pruebas◊ Reducir el esfuerzo de las pruebas◊ Elaborar un sistema más confiable◊ Mejorar la calidad de las pruebas◊ Generar automáticamente informes◊ Facilitar las pruebas de regresión

◊ ¿QUE MAS QUISIERAN AGREGAR?◊ ¿QUE MAS QUISIERAN AGREGAR?

◊ Hay casos en que NO conviene hacer Testing Automatizado– Ej: Cuando los cambios son muy frecuentes (en general)– Cuando el testing depende de la observación humana– Cuando el testing requiere de una única ejecución

Page 16: Beneficios del testing automatizado v2.0

Qué tipos de Testing Automatizado se puede realizar

◊ Testing Unitario

– Programación

◊ Testing Funcional

◊ Testing de Regresión

– Mantenimiento, Migraciones, Smoke Test

◊ Testing de WebServices

◊ Testing de Integración

◊ Testing de Performance, Carga, Stress

◊ ¿QUE EXPERIENCIA TIENEN USTEDES?

Page 17: Beneficios del testing automatizado v2.0

Testing de Regresión I

◊ Testing que se realiza cuando quiere verse que no haya impactosindeseables ante un cambio

◊ “Selective retesting of a system or component to verify that modifications

have not caused unintended effects and that the system or component still

complies with its specified requirements.”(IEEE 610.12-1990).

◊ Queja de un usuario: (“Las modificaciones están correctas, pero algo que◊ Queja de un usuario: (“Las modificaciones están correctas, pero algo queandaba bien, funciona mal”)

Page 18: Beneficios del testing automatizado v2.0

Testing de Regresión II

◊ En general, es testing funcional, y se realiza sobre aplicaciones establesdonde se han hecho modificaciones a la funcionalidad existentes

◊ Generalmente resulta tedioso y poco gratificante

◊ Muchas veces, el testing de regresión es un candidato IDEAL paraautomatización

Page 19: Beneficios del testing automatizado v2.0

Herramientas para Testing Automatizado

◊ El testing automatizado se realiza con herramientas diseñadas para cadafunción

◊ Pueden ser comerciales, open source o free

◊ Deben evaluarse las características de las herramientas de acuerdo altesting que quiera realizarse

◊ ¡¡¡ NO HAY UNA UNICA HERRAMIENTA QUE SIRVA

PARA TODO !!!

Page 20: Beneficios del testing automatizado v2.0

Herramientas – Características I

◊ Se debe tener en consideración:– Tipo de testing a automatizar

– Requerimientos de software y hardware (ej: SO que soporta)

– Lenguajes de scripting que soporta

– Scripting en lenguaje nativo– Scripting en lenguaje nativo

– Posibilidad de comparar automáticamente con resultados esperados

– Conexión con herramientas de reporte de errores

Page 21: Beneficios del testing automatizado v2.0

Herramientas – Características II

◊ Se debe tener en consideración también:

– Integración con otras herramientas o con ambientes de desarrollo

– Conexión con Bases de Datos

– Ciclo de aprendizaje de la herramienta– Ciclo de aprendizaje de la herramienta

– Necesidad de recursos especiales para su utilización

Page 22: Beneficios del testing automatizado v2.0

Herramientas – Algunos tipos de herramientas

◊ ATI HONORS AWARDS– Best Open Source UNIT Automated Test Tool

– Best Open Source FUNCTIONAL Automated Test Tool

– Best Open Source PERFORMANCE Automated Test Tool– Best Open Source PERFORMANCE Automated Test Tool

– Best Commercial FUNCTIONAL Automated Test Tool

– Best Commercial PERF Automated Test Tool - Web Services/SOA

– Best Commercial PERFORMANCE Automated Test Tool

Page 23: Beneficios del testing automatizado v2.0

◊ Herramientas de- Herramienta de Captura/Reproducción (record/playback)

◊ Sus características permiten:

Regresión: Herramientas de Automatización

◊ Sus características permiten:- Trabajar especialmente sobre interfaces gráficas

- Simular movimientos de mouse y la presión sobre el teclado

- Comparar con resultados esperados

- Testear las aplicaciones cliente, multi-browser

Page 24: Beneficios del testing automatizado v2.0

◊ También permiten:- Utilizar diferentes lenguajes de scripting (VBScript, JavaScript, C#, etc)

- Utilizar el meta-lenguaje de scripting propio de la herramienta (idealpara profesionales no dedicados a la programación)

- Conectar con bases de datos

Herramientas de Automatización

- Conectar con bases de datos

- Capturar archivos externos

- Organizar claramente los proyectos de automatización

Page 25: Beneficios del testing automatizado v2.0

Herramientas de Automatización

◊ Aplicaciones Web y Desktop

◊ Trabajar sobre diferentes sistemas operativos, incluso móviles

◊ Comparación automática con resultados esperados

- Reconocimiento de Objetos con sus propiedades

- Marcar diferencias en distintos niveles

◊ Elaboración de Reportes y Log

Page 26: Beneficios del testing automatizado v2.0

Link para Herramientas

◊ ATI AWARDS (con diferentes herramientas) http://www.automatedtestinginstitute.com/home/index.php?option=com_jforms&view=form&id=22&Itemid=186ación

Page 27: Beneficios del testing automatizado v2.0

Links interesantes sobre automatización de Testing

◊ Grupos de Linkedin– Test automation Group

– Testing de Performance y Automatización

– QA Test Automation

– Web Service Testing with loadUI & soapUI– Web Service Testing with loadUI & soapUI

◊ Link de Smartbear

– www.smartbear.com

Page 28: Beneficios del testing automatizado v2.0

Actualidad & Tendencias

◊ De Metodologías:– Es como programación, si tienes en la mente como programar, solo es

aprender el lenguaje y sus APIs.

– Tardaba 1 semana en ejecutar todas las pruebas de regresión. Sinconocimientos sobre la herramienta, tarde 1 mes en automatizar todo,y reduje los tiempos a 1/4, en 6 meses, estaba rentabilizado el tiempoy reduje los tiempos a 1/4, en 6 meses, estaba rentabilizado el tiempoy costo invertido. Siempre hablo de entornos estables en fase demantenimiento.

– Si algo debe buscarse es ganar COBERTURA

– En su mayoría, se automatiza regresión de pruebas funcionales dondelo que se asegura es el correcto funcionamiento de la aplicación antecada cambio realizado en desarrollo. Es decir, que todas las principalesfuncionalidades sigan respondiendo adecuadamente.

Page 29: Beneficios del testing automatizado v2.0

Actualidad & Tendencias

◊ De Metodologías:– En mi caso, una de las dificultades que tuve que superar fue

entender la API de Selenium, Watir o la que fuere. Creo quepara una persona que no tienen conocimientos deprogramación esa sería la mayor dificultad que se le podríapresentar a la hora de querer automatizar para conseguir scriptspresentar a la hora de querer automatizar para conseguir scriptsrobustos, fácilmente mantenibles y reutilizables. Hoy en díaexisten herramientas que facilitan muchas tareas a la hora deautomatizar.

– La automatización es efectiva en las condiciones que explique:entornos estables y en fase de mantenimiento --> Pruebas deregresión. Entorno en desarrollo --> Smoke test.

Page 30: Beneficios del testing automatizado v2.0

Actualidad & Tendencias

◊ De Metodologías:– Estimaciones basadas en la experiencia y sobre todo en el

tiempo/esfuerzo.

– Un perfil técnico para automatizar es muy conveniente. Programar yautomatizar van de la mano. En muchas ocasiones ante una dificultaduna buena función hace funcionar todo sin problemas. Hay muchasuna buena función hace funcionar todo sin problemas. Hay muchascosas que herramientas como por ejemplo QTP no te permiten hacersi no tocas el script. Ejemplos: generar/validad DNIs / codigos, validarun teléfono, validar una dirección, redondear cifras, enviar emails antedeterminadas situaciones, cruzar bases de datos,...

– Hay otras actividades del proceso de prueba que pueden serautomatizadas, por ejemplo: Generación de casos de pruebas ygeneración de datos de pruebas. Mi opinión es que un tester quequiere automatizar debe saber programar y en más de un lenguaje.

Page 31: Beneficios del testing automatizado v2.0

Actualidad & Tendencias

◊ De Metodologías:– Opino que el Analista Funcional puede aportar información sobre los

escenarios más críticos. Dicha información puede usarse paradeterminar que pruebas automatizar y cuales no.

– El tester participa en la elección de las pruebas a automatizar,construcción de scripts, mantenimiento de conjunto de pruebasconstrucción de scripts, mantenimiento de conjunto de pruebasautomatizadas. Recordar que es también un software que: tendrábugs, necesitará actualizaciones, habrá que administrar. Olvidarse deque las pruebas automatizadas son también un aplicación es el errormás frecuente que comenten los que la usan.

– ¿Cuál es la importancia de la automatización en el proceso depruebas? Depende del proyecto, para algunos la automatización es unutopía, para otros puede ser la actividad más importante para elaseguramiento de calidad.

Page 32: Beneficios del testing automatizado v2.0

Actualidad & Tendencias

◊ De Recursos Humanos– Perfil Técnico necesario

– En general muchas de estas herramientas se venden como quecualquiera puede automatizar, pero en cuanto se complica un poco,hay que programar y entonces sobrevienen las "crisis" (léase risas).Por que hay muchos QAs que no saben programar y en general en elmomento que tienen que arremangarse y programar, el proyecto sePor que hay muchos QAs que no saben programar y en general en elmomento que tienen que arremangarse y programar, el proyecto seralentiza y muchas veces se abandona.

– Los testers mantienen una suite de humo y suites de integración que ejecutansegún la necesidad

– Todos los Testers van adquiriendo las competencias necesarias de a poco. Sinembargo bajo este esquema, a veces suele dedicar más tiempo a las PruebasExploratorias y menos a la Automatización

Page 33: Beneficios del testing automatizado v2.0

Actualidad & Tendencias

◊ De Recursos Humanos– Creo que para ser un buen "automatizador", tienes que tener un perfil de

desarrollo, ya que al final para sacarle el provecho a estas herramientas, debesbajar a nivel de código, para explotar la posibilidad de integrarlo en scripts, yun buen perfil de tester, que te indique qué, como y con que condicionesprobar y desarrollar los scripts.

– Un buen tester que diseña casos de prueba con una buena cobertura puede– Un buen tester que diseña casos de prueba con una buena cobertura puedeaprender a programar fácilmente y tendrá un plus respecto de undesarrollador que tiene la visión de un programador. Un tester que comienza aprogramar tiene una doble visión (la de desarrollo y la del testing). Aprogramar se aprende y es cuestión de práctica.

– Las pruebas automatizadas son un software con un ciclo de desarrollo en sí,pero con características ya ampliamente conocidas, por lo que el personaldebe estar capacitado en prácticas de ingeniería de software, las tecnologíasusadas, buenas practicas de automatización y obviamente todo sobre elproceso de prueba.

Page 34: Beneficios del testing automatizado v2.0

Casos de Éxito

◊ Testing de Regresión

◊ Obra Social

◊ Empresa de Servicios

Page 35: Beneficios del testing automatizado v2.0

CONTACTO

◊ Emilio Etlis– PracticalWeb

[email protected]

– Vidal 2653, 2nd Floor Apt.A

– Buenos Aires C1428CSQ

– Argentina

– Of. 54 11 4543-9338

– Cel. 54 9 11 58093409– Cel. 54 9 11 58093409

◊ Gustavo Terrera– [email protected]

– http://www.testingbaires.com

– @testingbaires

– skype: tbaires

– Whatsapp: GTerrera

– cel. +54911 6650 9220 (BB PIN 2641C912)