agile testing no drupal

Download Agile Testing no Drupal

Post on 09-Jul-2015

257 views

Category:

Technology

1 download

Embed Size (px)

DESCRIPTION

Palestra sobre testes, mais especificamente para projetos Drupal, que aborda as diferentes prticas de testes. TDD, TAD, BDD, Testes de aceitao... Ministrada pelo Joo Paulo Seregatte, Head de Tecnologia da Just Digital. Alm se dar bastante nfase nas prticas de teste, o contedo aborda prticas de escrita de User Stories. A palestra voltada para Agile Test.

TRANSCRIPT

  • Agile Testing com Drupal

    Pass

    Fail

    por Joo Paulo Seregatte @justdigital

  • O que e Agile? um conjunto de metodologias de desenvolvimento de software:

    Entregas constantes de valor atravs de ciclos curtos.

    Aumentar a taxa de feedback para responder a mudanas.

    Ter leveza e flexibilidade para mudar.

    Aprendizado continuo para melhorar continuamente.

  • Manifesto gil. Indivduos e interaes > Processos e

    Ferramentas.

    Software em funcionamento > Documentao abrangente.

    Colaborao com o cliente > Negociao de contratos.

    Responder a mudanas > Seguir um plano.

  • O que e Agile testing?

    Agile testing e uma pratica de teste de software que segue os principios do

    desenvolvimento agil.

  • Agile testing.

    1. Feedback contnuo.2. Entrega de valor ao cliente.3. Comunicacao face-to-face.4. Coragem.5. Simplicidade.6. Resposta a mudancas.7. Auto-organizacao.8. Foco em pessoas.

  • Cenrios: Testers / Agile Tester1. Desenvolvedores ageis sao test

    infected.

    2. Colaboram com o usuario.

    3. TODO O TIME e responsavel por teste!

    4. Todos devem entender do negocio.

    5. AUTOMATIZAM!!!

    1. No sabem o que gil.

    2. No sabem programar.

    3. O desenvolvedor seu maior inimigo.

    4. Programador frustrado ou querendo ser BA.

    5. No querem passar trabalho.

  • Onde comea o processo de agile testing?

  • Comea desde o levantamento de requisitos com o cliente!

  • Quando o PO faz isso, o Team Dev agradece!

  • Como levantar os requisitos?

    Sistema de tringulos.

    Um professor do ensino fundamental (Segunda srie) quer um sistema para representar os tipos de tringulos para seus alunos onde eles vo entrar com os 3 lados de um tringulo e o sistema informa qual o tipo do dele.

  • Como levantar os requisitos?

    Sistema de tringulos.

    1. Escola privada.2. Sistema usado no labortorio da escola.3. Acesso a internet no laboratrio.4. Entra com 3 Campos > Tipo do tringulo.5. Individualmente.6. Sem mensurao de dados.7. No deve ter figuras.

  • User Story Uma user story representa funcionalidades que devem fornecer valor para o

    negocio (projeto). Representa os requisitos (desejos) mais do que documenta-los. Fornece um flash para comunicacao. Sua definicao de pronto orienta os testes necessarios para a estoria

  • User Story1. Quem?:

    a. Personas ou Roles:i. Clienteii. Cliente VIPiii. Fornecedoriv. Atendente do call center.

    2. O que?:a. Aes.b. Rotinas.

    3. Por qu?:a. Efeito no negcio.b. Valor para o cliente.

  • User Story1. Como um dono de padaria preciso saber meu lucro por cada po por isso preciso listar os custos

    fixos rateado pela quantidade de pes produzidos.

    2. Como um vendedor, gostaria de consultar o estoque de um determinado produto para oferecer ao cliente.

    3. Como um diretor, gostaria de obter o volume de vendas do ms para acompanhar as metas.

    4. Como um cliente eu gostaria de visualizar os planos existentes para decidir qual plano devo comprar.

  • De volta aos tringulos.

    Sistema de tringulos.

    Um professor do ensino fundamental (Segunda srie) quer um sistema para representar os tipos de tringulos para seus alunos onde eles vo entrar com os 3 lados de um tringulo e o sistema informa qual o tipo do dele.

  • Porque eu no perguntei o por qu?

    Sistema de tringulos.

    1. Escola privada.2. Sistema usado no labortorio da escola.3. Acesso a internet no laboratrio.4. Entra com 3 Campos > Tipo do tringulo.5. Individualmente.6. Sem mensurao de dados.7. No deve ter figuras!

  • No caia na cilada do bvio!

    Esse professor d aulas de matemtica para uma turma de alunos superdotados e precisa usar esse sistema como experimento para sua tese de mestrado.

  • EscopoFora

    1. Validar tringulos invlidos.

    2. Exibir o tringulo graficamente.

    3. Validar entrada do usurio.

    Dentro

    1. Trngulo com todos os lados iguais equiltero.

    2. Tringulo com 2 lados iguais isceles.

    3. Triangulo com todos os lados diferentes escaleno.

  • O que uma boa User Story?

    IndependentNegotiableValuable to users or customersEstimableSmallTestable

  • Continuando com triangulos...

    Eu como professor gostaria de avaliar a capacidade dos meus alunos para gerar uma tese de mestrado.

    Para conhecer o tipo de um tringulo como um aluno de matemtica, eu quero informar os tamanhos do lado de um tringulo e saber qual seu tipo.

  • Testable - critrios de aceite

    Scenario: Tringulo iscelesGiven 2 nmeros iguais e 1 diferente.When eu clicar em CalcularThen eu espero ver a mensagem Tringulo isceles

    Scenario: Tringulo equilteroGiven 3 nmeros iguais.When eu clicar em CalcularThen eu espero ver a mensagem Tringulo equiltero

    Scenario: Tringulo escalenoGiven 3 nmeros diferentes.When eu clicar em CalcularThen eu espero ver a mensagem Tringulo escaleno

    Scenario: No quero ver imagensGiven 3 nmeros.When eu clicar em CalcularThen eu espero no ver uma imagem no resultado

  • Hora de desenvolver?

  • Hora do Sprint Planing

  • DoR e o DoD deve estar acordado entre Dev Team, SM e PO

  • ATDD TDD BDD TAD

    Antes de desenvolver

  • Antes de desenvolver

  • Teste unitrios

    1. So de responsabilidade do Desenvolvedor.

    2. Deve testar pequenas partes do sistema (funces, classes).

    3. Facilita o desenvolvedor encontrar a origem de bugs no sistema.

    4. No faz muito sentido para a o pessoal de negcio.

  • Teste unitrios? Que tal TDD? No Drupal?

  • Mdulo SimpleTest - DrupalUnitTestCase

    Teste unitrio sem bootstrap de banco de dados.

  • Ento vamos fazer teste unitrios com TDD?

  • Teste de aceitao? No Drupal?

  • Mdulo SimpleTest - DrupalWebTestCase

    Teste de aceitao simulando um browser e com banco de dados separado.

  • Ento vamos fazer testes de aceitao com SimpleTest?

  • Teste de UI? No Drupal?

  • Mdulo SimpleTest + Mdulo Selenium

    Teste de UI usando um seo de um browser real.

  • Teste de Aceitao e Teste de UI, integrados!

    Os 2 testes na mesma ferramenta + linguagem neutra, voltada a negcios.

  • No se esquea dos critrios de aceite

    Scenario: Tringulo iscelesGiven 2 nmeros iguais e 1 diferente.When eu clicar em CalcularThen eu espero ver a mensagem Tringulo isceles

    Scenario: Tringulo equilteroGiven 3 nmeros iguais.When eu clicar em CalcularThen eu espero ver a mensagem Tringulo equiltero

    Scenario: Tringulo escalenoGiven 3 nmeros diferentes.When eu clicar em CalcularThen eu espero ver a mensagem Tringulo escaleno

    Scenario: No quero ver imagensGiven 3 nmeros.When eu clicar em CalcularThen eu espero no ver uma imagem no resultado

  • Ento vamos fazer testes de UI com Behat e Selenium?

    Scenario: Tringulo iscelesGiven 2 nmeros iguais e 1 diferente.When eu clicar em CalcularThen eu espero ver a mensagem Tringulo isceles

    Scenario: Tringulo equilteroGiven 3 nmeros iguais.When eu clicar em CalcularThen eu espero ver a mensagem Tringulo equiltero

    Scenario: Tringulo escalenoGiven 3 nmeros diferentes.When eu clicar em CalcularThen eu espero ver a mensagem Tringulo escaleno

    Scenario: No quero ver imagensGiven 3 nmeros.When eu clicar em CalcularThen eu espero no ver uma imagem no resultado

  • Continuous Integration!

  • E os teste manuais, acabam?

    No, testes exploratrios nunca acabam!1. Aprender sobre mais

    sobre o software.

    2. Desenvolver mais testes.

    3. Executar testes.

    Use o feedback do ltimo teste para executar o prximo!

  • Quando o Dev Team faz isso, o PO e o cliente agradecem!

  • Fim!

    Joo PauloHead of technologyjoaopaulo@justdigital.com.br