Web

Grado en Ingeniería Informática

Dep. de Lenguajes y Sistemas Informáticos

Jorge Vicente Cantero / Vlad Filip

Testing

Tools

Prof. Ramón Alberto Mollineda Cardenas

El objetivo de las aplicaciones web es el de transmitir el mensaje de una compañia u ofrecer un servicio accesible desde el exterior a todo el mundo.

La implementación de tecnologías web permite crear un sistema con clientes ligeros (normalmente el navegador) separado del servidor donde residen centralizados el hardware, software y datos. Por esta razón, es imprescindible tener un sistema eficiente y sin errores.

Qué

queremos

css

html

compatibilidad

scripts

base de datos

api

www

js

ui

Qué

necesitamos

Necesitamos herramientas diseñadas para probar las diferentes partes de la arquitectura de un producto web: scripts, formato gráfico, seguridad, entorno multiplataforma etc.

Cómo

lo

queremos

  1. rapidez
  2. flexibilidad
  3. automatización
  4. escribir poco código

Cómo

lo

queremos

y si es gratis, hemos encontrado el santo grial

Trade-off

Tiempo invertido

Ganancias

Test sin automatizar

Pagar un servicio

Test manuales

Aprender nuevos lenguajes

Humano

Máquina

vs

Web

testing

tools

Son herramientas especiales enfocadas a comprobar la correcta funcionalidad de las aplicaciones web.

 

Intentan descubrir fallos en funcionalidad, seguridad, accesibilidad, usabilidad, compatibilidad y eficiencia antes de lanzar un producto final al público.

 

tipos

de

test

  1. Load, stress and Performance testing Tools
  2. Web Functional, GUI or Regression testing Tools
  3. Link Manager testing tools
  4. Web Site Security testing Tools
  5. Cross-browser testing tools
  6. W3C CSS validator
  7. W3C Link Checker

Selenium

Sirve para

Crear tests robustos y suits de automatización de la pruebas de regresión para diferentes navegadores

Escalar y distribuir scripts en diferentes entornos

Automatizar tareas aburridas cuando se despliegan aplicaciones web

Productos

Selenium Webdriver

Selenium Grid

Selenium IDE

Selenium

Características

Ejecutable en cualquier navegador y sistema operativo

Soporte para C#, Java, Ruby, PHP, Python

Entornos de test soportados: JUnit, TestNG, Nunit, pyunit

Muy buena documentación y comunidad

Innovador en ofrecer el servicio

Muy utilizado

 

Nos ofrece

Flexibilidad, potencia y soporte para lenguajes comunes

Selenium

Problemas

Fallan los tests por problemas de timing

Tenemos que usar nuestros propios servidores

Difícil de usar

Selenium

public class TestMultipleThreads {
 
    @Test(invocationCount = 5)
    public void loadTestThisWebsite() {
 
        WebDriver driver = new FirefoxDriver();        
        driver.get("http://www.google.com");
        System.out.println("Page Title is " + driver.getTitle());
        Assert.assertEquals("Google", driver.getTitle());
        driver.quit();
 
    }
}

helium

Características

Ejecutable en cualquier navegador y sistema operativo

Soporte Java/Python

Multiplataforma Mac OS, Linux y Windows

Soporte Maven

Integrado en IDEs como Eclipse

 

Nos ofrece

Automatización web de una manera sencilla basándose en Selenium.

Usa un lenguaje de scripting de alto nivel.

helium

startChrome();
goTo("facebook.com");
write("email", into("Email or Phone"));
write("password", into("Password"));
click("Log In");
write("Hello from Helium!", into("Update Status"));
click("Post");

Actulizar status en Facebook

helium

from . import TheInternetTestCase
from helium.api import Text, write, press, ENTER, click

class BasicAuthTest(TheInternetTestCase):
    def get_page(self):
        return "http://the-internet.herokuapp.com/login"
    def test_valid_credentials(self):
        self._login("tomsmith", "SuperSecretPassword!")
        self.assertTrue(Text("Secure Area").exists())
        self._logout()
    def test_no_credentials(self):
        click("Login")
        self.assertTrue(Text("Your username is invalid!").exists())
    def test_invalid_password(self):
        self._login("tomsmith", "INVALID_PASSWORD")
        self.assertTrue(Text("Your password is invalid!").exists())
    def _login(self, username, password):
        write(username, into="Username")
        write(password, into="Password")
        press(ENTER)
    def _logout(self):
        click("Logout")
        self.assertTrue(Text("You logged out of the secure area!").exists())

Código para comprobar el login

continous

tools

Sauce Labs

Equafy

Integration

web

sauce labs

Automatización múltiples navegadores

Automatización testing para móviles

Testing manual

Utiliza Selenium tests, soporte Maven

Grabación y compartir

Test seguros

Herramientas debugging

Compatibilidad con otros tests o CI

Localizar problemas fácilmente (log visual)

sauce labs

sauce labs

equafy

  • Escaneado automático del sitio web en búsqueda de fallos de compatibilidad con diferentes navegadores.
  • Test de herramientas en la intranet y detrás del firewall.
  • Ejecución de scripts Selenium.
  • Open source.

 

equafy

equafy

nibbler

nibbler

nibbler

otros

Load, Stress and Performance Testing Tools

  1. Sahi
  2. TestCafe
  3. CasperJS

Web Functional/Regression testing Tools

  1. Apache JMeter
  2. NeoLoad
  3. LoadRunner

otros

Link Manager Testing Tools

  1. NTOSpider
  2. Brakeman
  3. SiteDigger

Web Site Security Testing Tools

  1. SpringTrax
  2. LinkTiger
  3. LinkScan

otros

Cross Browser Testing Tools

  1. Browsera
  2. IE NetRenderer
  3. IETester
if (publico.leHaGustado()){

    publico.aplaudir(3000);

}

Gracias

Seminario Web Testing Tools

By Vlad Filip

Seminario Web Testing Tools

  • 772