Testes Funcionais em um ALM Open Source - TDC 2012 SP
Testes Funcionais em um ALM
Open Source
Elias Nogueira
Tester
Globalcode – Open4education
Objetivo
Apresentar a integração das principais ferramentas de
teste open source
Testlink
Mantis
Bugzilla
Redmine
Selenium/Webdriver
E como elas podem comunicar entre si
Globalcode – Open4education
Objetivo
o
ã
aç
m
or
inf
v ia
En
Globalcode – Open4education
Conceituação
O que é Teste?
Como um desenvolvedor vê um teste?
Globalcode – Open4education
Conceituação
ALM é um processo contínuo de gestão da vida de uma
aplicação através de desenvolvimento, governança e
manutenção
ALM facilita, através de ferramentas, a integração de
gestão de requisitos, arquitetura, codificação, testes,
rastreabilidade e releases
Globalcode – Open4education
ALM como um desenvolvedor
vê (visão otimista)
Integração entre ferramentas de xUnit e apoio ao desenvolvimento
Falso senso de testes/qualidade
Qualidade é o que o cliente vê, e não o que o desenvolvedor vê
Claro que qualidade de código ajuda e muito!
Globalcode – Open4education
Testes durante o ciclo de vida
de um projeto
Definição de Projeto Implementação Teste Implantação
Requisitos
Ferramentas de Apoio
Automação de Teste
Gestão de Defeitos
Gestão de Testes
Gestão de Projetos
Controle de Versão
Globalcode – Open4education
Testlink
Ferramenta de Gestão de Testes que, basicamente,
gerencia a execução de projetos de testes
Site: http://teamst.org
API: install_folder/lib/api
Protocolo: XML-RPC
Java API: http://testlinkjavaapi.sourceforge.net/
Globalcode – Open4education
Mantis
Ferramenta de Gestão de Defeitos para controle do
defeitos durante o cilo de vida do software
Site: http://mantisbt.org
API: install_folder/api/soap
Protocolo: SOAP
Java API: http://www.futureware.biz/mantisconnect/
Globalcode – Open4education
Bugzilla
Ferramenta de Gestão de Defeitos para controle do
defeitos durante o cilo de vida do software
Site: http://bugzilla.org
API: http://www.bugzilla.org/docs/tip/en/html/api/
Protocolo: XML-RPC ou JSON-RPC
Java API: <nenhuma boa>
Globalcode – Open4education
Redmine
Ferramenta de Gestão de Projetos (inclusive
issues/bugs) também utilizada em testes
Site: http://redmine.org
API: http://www.redmine.org/projects/redmine/wiki/Rest_api
Protocolo: REST
Java API: https://github.com/taskadapter/redmine-java-api
Globalcode – Open4education
Selenium/Webdriver
Ferramenta para automação de testes funcionais com
diversas linguagens como suporte
Site: http://seleniumhq.org
http://selenium.googlecode.com
Globalcode – Open4education
Arquitetura do exemplo
Cada pacote da ferramenta possui duas classes
FerramentaInstance
FerramentaUtils
A Instance é responsável por abrir a comunicação com
a ferramenta (Singleton)
A Utils é responsável pela chamada/reescrita dos
métodos ou utilização da API da ferramenta
Globalcode – Open4education
Arquitetura do teste
Utilizamos o Webdriver para executar os testes
funcionais em um browse web
Ele utiliza um DesignPatter chamado PageObjects
A execução do teste pode ser via método main ou por
qualquer framework xUnit
Globalcode – Open4education
Funcionamento no script
Todo script de teste deve ser coberto por um bloco
try-catch
Ocorrendo uma exceção devemos instanciar a classe
ReportaErro
No bloco finally trateremos o envio de
informações para as ferramentas
Globalcode – Open4education