Testes Funcionais em um ALM Open Source - TDC 2012 SP
1. Testes Funcionais em um ALM
Open Source
Elias Nogueira
Tester
Globalcode – Open4education
2. 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
3. Objetivo
o
ã
aç
m
or
inf
v ia
En
Globalcode – Open4education
4. Conceituação
O que é Teste?
Como um desenvolvedor vê um teste?
Globalcode – Open4education
5. 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
6. 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
7. 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
8. 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
9. 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
10. 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
11. 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
12. Selenium/Webdriver
Ferramenta para automação de testes funcionais com
diversas linguagens como suporte
Site: http://seleniumhq.org
http://selenium.googlecode.com
Globalcode – Open4education
13. 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
14. 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
15. 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