Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Argentesting 2017 - Anatomia Framework Automatización

774 views

Published on

Anatomía de un framework de automatización de pruebas

En este taller haremos, por un lado, una introducción metodológica sobre la automatización de pruebas y luego repasaremos los aspectos técnicos que deben ser considerados en el diseño de un framework. Sumaremos a esta experiencia algunas prácticas complementarias como BDD, CI y DevOps.

Por otro lado, a continuación haremos una breve práctica con todo el toolset descrito previamente. Aunque no es obligatorio, recomendamos un dominio mínimo en los siguientes temas;

Programación orientada a objetos.
Sistemas de control de version de código (idealmente Git).
Comandos Bash básicos.
Conocimientos básicos de HTML y Rest APIs.
Las máquinas de los asistentes van a necesitar al menos 8GB de RAM y cualquier procesador dual core de unos 2Ghz con tecnología de virtualización activada. Además, necesitaremos al menos 50GB de disco duro libre. Seria ideal que también traigan un pendrive de 8GB dado que necesitamos usar una imagen de linux para virtualizar.

Es necesario que los asistentes vengan con el siguiente software al menos descargado (idealmente instalado):

Java JDK 8.
Eclipse IDE.
Vagrant.
VirtualBox.
Chrome.
Git.
Todas últimas versiones excepto la JVM.

Expositor: Marcelo Corpucci

Published in: Software
  • Be the first to comment

  • Be the first to like this

Argentesting 2017 - Anatomia Framework Automatización

  1. 1. 1 Taller Anatomía de un framework de automatización de pruebas
  2. 2. 2 Centros de Ingeniería en Argentina, India, Ucrania, USA, Canadá, Polonia, Eslovaquia, Croacia e Israel. 11.000 colaboradores a nivel global. Nos especializamos en UX, Mobile, Business Integration, Data Transformation, Big Data y Analytics.
  3. 3. 3 1. Automatización de Pruebas: Contexto 2. Caracterísiticas técnicas 3. Demo 4. Actividad práctica Agenda
  4. 4. 4 Contexto
  5. 5. 5 Confidential https://www.youtube.com/watch?v=PZnGWJ_6BwU https://www.youtube.com/watch?v=Kamz8MA3DEw Dos historias...
  6. 6. 6 • Es una actividad más de QC. • Hace uso de software específico para ejecutar pruebas. • Parte de la ejecución implica analizar e informar resultados. • Es complementaria con las actividades de QC. En qué consiste la automatización de pruebas?
  7. 7. 7 • Permite eliminar las tareas repetitivas y propensas a error humano. • Permite liberar tiempo de las actividades de testing, para hacer foco en actividades que dependen del intelecto humano. • Permite, además de detectar errores, evitar que éstos se propaguen en el ciclo de vida del software. Beneficios de la automatización de pruebas.
  8. 8. 8 Características técnicas
  9. 9. 9 Para que una arquitectura de tests automatizados sea robusta, se deben seguir los mismos principios y buenas prácticas de programación. Caracterísiticas técnicas
  10. 10. 10 Características técnicas Herramientas básicas: • Repositorio de Código. • Servidor de Integración Contínua.
  11. 11. 11 Características técnicas Patrones de diseño: • Four Stage Pattern. • Page Objects (para apps web).
  12. 12. 12 Four Stage Pattern Fuente: http://xunitpatterns.com/Four%20Phase%20Test.gif
  13. 13. 13 Page Object Pattern Fuente: http://image.slidesharecdn.com/thepageobjectpattern-150601182638-lva1-app6891/95/selenium-the-page-object-pattern-16-638.jpg?cb=1433183298
  14. 14. 14 Características técnicas Buenas prácticas: • Control sobre el ambiente/datos de prueba. • Tests repetibles. • Pirámide de tests.
  15. 15. 15 Pirámide de tests Fuente: http://abstracta.us/wp-content/uploads/2015/10/Screen-Shot-2015-11-04-at-9.11.59-PM-compressor-1.png
  16. 16. 16 Demo
  17. 17. 17 • Administración de ambiente de pruebas. Herramientas • Scripting de los tests. Especificaciones funcionales. • Testing de frontend (web). Vagrant Java / CucumberJVM WebDriver • Versionado de código. GitLab • Servidor de integración contínua. Jenkins • Testing de backend (REST). RestDriver
  18. 18. 18 Actividad Práctica
  19. 19. 19 Herramientas y Credenciales Una vez levantada nuestra Vagrant box encontraremos: • Jenkins: - localhost:9009 | usuario: user | pass: 123456 • Gitlab: - localhost:1234 | usuario: root | pass: 1q2w3e4r • Aplicación web: - localhost:8000 | usuario: admin1@gmail.com | pass: admin1
  20. 20. 20 Una vez descargado el Vagrant Package: • Importar el package para que nos quede disponible como base box: $ vagrant box add test_env file:///<directorio donde está el archivo test_env> Poniendo a punto el ambiente de pruebas Más info: https://www.vagrantup.com/docs/boxes.html
  21. 21. 21 Una vez descargado el Vagrantfile: • Ir, en la consola, al directorio donde se encuentra el archivo. Levantar el ambiente de pruebas: $ vagrant up Poniendo a punto el ambiente de pruebas Más info: https://www.vagrantup.com/docs/vagrantfile/
  22. 22. 22 El repositorio del código fuente del framework se encuentra en Vagrant: Ir, usando la consola, al directorio donde queramos descargar el código fuente: $ git clone http://127.0.0.1:1234/root/effective-testing_test-suite.git Descargando el código fuente de nuestro framework
  23. 23. 23 Consigna: Implementar los tests que se encuentran en el branch ejercicio: $ git checkout remotes/origin/ejercicio $ git checkout -b ejercicio Agregando tests funcionales a nuestro framework
  24. 24. 24 Gracias.

×