SlideShare uma empresa Scribd logo
1 de 28
Automação de Testes de
      Aceitação em Sistemas Web



Rodrigo Veiga



Apresentação originalmente exibida durante a disciplina INF2134 (Mestrado PUC-Rio)
Agenda
    Motivação

    O que é um Teste de Aceitação

          Histórico
      
          Tipos
      

    Porque automatizar?

    Problemas enfrentados na automação

    Como automatizar

          Ferramentas atualmente disponíveis (web)
      
          Apresentação de um exemplo web
      
          Análise de Ferramentas disponíveis
      

    Conclusão





                                                                                           2 / 28
INF2134 - Teste e medição de software   Automação de Testes de Aceitação em Sistemas WEB
Motivação
    Área de estudo recente e pouco explorada no país.




    Relação direta com a qualidade percebida pelo cliente.



    Compartilhar experiências adquiridas utilizando práticas

    de automação.




                                                                                           3 / 28
INF2134 - Teste e medição de software   Automação de Testes de Aceitação em Sistemas WEB
O que é um Teste de Aceitação?
    Técnica para verificar a conformidade de uma

    história ou funcionalidade em relação à
    expectativa do cliente

    (User) Acceptance Test, Customer Test ou Story

    Test




                                                                                           4 / 28
INF2134 - Teste e medição de software   Automação de Testes de Aceitação em Sistemas WEB
O que é um Teste de Aceitação
    Histórico

          Década de 1970
      
                 Testes de acessibilidade.
             

                 Estudos de tolerância a falhas em software
             

          Práticas XP
      
                 Ênfase em automação desde a década de 90
             




    Tipos existentes

          User Acceptance Test
      
          Contract / Regulation Acceptance Test
      
          Alpha / Beta Acceptance Test
      




                                                                                            5 / 28
INF2134 - Teste e medição de software    Automação de Testes de Aceitação em Sistemas WEB
Porque automatizar?
    “Testar é chato”

    “Ninguém gosta de testar”

    “Deixa o estagiário fazer…”

    “Ah, isso é tão fácil que nem precisa testar”




    Tornar o teste mais assertivo

    Tornar o teste mais frequente

    Possibilitar fazer regressão com baixo custo direto

    Proporcionar Repetibilidade

    Maior confiabilidade no código: diminuir custo de mudanças

    Resposta mais rápida a falhas, mais produtividade





                                                                                           6 / 28
INF2134 - Teste e medição de software   Automação de Testes de Aceitação em Sistemas WEB
Problemas enfrentados
    Dificuldade de aprendizado.

    Mudança de cultura do corpo técnico.

    Custo de desenvolvimento imediato é alto e muitas

    vezes não é aceito.
    Dificuldade para gerenciar a expectativa sobre os

    resultados
    Não elimina a necessidade de testes manuais

    Dificuldade de aplicação em código “legado”.

    Quem deve fazer os casos de teste? É necessário caso

    de teste? Ou o script o substitui?


                                                                                           7 / 28
INF2134 - Teste e medição de software   Automação de Testes de Aceitação em Sistemas WEB
Como automatizar?
    Idéia Básica:

          Identificar critérios de aceitação para seus requisitos,
      
          formatando-os de forma a serem “executáveis”, de
          acordo com a ferramenta que você está trabalhando.


    Ferramentas disponíveis (Plataforma Web)

          Arbiter, Concordion, Fit (Fitnesse), Selenium, RFT,
      
          SilkTest, STIQ, TestComplete, Twist, Watir, WebTest,
          Zibreve…



                                                                                           8 / 28
INF2134 - Teste e medição de software   Automação de Testes de Aceitação em Sistemas WEB
Sistema Web para Exemplo
    “Livros On Line”





                                                  Cadastro de Livros

Pesquisa de Livros




                                                                                           9 / 28
INF2134 - Teste e medição de software   Automação de Testes de Aceitação em Sistemas WEB
Como automatizar?
    “Livros On Line”

          Abordagem “Ágil”
      


                 História #1: Pesquisa de Livros
             

                     Eu, usuário, quero pesquisar um livro informando o nome do
                      autor ou do título do livro.


                 Critérios de Aceitação:
             

                     Um usuário entra com um valor que corresponda ao menos
                      a um autor ou título de algum livro cadastrado e a pesquisa
                      exibe o mesmo no seu resultado.
                     Um usuário entra com um valor que não corresponda a
                      nenhum autor ou livro cadastrado e nenhum livro é
                      encontrado no resultado da pesquisa.
INF2134 - Teste e medição de software      Automação de Testes de Aceitação em Sistemas WEB
                                                                                              10 / 28
Fit/ Fitnesse
      O que é?
 


            Fit
       
                  “framework open-source para automação de testes de
              
                  aceitação cuja idéia principal é integrar o trabalho de
                  clientes, analista, testadores e desenvolvedores”


            Fitnesse
       
                  “Um Wiki, um servidor web, uma ferramenta de testes”
              

                  Facilita a entrada de dados no formato aceito pelo Fit.
              

                  Ajuda a organizar os casos de teste.
              



                                                                                           11 / 28
INF2134 - Teste e medição de software   Automação de Testes de Aceitação em Sistemas WEB
Fit / Fitnesse
    Como funcionam

          Fit:
      
                 Clientes escrevem exemplos de como seu software deve funcionar,
             
                 formatados em tabelas e salvos como HTML (usando planilhas, por
                 exemplo). Esses exemplos são então conectados com o software através
                 das Fixtures (hotspots do framework que devem ser instanciados, um para
                 cada teste) e checados automaticamente pelo framework
          Fitnesse:
      
                 complementa o Fit, facilitando a entrada das informações no formato de
             
                 tabela, através de uma interface semelhante a uma Wiki.

    Instalação

          Fit e Fitnesse: Requerem JDK 1.5 instalado
      
          Colocar o Fit dentro do seu projeto e rodar um jar usando a jvm
      



                                                                                               12 / 28
INF2134 - Teste e medição de software       Automação de Testes de Aceitação em Sistemas WEB
Fit / Fitnesse
    Exemplo (Livros On Line – pesquisa)

  pacote.exemplo.PesquisaLivrosTestFixture
  termoPesquisado                       pesquisar?
  “Gabriela, Cravo e                    “Gabriela, Cravo e
  Canela”                               Canela”
  “Machado de Assis”
  “Vidas Secas”                         “Vidas Secas”


          Ou seja, se pesquisarmos por “Gabriela, Cravo e Canela”, o retorno deve ser um
          livro com o título mesmo título. Já se pesquisarmos por “Machado de Assis”, o
          retorno deve ser vazio.

          A tabela executa diretamente o código a seguir (a referência é feita por nomes)
          Você diz para o Fitnesse onde entronar o código através de um “ClassPath”.
                                                                                                   13 / 28
INF2134 - Teste e medição de software           Automação de Testes de Aceitação em Sistemas WEB
Fit / Fitnesse
    Exemplo (Livros On Line – pesquisa)

               Código
      

       public class PesquisarLivrosTestFixture extends ColumnFixture {
        public String termoPesquisado;

           public boolean pesquisar() {
            String titulo = quot;quot;;

               List livros = Facade.obterLivros(termoPesquisado);
               if (livro != null && !livro.isEmpty()) {
                   titulo = livro.get(0).getTitulo();
               }

               return titulo;
           }
       }



                                                                                                      14 / 28
INF2134 - Teste e medição de software              Automação de Testes de Aceitação em Sistemas WEB
Fit / Fitnesse
    Linguagens de programação suportadas

          Atualmente: Java, C++, Python, Ruby, Delphi, C#
      

    Extensível?

          Sim
      
                 Podem ser criadas novas Fixtures, facilitando a interpretação das
             
                 tabelas.
    Integração Contínua?

          Através de outras ferramentas relacionadas (AntFit)
      




                                                                                             15 / 28
INF2134 - Teste e medição de software     Automação de Testes de Aceitação em Sistemas WEB
Selenium
    O que é?

          Suíte de ferramentas open-source que auxiliam na
      
          execução de “testes de sistema” a partir da camada
          de apresentação de um sistema Web




                                          Selenium IDE           Selenium Remote Control




          Selenium Suite

                                                      Selenium Grid
                                                                                           16 / 28
INF2134 - Teste e medição de software   Automação de Testes de Aceitação em Sistemas WEB
Selenium


                                                                        ou




                                                                                           17 / 28
INF2134 - Teste e medição de software   Automação de Testes de Aceitação em Sistemas WEB
Selenium
    Instalação

          Selenium IDE: Mozilla Firefox add-on
      
          Selenium Remote Control: rodar um build do pacote
      
          na linguagem desejada
          Selenium Grid: rodar um build do pacote (requer jdk e
      
          ANT)
    Linguagens de programação suportadas

          “Selenesse”, Java, C#, Python, Ruby, Perl, PHP
      

    Integração Contínua?

          Sim, usando o ANT (disponibiliza tasks para acionar
      
          o RC)
                                                                                           18 / 28
INF2134 - Teste e medição de software   Automação de Testes de Aceitação em Sistemas WEB
Selenium
    Exemplo (Livros On Line – pesquisa)





                                          19 / 28
Selenium
    Exemplo (“Selenesse” ou Java)

     <!DOCTYPE html PUBLIC quot;-//W3C//DTD XHTML 1.0 Strict//ENquot;
     quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtdquot;>
     <html xmlns=quot;http://www.w3.org/1999/xhtmlquot; xml:lang=quot;enquot;
     lang=quot;enquot;>
     <head profile=quot;http://selenium-ide.openqa.org/profiles/test-casequot;>
     <meta http-equiv=quot;Content-Typequot; content=quot;text/html; charset=UTF-8quot;
     />
     <link rel=quot;selenium.basequot; href=quot;quot; />
     <title>New Test</title>
     </head>
     <body>
     <table cellpadding=quot;1quot; cellspacing=quot;1quot; border=quot;1quot;>
     <thead>
     <tr><td rowspan=quot;1quot; colspan=quot;3quot;>New Test</td></tr>
     </thead><tbody>
     <tr>
                  <td>open</td>
                                                                             public class NewTest extends SeleneseTestCase {
                  <td>/books/search</td>
                                                                                            public void setUp() throws Exception {
                  <td></td>
     </tr>
                                                                                            setUp(quot;http://localhost:8080/quot;, quot;*chromequot;);   }
     <tr>
                                                                                            public void testNew() throws Exception {
                  <td>type</td>
                  <td>query</td>
                                                                                            selenium.open(quot;/books/searchquot;);
                  <td>Livro 1</td>
     </tr>                                                                                  selenium.type(quot;queryquot;, quot;Livro 1quot;);
     <tr>
                                                                                            selenium.click(quot;quot;);
                  <td>clickAndWait</td>
                  <td></td>
                                                                                            selenium.waitForPageToLoad(quot;30000quot;);
                  <td></td>
                                                                                            verifyEquals(quot;Livro 1quot;,
     </tr>
     <tr>
                                                                             selenium.getText(quot;livrosquot;)); }}
                  <td>verifyText</td>
                  <td>livros</td>
                  <td>Livro 1</td>
     </tr>
     </tbody></table>
     </body>
     </html>

                                                                                                                                              20 / 28
INF2134 - Teste e medição de software                                     Automação de Testes de Aceitação em Sistemas WEB
Concordion
    O que é?

          Ferramenta open-source de teste de aceitação também
      
          baseada em colaboração entre clientes e desenvolvedores


    Como funciona?

          Especificações são escritas em formato HTML
      
          Desenvolvedores “instrumentam” o HTML, com “comandos”
      
          necessários para uma validação
          Fixtures (extensões de Junit Test Cases, não ligadas ao Fit)
      
          processam os “comandos” presentes na especificação
          instrumentada



                                                                                           21 / 28
INF2134 - Teste e medição de software   Automação de Testes de Aceitação em Sistemas WEB
Concordion




              Como funciona a ferramenta Concordion
                                                                                                22 / 28
INF2134 - Teste e medição de software        Automação de Testes de Aceitação em Sistemas WEB
Concordion
    Exemplo (Livros On Line – pesquisa)

                                                         <html xmlns:concordion=quot;http://www.concordion.org/2007/concordionquot;>
Historia #1                                                 <body>
…                                                              <h1>Pesquisa de Livros</h1>
                                                               <p>
Critérios de Aceitação:                                          Um usuário entra com um valor que corresponda ao menos a um
Um usuário entra com um valor                            autor ou título de algum livro cadastrado e a pesquisa exibe o mesmo no
                                                         seu resultado.
que corresponda ao menos a um                                  </p>
autor ou título de algum livro                                  <p>
                                        instrumentação    Um usuário entra com um valor que não corresponda a nenhum autor ou
cadastrado e a pesquisa exibe o                          livro cadastrado e nenhum livro é encontrado no resultado da pesquisa.
mesmo no seu resultado.                                        </p>
                                                               <div class=quot;exemploquot;>
                                                                 <h3>Exemplo</h3>
                                                                 <p>
Um usuário entra com um valor                                       Nome do livro pesquisado
que não corresponda a nenhum                                        <span concordion:execute=quot;#result = pesquisar(#TEXT)quot;>Livro
                                                         1</span>
autor ou livro cadastrado e                                         <span concordion:assertEquals=quot;#resultquot;>Livro 1</span>
nenhum livro é encontrado no                                        <span concordion:execute=quot;#result = pesquisar(#TEXT)quot;>Livro
                                                         nao cadastrado</span>
resultado da pesquisa.                                              <span concordion:assertEquals=quot;#resultquot;></span>
                                                                 </p>
                                                               </div>
                                                            </body>
                                                         </html>




                                                                                                                             23 / 28
INF2134 - Teste e medição de software              Automação de Testes de Aceitação em Sistemas WEB
Concordion
     Exemplo (Livros On Line – pesquisa)

             Código
         
 public class PesquisaLivrosTest extends ConcordionTestCase {

     public Result pesquisar(String termo) {
             String titulo = quot;quot;;

             List livros = Facade.obterLivros(termoPesquisado);
             if (livro != null && !livro.isEmpty()) {
                 titulo = livro.get(0).getTitulo();
             }

             return titulo;

     }

 }

                                                                                                    24 / 28
INF2134 - Teste e medição de software            Automação de Testes de Aceitação em Sistemas WEB
Concordion
    Instalação

          Rodar um jar (requer jdk, junit)
      

    Linguagens de Programação suportadas

          Java
      

    Integração Contínua?

          Sim: através do ANT
      




                                                                                           25 / 28
INF2134 - Teste e medição de software   Automação de Testes de Aceitação em Sistemas WEB
Conclusão
    Fit / Fitnesse

          Foco na colaboração com cliente
      
          Dificuldade para testar camada de apresentação
      

    Selenium

          Gravação dos testes de forma visual (Firefox)
      
          Exige conhecimento de HTML / DOM para criar testes eficazes
      

    Concordion

          Foco na colaboração com o cliente
      
          Exige um passo a mais de instrumentação, que requer conhecimento
      
          de html e da api do Concordion
          Restrito a Java (por enquanto)
      



                                        Perguntas?

                                                                                             26 / 28
INF2134 - Teste e medição de software     Automação de Testes de Aceitação em Sistemas WEB
Referência Bibliográfica
    Fit: http://fit.c2.com


    Fitnesse; http://fitnesse.org, http://fitnesse.info


    Concordion; http://www.concordion.org


    Rational Functional Tester; http://www-

    01.ibm.com/software/awdtools/tester/functional/
    Twist; http://studios.thoughtworks.com/twist-agile-test-automation


    Selenium; http://selenium.openqa.org


    Selenium RC; http://selenium-rc.openqa.org


    StoryTestIQ (STIQ); http://storytestiq.solutionsiq.com/wiki/Main_Page


    Zibreve; http://www.zibreve.com


    Arbiter; http://arbiter.sourceforge.net/





                                                                                           27 / 28
INF2134 - Teste e medição de software   Automação de Testes de Aceitação em Sistemas WEB
Referência Bibliográfica
    Beck, K.; Test-Driven Development by Example; New York, NY: Addison-

    Wesley; 2003
    Mugridge R., Cunningham W.; Fit for Developing Software: Framework for

    Integrated Tests: Prentice Hall; 2005
    Fewster, M.; Graham, D.; Software Test Automation; Addison-Wesley;

    1999
    Koskela, L; Test Driven: TDD and Acceptance TDD for Java Developers;

    Manning Publications; 2007
    Koomen, Tim; Pol, Martin; Test Process Improvement: A step-by-step guide

    to structured testing; ACM Press; 1999
    Black, Rex; Pragmatic Software Testing: Becoming an Effective and

    Efficient Test Professio$nal; 2007
    B. Randell, System structure for software fault tolerance; ACM; 1975, Los

    Angeles, CA


                                                                                           28 / 28
INF2134 - Teste e medição de software   Automação de Testes de Aceitação em Sistemas WEB

Mais conteúdo relacionado

Mais procurados

Validação e Testes de Software - MOD1
Validação e Testes de Software - MOD1Validação e Testes de Software - MOD1
Validação e Testes de Software - MOD1Fernando Palma
 
Testes Unitários/Integrados
Testes Unitários/IntegradosTestes Unitários/Integrados
Testes Unitários/IntegradosGiovanni Bassi
 
Verificação, Validação e Teste de Software
Verificação, Validação e Teste de SoftwareVerificação, Validação e Teste de Software
Verificação, Validação e Teste de SoftwareCamilo Almendra
 
Introdução ao Teste de Software - Uma abordagem prática
Introdução ao Teste de Software - Uma abordagem práticaIntrodução ao Teste de Software - Uma abordagem prática
Introdução ao Teste de Software - Uma abordagem práticaFabrício Campos
 
Introdução a Testes de Software - Unidade I
Introdução a Testes de Software - Unidade IIntrodução a Testes de Software - Unidade I
Introdução a Testes de Software - Unidade IJoão Lourenço
 
Ferramentas open source para auxiliar os testes de software
Ferramentas open source para auxiliar os testes de softwareFerramentas open source para auxiliar os testes de software
Ferramentas open source para auxiliar os testes de softwareJeremias Araujo
 
Revisao inspecao artefatos testes estaticos
Revisao inspecao artefatos testes estaticosRevisao inspecao artefatos testes estaticos
Revisao inspecao artefatos testes estaticosCristiano Caetano
 
Introdução a testes de sofwtare
Introdução a testes de sofwtareIntrodução a testes de sofwtare
Introdução a testes de sofwtareFernando Palma
 
Minicurso - Teste de software (CACSI 2015)
Minicurso - Teste de software (CACSI 2015)Minicurso - Teste de software (CACSI 2015)
Minicurso - Teste de software (CACSI 2015)Vanilton Pinheiro
 
Papéis em Teste e Qualidade de Software
Papéis em Teste e Qualidade de SoftwarePapéis em Teste e Qualidade de Software
Papéis em Teste e Qualidade de SoftwareCamilo Ribeiro
 
Implantação de um Processo de Teste de Software - Randerson Melville
Implantação de um Processo de Teste de Software - Randerson Melville Implantação de um Processo de Teste de Software - Randerson Melville
Implantação de um Processo de Teste de Software - Randerson Melville minastestingconference
 
Conceitos e fundamentos sobre testes de software e garantia da qualidade
Conceitos e fundamentos sobre testes de software e garantia da qualidadeConceitos e fundamentos sobre testes de software e garantia da qualidade
Conceitos e fundamentos sobre testes de software e garantia da qualidaderzauza
 
Noções em teste de software e introdução a automação
Noções em teste de software e introdução a automaçãoNoções em teste de software e introdução a automação
Noções em teste de software e introdução a automaçãoSandy Maciel
 
Teste de Software Introdução à Qualidade
Teste de Software Introdução à Qualidade Teste de Software Introdução à Qualidade
Teste de Software Introdução à Qualidade Camilo Ribeiro
 
Ctfl 2018 sample_b[v1.3br]
Ctfl 2018 sample_b[v1.3br]Ctfl 2018 sample_b[v1.3br]
Ctfl 2018 sample_b[v1.3br]rafael327780
 

Mais procurados (20)

Teste de Software
Teste de SoftwareTeste de Software
Teste de Software
 
Validação e Testes de Software - MOD1
Validação e Testes de Software - MOD1Validação e Testes de Software - MOD1
Validação e Testes de Software - MOD1
 
Testes Unitários/Integrados
Testes Unitários/IntegradosTestes Unitários/Integrados
Testes Unitários/Integrados
 
Fundamentos de Testes de Software - Qualidad
Fundamentos de Testes de Software - QualidadFundamentos de Testes de Software - Qualidad
Fundamentos de Testes de Software - Qualidad
 
Verificação, Validação e Teste de Software
Verificação, Validação e Teste de SoftwareVerificação, Validação e Teste de Software
Verificação, Validação e Teste de Software
 
Introdução ao Teste de Software - Uma abordagem prática
Introdução ao Teste de Software - Uma abordagem práticaIntrodução ao Teste de Software - Uma abordagem prática
Introdução ao Teste de Software - Uma abordagem prática
 
Introdução a Testes de Software - Unidade I
Introdução a Testes de Software - Unidade IIntrodução a Testes de Software - Unidade I
Introdução a Testes de Software - Unidade I
 
Ferramentas open source para auxiliar os testes de software
Ferramentas open source para auxiliar os testes de softwareFerramentas open source para auxiliar os testes de software
Ferramentas open source para auxiliar os testes de software
 
Qualidade e Teste de Software
Qualidade e Teste de SoftwareQualidade e Teste de Software
Qualidade e Teste de Software
 
Revisao inspecao artefatos testes estaticos
Revisao inspecao artefatos testes estaticosRevisao inspecao artefatos testes estaticos
Revisao inspecao artefatos testes estaticos
 
Papéis em teste e qualidade de software
Papéis em teste e qualidade de softwarePapéis em teste e qualidade de software
Papéis em teste e qualidade de software
 
Introdução a testes de sofwtare
Introdução a testes de sofwtareIntrodução a testes de sofwtare
Introdução a testes de sofwtare
 
Minicurso - Teste de software (CACSI 2015)
Minicurso - Teste de software (CACSI 2015)Minicurso - Teste de software (CACSI 2015)
Minicurso - Teste de software (CACSI 2015)
 
Papéis em Teste e Qualidade de Software
Papéis em Teste e Qualidade de SoftwarePapéis em Teste e Qualidade de Software
Papéis em Teste e Qualidade de Software
 
Implantação de um Processo de Teste de Software - Randerson Melville
Implantação de um Processo de Teste de Software - Randerson Melville Implantação de um Processo de Teste de Software - Randerson Melville
Implantação de um Processo de Teste de Software - Randerson Melville
 
Conceitos e fundamentos sobre testes de software e garantia da qualidade
Conceitos e fundamentos sobre testes de software e garantia da qualidadeConceitos e fundamentos sobre testes de software e garantia da qualidade
Conceitos e fundamentos sobre testes de software e garantia da qualidade
 
Noções em teste de software e introdução a automação
Noções em teste de software e introdução a automaçãoNoções em teste de software e introdução a automação
Noções em teste de software e introdução a automação
 
Teste de Software Introdução à Qualidade
Teste de Software Introdução à Qualidade Teste de Software Introdução à Qualidade
Teste de Software Introdução à Qualidade
 
Ctfl 2018 sample_b[v1.3br]
Ctfl 2018 sample_b[v1.3br]Ctfl 2018 sample_b[v1.3br]
Ctfl 2018 sample_b[v1.3br]
 
Aula - Teste de Software
Aula - Teste de SoftwareAula - Teste de Software
Aula - Teste de Software
 

Destaque

Automação de testes funcionais com Python e Mechanize
Automação de testes funcionais com Python e MechanizeAutomação de testes funcionais com Python e Mechanize
Automação de testes funcionais com Python e MechanizeRobson Agapito Correa
 
Prototype Framework Javascript
Prototype Framework JavascriptPrototype Framework Javascript
Prototype Framework JavascriptMarcio Romu
 
Dezembro 2015 - UI AutoMonkey - Teste Automatizado iOS
Dezembro 2015 - UI AutoMonkey - Teste Automatizado iOSDezembro 2015 - UI AutoMonkey - Teste Automatizado iOS
Dezembro 2015 - UI AutoMonkey - Teste Automatizado iOSGrupo de Testes Carioca
 
Qualidade levada a sério em Python - Emilio Simoni
Qualidade levada a sério em Python - Emilio SimoniQualidade levada a sério em Python - Emilio Simoni
Qualidade levada a sério em Python - Emilio SimoniGrupo de Testes Carioca
 
Testes em um contexto de Continuous Delivery
Testes em um contexto de Continuous DeliveryTestes em um contexto de Continuous Delivery
Testes em um contexto de Continuous DeliveryGrupo de Testes Carioca
 
Maio 2016 - Integração e Validação Contínua
Maio 2016 - Integração e Validação ContínuaMaio 2016 - Integração e Validação Contínua
Maio 2016 - Integração e Validação ContínuaGrupo de Testes Carioca
 
Testes de integração automatizados com GoCD e Consu
Testes de integração automatizados com GoCD e ConsuTestes de integração automatizados com GoCD e Consu
Testes de integração automatizados com GoCD e ConsuGrupo de Testes Carioca
 
Cloud Computing e Integração Contínua com o Windows Azure
Cloud Computing e Integração Contínua com o Windows AzureCloud Computing e Integração Contínua com o Windows Azure
Cloud Computing e Integração Contínua com o Windows AzureGrupo de Testes Carioca
 
Charles Proxy, um canivete suíço para o dia a dia de desenvolvimento (testes)
Charles Proxy, um canivete suíço para o dia a dia de desenvolvimento (testes)Charles Proxy, um canivete suíço para o dia a dia de desenvolvimento (testes)
Charles Proxy, um canivete suíço para o dia a dia de desenvolvimento (testes)Grupo de Testes Carioca
 
Dezembro 2015 - Primeiros Passos em Automação de Testes
Dezembro 2015 - Primeiros Passos em Automação de Testes Dezembro 2015 - Primeiros Passos em Automação de Testes
Dezembro 2015 - Primeiros Passos em Automação de Testes Grupo de Testes Carioca
 
Junho 2016 - Django - A sua cápsula de soluções web em python
Junho 2016 - Django - A sua cápsula de soluções web em pythonJunho 2016 - Django - A sua cápsula de soluções web em python
Junho 2016 - Django - A sua cápsula de soluções web em pythonGrupo de Testes Carioca
 
Automação de testes de desempenho para sistemas web utilizando a ferramenta J...
Automação de testes de desempenho para sistemas web utilizando a ferramenta J...Automação de testes de desempenho para sistemas web utilizando a ferramenta J...
Automação de testes de desempenho para sistemas web utilizando a ferramenta J...Leandro Ugioni
 
Teste de segurança em aplicações web ( sites )
Teste de segurança em aplicações web ( sites )Teste de segurança em aplicações web ( sites )
Teste de segurança em aplicações web ( sites )Pablo Ribeiro
 

Destaque (19)

Automação de testes funcionais com Python e Mechanize
Automação de testes funcionais com Python e MechanizeAutomação de testes funcionais com Python e Mechanize
Automação de testes funcionais com Python e Mechanize
 
Teste aceitação
Teste aceitaçãoTeste aceitação
Teste aceitação
 
Aprenda HTML e CSS
Aprenda HTML e CSSAprenda HTML e CSS
Aprenda HTML e CSS
 
Prototype Framework Javascript
Prototype Framework JavascriptPrototype Framework Javascript
Prototype Framework Javascript
 
Dezembro 2015 - UI AutoMonkey - Teste Automatizado iOS
Dezembro 2015 - UI AutoMonkey - Teste Automatizado iOSDezembro 2015 - UI AutoMonkey - Teste Automatizado iOS
Dezembro 2015 - UI AutoMonkey - Teste Automatizado iOS
 
Junho 2016 - Testes de Carga com Locust
Junho 2016 - Testes de Carga com LocustJunho 2016 - Testes de Carga com Locust
Junho 2016 - Testes de Carga com Locust
 
Qualidade levada a sério em Python - Emilio Simoni
Qualidade levada a sério em Python - Emilio SimoniQualidade levada a sério em Python - Emilio Simoni
Qualidade levada a sério em Python - Emilio Simoni
 
Março 2016 - Como testar sua API Rest
Março 2016 - Como testar sua API RestMarço 2016 - Como testar sua API Rest
Março 2016 - Como testar sua API Rest
 
Testes em um contexto de Continuous Delivery
Testes em um contexto de Continuous DeliveryTestes em um contexto de Continuous Delivery
Testes em um contexto de Continuous Delivery
 
Maio 2016 - O QA em um Time Ágil
Maio 2016 - O QA em um Time Ágil Maio 2016 - O QA em um Time Ágil
Maio 2016 - O QA em um Time Ágil
 
Maio 2016 - Integração e Validação Contínua
Maio 2016 - Integração e Validação ContínuaMaio 2016 - Integração e Validação Contínua
Maio 2016 - Integração e Validação Contínua
 
Testes de integração automatizados com GoCD e Consu
Testes de integração automatizados com GoCD e ConsuTestes de integração automatizados com GoCD e Consu
Testes de integração automatizados com GoCD e Consu
 
Cloud Computing e Integração Contínua com o Windows Azure
Cloud Computing e Integração Contínua com o Windows AzureCloud Computing e Integração Contínua com o Windows Azure
Cloud Computing e Integração Contínua com o Windows Azure
 
Charles Proxy, um canivete suíço para o dia a dia de desenvolvimento (testes)
Charles Proxy, um canivete suíço para o dia a dia de desenvolvimento (testes)Charles Proxy, um canivete suíço para o dia a dia de desenvolvimento (testes)
Charles Proxy, um canivete suíço para o dia a dia de desenvolvimento (testes)
 
Dezembro 2015 - Primeiros Passos em Automação de Testes
Dezembro 2015 - Primeiros Passos em Automação de Testes Dezembro 2015 - Primeiros Passos em Automação de Testes
Dezembro 2015 - Primeiros Passos em Automação de Testes
 
Julho 2016 - Microsoft Test Manager
Julho 2016 - Microsoft Test ManagerJulho 2016 - Microsoft Test Manager
Julho 2016 - Microsoft Test Manager
 
Junho 2016 - Django - A sua cápsula de soluções web em python
Junho 2016 - Django - A sua cápsula de soluções web em pythonJunho 2016 - Django - A sua cápsula de soluções web em python
Junho 2016 - Django - A sua cápsula de soluções web em python
 
Automação de testes de desempenho para sistemas web utilizando a ferramenta J...
Automação de testes de desempenho para sistemas web utilizando a ferramenta J...Automação de testes de desempenho para sistemas web utilizando a ferramenta J...
Automação de testes de desempenho para sistemas web utilizando a ferramenta J...
 
Teste de segurança em aplicações web ( sites )
Teste de segurança em aplicações web ( sites )Teste de segurança em aplicações web ( sites )
Teste de segurança em aplicações web ( sites )
 

Semelhante a Automação de Testes de Aceitação em Sistemas Web

Qualidade de software com Visual Studio ALM
Qualidade de software com Visual Studio ALMQualidade de software com Visual Studio ALM
Qualidade de software com Visual Studio ALMAdriano Bertucci
 
Testando sua aplicação asp.net mvc de forma automatizada de ponta a ponta
Testando sua aplicação asp.net mvc de forma automatizada de ponta a pontaTestando sua aplicação asp.net mvc de forma automatizada de ponta a ponta
Testando sua aplicação asp.net mvc de forma automatizada de ponta a pontatdc-globalcode
 
Coders On Beer + Ministry Of Testing - Agile Testing
Coders On Beer + Ministry Of Testing - Agile TestingCoders On Beer + Ministry Of Testing - Agile Testing
Coders On Beer + Ministry Of Testing - Agile TestingSamanta Cicilia
 
4 engenharia de software
4   engenharia de software4   engenharia de software
4 engenharia de softwareFelipe Bugov
 
INTRODUÇÃO AOS TESTES NO FRONT-END COM REACT JS E REACT NATIVE.pdf
INTRODUÇÃO AOS TESTES NO FRONT-END COM REACT JS E REACT NATIVE.pdfINTRODUÇÃO AOS TESTES NO FRONT-END COM REACT JS E REACT NATIVE.pdf
INTRODUÇÃO AOS TESTES NO FRONT-END COM REACT JS E REACT NATIVE.pdfRonaldAlves15
 
Gerenciando Testes Com Qualidade V2a
Gerenciando Testes Com Qualidade V2aGerenciando Testes Com Qualidade V2a
Gerenciando Testes Com Qualidade V2aLeonardo Molinari
 
O que seus testes garantem, o funcionamento do código ou das funcionalidades ...
O que seus testes garantem, o funcionamento do código ou das funcionalidades ...O que seus testes garantem, o funcionamento do código ou das funcionalidades ...
O que seus testes garantem, o funcionamento do código ou das funcionalidades ...Isaac de Souza
 
01 UNIDADE I - Princípios, pilares e modelos de teste de software.pptx
01 UNIDADE I -  Princípios, pilares e modelos de teste de software.pptx01 UNIDADE I -  Princípios, pilares e modelos de teste de software.pptx
01 UNIDADE I - Princípios, pilares e modelos de teste de software.pptxAnaKlyssia1
 
Testes automatizados end-to-end com WordPress por Fabio Nas
Testes automatizados end-to-end com WordPress por Fabio NasTestes automatizados end-to-end com WordPress por Fabio Nas
Testes automatizados end-to-end com WordPress por Fabio NasWordCamp Floripa
 
4° Encontro Mensal ALATS: Automação de Teste - Mitos e Verdades
4° Encontro Mensal ALATS: Automação de Teste - Mitos e Verdades4° Encontro Mensal ALATS: Automação de Teste - Mitos e Verdades
4° Encontro Mensal ALATS: Automação de Teste - Mitos e VerdadesElias Nogueira
 
Testes de Performance: Por Onde Começar?
Testes de Performance: Por Onde Começar?Testes de Performance: Por Onde Começar?
Testes de Performance: Por Onde Começar?Alan Cafruni Gularte
 
Gerenciamento da Qualidade de Software 4.pptx
Gerenciamento da Qualidade de Software 4.pptxGerenciamento da Qualidade de Software 4.pptx
Gerenciamento da Qualidade de Software 4.pptxRoberto Nunes
 
Qualidade de Software com Visual Studio 2012
Qualidade de Software com Visual Studio 2012Qualidade de Software com Visual Studio 2012
Qualidade de Software com Visual Studio 2012Adriano Bertucci
 
Automação de testes: Teoria e Prática (SENAI) - Qualister
Automação de testes: Teoria e Prática (SENAI) - QualisterAutomação de testes: Teoria e Prática (SENAI) - Qualister
Automação de testes: Teoria e Prática (SENAI) - QualisterCristiano Caetano
 
Tdc continuous testing
Tdc   continuous testing Tdc   continuous testing
Tdc continuous testing Walter Farias
 
Palestra ALATS SP - FIAP Teste de Software
Palestra ALATS SP - FIAP  Teste de SoftwarePalestra ALATS SP - FIAP  Teste de Software
Palestra ALATS SP - FIAP Teste de SoftwareElias Nogueira
 

Semelhante a Automação de Testes de Aceitação em Sistemas Web (20)

Qualidade de software com Visual Studio ALM
Qualidade de software com Visual Studio ALMQualidade de software com Visual Studio ALM
Qualidade de software com Visual Studio ALM
 
Testando sua aplicação asp.net mvc de forma automatizada de ponta a ponta
Testando sua aplicação asp.net mvc de forma automatizada de ponta a pontaTestando sua aplicação asp.net mvc de forma automatizada de ponta a ponta
Testando sua aplicação asp.net mvc de forma automatizada de ponta a ponta
 
Coders On Beer + Ministry Of Testing - Agile Testing
Coders On Beer + Ministry Of Testing - Agile TestingCoders On Beer + Ministry Of Testing - Agile Testing
Coders On Beer + Ministry Of Testing - Agile Testing
 
4 engenharia de software
4   engenharia de software4   engenharia de software
4 engenharia de software
 
Ctai Teste De Software Aula 1
Ctai Teste De Software Aula 1Ctai Teste De Software Aula 1
Ctai Teste De Software Aula 1
 
INTRODUÇÃO AOS TESTES NO FRONT-END COM REACT JS E REACT NATIVE.pdf
INTRODUÇÃO AOS TESTES NO FRONT-END COM REACT JS E REACT NATIVE.pdfINTRODUÇÃO AOS TESTES NO FRONT-END COM REACT JS E REACT NATIVE.pdf
INTRODUÇÃO AOS TESTES NO FRONT-END COM REACT JS E REACT NATIVE.pdf
 
O que é Teste de Software?
O que é Teste de Software?O que é Teste de Software?
O que é Teste de Software?
 
Gerenciando Testes Com Qualidade V2a
Gerenciando Testes Com Qualidade V2aGerenciando Testes Com Qualidade V2a
Gerenciando Testes Com Qualidade V2a
 
O que seus testes garantem, o funcionamento do código ou das funcionalidades ...
O que seus testes garantem, o funcionamento do código ou das funcionalidades ...O que seus testes garantem, o funcionamento do código ou das funcionalidades ...
O que seus testes garantem, o funcionamento do código ou das funcionalidades ...
 
01 UNIDADE I - Princípios, pilares e modelos de teste de software.pptx
01 UNIDADE I -  Princípios, pilares e modelos de teste de software.pptx01 UNIDADE I -  Princípios, pilares e modelos de teste de software.pptx
01 UNIDADE I - Princípios, pilares e modelos de teste de software.pptx
 
Testes automatizados end-to-end com WordPress por Fabio Nas
Testes automatizados end-to-end com WordPress por Fabio NasTestes automatizados end-to-end com WordPress por Fabio Nas
Testes automatizados end-to-end com WordPress por Fabio Nas
 
4° Encontro Mensal ALATS: Automação de Teste - Mitos e Verdades
4° Encontro Mensal ALATS: Automação de Teste - Mitos e Verdades4° Encontro Mensal ALATS: Automação de Teste - Mitos e Verdades
4° Encontro Mensal ALATS: Automação de Teste - Mitos e Verdades
 
Testes de Performance: Por Onde Começar?
Testes de Performance: Por Onde Começar?Testes de Performance: Por Onde Começar?
Testes de Performance: Por Onde Começar?
 
Gerenciamento da Qualidade de Software 4.pptx
Gerenciamento da Qualidade de Software 4.pptxGerenciamento da Qualidade de Software 4.pptx
Gerenciamento da Qualidade de Software 4.pptx
 
Qualidade de Software com Visual Studio 2012
Qualidade de Software com Visual Studio 2012Qualidade de Software com Visual Studio 2012
Qualidade de Software com Visual Studio 2012
 
Ctai Teste De Software Aula 2
Ctai Teste De Software Aula 2Ctai Teste De Software Aula 2
Ctai Teste De Software Aula 2
 
Automação de testes: Teoria e Prática (SENAI) - Qualister
Automação de testes: Teoria e Prática (SENAI) - QualisterAutomação de testes: Teoria e Prática (SENAI) - Qualister
Automação de testes: Teoria e Prática (SENAI) - Qualister
 
Tdc continuous testing
Tdc   continuous testing Tdc   continuous testing
Tdc continuous testing
 
Palestra ALATS SP - FIAP Teste de Software
Palestra ALATS SP - FIAP  Teste de SoftwarePalestra ALATS SP - FIAP  Teste de Software
Palestra ALATS SP - FIAP Teste de Software
 
Teste de Software
Teste de SoftwareTeste de Software
Teste de Software
 

Automação de Testes de Aceitação em Sistemas Web

  • 1. Automação de Testes de Aceitação em Sistemas Web Rodrigo Veiga Apresentação originalmente exibida durante a disciplina INF2134 (Mestrado PUC-Rio)
  • 2. Agenda Motivação  O que é um Teste de Aceitação  Histórico  Tipos  Porque automatizar?  Problemas enfrentados na automação  Como automatizar  Ferramentas atualmente disponíveis (web)  Apresentação de um exemplo web  Análise de Ferramentas disponíveis  Conclusão  2 / 28 INF2134 - Teste e medição de software Automação de Testes de Aceitação em Sistemas WEB
  • 3. Motivação Área de estudo recente e pouco explorada no país.  Relação direta com a qualidade percebida pelo cliente.  Compartilhar experiências adquiridas utilizando práticas  de automação. 3 / 28 INF2134 - Teste e medição de software Automação de Testes de Aceitação em Sistemas WEB
  • 4. O que é um Teste de Aceitação? Técnica para verificar a conformidade de uma  história ou funcionalidade em relação à expectativa do cliente (User) Acceptance Test, Customer Test ou Story  Test 4 / 28 INF2134 - Teste e medição de software Automação de Testes de Aceitação em Sistemas WEB
  • 5. O que é um Teste de Aceitação Histórico  Década de 1970  Testes de acessibilidade.  Estudos de tolerância a falhas em software  Práticas XP  Ênfase em automação desde a década de 90  Tipos existentes  User Acceptance Test  Contract / Regulation Acceptance Test  Alpha / Beta Acceptance Test  5 / 28 INF2134 - Teste e medição de software Automação de Testes de Aceitação em Sistemas WEB
  • 6. Porque automatizar? “Testar é chato”  “Ninguém gosta de testar”  “Deixa o estagiário fazer…”  “Ah, isso é tão fácil que nem precisa testar”  Tornar o teste mais assertivo  Tornar o teste mais frequente  Possibilitar fazer regressão com baixo custo direto  Proporcionar Repetibilidade  Maior confiabilidade no código: diminuir custo de mudanças  Resposta mais rápida a falhas, mais produtividade  6 / 28 INF2134 - Teste e medição de software Automação de Testes de Aceitação em Sistemas WEB
  • 7. Problemas enfrentados Dificuldade de aprendizado.  Mudança de cultura do corpo técnico.  Custo de desenvolvimento imediato é alto e muitas  vezes não é aceito. Dificuldade para gerenciar a expectativa sobre os  resultados Não elimina a necessidade de testes manuais  Dificuldade de aplicação em código “legado”.  Quem deve fazer os casos de teste? É necessário caso  de teste? Ou o script o substitui? 7 / 28 INF2134 - Teste e medição de software Automação de Testes de Aceitação em Sistemas WEB
  • 8. Como automatizar? Idéia Básica:  Identificar critérios de aceitação para seus requisitos,  formatando-os de forma a serem “executáveis”, de acordo com a ferramenta que você está trabalhando. Ferramentas disponíveis (Plataforma Web)  Arbiter, Concordion, Fit (Fitnesse), Selenium, RFT,  SilkTest, STIQ, TestComplete, Twist, Watir, WebTest, Zibreve… 8 / 28 INF2134 - Teste e medição de software Automação de Testes de Aceitação em Sistemas WEB
  • 9. Sistema Web para Exemplo “Livros On Line”  Cadastro de Livros Pesquisa de Livros 9 / 28 INF2134 - Teste e medição de software Automação de Testes de Aceitação em Sistemas WEB
  • 10. Como automatizar? “Livros On Line”  Abordagem “Ágil”  História #1: Pesquisa de Livros   Eu, usuário, quero pesquisar um livro informando o nome do autor ou do título do livro. Critérios de Aceitação:   Um usuário entra com um valor que corresponda ao menos a um autor ou título de algum livro cadastrado e a pesquisa exibe o mesmo no seu resultado.  Um usuário entra com um valor que não corresponda a nenhum autor ou livro cadastrado e nenhum livro é encontrado no resultado da pesquisa. INF2134 - Teste e medição de software Automação de Testes de Aceitação em Sistemas WEB 10 / 28
  • 11. Fit/ Fitnesse O que é?  Fit  “framework open-source para automação de testes de  aceitação cuja idéia principal é integrar o trabalho de clientes, analista, testadores e desenvolvedores” Fitnesse  “Um Wiki, um servidor web, uma ferramenta de testes”  Facilita a entrada de dados no formato aceito pelo Fit.  Ajuda a organizar os casos de teste.  11 / 28 INF2134 - Teste e medição de software Automação de Testes de Aceitação em Sistemas WEB
  • 12. Fit / Fitnesse Como funcionam  Fit:  Clientes escrevem exemplos de como seu software deve funcionar,  formatados em tabelas e salvos como HTML (usando planilhas, por exemplo). Esses exemplos são então conectados com o software através das Fixtures (hotspots do framework que devem ser instanciados, um para cada teste) e checados automaticamente pelo framework Fitnesse:  complementa o Fit, facilitando a entrada das informações no formato de  tabela, através de uma interface semelhante a uma Wiki. Instalação  Fit e Fitnesse: Requerem JDK 1.5 instalado  Colocar o Fit dentro do seu projeto e rodar um jar usando a jvm  12 / 28 INF2134 - Teste e medição de software Automação de Testes de Aceitação em Sistemas WEB
  • 13. Fit / Fitnesse Exemplo (Livros On Line – pesquisa)  pacote.exemplo.PesquisaLivrosTestFixture termoPesquisado pesquisar? “Gabriela, Cravo e “Gabriela, Cravo e Canela” Canela” “Machado de Assis” “Vidas Secas” “Vidas Secas” Ou seja, se pesquisarmos por “Gabriela, Cravo e Canela”, o retorno deve ser um livro com o título mesmo título. Já se pesquisarmos por “Machado de Assis”, o retorno deve ser vazio. A tabela executa diretamente o código a seguir (a referência é feita por nomes) Você diz para o Fitnesse onde entronar o código através de um “ClassPath”. 13 / 28 INF2134 - Teste e medição de software Automação de Testes de Aceitação em Sistemas WEB
  • 14. Fit / Fitnesse Exemplo (Livros On Line – pesquisa)  Código  public class PesquisarLivrosTestFixture extends ColumnFixture { public String termoPesquisado; public boolean pesquisar() { String titulo = quot;quot;; List livros = Facade.obterLivros(termoPesquisado); if (livro != null && !livro.isEmpty()) { titulo = livro.get(0).getTitulo(); } return titulo; } } 14 / 28 INF2134 - Teste e medição de software Automação de Testes de Aceitação em Sistemas WEB
  • 15. Fit / Fitnesse Linguagens de programação suportadas  Atualmente: Java, C++, Python, Ruby, Delphi, C#  Extensível?  Sim  Podem ser criadas novas Fixtures, facilitando a interpretação das  tabelas. Integração Contínua?  Através de outras ferramentas relacionadas (AntFit)  15 / 28 INF2134 - Teste e medição de software Automação de Testes de Aceitação em Sistemas WEB
  • 16. Selenium O que é?  Suíte de ferramentas open-source que auxiliam na  execução de “testes de sistema” a partir da camada de apresentação de um sistema Web Selenium IDE Selenium Remote Control Selenium Suite Selenium Grid 16 / 28 INF2134 - Teste e medição de software Automação de Testes de Aceitação em Sistemas WEB
  • 17. Selenium ou 17 / 28 INF2134 - Teste e medição de software Automação de Testes de Aceitação em Sistemas WEB
  • 18. Selenium Instalação  Selenium IDE: Mozilla Firefox add-on  Selenium Remote Control: rodar um build do pacote  na linguagem desejada Selenium Grid: rodar um build do pacote (requer jdk e  ANT) Linguagens de programação suportadas  “Selenesse”, Java, C#, Python, Ruby, Perl, PHP  Integração Contínua?  Sim, usando o ANT (disponibiliza tasks para acionar  o RC) 18 / 28 INF2134 - Teste e medição de software Automação de Testes de Aceitação em Sistemas WEB
  • 19. Selenium Exemplo (Livros On Line – pesquisa)  19 / 28
  • 20. Selenium Exemplo (“Selenesse” ou Java)  <!DOCTYPE html PUBLIC quot;-//W3C//DTD XHTML 1.0 Strict//ENquot; quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtdquot;> <html xmlns=quot;http://www.w3.org/1999/xhtmlquot; xml:lang=quot;enquot; lang=quot;enquot;> <head profile=quot;http://selenium-ide.openqa.org/profiles/test-casequot;> <meta http-equiv=quot;Content-Typequot; content=quot;text/html; charset=UTF-8quot; /> <link rel=quot;selenium.basequot; href=quot;quot; /> <title>New Test</title> </head> <body> <table cellpadding=quot;1quot; cellspacing=quot;1quot; border=quot;1quot;> <thead> <tr><td rowspan=quot;1quot; colspan=quot;3quot;>New Test</td></tr> </thead><tbody> <tr> <td>open</td> public class NewTest extends SeleneseTestCase { <td>/books/search</td> public void setUp() throws Exception { <td></td> </tr> setUp(quot;http://localhost:8080/quot;, quot;*chromequot;); } <tr> public void testNew() throws Exception { <td>type</td> <td>query</td> selenium.open(quot;/books/searchquot;); <td>Livro 1</td> </tr> selenium.type(quot;queryquot;, quot;Livro 1quot;); <tr> selenium.click(quot;quot;); <td>clickAndWait</td> <td></td> selenium.waitForPageToLoad(quot;30000quot;); <td></td> verifyEquals(quot;Livro 1quot;, </tr> <tr> selenium.getText(quot;livrosquot;)); }} <td>verifyText</td> <td>livros</td> <td>Livro 1</td> </tr> </tbody></table> </body> </html> 20 / 28 INF2134 - Teste e medição de software Automação de Testes de Aceitação em Sistemas WEB
  • 21. Concordion O que é?  Ferramenta open-source de teste de aceitação também  baseada em colaboração entre clientes e desenvolvedores Como funciona?  Especificações são escritas em formato HTML  Desenvolvedores “instrumentam” o HTML, com “comandos”  necessários para uma validação Fixtures (extensões de Junit Test Cases, não ligadas ao Fit)  processam os “comandos” presentes na especificação instrumentada 21 / 28 INF2134 - Teste e medição de software Automação de Testes de Aceitação em Sistemas WEB
  • 22. Concordion Como funciona a ferramenta Concordion 22 / 28 INF2134 - Teste e medição de software Automação de Testes de Aceitação em Sistemas WEB
  • 23. Concordion Exemplo (Livros On Line – pesquisa)  <html xmlns:concordion=quot;http://www.concordion.org/2007/concordionquot;> Historia #1 <body> … <h1>Pesquisa de Livros</h1> <p> Critérios de Aceitação: Um usuário entra com um valor que corresponda ao menos a um Um usuário entra com um valor autor ou título de algum livro cadastrado e a pesquisa exibe o mesmo no seu resultado. que corresponda ao menos a um </p> autor ou título de algum livro <p> instrumentação Um usuário entra com um valor que não corresponda a nenhum autor ou cadastrado e a pesquisa exibe o livro cadastrado e nenhum livro é encontrado no resultado da pesquisa. mesmo no seu resultado. </p> <div class=quot;exemploquot;> <h3>Exemplo</h3> <p> Um usuário entra com um valor Nome do livro pesquisado que não corresponda a nenhum <span concordion:execute=quot;#result = pesquisar(#TEXT)quot;>Livro 1</span> autor ou livro cadastrado e <span concordion:assertEquals=quot;#resultquot;>Livro 1</span> nenhum livro é encontrado no <span concordion:execute=quot;#result = pesquisar(#TEXT)quot;>Livro nao cadastrado</span> resultado da pesquisa. <span concordion:assertEquals=quot;#resultquot;></span> </p> </div> </body> </html> 23 / 28 INF2134 - Teste e medição de software Automação de Testes de Aceitação em Sistemas WEB
  • 24. Concordion Exemplo (Livros On Line – pesquisa)  Código  public class PesquisaLivrosTest extends ConcordionTestCase { public Result pesquisar(String termo) { String titulo = quot;quot;; List livros = Facade.obterLivros(termoPesquisado); if (livro != null && !livro.isEmpty()) { titulo = livro.get(0).getTitulo(); } return titulo; } } 24 / 28 INF2134 - Teste e medição de software Automação de Testes de Aceitação em Sistemas WEB
  • 25. Concordion Instalação  Rodar um jar (requer jdk, junit)  Linguagens de Programação suportadas  Java  Integração Contínua?  Sim: através do ANT  25 / 28 INF2134 - Teste e medição de software Automação de Testes de Aceitação em Sistemas WEB
  • 26. Conclusão Fit / Fitnesse  Foco na colaboração com cliente  Dificuldade para testar camada de apresentação  Selenium  Gravação dos testes de forma visual (Firefox)  Exige conhecimento de HTML / DOM para criar testes eficazes  Concordion  Foco na colaboração com o cliente  Exige um passo a mais de instrumentação, que requer conhecimento  de html e da api do Concordion Restrito a Java (por enquanto)  Perguntas? 26 / 28 INF2134 - Teste e medição de software Automação de Testes de Aceitação em Sistemas WEB
  • 27. Referência Bibliográfica Fit: http://fit.c2.com  Fitnesse; http://fitnesse.org, http://fitnesse.info  Concordion; http://www.concordion.org  Rational Functional Tester; http://www-  01.ibm.com/software/awdtools/tester/functional/ Twist; http://studios.thoughtworks.com/twist-agile-test-automation  Selenium; http://selenium.openqa.org  Selenium RC; http://selenium-rc.openqa.org  StoryTestIQ (STIQ); http://storytestiq.solutionsiq.com/wiki/Main_Page  Zibreve; http://www.zibreve.com  Arbiter; http://arbiter.sourceforge.net/  27 / 28 INF2134 - Teste e medição de software Automação de Testes de Aceitação em Sistemas WEB
  • 28. Referência Bibliográfica Beck, K.; Test-Driven Development by Example; New York, NY: Addison-  Wesley; 2003 Mugridge R., Cunningham W.; Fit for Developing Software: Framework for  Integrated Tests: Prentice Hall; 2005 Fewster, M.; Graham, D.; Software Test Automation; Addison-Wesley;  1999 Koskela, L; Test Driven: TDD and Acceptance TDD for Java Developers;  Manning Publications; 2007 Koomen, Tim; Pol, Martin; Test Process Improvement: A step-by-step guide  to structured testing; ACM Press; 1999 Black, Rex; Pragmatic Software Testing: Becoming an Effective and  Efficient Test Professio$nal; 2007 B. Randell, System structure for software fault tolerance; ACM; 1975, Los  Angeles, CA 28 / 28 INF2134 - Teste e medição de software Automação de Testes de Aceitação em Sistemas WEB