domingo, 17 de outubro de 2010

Teste de Aceitação no Eclipse IDE usando Selenium

testing

O ATDD nada mais é que o teste aceitação. Aqui no post foi criado um teste de aceitação via código usando Eclipse IDE Galileu, sem integração com Testlink ou outros. Apenas usamos Selenium RC(com api’s server e client) e JUnit 4. 

O Teste foi feito no Blog Cantinho do Agile - label Agile:

http://cantinhodoagile.blogspot.com/search/label/Agile/

Foram testados textos e um link no post: Checklist para definição de feito.

Api’s necessárias no Java Build Path do Eclipse IDE:

javabuildpath

 

selenium-server.jar 1.0.3

selenium-java-client-driver-.jar 1.0.1

Jdk 6

JUnit 4.jar: Vem no Eclipse IDE Galileu.

Código do teste de aceitação no blog Cantinho do Agile – label Agile:

import junit.framework.TestCase;

import org.junit.Test;
import org.openqa.selenium.server.SeleniumServer;

import com.thoughtworks.selenium.DefaultSelenium;
import com.thoughtworks.selenium.Selenium;

public class CantinhodoAgileTest extends TestCase {

    Selenium selenium;
    SeleniumServer servidor;

    public void setUp() throws Exception {
        servidor = new SeleniumServer();
        servidor.start();

        selenium = new DefaultSelenium("localhost", 4444, "*firefox",
                "http://cantinhodoagile.blogspot.com/search/label/Agile/");
        selenium.start();
    }

    @Test
    public void testChecklistDefinicaoFeito() throws Exception {
        selenium.open("/");
        assertTrue(selenium.isTextPresent("Checklist para definição de feito"));
        selenium.click("link=Checklist para definição de feito");
        assertTrue(selenium
                .isTextPresent("Os dez itens do checklist para definição de feito são:"));
    }

    public void tearDown() throws Exception {
        selenium.stop();
        servidor.stop();
    }

}

Note que servidor Selenium é iniciado e finalizado pelo código. Também temos a Classe Selenium(representada pelo objeto selenium) que é responsável pela realização das verificações junto ao JUnit.

No exemplo o navegador web é Firefox e a porta 4444.

Resultado do Teste de Aceitação:

Comecei quebrando o teste até fazer passar e logo após fui melhorando:

junit4 

 

O teste foi apenas um simples exemplo de como fazer teste de aceitação no Eclipse IDE usando Selenium.

Porém recomendo uma integração da equipe de analise e projeto com QA para elaboração de planos de casos de testes. E uma integração do código de teste de aceitação com uma ferramenta de gerenciamento de caso de teste e execução.

Um bom exemplo seria integração do Selenium com Testlink. Dois excelentes artigos sobre integração de autoria de Elias Nogueira são:

 Integração Selenium e Testlink 

ou

Integração Selenium e Mantis

Uma ferramenta de gerenciamento de caso de teste proporciona uma visualização amigável e de bom entendimento para o cliente do teste de aceitação. Por exemplo, com uso de relatório.

Ferramentas e Api’s necessários para executar o exemplo:

1)Selenium RC http://seleniumhq.org/download/

  • Um servidor que executa automaticamente e mata o navegador e atua como um proxy HTTP para solicitações web a partir dele;
  • Disponibiliza biblioteca cliente para a linguagem de programação usada, no caso do exemplo a biblioteca cliente é para java.

2)JUnit http://www.junit.org/

Obs.: É possível pegar uma versão mais avançada do JUnit.

3)Java JDK http://www.oracle.com/technetwork/java/javase/downloads/index.html

Obs.: É possível pegar uma versão mais avançada do JDK.

4)Eclipse IDE http://www.eclipse.org/downloads/

Obs.: É possível pegar uma versão mais avançada do Eclipse IDE.

Fonte:

http://seleniumhq.org/projects/remote-control/

http://sembugs.blogspot.com/2010/10/integracao-selenium-e-testlink.html

Webinar O ciclo ATDD + TDD by Scrum Amazônia, Paulo Igor e Heitor Roriz:

http://www.slideshare.net/Pigor/palestra-tddcompleta-5460534

Bye see you next post

2 comentários:

  1. Parabéns Nina ficou ótimo...blog com excelentes conteúdos... vale a pena dar uma conferida

    ResponderExcluir
  2. Obrigado Karla, o objetivo é compartilhar informações.

    ResponderExcluir