Testes unitarios no PostgreSQL com pgTAP

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    Favorites, Groups & Events

    Testes unitarios no PostgreSQL com pgTAP - Presentation Transcript

    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

    + Dickson S. GuedesDickson S. Guedes, 4 months ago

    custom

    104 views, 0 favs, 0 embeds more stats

    Palestra ministrada no PGDay SP em Abril de 2009.
    more

    More info about this document

    © All Rights Reserved

    Go to text version

    • Total Views 104
      • 104 on SlideShare
      • 0 from embeds
    • Comments 0
    • Favorites 0
    • Downloads 1
    Most viewed embeds

    more

    All embeds

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as inappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel
    File a copyright complaint
    Having problems? Go to our helpdesk?

    Categories