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
Links
 Projeto: http://eliasnogueira.github.com/testing-alm




                                         Globalcode – Open4education

Testes Funcionais em um ALM Open Source - TDC 2012 SP

  • 1.
    Testes Funcionais emum ALM Open Source Elias Nogueira Tester Globalcode – Open4education
  • 2.
    Objetivo Apresentar aintegraçã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 é umprocesso 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 umdesenvolvedor 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 ociclo 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 deGestã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 deGestã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 deGestã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 deGestã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 paraautomaçã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
  • 16.