SlideShare ist ein Scribd-Unternehmen logo
1 von 43
Downloaden Sie, um offline zu lesen
Introdu¸˜o
       ca                  Qualidade de Software           Test Anything Protocol           M˜o na massa
                                                                                             a




              Testes unit´rios no PostgreSQL com pgTAP
                         a

                                          Dickson S. Guedes
                                       guedes@guedesoft.net

                                            PGDay S˜o Paulo, 2009
                                                   a


                                           24 de abril de 2009




Testes unit´rios no PostgreSQL com pgTAP
           a                                                                        PGDay S˜o Paulo, 2009
                                                                                           a
Introdu¸˜o
       ca                  Qualidade de Software   Test Anything Protocol           M˜o na massa
                                                                                     a




Uma vis˜o geral...
       a
      Introdu¸˜o
             ca
          Compreendendo os ambientes
          Compreendendo os resultados inesperados
          Supostas alternativas
      Qualidade de Software
          Conceitos b´sicos
                     a
          Compreendendo os testes
          O papel do DBA
      Test Anything Protocol
          Compreendendo o TAP
          Compreendendo o pgTAP
      M˜o na massa
        a
          Preparando o ambiente
          Entendendo os scripts
          Entendendo os tipos de testes
          Executando um script
Testes unit´rios no PostgreSQL com pgTAP
           a                                                                PGDay S˜o Paulo, 2009
                                                                                   a
Introdu¸˜o
       ca                    Qualidade de Software   Test Anything Protocol           M˜o na massa
                                                                                       a




Compreendendo os ambientes



Por onde come¸amos?
             c


              Laborat´rio
                     o
              Desenvolvimento
              Teste
              Homologa¸˜o
                      ca




Testes unit´rios no PostgreSQL com pgTAP
           a                                                                  PGDay S˜o Paulo, 2009
                                                                                     a
Introdu¸˜o
       ca                    Qualidade de Software   Test Anything Protocol           M˜o na massa
                                                                                       a




Compreendendo os ambientes



Por onde come¸amos?
             c


              Laborat´rio
                     o
              Desenvolvimento
              Teste
              Homologa¸˜o
                      ca
              Produ¸˜o
                   ca




Testes unit´rios no PostgreSQL com pgTAP
           a                                                                  PGDay S˜o Paulo, 2009
                                                                                     a
Introdu¸˜o
       ca                   Qualidade de Software   Test Anything Protocol           M˜o na massa
                                                                                      a




Compreendendo os resultados inesperados



O tempo passa... o tempo voa...
e o software vai sofrendo altera¸oes...
                                c˜




              ”Mas antes funcionava!”
              ”Isso piorou!”
              ”Eu n˜o fiz nada, foi essa mudan¸a a´
                   a                         c ı!”




Testes unit´rios no PostgreSQL com pgTAP
           a                                                                 PGDay S˜o Paulo, 2009
                                                                                    a
Introdu¸˜o
       ca                  Qualidade de Software   Test Anything Protocol           M˜o na massa
                                                                                     a




Supostas alternativas



Op¸oes
  c˜



               Ignorar, fingir que n˜o ´ com vocˆ;
                                   a e         e
               Melhorar a infra-estrutura de suporte;
               Utilizar o efeito placebo;




Testes unit´rios no PostgreSQL com pgTAP
           a                                                                PGDay S˜o Paulo, 2009
                                                                                   a
Introdu¸˜o
       ca                  Qualidade de Software   Test Anything Protocol           M˜o na massa
                                                                                     a




Supostas alternativas



Op¸oes
  c˜



               Ignorar, fingir que n˜o ´ com vocˆ;
                                   a e         e
               Melhorar a infra-estrutura de suporte;
               Utilizar o efeito placebo;
               Melhorar a qualidade do software!




Testes unit´rios no PostgreSQL com pgTAP
           a                                                                PGDay S˜o Paulo, 2009
                                                                                   a
Introdu¸˜o
       ca                  Qualidade de Software   Test Anything Protocol           M˜o na massa
                                                                                     a




Conceitos b´sicos
           a



Qualidade de Software



               O que ´?
                     e
               Por que?
               Quem precisa?




Testes unit´rios no PostgreSQL com pgTAP
           a                                                                PGDay S˜o Paulo, 2009
                                                                                   a
Introdu¸˜o
       ca                  Qualidade de Software   Test Anything Protocol           M˜o na massa
                                                                                     a




Compreendendo os testes



Teste Unit´rio?
          a



              O que ´?
                    e
              Por que?
              Quem precisa?




Testes unit´rios no PostgreSQL com pgTAP
           a                                                                PGDay S˜o Paulo, 2009
                                                                                   a
Introdu¸˜o
       ca                  Qualidade de Software   Test Anything Protocol           M˜o na massa
                                                                                     a




Compreendendo os testes



Quem precisa estar envolvido?


              Analistas de Neg´cio
                              o
              Analistas de Sistemas
              Desenvolvedores
              Testadores




Testes unit´rios no PostgreSQL com pgTAP
           a                                                                PGDay S˜o Paulo, 2009
                                                                                   a
Introdu¸˜o
       ca                  Qualidade de Software   Test Anything Protocol           M˜o na massa
                                                                                     a




Compreendendo os testes



Quem precisa estar envolvido?


              Analistas de Neg´cio
                              o
              Analistas de Sistemas
              Desenvolvedores
              Testadores
              DBA




Testes unit´rios no PostgreSQL com pgTAP
           a                                                                PGDay S˜o Paulo, 2009
                                                                                   a
Introdu¸˜o
       ca                  Qualidade de Software   Test Anything Protocol           M˜o na massa
                                                                                     a




O papel do DBA



Qual o papel do DBA?



              Manter os ambientes versionados
              Testar as mudan¸as
                             c
              Validar




Testes unit´rios no PostgreSQL com pgTAP
           a                                                                PGDay S˜o Paulo, 2009
                                                                                   a
Introdu¸˜o
       ca                  Qualidade de Software   Test Anything Protocol           M˜o na massa
                                                                                     a




O papel do DBA



Evite perder...



              tempo...
              paciˆncia...
                  e
              cabelos...




Testes unit´rios no PostgreSQL com pgTAP
           a                                                                PGDay S˜o Paulo, 2009
                                                                                   a
Introdu¸˜o
       ca                  Qualidade de Software   Test Anything Protocol           M˜o na massa
                                                                                     a




Compreendendo o TAP



TAP
Protocolo de Teste de Qualquer coisa




              O que ´?
                    e
              Por quˆ?
                    e
              Quem usa?




Testes unit´rios no PostgreSQL com pgTAP
           a                                                                PGDay S˜o Paulo, 2009
                                                                                   a
Introdu¸˜o
       ca                  Qualidade de Software     Test Anything Protocol           M˜o na massa
                                                                                       a




Compreendendo o pgTAP



Como o pgTAP pode ajudar?
auxiliando nos testes de regress˜o
                                a




              Testar Estrutura
                     tabelas, campos, restri¸˜es, vis˜es
                                            co       o
              Testar Dados
                     valida¸˜es de CPF, tipos de dados financeiros...
                           co




Testes unit´rios no PostgreSQL com pgTAP
           a                                                                  PGDay S˜o Paulo, 2009
                                                                                     a
Introdu¸˜o
       ca                  Qualidade de Software   Test Anything Protocol           M˜o na massa
                                                                                     a




Preparando o ambiente



Obtendo o pgTAP


      Baixe e descompacte
      http://pgtap.projects.postgresql.org/




Testes unit´rios no PostgreSQL com pgTAP
           a                                                                PGDay S˜o Paulo, 2009
                                                                                   a
Introdu¸˜o
       ca                  Qualidade de Software   Test Anything Protocol           M˜o na massa
                                                                                     a




Preparando o ambiente



Obtendo o pgTAP


      Baixe e descompacte
      http://pgtap.projects.postgresql.org/

   Instalar via make
   make USE PGXS=1
   make install USE PGXS=1
   make installcheck
   USE PGXS=1




Testes unit´rios no PostgreSQL com pgTAP
           a                                                                PGDay S˜o Paulo, 2009
                                                                                   a
Introdu¸˜o
       ca                  Qualidade de Software     Test Anything Protocol           M˜o na massa
                                                                                       a




Preparando o ambiente



Obtendo o pgTAP


      Baixe e descompacte
      http://pgtap.projects.postgresql.org/

   Instalar via make                               Instalar via gmake
   make USE PGXS=1                                 gmake USE PGXS=1
   make install USE PGXS=1                         gmake install USE PGXS=1
   make installcheck                               gmake installcheck
   USE PGXS=1                                      USE PGXS=1



Testes unit´rios no PostgreSQL com pgTAP
           a                                                                  PGDay S˜o Paulo, 2009
                                                                                     a
Introdu¸˜o
       ca                  Qualidade de Software   Test Anything Protocol           M˜o na massa
                                                                                     a




Preparando o ambiente



Preparando o pgTAP
      Variaveis que ajudam
      $PGDATABASE
      $PGHOST
      $PGPORT
      $PGUSER




Testes unit´rios no PostgreSQL com pgTAP
           a                                                                PGDay S˜o Paulo, 2009
                                                                                   a
Introdu¸˜o
       ca                  Qualidade de Software   Test Anything Protocol           M˜o na massa
                                                                                     a




Preparando o ambiente



Preparando o pgTAP
      Variaveis que ajudam
      $PGDATABASE
      $PGHOST
      $PGPORT
      $PGUSER

      Exemplo
      export        PGDATABASE=testedb
      export        PGHOST=dbteste.srv.intranet
      export        PGPORT=5433
      export        PGUSER=teste


Testes unit´rios no PostgreSQL com pgTAP
           a                                                                PGDay S˜o Paulo, 2009
                                                                                   a
Introdu¸˜o
       ca                  Qualidade de Software   Test Anything Protocol           M˜o na massa
                                                                                     a




Preparando o ambiente



Gerenciando o pacote pgTAP
      Diretamente no banco de dados
      psql -f pgtap.sql
      psql -f uninstall pgtap.sql

      Diretamente no banco template
      psql -d template1 -f pgtap.sql
      psql -d template1 -f uninstall pgtap.sql

      Sem altera¸˜es no banco
                co
      Neste caso utilizamos o pgtap apenas dentro de uma transa¸˜o,
                                                               ca
      sem inserir as fun¸˜es no banco.
                        co

Testes unit´rios no PostgreSQL com pgTAP
           a                                                                PGDay S˜o Paulo, 2009
                                                                                   a
Introdu¸˜o
       ca                   Qualidade de Software    Test Anything Protocol           M˜o na massa
                                                                                       a




Entendendo os scripts



Anatomia de um script de teste
O pseudo-c´digo
          o


               Configurar silenciamento
               Configurar formata¸˜o da saida
                                ca
               Configurar rever¸˜o das mudan¸as em caso de falhas
                              ca           c
               BEGIN
                        Carregar as fun¸˜es do pgTAP (se necess´rio)
                                        co                     a
                        Planejar os testes
                        Executar os testes
                        Finalizar e limpar
               ROLLBACK


Testes unit´rios no PostgreSQL com pgTAP
           a                                                                  PGDay S˜o Paulo, 2009
                                                                                     a
Introdu¸˜o
       ca                  Qualidade de Software   Test Anything Protocol           M˜o na massa
                                                                                     a




Entendendo os scripts



Anatomia de um script de teste
O cabe¸alho do script
      c
       -- Configura silenciamento
       set ECHO
       set QUIET 1

       -- Configura formata¸~o de saida
                           ca
       pset format unaligned
       pset tuples_only true
       pset pager

       -- Configura recer¸~o das mudan¸as em caso de falhas
                         ca           c
       set ON_ERROR_ROLLBACK 1
       set ON_ERROR_STOP true
       set QUIET 1

Testes unit´rios no PostgreSQL com pgTAP
           a                                                                PGDay S˜o Paulo, 2009
                                                                                   a
Introdu¸˜o
       ca                  Qualidade de Software   Test Anything Protocol           M˜o na massa
                                                                                     a




Entendendo os scripts



Anatomia de um script de teste
O corpo do script

       BEGIN;
         i pgtap.sql -- Carrega as fun¸~es do pgTAP
                                       co

             -- Planeja os testes
             SELECT plan(1);

             -- Executa os testes
             SELECT pass( ’Passei no teste!’ );

         -- Finaliza e limpa
         SELECT * FROM finish();
       ROLLBACK;


Testes unit´rios no PostgreSQL com pgTAP
           a                                                                PGDay S˜o Paulo, 2009
                                                                                   a
Introdu¸˜o
       ca                  Qualidade de Software   Test Anything Protocol           M˜o na massa
                                                                                     a




Entendendo os scripts



Executando o teste
Via psql




       Exemplo de um teste individual

       $ psql -Xf teste.sql
       1..1
       ok 1 - Passei no teste!




Testes unit´rios no PostgreSQL com pgTAP
           a                                                                PGDay S˜o Paulo, 2009
                                                                                   a
Introdu¸˜o
       ca                  Qualidade de Software   Test Anything Protocol           M˜o na massa
                                                                                     a




Entendendo os scripts



Executando o teste
Via pg prove
       Exemplo de um conjunto de testes

       $ pg_prove testes/*.sql
       sql/coltap.....ok
       sql/hastap.....ok
       sql/moretap....ok
       sql/pktap......ok
       All tests successful.
       Files=4, Tests=216, 1 wallclock secs
       ( 0.06 usr 0.02 sys +
       0.08 cusr 0.07 csys = 0.23 CPU)
       Result: PASS


Testes unit´rios no PostgreSQL com pgTAP
           a                                                                PGDay S˜o Paulo, 2009
                                                                                   a
Introdu¸˜o
       ca                       Qualidade de Software   Test Anything Protocol           M˜o na massa
                                                                                          a




Entendendo os tipos de testes



Tipos de testes
OK? N˜o OK?
     a



               ok( boolean, descricao )
               is( elemento, elemento, descricao )
               isnt( elemento, elemento, descricao )
               matches( elemento, regex, descricao )
               imatch( anyelement, regex, description )
               doesnt match( anyelement, regex, description )
               doesnt imatch( anyelement, regex, description )



Testes unit´rios no PostgreSQL com pgTAP
           a                                                                     PGDay S˜o Paulo, 2009
                                                                                        a
Introdu¸˜o
       ca                       Qualidade de Software   Test Anything Protocol           M˜o na massa
                                                                                          a




Entendendo os tipos de testes



Tipos de testes
Errar ´ umano
      e




               throws ok( consulta, errcode, errmsg, descricao )
               lives ok( query, description )




Testes unit´rios no PostgreSQL com pgTAP
           a                                                                     PGDay S˜o Paulo, 2009
                                                                                        a
Introdu¸˜o
       ca                       Qualidade de Software   Test Anything Protocol           M˜o na massa
                                                                                          a




Entendendo os tipos de testes



Tipos de testes
O esquema est´ certinho?
             a




               has tablespace( tablespace, location, description )
               hasnt tablespace( tablespace, tablespace, description )
               has schema( schema, description )
               hasnt schema( schema, schema, description )




Testes unit´rios no PostgreSQL com pgTAP
           a                                                                     PGDay S˜o Paulo, 2009
                                                                                        a
Introdu¸˜o
       ca                       Qualidade de Software   Test Anything Protocol           M˜o na massa
                                                                                          a




Entendendo os tipos de testes



Tipos de testes
Os objetos existem?



               has table( schema, table, description )
               hasnt table( schema, table, description )
               has view( schema, view, description )
               hasnt view( schema, view, description )
               has sequence( schema, sequence, description )
               hasnt sequence( schema, sequence, description )
               has index( schema, table, index, columns[], description )



Testes unit´rios no PostgreSQL com pgTAP
           a                                                                     PGDay S˜o Paulo, 2009
                                                                                        a
Introdu¸˜o
       ca                       Qualidade de Software   Test Anything Protocol           M˜o na massa
                                                                                          a




Entendendo os tipos de testes



Tipos de testes
E a estrutura das tabelas?



               has column( schema, table, column, description )
               col not null( schema, table, column, description )
               col is null( schema, table, column, description )
               col has default( schema, table, column, description )
               col default is( schema, table, column, default, description )
               col type is( schema, table, column, type, description )




Testes unit´rios no PostgreSQL com pgTAP
           a                                                                     PGDay S˜o Paulo, 2009
                                                                                        a
Introdu¸˜o
       ca                       Qualidade de Software   Test Anything Protocol           M˜o na massa
                                                                                          a




Entendendo os tipos de testes



Tipos de testes
N˜o podemos esquecer das restri¸oes...
 a                             c˜



               has pk( schema, table, description )
               has fk( schema, table, description )
               col is pk( schema, table, column[], description )
               col is fk( schema, table, column[], description )
               fk ok( fk schema, fk table, fk column[], pk schema, pk table,
               pk column[], description )




Testes unit´rios no PostgreSQL com pgTAP
           a                                                                     PGDay S˜o Paulo, 2009
                                                                                        a
Introdu¸˜o
       ca                  Qualidade de Software   Test Anything Protocol           M˜o na massa
                                                                                     a




Executando um script



Um exemplo
a estrutura dos bancos


      Banco teste

                    Lista de rela¸~es
                                 co
        Esquema   |    Nome     | Tipo |     Dono
      ------------+-------------+--------+----------
       aplicativo | cargo       | tabela | postgres
       aplicativo | funcionario | tabela | postgres
       aplicativo | pessoa      | tabela | postgres




Testes unit´rios no PostgreSQL com pgTAP
           a                                                                PGDay S˜o Paulo, 2009
                                                                                   a
Introdu¸˜o
       ca                  Qualidade de Software   Test Anything Protocol           M˜o na massa
                                                                                     a




Executando um script



Um exemplo
a estrutura dos bancos


      Banco homologacao

                    Lista de rela¸~es
                                 co
        Esquema   |    Nome     | Tipo |     Dono
      ------------+-------------+--------+----------
       aplicativo | cargo       | tabela | postgres
       aplicativo | pessoa      | tabela | postgres




Testes unit´rios no PostgreSQL com pgTAP
           a                                                                PGDay S˜o Paulo, 2009
                                                                                   a
Introdu¸˜o
       ca                  Qualidade de Software   Test Anything Protocol           M˜o na massa
                                                                                     a




Executando um script



Um exemplo
a estrutura dos bancos

      Banco teste

                   Tabela "aplicativo.cargo"
         Coluna   |         Tipo          | Modificadores
      -----------+-----------------------+---------------
        sigla     | character varying(10) | not null
        descricao | character varying(20) | not null
        salario   | numeric(17,2)         |
      ´ndices:
      I
           "cargo_pkey" PRIMARY KEY, btree (sigla)


Testes unit´rios no PostgreSQL com pgTAP
           a                                                                PGDay S˜o Paulo, 2009
                                                                                   a
Introdu¸˜o
       ca                  Qualidade de Software   Test Anything Protocol           M˜o na massa
                                                                                     a




Executando um script



Um exemplo
a estrutura dos bancos

      Banco homologacao

                     Tabela "aplicativo.cargo"
         Coluna   |         Tipo          | Modificadores
      -----------+-----------------------+---------------
        sigla     | character varying(10) | not null
        descricao | character varying(20) | not null
        salario   | numeric(12,2)         |
      ´ndices:
      I
           "cargo_pkey" PRIMARY KEY, btree (sigla)


Testes unit´rios no PostgreSQL com pgTAP
           a                                                                PGDay S˜o Paulo, 2009
                                                                                   a
Introdu¸˜o
       ca                  Qualidade de Software   Test Anything Protocol           M˜o na massa
                                                                                     a




Executando um script



Um exemplo
a estrutura dos bancos
      Banco teste
                 Tabela "aplicativo.funcionario"
          Coluna    |         Tipo          | Modificadores
      -------------+-----------------------+---------------
        cpf         | numeric(14,0)         | not null
        sigla_cargo | character varying(10) | not null
      ´ndices:
      I
           "pk_funcionario" PRIMARY KEY, btree (cpf, sigla_cargo)
      Restri¸~es de chave estrangeira:
             co
           "funcionario_cpf_fkey" FOREIGN KEY (cpf)
              REFERENCES pessoa(cpf)
           "funcionario_sigla_cargo_fkey" FOREIGN KEY (sigla_cargo)
              REFERENCES cargo(sigla)
Testes unit´rios no PostgreSQL com pgTAP
           a                                                                PGDay S˜o Paulo, 2009
                                                                                   a
Introdu¸˜o
       ca                  Qualidade de Software   Test Anything Protocol           M˜o na massa
                                                                                     a




Executando um script



Um exemplo
a estrutura dos bancos




      Banco homologacao
      N˜o existe tabela ”funcionario”...
       a




Testes unit´rios no PostgreSQL com pgTAP
           a                                                                PGDay S˜o Paulo, 2009
                                                                                   a
Introdu¸˜o
       ca                  Qualidade de Software   Test Anything Protocol           M˜o na massa
                                                                                     a




Executando um script



Um exemplo
a estrutura dos bancos




      Banco teste




Testes unit´rios no PostgreSQL com pgTAP
           a                                                                PGDay S˜o Paulo, 2009
                                                                                   a
Introdu¸˜o
       ca                  Qualidade de Software   Test Anything Protocol           M˜o na massa
                                                                                     a




Executando um script



Um exemplo
a estrutura dos bancos




      Banco teste




Testes unit´rios no PostgreSQL com pgTAP
           a                                                                PGDay S˜o Paulo, 2009
                                                                                   a
Introdu¸˜o
       ca                  Qualidade de Software   Test Anything Protocol           M˜o na massa
                                                                                     a




Executando um script



Um exemplo
a estrutura dos bancos




      Banco teste




Testes unit´rios no PostgreSQL com pgTAP
           a                                                                PGDay S˜o Paulo, 2009
                                                                                   a
Introdu¸˜o
       ca                  Qualidade de Software   Test Anything Protocol           M˜o na massa
                                                                                     a




Executando um script



Um exemplo
a estrutura dos bancos




      Banco teste




Testes unit´rios no PostgreSQL com pgTAP
           a                                                                PGDay S˜o Paulo, 2009
                                                                                   a
Introdu¸˜o
       ca                  Qualidade de Software   Test Anything Protocol           M˜o na massa
                                                                                     a




Executando um script



Um exemplo
a estrutura dos bancos




      Banco teste




Testes unit´rios no PostgreSQL com pgTAP
           a                                                                PGDay S˜o Paulo, 2009
                                                                                   a

Weitere ähnliche Inhalte

Was ist angesagt?

Treinamento Testes Unitários - parte 1
Treinamento Testes Unitários - parte 1Treinamento Testes Unitários - parte 1
Treinamento Testes Unitários - parte 1Diego Pacheco
 
Facilitando o desenvolvimento orientado a testes em aplicações PHP
Facilitando o desenvolvimento orientado a testes em aplicações PHPFacilitando o desenvolvimento orientado a testes em aplicações PHP
Facilitando o desenvolvimento orientado a testes em aplicações PHPPedro Chaves
 
Desenvolvimento Orientado a Documentação? Utilizando doctests para tornar seu...
Desenvolvimento Orientado a Documentação? Utilizando doctests para tornar seu...Desenvolvimento Orientado a Documentação? Utilizando doctests para tornar seu...
Desenvolvimento Orientado a Documentação? Utilizando doctests para tornar seu...Adam Victor Brandizzi
 
TDC 2015 - Trilha PHP - Testes e Ambiente de Integração Contínua PHP para o D...
TDC 2015 - Trilha PHP - Testes e Ambiente de Integração Contínua PHP para o D...TDC 2015 - Trilha PHP - Testes e Ambiente de Integração Contínua PHP para o D...
TDC 2015 - Trilha PHP - Testes e Ambiente de Integração Contínua PHP para o D...Bruno Tanoue
 
Palestra Testes Unidade Com JUnit
Palestra Testes Unidade Com JUnitPalestra Testes Unidade Com JUnit
Palestra Testes Unidade Com JUnitRobinson Castilho
 
Testando Aplicações Django: Quando, Como e Onde?
Testando Aplicações Django: Quando, Como e Onde?Testando Aplicações Django: Quando, Como e Onde?
Testando Aplicações Django: Quando, Como e Onde?Bernardo Fontes
 
Desenvolvimento Dirigido por Testes com Junit
Desenvolvimento Dirigido por Testes com JunitDesenvolvimento Dirigido por Testes com Junit
Desenvolvimento Dirigido por Testes com JunitAdolfo Neto
 
Testes de Unidade com Junit
Testes de Unidade com JunitTestes de Unidade com Junit
Testes de Unidade com Junitcejug
 

Was ist angesagt? (13)

Treinamento Testes Unitários - parte 1
Treinamento Testes Unitários - parte 1Treinamento Testes Unitários - parte 1
Treinamento Testes Unitários - parte 1
 
TDD na Prática
TDD na PráticaTDD na Prática
TDD na Prática
 
Introdução ao TDD
Introdução ao TDDIntrodução ao TDD
Introdução ao TDD
 
Facilitando o desenvolvimento orientado a testes em aplicações PHP
Facilitando o desenvolvimento orientado a testes em aplicações PHPFacilitando o desenvolvimento orientado a testes em aplicações PHP
Facilitando o desenvolvimento orientado a testes em aplicações PHP
 
Desenvolvimento Orientado a Documentação? Utilizando doctests para tornar seu...
Desenvolvimento Orientado a Documentação? Utilizando doctests para tornar seu...Desenvolvimento Orientado a Documentação? Utilizando doctests para tornar seu...
Desenvolvimento Orientado a Documentação? Utilizando doctests para tornar seu...
 
TDD - Test Driven Development
TDD - Test Driven DevelopmentTDD - Test Driven Development
TDD - Test Driven Development
 
TDC 2015 - Trilha PHP - Testes e Ambiente de Integração Contínua PHP para o D...
TDC 2015 - Trilha PHP - Testes e Ambiente de Integração Contínua PHP para o D...TDC 2015 - Trilha PHP - Testes e Ambiente de Integração Contínua PHP para o D...
TDC 2015 - Trilha PHP - Testes e Ambiente de Integração Contínua PHP para o D...
 
Palestra Testes Unidade Com JUnit
Palestra Testes Unidade Com JUnitPalestra Testes Unidade Com JUnit
Palestra Testes Unidade Com JUnit
 
Testando Aplicações Django: Quando, Como e Onde?
Testando Aplicações Django: Quando, Como e Onde?Testando Aplicações Django: Quando, Como e Onde?
Testando Aplicações Django: Quando, Como e Onde?
 
TDD - Test Driven Development com JAVA
TDD - Test Driven Development com JAVATDD - Test Driven Development com JAVA
TDD - Test Driven Development com JAVA
 
Desenvolvimento Dirigido por Testes com Junit
Desenvolvimento Dirigido por Testes com JunitDesenvolvimento Dirigido por Testes com Junit
Desenvolvimento Dirigido por Testes com Junit
 
Testes de Unidade com Junit
Testes de Unidade com JunitTestes de Unidade com Junit
Testes de Unidade com Junit
 
Testes
TestesTestes
Testes
 

Mehr von Dickson S. Guedes

Ganhando tempo automatizando com SQL
Ganhando tempo automatizando com SQLGanhando tempo automatizando com SQL
Ganhando tempo automatizando com SQLDickson S. Guedes
 
O mínimo necessário que você precisa conhecer sobre computação quântica
O mínimo necessário que você precisa conhecer sobre computação quânticaO mínimo necessário que você precisa conhecer sobre computação quântica
O mínimo necessário que você precisa conhecer sobre computação quânticaDickson S. Guedes
 
Porque aprender várias linguagens me tornou um DBA (e desenvolvedor) melhor
Porque aprender várias linguagens me tornou um DBA (e desenvolvedor) melhorPorque aprender várias linguagens me tornou um DBA (e desenvolvedor) melhor
Porque aprender várias linguagens me tornou um DBA (e desenvolvedor) melhorDickson S. Guedes
 
Pattern matching - O que é? Onde vive? Do que se alimenta? Como se reproduz?
Pattern matching - O que é? Onde vive? Do que se alimenta? Como se reproduz?Pattern matching - O que é? Onde vive? Do que se alimenta? Como se reproduz?
Pattern matching - O que é? Onde vive? Do que se alimenta? Como se reproduz?Dickson S. Guedes
 
Primeiros passos machine learning PostgreSQL
Primeiros passos machine learning PostgreSQLPrimeiros passos machine learning PostgreSQL
Primeiros passos machine learning PostgreSQLDickson S. Guedes
 
Dicas de sobrevivência de um DBA sem mouse
Dicas de sobrevivência de um DBA sem mouseDicas de sobrevivência de um DBA sem mouse
Dicas de sobrevivência de um DBA sem mouseDickson S. Guedes
 
Curiosidades que você (talvez) não sabia e se sabia vale a pena lembrar
Curiosidades que você (talvez) não sabia e se sabia vale a pena lembrarCuriosidades que você (talvez) não sabia e se sabia vale a pena lembrar
Curiosidades que você (talvez) não sabia e se sabia vale a pena lembrarDickson S. Guedes
 
Como encontrar uma agulha num palheiro de logs
Como encontrar uma agulha num palheiro de logsComo encontrar uma agulha num palheiro de logs
Como encontrar uma agulha num palheiro de logsDickson S. Guedes
 
Como encontrar uma agulha no palheiro de logs do PostgreSQL
Como encontrar uma agulha no palheiro de logs do PostgreSQLComo encontrar uma agulha no palheiro de logs do PostgreSQL
Como encontrar uma agulha no palheiro de logs do PostgreSQLDickson S. Guedes
 
Gerenciando múltiplas versões do PostgreSQL com pgvm
Gerenciando múltiplas versões do PostgreSQL com pgvmGerenciando múltiplas versões do PostgreSQL com pgvm
Gerenciando múltiplas versões do PostgreSQL com pgvmDickson S. Guedes
 
PGXN - Como distribuir suas extensões com o PostgreSQL
PGXN - Como distribuir suas extensões com o PostgreSQLPGXN - Como distribuir suas extensões com o PostgreSQL
PGXN - Como distribuir suas extensões com o PostgreSQLDickson S. Guedes
 
Estripando o Elefante - (Trabalhando com extensões no PostgreSQL)
Estripando o Elefante - (Trabalhando com extensões no PostgreSQL)Estripando o Elefante - (Trabalhando com extensões no PostgreSQL)
Estripando o Elefante - (Trabalhando com extensões no PostgreSQL)Dickson S. Guedes
 
Plante uma árvore, escreva um livro, tenha um filho e contribua com software ...
Plante uma árvore, escreva um livro, tenha um filho e contribua com software ...Plante uma árvore, escreva um livro, tenha um filho e contribua com software ...
Plante uma árvore, escreva um livro, tenha um filho e contribua com software ...Dickson S. Guedes
 
Conhecendo Postgresql.- ENECOMP 2009
Conhecendo Postgresql.- ENECOMP 2009Conhecendo Postgresql.- ENECOMP 2009
Conhecendo Postgresql.- ENECOMP 2009Dickson S. Guedes
 
Minicurso Postgresql - Enecomp 2009
Minicurso Postgresql - Enecomp 2009Minicurso Postgresql - Enecomp 2009
Minicurso Postgresql - Enecomp 2009Dickson S. Guedes
 

Mehr von Dickson S. Guedes (20)

Ganhando tempo automatizando com SQL
Ganhando tempo automatizando com SQLGanhando tempo automatizando com SQL
Ganhando tempo automatizando com SQL
 
O mínimo necessário que você precisa conhecer sobre computação quântica
O mínimo necessário que você precisa conhecer sobre computação quânticaO mínimo necessário que você precisa conhecer sobre computação quântica
O mínimo necessário que você precisa conhecer sobre computação quântica
 
Porque aprender várias linguagens me tornou um DBA (e desenvolvedor) melhor
Porque aprender várias linguagens me tornou um DBA (e desenvolvedor) melhorPorque aprender várias linguagens me tornou um DBA (e desenvolvedor) melhor
Porque aprender várias linguagens me tornou um DBA (e desenvolvedor) melhor
 
Pattern matching - O que é? Onde vive? Do que se alimenta? Como se reproduz?
Pattern matching - O que é? Onde vive? Do que se alimenta? Como se reproduz?Pattern matching - O que é? Onde vive? Do que se alimenta? Como se reproduz?
Pattern matching - O que é? Onde vive? Do que se alimenta? Como se reproduz?
 
Primeiros passos machine learning PostgreSQL
Primeiros passos machine learning PostgreSQLPrimeiros passos machine learning PostgreSQL
Primeiros passos machine learning PostgreSQL
 
Dicas de sobrevivência de um DBA sem mouse
Dicas de sobrevivência de um DBA sem mouseDicas de sobrevivência de um DBA sem mouse
Dicas de sobrevivência de um DBA sem mouse
 
Destistificando o EXPLAIN
Destistificando o EXPLAIN Destistificando o EXPLAIN
Destistificando o EXPLAIN
 
Falando "Postgrês"
Falando "Postgrês"Falando "Postgrês"
Falando "Postgrês"
 
Se meu elefante falasse
Se meu elefante falasseSe meu elefante falasse
Se meu elefante falasse
 
Curiosidades que você (talvez) não sabia e se sabia vale a pena lembrar
Curiosidades que você (talvez) não sabia e se sabia vale a pena lembrarCuriosidades que você (talvez) não sabia e se sabia vale a pena lembrar
Curiosidades que você (talvez) não sabia e se sabia vale a pena lembrar
 
O Elefante Poliglota
O Elefante PoliglotaO Elefante Poliglota
O Elefante Poliglota
 
Como encontrar uma agulha num palheiro de logs
Como encontrar uma agulha num palheiro de logsComo encontrar uma agulha num palheiro de logs
Como encontrar uma agulha num palheiro de logs
 
Como encontrar uma agulha no palheiro de logs do PostgreSQL
Como encontrar uma agulha no palheiro de logs do PostgreSQLComo encontrar uma agulha no palheiro de logs do PostgreSQL
Como encontrar uma agulha no palheiro de logs do PostgreSQL
 
Gerenciando múltiplas versões do PostgreSQL com pgvm
Gerenciando múltiplas versões do PostgreSQL com pgvmGerenciando múltiplas versões do PostgreSQL com pgvm
Gerenciando múltiplas versões do PostgreSQL com pgvm
 
PGXN - Como distribuir suas extensões com o PostgreSQL
PGXN - Como distribuir suas extensões com o PostgreSQLPGXN - Como distribuir suas extensões com o PostgreSQL
PGXN - Como distribuir suas extensões com o PostgreSQL
 
Pgxn.pgday
Pgxn.pgdayPgxn.pgday
Pgxn.pgday
 
Estripando o Elefante - (Trabalhando com extensões no PostgreSQL)
Estripando o Elefante - (Trabalhando com extensões no PostgreSQL)Estripando o Elefante - (Trabalhando com extensões no PostgreSQL)
Estripando o Elefante - (Trabalhando com extensões no PostgreSQL)
 
Plante uma árvore, escreva um livro, tenha um filho e contribua com software ...
Plante uma árvore, escreva um livro, tenha um filho e contribua com software ...Plante uma árvore, escreva um livro, tenha um filho e contribua com software ...
Plante uma árvore, escreva um livro, tenha um filho e contribua com software ...
 
Conhecendo Postgresql.- ENECOMP 2009
Conhecendo Postgresql.- ENECOMP 2009Conhecendo Postgresql.- ENECOMP 2009
Conhecendo Postgresql.- ENECOMP 2009
 
Minicurso Postgresql - Enecomp 2009
Minicurso Postgresql - Enecomp 2009Minicurso Postgresql - Enecomp 2009
Minicurso Postgresql - Enecomp 2009
 

Testes unitarios no PostgreSQL com pgTAP

  • 1. Introdu¸˜o ca Qualidade de Software Test Anything Protocol M˜o na massa a Testes unit´rios no PostgreSQL com pgTAP a Dickson S. Guedes guedes@guedesoft.net PGDay S˜o Paulo, 2009 a 24 de abril de 2009 Testes unit´rios no PostgreSQL com pgTAP a PGDay S˜o Paulo, 2009 a
  • 2. Introdu¸˜o ca Qualidade de Software Test Anything Protocol M˜o na massa a Uma vis˜o geral... a Introdu¸˜o ca Compreendendo os ambientes Compreendendo os resultados inesperados Supostas alternativas Qualidade de Software Conceitos b´sicos a Compreendendo os testes O papel do DBA Test Anything Protocol Compreendendo o TAP Compreendendo o pgTAP M˜o na massa a Preparando o ambiente Entendendo os scripts Entendendo os tipos de testes Executando um script Testes unit´rios no PostgreSQL com pgTAP a PGDay S˜o Paulo, 2009 a
  • 3. Introdu¸˜o ca Qualidade de Software Test Anything Protocol M˜o na massa a Compreendendo os ambientes Por onde come¸amos? c Laborat´rio o Desenvolvimento Teste Homologa¸˜o ca Testes unit´rios no PostgreSQL com pgTAP a PGDay S˜o Paulo, 2009 a
  • 4. Introdu¸˜o ca Qualidade de Software Test Anything Protocol M˜o na massa a Compreendendo os ambientes Por onde come¸amos? c Laborat´rio o Desenvolvimento Teste Homologa¸˜o ca Produ¸˜o ca Testes unit´rios no PostgreSQL com pgTAP a PGDay S˜o Paulo, 2009 a
  • 5. Introdu¸˜o ca Qualidade de Software Test Anything Protocol M˜o na massa a Compreendendo os resultados inesperados O tempo passa... o tempo voa... e o software vai sofrendo altera¸oes... c˜ ”Mas antes funcionava!” ”Isso piorou!” ”Eu n˜o fiz nada, foi essa mudan¸a a´ a c ı!” Testes unit´rios no PostgreSQL com pgTAP a PGDay S˜o Paulo, 2009 a
  • 6. Introdu¸˜o ca Qualidade de Software Test Anything Protocol M˜o na massa a Supostas alternativas Op¸oes c˜ Ignorar, fingir que n˜o ´ com vocˆ; a e e Melhorar a infra-estrutura de suporte; Utilizar o efeito placebo; Testes unit´rios no PostgreSQL com pgTAP a PGDay S˜o Paulo, 2009 a
  • 7. Introdu¸˜o ca Qualidade de Software Test Anything Protocol M˜o na massa a Supostas alternativas Op¸oes c˜ Ignorar, fingir que n˜o ´ com vocˆ; a e e Melhorar a infra-estrutura de suporte; Utilizar o efeito placebo; Melhorar a qualidade do software! Testes unit´rios no PostgreSQL com pgTAP a PGDay S˜o Paulo, 2009 a
  • 8. Introdu¸˜o ca Qualidade de Software Test Anything Protocol M˜o na massa a Conceitos b´sicos a Qualidade de Software O que ´? e Por que? Quem precisa? Testes unit´rios no PostgreSQL com pgTAP a PGDay S˜o Paulo, 2009 a
  • 9. Introdu¸˜o ca Qualidade de Software Test Anything Protocol M˜o na massa a Compreendendo os testes Teste Unit´rio? a O que ´? e Por que? Quem precisa? Testes unit´rios no PostgreSQL com pgTAP a PGDay S˜o Paulo, 2009 a
  • 10. Introdu¸˜o ca Qualidade de Software Test Anything Protocol M˜o na massa a Compreendendo os testes Quem precisa estar envolvido? Analistas de Neg´cio o Analistas de Sistemas Desenvolvedores Testadores Testes unit´rios no PostgreSQL com pgTAP a PGDay S˜o Paulo, 2009 a
  • 11. Introdu¸˜o ca Qualidade de Software Test Anything Protocol M˜o na massa a Compreendendo os testes Quem precisa estar envolvido? Analistas de Neg´cio o Analistas de Sistemas Desenvolvedores Testadores DBA Testes unit´rios no PostgreSQL com pgTAP a PGDay S˜o Paulo, 2009 a
  • 12. Introdu¸˜o ca Qualidade de Software Test Anything Protocol M˜o na massa a O papel do DBA Qual o papel do DBA? Manter os ambientes versionados Testar as mudan¸as c Validar Testes unit´rios no PostgreSQL com pgTAP a PGDay S˜o Paulo, 2009 a
  • 13. Introdu¸˜o ca Qualidade de Software Test Anything Protocol M˜o na massa a O papel do DBA Evite perder... tempo... paciˆncia... e cabelos... Testes unit´rios no PostgreSQL com pgTAP a PGDay S˜o Paulo, 2009 a
  • 14. Introdu¸˜o ca Qualidade de Software Test Anything Protocol M˜o na massa a Compreendendo o TAP TAP Protocolo de Teste de Qualquer coisa O que ´? e Por quˆ? e Quem usa? Testes unit´rios no PostgreSQL com pgTAP a PGDay S˜o Paulo, 2009 a
  • 15. Introdu¸˜o ca Qualidade de Software Test Anything Protocol M˜o na massa a Compreendendo o pgTAP Como o pgTAP pode ajudar? auxiliando nos testes de regress˜o a Testar Estrutura tabelas, campos, restri¸˜es, vis˜es co o Testar Dados valida¸˜es de CPF, tipos de dados financeiros... co Testes unit´rios no PostgreSQL com pgTAP a PGDay S˜o Paulo, 2009 a
  • 16. Introdu¸˜o ca Qualidade de Software Test Anything Protocol M˜o na massa a Preparando o ambiente Obtendo o pgTAP Baixe e descompacte http://pgtap.projects.postgresql.org/ Testes unit´rios no PostgreSQL com pgTAP a PGDay S˜o Paulo, 2009 a
  • 17. Introdu¸˜o ca Qualidade de Software Test Anything Protocol M˜o na massa a Preparando o ambiente Obtendo o pgTAP Baixe e descompacte http://pgtap.projects.postgresql.org/ Instalar via make make USE PGXS=1 make install USE PGXS=1 make installcheck USE PGXS=1 Testes unit´rios no PostgreSQL com pgTAP a PGDay S˜o Paulo, 2009 a
  • 18. Introdu¸˜o ca Qualidade de Software Test Anything Protocol M˜o na massa a Preparando o ambiente Obtendo o pgTAP Baixe e descompacte http://pgtap.projects.postgresql.org/ Instalar via make Instalar via gmake make USE PGXS=1 gmake USE PGXS=1 make install USE PGXS=1 gmake install USE PGXS=1 make installcheck gmake installcheck USE PGXS=1 USE PGXS=1 Testes unit´rios no PostgreSQL com pgTAP a PGDay S˜o Paulo, 2009 a
  • 19. Introdu¸˜o ca Qualidade de Software Test Anything Protocol M˜o na massa a Preparando o ambiente Preparando o pgTAP Variaveis que ajudam $PGDATABASE $PGHOST $PGPORT $PGUSER Testes unit´rios no PostgreSQL com pgTAP a PGDay S˜o Paulo, 2009 a
  • 20. Introdu¸˜o ca Qualidade de Software Test Anything Protocol M˜o na massa a Preparando o ambiente Preparando o pgTAP Variaveis que ajudam $PGDATABASE $PGHOST $PGPORT $PGUSER Exemplo export PGDATABASE=testedb export PGHOST=dbteste.srv.intranet export PGPORT=5433 export PGUSER=teste Testes unit´rios no PostgreSQL com pgTAP a PGDay S˜o Paulo, 2009 a
  • 21. Introdu¸˜o ca Qualidade de Software Test Anything Protocol M˜o na massa a Preparando o ambiente Gerenciando o pacote pgTAP Diretamente no banco de dados psql -f pgtap.sql psql -f uninstall pgtap.sql Diretamente no banco template psql -d template1 -f pgtap.sql psql -d template1 -f uninstall pgtap.sql Sem altera¸˜es no banco co Neste caso utilizamos o pgtap apenas dentro de uma transa¸˜o, ca sem inserir as fun¸˜es no banco. co Testes unit´rios no PostgreSQL com pgTAP a PGDay S˜o Paulo, 2009 a
  • 22. Introdu¸˜o ca Qualidade de Software Test Anything Protocol M˜o na massa a Entendendo os scripts Anatomia de um script de teste O pseudo-c´digo o Configurar silenciamento Configurar formata¸˜o da saida ca Configurar rever¸˜o das mudan¸as em caso de falhas ca c BEGIN Carregar as fun¸˜es do pgTAP (se necess´rio) co a Planejar os testes Executar os testes Finalizar e limpar ROLLBACK Testes unit´rios no PostgreSQL com pgTAP a PGDay S˜o Paulo, 2009 a
  • 23. Introdu¸˜o ca Qualidade de Software Test Anything Protocol M˜o na massa a Entendendo os scripts Anatomia de um script de teste O cabe¸alho do script c -- Configura silenciamento set ECHO set QUIET 1 -- Configura formata¸~o de saida ca pset format unaligned pset tuples_only true pset pager -- Configura recer¸~o das mudan¸as em caso de falhas ca c set ON_ERROR_ROLLBACK 1 set ON_ERROR_STOP true set QUIET 1 Testes unit´rios no PostgreSQL com pgTAP a PGDay S˜o Paulo, 2009 a
  • 24. Introdu¸˜o ca Qualidade de Software Test Anything Protocol M˜o na massa a Entendendo os scripts Anatomia de um script de teste O corpo do script BEGIN; i pgtap.sql -- Carrega as fun¸~es do pgTAP co -- Planeja os testes SELECT plan(1); -- Executa os testes SELECT pass( ’Passei no teste!’ ); -- Finaliza e limpa SELECT * FROM finish(); ROLLBACK; Testes unit´rios no PostgreSQL com pgTAP a PGDay S˜o Paulo, 2009 a
  • 25. Introdu¸˜o ca Qualidade de Software Test Anything Protocol M˜o na massa a Entendendo os scripts Executando o teste Via psql Exemplo de um teste individual $ psql -Xf teste.sql 1..1 ok 1 - Passei no teste! Testes unit´rios no PostgreSQL com pgTAP a PGDay S˜o Paulo, 2009 a
  • 26. Introdu¸˜o ca Qualidade de Software Test Anything Protocol M˜o na massa a Entendendo os scripts Executando o teste Via pg prove Exemplo de um conjunto de testes $ pg_prove testes/*.sql sql/coltap.....ok sql/hastap.....ok sql/moretap....ok sql/pktap......ok All tests successful. Files=4, Tests=216, 1 wallclock secs ( 0.06 usr 0.02 sys + 0.08 cusr 0.07 csys = 0.23 CPU) Result: PASS Testes unit´rios no PostgreSQL com pgTAP a PGDay S˜o Paulo, 2009 a
  • 27. Introdu¸˜o ca Qualidade de Software Test Anything Protocol M˜o na massa a Entendendo os tipos de testes Tipos de testes OK? N˜o OK? a ok( boolean, descricao ) is( elemento, elemento, descricao ) isnt( elemento, elemento, descricao ) matches( elemento, regex, descricao ) imatch( anyelement, regex, description ) doesnt match( anyelement, regex, description ) doesnt imatch( anyelement, regex, description ) Testes unit´rios no PostgreSQL com pgTAP a PGDay S˜o Paulo, 2009 a
  • 28. Introdu¸˜o ca Qualidade de Software Test Anything Protocol M˜o na massa a Entendendo os tipos de testes Tipos de testes Errar ´ umano e throws ok( consulta, errcode, errmsg, descricao ) lives ok( query, description ) Testes unit´rios no PostgreSQL com pgTAP a PGDay S˜o Paulo, 2009 a
  • 29. Introdu¸˜o ca Qualidade de Software Test Anything Protocol M˜o na massa a Entendendo os tipos de testes Tipos de testes O esquema est´ certinho? a has tablespace( tablespace, location, description ) hasnt tablespace( tablespace, tablespace, description ) has schema( schema, description ) hasnt schema( schema, schema, description ) Testes unit´rios no PostgreSQL com pgTAP a PGDay S˜o Paulo, 2009 a
  • 30. Introdu¸˜o ca Qualidade de Software Test Anything Protocol M˜o na massa a Entendendo os tipos de testes Tipos de testes Os objetos existem? has table( schema, table, description ) hasnt table( schema, table, description ) has view( schema, view, description ) hasnt view( schema, view, description ) has sequence( schema, sequence, description ) hasnt sequence( schema, sequence, description ) has index( schema, table, index, columns[], description ) Testes unit´rios no PostgreSQL com pgTAP a PGDay S˜o Paulo, 2009 a
  • 31. Introdu¸˜o ca Qualidade de Software Test Anything Protocol M˜o na massa a Entendendo os tipos de testes Tipos de testes E a estrutura das tabelas? has column( schema, table, column, description ) col not null( schema, table, column, description ) col is null( schema, table, column, description ) col has default( schema, table, column, description ) col default is( schema, table, column, default, description ) col type is( schema, table, column, type, description ) Testes unit´rios no PostgreSQL com pgTAP a PGDay S˜o Paulo, 2009 a
  • 32. Introdu¸˜o ca Qualidade de Software Test Anything Protocol M˜o na massa a Entendendo os tipos de testes Tipos de testes N˜o podemos esquecer das restri¸oes... a c˜ has pk( schema, table, description ) has fk( schema, table, description ) col is pk( schema, table, column[], description ) col is fk( schema, table, column[], description ) fk ok( fk schema, fk table, fk column[], pk schema, pk table, pk column[], description ) Testes unit´rios no PostgreSQL com pgTAP a PGDay S˜o Paulo, 2009 a
  • 33. Introdu¸˜o ca Qualidade de Software Test Anything Protocol M˜o na massa a Executando um script Um exemplo a estrutura dos bancos Banco teste Lista de rela¸~es co Esquema | Nome | Tipo | Dono ------------+-------------+--------+---------- aplicativo | cargo | tabela | postgres aplicativo | funcionario | tabela | postgres aplicativo | pessoa | tabela | postgres Testes unit´rios no PostgreSQL com pgTAP a PGDay S˜o Paulo, 2009 a
  • 34. Introdu¸˜o ca Qualidade de Software Test Anything Protocol M˜o na massa a Executando um script Um exemplo a estrutura dos bancos Banco homologacao Lista de rela¸~es co Esquema | Nome | Tipo | Dono ------------+-------------+--------+---------- aplicativo | cargo | tabela | postgres aplicativo | pessoa | tabela | postgres Testes unit´rios no PostgreSQL com pgTAP a PGDay S˜o Paulo, 2009 a
  • 35. Introdu¸˜o ca Qualidade de Software Test Anything Protocol M˜o na massa a Executando um script Um exemplo a estrutura dos bancos Banco teste Tabela "aplicativo.cargo" Coluna | Tipo | Modificadores -----------+-----------------------+--------------- sigla | character varying(10) | not null descricao | character varying(20) | not null salario | numeric(17,2) | ´ndices: I "cargo_pkey" PRIMARY KEY, btree (sigla) Testes unit´rios no PostgreSQL com pgTAP a PGDay S˜o Paulo, 2009 a
  • 36. Introdu¸˜o ca Qualidade de Software Test Anything Protocol M˜o na massa a Executando um script Um exemplo a estrutura dos bancos Banco homologacao Tabela "aplicativo.cargo" Coluna | Tipo | Modificadores -----------+-----------------------+--------------- sigla | character varying(10) | not null descricao | character varying(20) | not null salario | numeric(12,2) | ´ndices: I "cargo_pkey" PRIMARY KEY, btree (sigla) Testes unit´rios no PostgreSQL com pgTAP a PGDay S˜o Paulo, 2009 a
  • 37. Introdu¸˜o ca Qualidade de Software Test Anything Protocol M˜o na massa a Executando um script Um exemplo a estrutura dos bancos Banco teste Tabela "aplicativo.funcionario" Coluna | Tipo | Modificadores -------------+-----------------------+--------------- cpf | numeric(14,0) | not null sigla_cargo | character varying(10) | not null ´ndices: I "pk_funcionario" PRIMARY KEY, btree (cpf, sigla_cargo) Restri¸~es de chave estrangeira: co "funcionario_cpf_fkey" FOREIGN KEY (cpf) REFERENCES pessoa(cpf) "funcionario_sigla_cargo_fkey" FOREIGN KEY (sigla_cargo) REFERENCES cargo(sigla) Testes unit´rios no PostgreSQL com pgTAP a PGDay S˜o Paulo, 2009 a
  • 38. Introdu¸˜o ca Qualidade de Software Test Anything Protocol M˜o na massa a Executando um script Um exemplo a estrutura dos bancos Banco homologacao N˜o existe tabela ”funcionario”... a Testes unit´rios no PostgreSQL com pgTAP a PGDay S˜o Paulo, 2009 a
  • 39. Introdu¸˜o ca Qualidade de Software Test Anything Protocol M˜o na massa a Executando um script Um exemplo a estrutura dos bancos Banco teste Testes unit´rios no PostgreSQL com pgTAP a PGDay S˜o Paulo, 2009 a
  • 40. Introdu¸˜o ca Qualidade de Software Test Anything Protocol M˜o na massa a Executando um script Um exemplo a estrutura dos bancos Banco teste Testes unit´rios no PostgreSQL com pgTAP a PGDay S˜o Paulo, 2009 a
  • 41. Introdu¸˜o ca Qualidade de Software Test Anything Protocol M˜o na massa a Executando um script Um exemplo a estrutura dos bancos Banco teste Testes unit´rios no PostgreSQL com pgTAP a PGDay S˜o Paulo, 2009 a
  • 42. Introdu¸˜o ca Qualidade de Software Test Anything Protocol M˜o na massa a Executando um script Um exemplo a estrutura dos bancos Banco teste Testes unit´rios no PostgreSQL com pgTAP a PGDay S˜o Paulo, 2009 a
  • 43. Introdu¸˜o ca Qualidade de Software Test Anything Protocol M˜o na massa a Executando um script Um exemplo a estrutura dos bancos Banco teste Testes unit´rios no PostgreSQL com pgTAP a PGDay S˜o Paulo, 2009 a