Beneficios del testing automatizado v2.0

2,265 views

Published on

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

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,265
On SlideShare
0
From Embeds
0
Number of Embeds
48
Actions
Shares
0
Downloads
43
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Beneficios del testing automatizado v2.0

  1. 1. Automatización de Testing Beneficios de su aplicación Competencias profesionales Experiencias exitosas Emilio Etlis (PracticalWeb) & Gustavo Terrera (TestingBaires)
  2. 2. 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 Actualidad & Tendencias Experiencias exitosas en automatización en empresas
  3. 3. 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 > 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
  4. 4. 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
  5. 5. 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
  6. 6. Consideraciones para la gestión general ◊ Automatizar aquellos componentes que sean menos susceptibles al cambio. ◊ Mantenimiento de los productos internos automatizados (casos de prueba, datos, objetos, scripts, otros) ◊ Comunicación entre los Developers y Testers. ◊ Formaciones constantes a toda la línea para identificar ventajas y limitaciones 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
  7. 7. 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 los dispositivos ◊ Tipos de prueba dirigidas a: – – – – – 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)
  8. 8. 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 funcionales específicos. – la compatibilidad • Relacionadas con que sea compatible con todos los sistemas operativos móviles y que funcione correctamente en todos ellos. – la interoperabilidad • Relacionada con el intercambio de información con otras aplicaciones o con el dispositivo móvil desde la aplicación.
  9. 9. 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 datos que se envían esté correctamente cifrado y no sean peligrosos para la integridad del usuario final. – la usabilidad – Relacionadas con tareas como instalar y configurar actualizaciones, ayudas, contactos, y otros componentes. Algunos de los motivos de la importancia que merecen este tipo de pruebas: • 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
  10. 10. 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
  11. 11. 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 – – – – 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
  12. 12. 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 y documentación relacionada.
  13. 13. 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 prueba ◊ Enlace de Sistemas – Representa al grupo de apoyo de la red y el administrador de base de datos
  14. 14. 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 menor intervención humana posible ◊ Generalmente se utiliza para ejecutar las pruebas automáticamente ◊ Algunas veces permite también generar automáticamente datos de prueba
  15. 15. 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? ◊ 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
  16. 16. 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?
  17. 17. Testing de Regresión I ◊ Testing que se realiza cuando quiere verse que no haya impactos indeseables 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 andaba bien, funciona mal”)
  18. 18. Testing de Regresión II ◊ En general, es testing funcional, y se realiza sobre aplicaciones estables donde 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 para automatización
  19. 19. Herramientas para Testing Automatizado ◊ El testing automatizado se realiza con herramientas diseñadas para cada función ◊ Pueden ser comerciales, open source o free ◊ Deben evaluarse las características de las herramientas de acuerdo al testing que quiera realizarse ◊ ¡¡¡ NO HAY UNA UNICA HERRAMIENTA QUE SIRVA PARA TODO !!!
  20. 20. 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 Posibilidad de comparar automáticamente con resultados esperados Conexión con herramientas de reporte de errores
  21. 21. 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 Necesidad de recursos especiales para su utilización
  22. 22. 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 Commercial FUNCTIONAL Automated Test Tool Best Commercial PERF Automated Test Tool - Web Services/SOA Best Commercial PERFORMANCE Automated Test Tool
  23. 23. Regresión: Herramientas de Automatización ◊ Herramientas de - Herramienta de Captura/Reproducción (record/playback) ◊ 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
  24. 24. Herramientas de Automatización ◊ También permiten: - Utilizar diferentes lenguajes de scripting (VBScript, JavaScript, C#, etc) - Utilizar el meta-lenguaje de scripting propio de la herramienta (ideal para profesionales no dedicados a la programación) - Conectar con bases de datos - Capturar archivos externos - Organizar claramente los proyectos de automatización
  25. 25. 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
  26. 26. 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
  27. 27. 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 ◊ Link de Smartbear – www.smartbear.com
  28. 28. 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. Sin conocimientos sobre la herramienta, tarde 1 mes en automatizar todo, y reduje los tiempos a 1/4, en 6 meses, estaba rentabilizado el tiempo y costo invertido. Siempre hablo de entornos estables en fase de mantenimiento. – Si algo debe buscarse es ganar COBERTURA – En su mayoría, se automatiza regresión de pruebas funcionales donde lo que se asegura es el correcto funcionamiento de la aplicación ante cada cambio realizado en desarrollo. Es decir, que todas las principales funcionalidades sigan respondiendo adecuadamente.
  29. 29. 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 que para una persona que no tienen conocimientos de programación esa sería la mayor dificultad que se le podría presentar a la hora de querer automatizar para conseguir scripts robustos, fácilmente mantenibles y reutilizables. Hoy en día existen herramientas que facilitan muchas tareas a la hora de automatizar. – La automatización es efectiva en las condiciones que explique: entornos estables y en fase de mantenimiento --> Pruebas de regresión. Entorno en desarrollo --> Smoke test.
  30. 30. 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 y automatizar van de la mano. En muchas ocasiones ante una dificultad una buena función hace funcionar todo sin problemas. Hay muchas cosas que herramientas como por ejemplo QTP no te permiten hacer si no tocas el script. Ejemplos: generar/validad DNIs / codigos, validar un teléfono, validar una dirección, redondear cifras, enviar emails ante determinadas situaciones, cruzar bases de datos,... – Hay otras actividades del proceso de prueba que pueden ser automatizadas, por ejemplo: Generación de casos de pruebas y generación de datos de pruebas. Mi opinión es que un tester que quiere automatizar debe saber programar y en más de un lenguaje.
  31. 31. 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 para determinar 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 pruebas automatizadas. Recordar que es también un software que: tendrá bugs, necesitará actualizaciones, habrá que administrar. Olvidarse de que las pruebas automatizadas son también un aplicación es el error más frecuente que comenten los que la usan. – ¿Cuál es la importancia de la automatización en el proceso de pruebas? Depende del proyecto, para algunos la automatización es un utopía, para otros puede ser la actividad más importante para el aseguramiento de calidad.
  32. 32. Actualidad & Tendencias ◊ De Recursos Humanos – Perfil Técnico necesario – En general muchas de estas herramientas se venden como que cualquiera 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 el momento que tienen que arremangarse y programar, el proyecto se ralentiza y muchas veces se abandona. – Los testers mantienen una suite de humo y suites de integración que ejecutan según la necesidad – Todos los Testers van adquiriendo las competencias necesarias de a poco. Sin embargo bajo este esquema, a veces suele dedicar más tiempo a las Pruebas Exploratorias y menos a la Automatización
  33. 33. 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, debes bajar a nivel de código, para explotar la posibilidad de integrarlo en scripts, y un buen perfil de tester, que te indique qué, como y con que condiciones probar y desarrollar los scripts. – Un buen tester que diseña casos de prueba con una buena cobertura puede aprender a programar fácilmente y tendrá un plus respecto de un desarrollador que tiene la visión de un programador. Un tester que comienza a programar tiene una doble visión (la de desarrollo y la del testing). A programar 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 personal debe estar capacitado en prácticas de ingeniería de software, las tecnologías usadas, buenas practicas de automatización y obviamente todo sobre el proceso de prueba.
  34. 34. Casos de Éxito ◊ Testing de Regresión ◊ Obra Social ◊ Empresa de Servicios
  35. 35. CONTACTO ◊ Emilio Etlis – – – – – – – PracticalWeb eetlis@practicalweb.com.ar Vidal 2653, 2nd Floor Apt.A Buenos Aires C1428CSQ Argentina Of. 54 11 4543-9338 Cel. 54 9 11 58093409 ◊ Gustavo Terrera – – – – – – webmaster@testingbaires.com http://www.testingbaires.com @testingbaires skype: tbaires Whatsapp: GTerrera cel. +54911 6650 9220 (BB PIN 2641C912)

×