TDD on Rails – Desenvolvimento Guiado
  a Testes em Aplicações Web com
           framework Rails




                    Luiz Cezer Marrone Filho
Roteiro



  Introdução

  Objetivos

  Justificativa

  Ambiente de testes com Rails

  Estudo experimental

  Resultados

  Conclusão
Introdução


 Pensar no software antes de começar o
desenvolvimento :
     
         Viabilidade do Projeto
     
         Prazos de entrega
     
         Linguagens e frameworks
     
         Metodologias

    Problemas no desenvolvimento
     
         Código mal escrito / difícil manutenibilidade
     
         Problemas pequenos podem tornar-se grandes

 Uso de Testes de software
     
         O que são testes de software?
Objetivo Geral





 Demonstrar o uso do TDD como técnica de
desenvolvimento de software em uma aplicação
web Rails.
Por que TDD?

• Código mal escrito         • Código melhor escrito
• Difícil manutenção         • Código de fácil
• Não permite crescimento      manutenção
  da aplicação               • Código não fica com
• Performance ruim             'sobras'
                             • Benefícios ao
• Tempo gasto com debug
                               programador
• Um erro pode se espalhar
                             • Ajuda na compreensão
  pela aplicação
                               dos requisitos
• Custo de manutenção
                             • Testar codificação e
  grande
                               comportamento
Fundamentação teórica

TECNOLOGIAS UTILIZADAS
Metodologias Ágeis

•
    Surgiram em meados        •
                                  Baseia-se em valores
    dos anos 90
                              •
                                  Satisfazer o cliente com
•
    Criados por Kent Beck e       entregas contínuas
    mais 15                   •
                                  Aceitar as mudanças
    desenvolvedores
                              •
                                  Trabalho em conjunto
•
    Melhorar o processo de        entre equipe e pessoas
    desenvolvimento e             que entender do negócio
    planejamento de           •
                                  Simplicidade
    software
Metodologia XP

•
    Metodologia ágil de   •
                               Principais práticas :
    desenvolvimento
•
    Baseia-se em certos   a.   Design simples
    valores :             b.   Programação em pares
    a. Feedback
    b. Comunicação        c.   Código coletivo
    c. Simplicidade       d.   Ritmo sustentável
    d. Coragem
    e. Respeito           e.   Desenvolvimento
                               Guiado a Testes
TDD




•
    Prática de desenvolvimento
•
    Testes criados antes do código
•
    Baby steps
•
    Benefícios para o software e o desenvolvedor
Ciclo do TDD




    Fonte : http://rodrigoamora.com.br/blog/
Linguagem Ruby




    Criada em 1995 por Yukihiro 'Matz' Matsumoto

    Orientada a objeto

    Interpretada

    Tipagem forte e dinâmica

    Tenta se aproximar de linguagem humana
Framework Rails

•
    Criado em 2004 por
    David Hanson
•
    Utiliza linguagem Ruby
•
    Meta-framework para
    desenvolvimento web
•
    Convenção sobre
    Configuração
•
    Não se repita
•
    MVC
Estrutura Aplicação Rails
Ambiente de testes com Rails
Ambiente de testes com Rails
Ambiente de testes com Rails




    Asserts

    Testes unitários

    Testes funcionais

    Testes de integração
Estudo Experimental

ESTUDO EXPERIMENTAL
Caso de Uso
Criando recursos da aplicação
Validações e testes a serem
feitos

• Campo nome é
  obrigatório
• Campo username é
  obrigatório
• Campo password é
  obrigatório
Executando Testes Unitários
Fazendo teste passar
Criando Recurso de Task
Executando testes funcionais
Simulação de Login nos testes
Teste funcionais passando
Testes de Integração
Testes de Integração
Executando testes de integração
RESULTADOS E DISCUSSÕES
Resultados e discussões


Escreva algo aqui ainda, em termos de
 resultados verificados, deixe as conclusões lá
 no final.
CONCLUSÃO
Conclusão


Após o estudo e desenvolvimento deste trabalho,
pode-se verificar que:

 Framework Rails facilita a criação e encoraja a
criação de testes

 Melhoria no código final da aplicação

 TDD ajuda a compreender melhor requisitos e
comportamentos
Trabalhos futuros?
TDD on Rails – Desenvolvimento Guiado
  a Testes em Aplicações Web com
           framework Rails




                    Luiz Cezer Marrone Filho

Tdd On Rails

Notas do Editor

  • #37 Deixe este slide aqui no fim.