tdd on rails
TRANSCRIPT
![Page 1: Tdd On Rails](https://reader033.vdocuments.pub/reader033/viewer/2022050805/559581c91a28ab23548b45c0/html5/thumbnails/1.jpg)
Luiz Cezer Marrone Filho
TDD on Rails – Desenvolvimento Guiado a Testes em Aplicações Web com
framework Rails
![Page 2: Tdd On Rails](https://reader033.vdocuments.pub/reader033/viewer/2022050805/559581c91a28ab23548b45c0/html5/thumbnails/2.jpg)
Roteiro
IntroduçãoObjetivosJustificativaAmbiente de testes com RailsEstudo experimentalResultadosConclusão
![Page 3: Tdd On Rails](https://reader033.vdocuments.pub/reader033/viewer/2022050805/559581c91a28ab23548b45c0/html5/thumbnails/3.jpg)
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?
![Page 4: Tdd On Rails](https://reader033.vdocuments.pub/reader033/viewer/2022050805/559581c91a28ab23548b45c0/html5/thumbnails/4.jpg)
Objetivo Geral
Demonstrar o uso do TDD como técnica de desenvolvimento de software em uma aplicação web Rails.
![Page 5: Tdd On Rails](https://reader033.vdocuments.pub/reader033/viewer/2022050805/559581c91a28ab23548b45c0/html5/thumbnails/5.jpg)
Por que TDD?
• Código mal escrito
• Difícil manutenção
• Não permite crescimento da aplicação
• Performance ruim
• Tempo gasto com debug
• Um erro pode se espalhar pela aplicação
• Custo de manutenção grande
• Código melhor escrito
• Código de fácil manutenção
• Código não fica com 'sobras'
• Benefícios ao programador
• Ajuda na compreensão dos requisitos
• Testar codificação e comportamento
![Page 6: Tdd On Rails](https://reader033.vdocuments.pub/reader033/viewer/2022050805/559581c91a28ab23548b45c0/html5/thumbnails/6.jpg)
TECNOLOGIAS UTILIZADASFundamentação teórica
![Page 7: Tdd On Rails](https://reader033.vdocuments.pub/reader033/viewer/2022050805/559581c91a28ab23548b45c0/html5/thumbnails/7.jpg)
Metodologias Ágeis
• Surgiram em meados dos anos 90
• Criados por Kent Beck e mais 15 desenvolvedores
• Melhorar o processo de desenvolvimento e planejamento de software
• Baseia-se em valores• Satisfazer o cliente com
entregas contínuas• Aceitar as mudanças• Trabalho em conjunto
entre equipe e pessoas que entender do negócio
• Simplicidade
![Page 8: Tdd On Rails](https://reader033.vdocuments.pub/reader033/viewer/2022050805/559581c91a28ab23548b45c0/html5/thumbnails/8.jpg)
Metodologia XP
• Metodologia ágil de desenvolvimento
• Baseia-se em certos valores :a. Feedbackb. Comunicaçãoc. Simplicidaded. Corageme. Respeito
• Principais práticas :
a. Design simples
b. Programação em pares
c. Código coletivo
d. Ritmo sustentável
e. Desenvolvimento Guiado a Testes
![Page 9: Tdd On Rails](https://reader033.vdocuments.pub/reader033/viewer/2022050805/559581c91a28ab23548b45c0/html5/thumbnails/9.jpg)
TDD
• Prática de desenvolvimento• Testes criados antes do código• Baby steps• Benefícios para o software e o desenvolvedor
![Page 10: Tdd On Rails](https://reader033.vdocuments.pub/reader033/viewer/2022050805/559581c91a28ab23548b45c0/html5/thumbnails/10.jpg)
Ciclo do TDD
Fonte : http://rodrigoamora.com.br/blog/
![Page 11: Tdd On Rails](https://reader033.vdocuments.pub/reader033/viewer/2022050805/559581c91a28ab23548b45c0/html5/thumbnails/11.jpg)
Linguagem Ruby
Criada em 1995 por Yukihiro 'Matz' Matsumoto Orientada a objeto Interpretada Tipagem forte e dinâmica Tenta se aproximar de linguagem humana
![Page 12: Tdd On Rails](https://reader033.vdocuments.pub/reader033/viewer/2022050805/559581c91a28ab23548b45c0/html5/thumbnails/12.jpg)
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
![Page 13: Tdd On Rails](https://reader033.vdocuments.pub/reader033/viewer/2022050805/559581c91a28ab23548b45c0/html5/thumbnails/13.jpg)
Estrutura Aplicação Rails
![Page 14: Tdd On Rails](https://reader033.vdocuments.pub/reader033/viewer/2022050805/559581c91a28ab23548b45c0/html5/thumbnails/14.jpg)
Ambiente de testes com Rails
![Page 15: Tdd On Rails](https://reader033.vdocuments.pub/reader033/viewer/2022050805/559581c91a28ab23548b45c0/html5/thumbnails/15.jpg)
Ambiente de testes com Rails
![Page 16: Tdd On Rails](https://reader033.vdocuments.pub/reader033/viewer/2022050805/559581c91a28ab23548b45c0/html5/thumbnails/16.jpg)
Ambiente de testes com Rails
Asserts Testes unitários Testes funcionais Testes de integração
![Page 17: Tdd On Rails](https://reader033.vdocuments.pub/reader033/viewer/2022050805/559581c91a28ab23548b45c0/html5/thumbnails/17.jpg)
ESTUDO EXPERIMENTALEstudo Experimental
![Page 18: Tdd On Rails](https://reader033.vdocuments.pub/reader033/viewer/2022050805/559581c91a28ab23548b45c0/html5/thumbnails/18.jpg)
Caso de Uso
![Page 19: Tdd On Rails](https://reader033.vdocuments.pub/reader033/viewer/2022050805/559581c91a28ab23548b45c0/html5/thumbnails/19.jpg)
Criando recursos da aplicação
![Page 20: Tdd On Rails](https://reader033.vdocuments.pub/reader033/viewer/2022050805/559581c91a28ab23548b45c0/html5/thumbnails/20.jpg)
Validações e testes a serem feitos
• Campo nome é obrigatório
• Campo username é obrigatório
• Campo password é obrigatório
![Page 21: Tdd On Rails](https://reader033.vdocuments.pub/reader033/viewer/2022050805/559581c91a28ab23548b45c0/html5/thumbnails/21.jpg)
Executando Testes Unitários
![Page 22: Tdd On Rails](https://reader033.vdocuments.pub/reader033/viewer/2022050805/559581c91a28ab23548b45c0/html5/thumbnails/22.jpg)
Fazendo teste passar
![Page 23: Tdd On Rails](https://reader033.vdocuments.pub/reader033/viewer/2022050805/559581c91a28ab23548b45c0/html5/thumbnails/23.jpg)
Criando Recurso de Task
![Page 24: Tdd On Rails](https://reader033.vdocuments.pub/reader033/viewer/2022050805/559581c91a28ab23548b45c0/html5/thumbnails/24.jpg)
Executando testes funcionais
![Page 25: Tdd On Rails](https://reader033.vdocuments.pub/reader033/viewer/2022050805/559581c91a28ab23548b45c0/html5/thumbnails/25.jpg)
Simulação de Login nos testes
![Page 26: Tdd On Rails](https://reader033.vdocuments.pub/reader033/viewer/2022050805/559581c91a28ab23548b45c0/html5/thumbnails/26.jpg)
Teste funcionais passando
![Page 27: Tdd On Rails](https://reader033.vdocuments.pub/reader033/viewer/2022050805/559581c91a28ab23548b45c0/html5/thumbnails/27.jpg)
Testes de Integração
![Page 28: Tdd On Rails](https://reader033.vdocuments.pub/reader033/viewer/2022050805/559581c91a28ab23548b45c0/html5/thumbnails/28.jpg)
Testes de Integração
![Page 29: Tdd On Rails](https://reader033.vdocuments.pub/reader033/viewer/2022050805/559581c91a28ab23548b45c0/html5/thumbnails/29.jpg)
Executando testes de integração
![Page 30: Tdd On Rails](https://reader033.vdocuments.pub/reader033/viewer/2022050805/559581c91a28ab23548b45c0/html5/thumbnails/30.jpg)
RESULTADOS E DISCUSSÕES
![Page 31: Tdd On Rails](https://reader033.vdocuments.pub/reader033/viewer/2022050805/559581c91a28ab23548b45c0/html5/thumbnails/31.jpg)
![Page 32: Tdd On Rails](https://reader033.vdocuments.pub/reader033/viewer/2022050805/559581c91a28ab23548b45c0/html5/thumbnails/32.jpg)
Resultados e discussões
Escreva algo aqui ainda, em termos de resultados verificados, deixe as conclusões lá no final.
![Page 33: Tdd On Rails](https://reader033.vdocuments.pub/reader033/viewer/2022050805/559581c91a28ab23548b45c0/html5/thumbnails/33.jpg)
CONCLUSÃO
![Page 34: Tdd On Rails](https://reader033.vdocuments.pub/reader033/viewer/2022050805/559581c91a28ab23548b45c0/html5/thumbnails/34.jpg)
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 testesMelhoria no código final da aplicaçãoTDD ajuda a compreender melhor requisitos e comportamentos
![Page 35: Tdd On Rails](https://reader033.vdocuments.pub/reader033/viewer/2022050805/559581c91a28ab23548b45c0/html5/thumbnails/35.jpg)
Trabalhos futuros?
![Page 36: Tdd On Rails](https://reader033.vdocuments.pub/reader033/viewer/2022050805/559581c91a28ab23548b45c0/html5/thumbnails/36.jpg)
Luiz Cezer Marrone Filho
TDD on Rails – Desenvolvimento Guiado a Testes em Aplicações Web com
framework Rails