Slide 1

Slide 1 text

Tests funcionales con Geb

Slide 2

Slide 2 text

Índice 1. Características de Geb 2. Alternativas 3. Uso en otras empresas 4. Debate sobre tests funcionales

Slide 3

Slide 3 text

Test pyramid

Slide 4

Slide 4 text

Qué es Geb ● Browser automation solution ● Integrable con JUnit, TestNG, Cucumber, Spock… ● Build system integration: Gradle, Grails, Maven

Slide 5

Slide 5 text

Qué es Geb Geb se apoya en: ● WebDriver cross-browser automation ● jQuery content selection ● Page Object modelling ● Groovy DSL

Slide 6

Slide 6 text

Selenium WebDriver Browser automation framework Sucesor de Selenium Remote Control Funciona tanto en navegador real como headless (e.g. PhantomJS)

Slide 7

Slide 7 text

Selenium WebDriver ● Cross-browser: ○ FF, IE, Chrome, Opera. ○ Experimental: ■ Chrome on Android, ■ Safari on iPhone/iPad ● Remote browsers (e.g. run IE from *NIX) ● Headless browsers ○ (HTMLUnit, PhantomJS)

Slide 8

Slide 8 text

Page Objects Modela áreas UI como objetos Reusabilidad/Mantenibilidad Permite la herencia

Slide 9

Slide 9 text

Modules Reutilización de bloques UI entre Pages Permite declarar métodos ( = acciones) Ejemplo: menú lateral, search input, etc.

Slide 10

Slide 10 text

jQuery content selection Find, filter and interact with DOM elements Permite: ● Assert content ● Trigger actions

Slide 11

Slide 11 text

… y más... Elementos existentes por convención: ● title ● heading Lanzar misma batería de pruebas en FF, Chrome, IE, etc. Reporting AJAX support

Slide 12

Slide 12 text

No content

Slide 13

Slide 13 text

Alternativas ● WebDriver a pelo ● Apache JMeter ● Canoo WebTest ● Grails functional test

Slide 14

Slide 14 text

Ejemplo integrado en Scrum (I) ● Sprint Planning ○ Se decide si se va a crear test funcional o no ○ Se incluye en estimación y se crea tarea en US ● Pertenecía al DoD

Slide 15

Slide 15 text

Ejemplo integrado en Scrum (II) ● QA ○ Define las pruebas en Cucumber ○ [a veces también las implementan] ● Desarrolladores ○ Implementan las pruebas ○ [a veces también las definen]

Slide 16

Slide 16 text

Debate ● ¿Queremos tests funcionales? ● En caso afirmativo, ○ ¿cuándo, para qué? ○ ¿qué framework utilizar?