SlideShare una empresa de Scribd logo
1 de 23
Estudo e aplicação da metodologia de
desenvolvimento Test Driven
Development (TDD) e avaliação de
seus benefícios
Acadêmicos:
Jônatas Flores Roza
Samara Pizzetti Borges
Profª. orientadora: Muriel de Fátima Bernhardt Rocha
Objetivo Geral
Apresentar um estudo sobre a técnica de
desenvolvimento de software Test Driven
Development (TDD), com o intuito de
analisar suas características, bem como os
benefícios da utilização desta técnica no
desenvolvimento.
Objetivos específicos
 Realizar um estudo sobre os processos de
desenvolvimento de softwares existentes;
 Realizar um estudo da técnica Test Driven Development
(TDD) e suas interações no ambiente de
desenvolvimento;
 Demonstrar as vantagens e desvantagens da utilização
da técnica Test Driven Development (TDD);
 Aplicar o conhecimento adquirido para a elaboração
de um protótipo, demonstrando os resultados das
pesquisas realizadas.
Organização
Desenvolvimento de software;
Testes de software;
TDD;
Aplicação do TDD em um modelo de
software;
Considerações finais.
Modelo tradicional
Fonte: SCHACH (2010, p. 51) Fonte: GONÇALVES (2011) Fonte: Adaptado de UCHÔA (2008)
Modelo ágil
XP (Extreme Programming)
Fonte: JENNY (2012)
Modelo ágil
SCRUM
Fonte: Adaptado de MURPHY ([entre 2004 e 2013])
Testes de software
Fonte: DIAS NETO (2008)
Testes de software
Técnicas de teste
Caixa-preta;
Caixa-branca;
Regressão;
Testes de unidade.
Testes no desenvolvimento ágil
SCRUM
Participação ativa da equipe de teste.
XP
Testes de unidade;
Test-first.
TDD – Test Driven Development
Se difundiu através do XP;
Criado por Kent Back por volta do ano de
2002;
Surgiu com a necessidade de se produzir
softwares de qualidade, identificando e
removendo os defeitos no início do projeto;
Os testes são criados antes da
implementação da funcionalidade.
TDD – Test Driven Development
 Estilo/Padrões de desenvolvimento.
KISS (Keep it simple, stupid);
YAGNI (You Ain’t Gonna Need It);
Baby steps:
Fonte: ANICHE (2012)
TDD – Test Driven Development
Ciclo de desenvolvimento
Fonte: Adaptado de RIBEIRO, CAMILO (2010)
TDD – Test Driven Development
Estados
Fonte: PEREIRA, SCHISSATO (2012).
Diferença entre TDD e testes
tradicionais
Fonte: ANICHE (2012).
Benefícios do TDD
Foco no teste e não na implementação,
melhorando o design das classes;
O código já nasce testado, podendo
identificar os impactos das novas
funcionalidades;
Simplicidade;
Melhor entendimento do negócio;
Maior confiança e valor agregado ao
código.
Quando não usar TDD
O desenvolvedor já sabe como resolver o
problema;
Métodos de terceiros.
Aplicação do TDD em um modelo de
software
Tecnologias utilizadas
Aplicação do TDD em um modelo de
software
Protótipo: Sistema de gerenciamento de notas e
frequência de uma instituição de ensino.
Cadastrar as notas;
Calcular a frequência;
Calcular a média;
Definir o resultado final do aluno;
Calcular a média do exame final.
RN2. Reprovação
por frequência:
frequência < 75%
RN3. Aprovação:
frequência >= 75%
e média >= 7
Avaliação dos resultados
Feedback dos testes;
As falhas são identificadas no início;
O código é melhor estruturado e com isso
se torna mais limpo;
Maior confiança e qualidade.
Conclusões
Benefícios com a utilização do TDD;
Quando o TDD não deve ser utilizado;
Objetivos alcançados.
Recomendações para trabalhos
futuros
Testes automatizados com Maven;
Método tradicional Vs. TDD;
BDD (Behavior Driven Development) e
ATDD (Acceptance Test Driven
Development) juntamente do Test Driven
Development.
Agradecimentos

Más contenido relacionado

La actualidad más candente

Escolas de testes de software
Escolas de testes de softwareEscolas de testes de software
Escolas de testes de softwareAlan Carlos
 
O Processo de Desenvolvimento de Software
O Processo de Desenvolvimento de SoftwareO Processo de Desenvolvimento de Software
O Processo de Desenvolvimento de SoftwareCamilo de Melo
 
Escolas de Testes de Software
Escolas de Testes de SoftwareEscolas de Testes de Software
Escolas de Testes de SoftwareAlan Carlos
 
Testes de aceitação automatizados com robotium utilizando a técnica bdd TDC...
Testes de aceitação automatizados com robotium utilizando a técnica bdd   TDC...Testes de aceitação automatizados com robotium utilizando a técnica bdd   TDC...
Testes de aceitação automatizados com robotium utilizando a técnica bdd TDC...Rafael Chiavegatto
 
Palestra Teste de Software: princípios, ferramentas e carreira
Palestra Teste de Software: princípios, ferramentas e carreiraPalestra Teste de Software: princípios, ferramentas e carreira
Palestra Teste de Software: princípios, ferramentas e carreiraTaís Dall'Oca
 
Apresentação de Engenharia de software I - Prof. Cristiane Fidelix
Apresentação de Engenharia de software I - Prof. Cristiane FidelixApresentação de Engenharia de software I - Prof. Cristiane Fidelix
Apresentação de Engenharia de software I - Prof. Cristiane FidelixCris Fidelix
 
Ctfl 2018 sample_b[v1.3br]
Ctfl 2018 sample_b[v1.3br]Ctfl 2018 sample_b[v1.3br]
Ctfl 2018 sample_b[v1.3br]rafael327780
 
Final Project (2013): Test-Driven Development applied on web applications
Final Project (2013): Test-Driven Development applied on web applicationsFinal Project (2013): Test-Driven Development applied on web applications
Final Project (2013): Test-Driven Development applied on web applicationsLuiz Henrique
 
Introdução ao teste de software
 Introdução ao teste de software Introdução ao teste de software
Introdução ao teste de softwareAna Ludmila
 
Cenartec 2014 - Teste de software, uma área, uma carreira, um novo perfil
Cenartec 2014 - Teste de software, uma área, uma carreira, um novo perfilCenartec 2014 - Teste de software, uma área, uma carreira, um novo perfil
Cenartec 2014 - Teste de software, uma área, uma carreira, um novo perfilJoão Clineu - CTFL, CSM, CSD
 
Panorama geral sobre testes e qualidade de software
Panorama geral sobre testes e qualidade  de softwarePanorama geral sobre testes e qualidade  de software
Panorama geral sobre testes e qualidade de softwareAriane Izac
 
Ferramentas open source para auxiliar os testes de software
Ferramentas open source para auxiliar os testes de softwareFerramentas open source para auxiliar os testes de software
Ferramentas open source para auxiliar os testes de softwareJeremias Araujo
 
Seu app a prova de gambiarras (ou não) - Ferramentas de validaSPção de código
Seu app a prova de gambiarras (ou não) - Ferramentas de validaSPção de códigoSeu app a prova de gambiarras (ou não) - Ferramentas de validaSPção de código
Seu app a prova de gambiarras (ou não) - Ferramentas de validaSPção de códigoChristiane Morais Silva
 
SEMINFO 2014 - Teste de software, uma área, uma carreira, um novo perfil.
SEMINFO 2014 -  Teste de software, uma área, uma carreira, um novo perfil.SEMINFO 2014 -  Teste de software, uma área, uma carreira, um novo perfil.
SEMINFO 2014 - Teste de software, uma área, uma carreira, um novo perfil.João Clineu - CTFL, CSM, CSD
 
A Carreira de Desenvolvedor: do Jr ao Sênior
A Carreira de Desenvolvedor: do Jr ao SêniorA Carreira de Desenvolvedor: do Jr ao Sênior
A Carreira de Desenvolvedor: do Jr ao SêniorMarcos Pereira
 
CST EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS IFPB 5º PERÍODO PADRÕES DE PROJE...
CST EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS IFPB 5º PERÍODO PADRÕES DE PROJE...CST EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS IFPB 5º PERÍODO PADRÕES DE PROJE...
CST EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS IFPB 5º PERÍODO PADRÕES DE PROJE...Os Fantasmas !
 

La actualidad más candente (20)

Escolas de testes de software
Escolas de testes de softwareEscolas de testes de software
Escolas de testes de software
 
Papéis em teste e qualidade de software
Papéis em teste e qualidade de softwarePapéis em teste e qualidade de software
Papéis em teste e qualidade de software
 
O Processo de Desenvolvimento de Software
O Processo de Desenvolvimento de SoftwareO Processo de Desenvolvimento de Software
O Processo de Desenvolvimento de Software
 
Engenharia de software - Prototipo
Engenharia de software - PrototipoEngenharia de software - Prototipo
Engenharia de software - Prototipo
 
Escolas de Testes de Software
Escolas de Testes de SoftwareEscolas de Testes de Software
Escolas de Testes de Software
 
Testes de aceitação automatizados com robotium utilizando a técnica bdd TDC...
Testes de aceitação automatizados com robotium utilizando a técnica bdd   TDC...Testes de aceitação automatizados com robotium utilizando a técnica bdd   TDC...
Testes de aceitação automatizados com robotium utilizando a técnica bdd TDC...
 
Palestra Teste de Software: princípios, ferramentas e carreira
Palestra Teste de Software: princípios, ferramentas e carreiraPalestra Teste de Software: princípios, ferramentas e carreira
Palestra Teste de Software: princípios, ferramentas e carreira
 
Apresentação de Engenharia de software I - Prof. Cristiane Fidelix
Apresentação de Engenharia de software I - Prof. Cristiane FidelixApresentação de Engenharia de software I - Prof. Cristiane Fidelix
Apresentação de Engenharia de software I - Prof. Cristiane Fidelix
 
Modelos de Processo de Software
Modelos de Processo de SoftwareModelos de Processo de Software
Modelos de Processo de Software
 
Ctfl 2018 sample_b[v1.3br]
Ctfl 2018 sample_b[v1.3br]Ctfl 2018 sample_b[v1.3br]
Ctfl 2018 sample_b[v1.3br]
 
Final Project (2013): Test-Driven Development applied on web applications
Final Project (2013): Test-Driven Development applied on web applicationsFinal Project (2013): Test-Driven Development applied on web applications
Final Project (2013): Test-Driven Development applied on web applications
 
Introdução ao teste de software
 Introdução ao teste de software Introdução ao teste de software
Introdução ao teste de software
 
Cenartec 2014 - Teste de software, uma área, uma carreira, um novo perfil
Cenartec 2014 - Teste de software, uma área, uma carreira, um novo perfilCenartec 2014 - Teste de software, uma área, uma carreira, um novo perfil
Cenartec 2014 - Teste de software, uma área, uma carreira, um novo perfil
 
Panorama geral sobre testes e qualidade de software
Panorama geral sobre testes e qualidade  de softwarePanorama geral sobre testes e qualidade  de software
Panorama geral sobre testes e qualidade de software
 
Ferramentas open source para auxiliar os testes de software
Ferramentas open source para auxiliar os testes de softwareFerramentas open source para auxiliar os testes de software
Ferramentas open source para auxiliar os testes de software
 
Seu app a prova de gambiarras (ou não) - Ferramentas de validaSPção de código
Seu app a prova de gambiarras (ou não) - Ferramentas de validaSPção de códigoSeu app a prova de gambiarras (ou não) - Ferramentas de validaSPção de código
Seu app a prova de gambiarras (ou não) - Ferramentas de validaSPção de código
 
Trabalho es prototipagem
Trabalho es   prototipagemTrabalho es   prototipagem
Trabalho es prototipagem
 
SEMINFO 2014 - Teste de software, uma área, uma carreira, um novo perfil.
SEMINFO 2014 -  Teste de software, uma área, uma carreira, um novo perfil.SEMINFO 2014 -  Teste de software, uma área, uma carreira, um novo perfil.
SEMINFO 2014 - Teste de software, uma área, uma carreira, um novo perfil.
 
A Carreira de Desenvolvedor: do Jr ao Sênior
A Carreira de Desenvolvedor: do Jr ao SêniorA Carreira de Desenvolvedor: do Jr ao Sênior
A Carreira de Desenvolvedor: do Jr ao Sênior
 
CST EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS IFPB 5º PERÍODO PADRÕES DE PROJE...
CST EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS IFPB 5º PERÍODO PADRÕES DE PROJE...CST EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS IFPB 5º PERÍODO PADRÕES DE PROJE...
CST EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS IFPB 5º PERÍODO PADRÕES DE PROJE...
 

Similar a Apresentação tcc final

Desenvolvimento dirigido por comportamento e por teste
Desenvolvimento dirigido por comportamento e por testeDesenvolvimento dirigido por comportamento e por teste
Desenvolvimento dirigido por comportamento e por testeUniversidade Tiradentes
 
Defesa de mestrado: Como a prática de TDD influencia no projeto de classes em...
Defesa de mestrado: Como a prática de TDD influencia no projeto de classes em...Defesa de mestrado: Como a prática de TDD influencia no projeto de classes em...
Defesa de mestrado: Como a prática de TDD influencia no projeto de classes em...Maurício Aniche
 
Sobre TDD - Tech Friday da Everis Uberlândia
Sobre TDD - Tech Friday da Everis UberlândiaSobre TDD - Tech Friday da Everis Uberlândia
Sobre TDD - Tech Friday da Everis UberlândiaRogerio Fontes
 
[GUTS-RS] Tendências de Teste de Software para 2016
[GUTS-RS] Tendências de Teste de Software para 2016[GUTS-RS] Tendências de Teste de Software para 2016
[GUTS-RS] Tendências de Teste de Software para 2016GUTS-RS
 
Metodologias ágeis de desenvolvimento de software por Givanaldo Rocha
Metodologias ágeis de desenvolvimento de software por Givanaldo RochaMetodologias ágeis de desenvolvimento de software por Givanaldo Rocha
Metodologias ágeis de desenvolvimento de software por Givanaldo RochaFernando Palma
 
Test-Driven Development serve pra mim?
Test-Driven Development serve pra mim?Test-Driven Development serve pra mim?
Test-Driven Development serve pra mim?Maurício Aniche
 
PHPHEDERAL - Desenvolvimento Orientado a Testes com PHP
PHPHEDERAL - Desenvolvimento Orientado a Testes com PHPPHPHEDERAL - Desenvolvimento Orientado a Testes com PHP
PHPHEDERAL - Desenvolvimento Orientado a Testes com PHPMarcelo Rodrigues
 
Uma Metodologia Para Teste De Software No Contexto Da Melhoria De Processo
Uma Metodologia Para Teste De Software No Contexto Da Melhoria De ProcessoUma Metodologia Para Teste De Software No Contexto Da Melhoria De Processo
Uma Metodologia Para Teste De Software No Contexto Da Melhoria De Processocrc1404
 
Apresentação do Workshop BDD (Desenvolvimento Guiado por Comportamento) com V...
Apresentação do Workshop BDD (Desenvolvimento Guiado por Comportamento) com V...Apresentação do Workshop BDD (Desenvolvimento Guiado por Comportamento) com V...
Apresentação do Workshop BDD (Desenvolvimento Guiado por Comportamento) com V...Developer Academy
 
Escolas de testes de software
Escolas de testes de softwareEscolas de testes de software
Escolas de testes de softwareAlan Carlos
 

Similar a Apresentação tcc final (20)

Teste Driven Development
Teste Driven DevelopmentTeste Driven Development
Teste Driven Development
 
Desenvolvimento dirigido por comportamento e por teste
Desenvolvimento dirigido por comportamento e por testeDesenvolvimento dirigido por comportamento e por teste
Desenvolvimento dirigido por comportamento e por teste
 
Defesa de mestrado: Como a prática de TDD influencia no projeto de classes em...
Defesa de mestrado: Como a prática de TDD influencia no projeto de classes em...Defesa de mestrado: Como a prática de TDD influencia no projeto de classes em...
Defesa de mestrado: Como a prática de TDD influencia no projeto de classes em...
 
Sobre TDD - Tech Friday da Everis Uberlândia
Sobre TDD - Tech Friday da Everis UberlândiaSobre TDD - Tech Friday da Everis Uberlândia
Sobre TDD - Tech Friday da Everis Uberlândia
 
Métodos Ágeis - Aula02
Métodos Ágeis - Aula02Métodos Ágeis - Aula02
Métodos Ágeis - Aula02
 
Artigo corrigido
Artigo corrigidoArtigo corrigido
Artigo corrigido
 
[GUTS-RS] Tendências de Teste de Software para 2016
[GUTS-RS] Tendências de Teste de Software para 2016[GUTS-RS] Tendências de Teste de Software para 2016
[GUTS-RS] Tendências de Teste de Software para 2016
 
Subm_SamuelPereira_FINAL
Subm_SamuelPereira_FINALSubm_SamuelPereira_FINAL
Subm_SamuelPereira_FINAL
 
Aula - Teste de Software
Aula - Teste de SoftwareAula - Teste de Software
Aula - Teste de Software
 
Metodologias ágeis de desenvolvimento de software por Givanaldo Rocha
Metodologias ágeis de desenvolvimento de software por Givanaldo RochaMetodologias ágeis de desenvolvimento de software por Givanaldo Rocha
Metodologias ágeis de desenvolvimento de software por Givanaldo Rocha
 
Agile2011 140902173318-phpapp02
Agile2011 140902173318-phpapp02Agile2011 140902173318-phpapp02
Agile2011 140902173318-phpapp02
 
BDD - Behaviour Driven Development
BDD - Behaviour Driven DevelopmentBDD - Behaviour Driven Development
BDD - Behaviour Driven Development
 
Test-Driven Development serve pra mim?
Test-Driven Development serve pra mim?Test-Driven Development serve pra mim?
Test-Driven Development serve pra mim?
 
PHPHEDERAL - Desenvolvimento Orientado a Testes com PHP
PHPHEDERAL - Desenvolvimento Orientado a Testes com PHPPHPHEDERAL - Desenvolvimento Orientado a Testes com PHP
PHPHEDERAL - Desenvolvimento Orientado a Testes com PHP
 
Instituto Stela S&T#001, Projeto de software com testes unitários
Instituto Stela S&T#001, Projeto de software com testes unitáriosInstituto Stela S&T#001, Projeto de software com testes unitários
Instituto Stela S&T#001, Projeto de software com testes unitários
 
Uma Metodologia Para Teste De Software No Contexto Da Melhoria De Processo
Uma Metodologia Para Teste De Software No Contexto Da Melhoria De ProcessoUma Metodologia Para Teste De Software No Contexto Da Melhoria De Processo
Uma Metodologia Para Teste De Software No Contexto Da Melhoria De Processo
 
Curso Scrum
Curso ScrumCurso Scrum
Curso Scrum
 
Apresentação do Workshop BDD (Desenvolvimento Guiado por Comportamento) com V...
Apresentação do Workshop BDD (Desenvolvimento Guiado por Comportamento) com V...Apresentação do Workshop BDD (Desenvolvimento Guiado por Comportamento) com V...
Apresentação do Workshop BDD (Desenvolvimento Guiado por Comportamento) com V...
 
Métodos Ágeis
Métodos ÁgeisMétodos Ágeis
Métodos Ágeis
 
Escolas de testes de software
Escolas de testes de softwareEscolas de testes de software
Escolas de testes de software
 

Apresentação tcc final

  • 1. Estudo e aplicação da metodologia de desenvolvimento Test Driven Development (TDD) e avaliação de seus benefícios Acadêmicos: Jônatas Flores Roza Samara Pizzetti Borges Profª. orientadora: Muriel de Fátima Bernhardt Rocha
  • 2. Objetivo Geral Apresentar um estudo sobre a técnica de desenvolvimento de software Test Driven Development (TDD), com o intuito de analisar suas características, bem como os benefícios da utilização desta técnica no desenvolvimento.
  • 3. Objetivos específicos  Realizar um estudo sobre os processos de desenvolvimento de softwares existentes;  Realizar um estudo da técnica Test Driven Development (TDD) e suas interações no ambiente de desenvolvimento;  Demonstrar as vantagens e desvantagens da utilização da técnica Test Driven Development (TDD);  Aplicar o conhecimento adquirido para a elaboração de um protótipo, demonstrando os resultados das pesquisas realizadas.
  • 4. Organização Desenvolvimento de software; Testes de software; TDD; Aplicação do TDD em um modelo de software; Considerações finais.
  • 5. Modelo tradicional Fonte: SCHACH (2010, p. 51) Fonte: GONÇALVES (2011) Fonte: Adaptado de UCHÔA (2008)
  • 6. Modelo ágil XP (Extreme Programming) Fonte: JENNY (2012)
  • 7. Modelo ágil SCRUM Fonte: Adaptado de MURPHY ([entre 2004 e 2013])
  • 8. Testes de software Fonte: DIAS NETO (2008)
  • 9. Testes de software Técnicas de teste Caixa-preta; Caixa-branca; Regressão; Testes de unidade.
  • 10. Testes no desenvolvimento ágil SCRUM Participação ativa da equipe de teste. XP Testes de unidade; Test-first.
  • 11. TDD – Test Driven Development Se difundiu através do XP; Criado por Kent Back por volta do ano de 2002; Surgiu com a necessidade de se produzir softwares de qualidade, identificando e removendo os defeitos no início do projeto; Os testes são criados antes da implementação da funcionalidade.
  • 12. TDD – Test Driven Development  Estilo/Padrões de desenvolvimento. KISS (Keep it simple, stupid); YAGNI (You Ain’t Gonna Need It); Baby steps: Fonte: ANICHE (2012)
  • 13. TDD – Test Driven Development Ciclo de desenvolvimento Fonte: Adaptado de RIBEIRO, CAMILO (2010)
  • 14. TDD – Test Driven Development Estados Fonte: PEREIRA, SCHISSATO (2012).
  • 15. Diferença entre TDD e testes tradicionais Fonte: ANICHE (2012).
  • 16. Benefícios do TDD Foco no teste e não na implementação, melhorando o design das classes; O código já nasce testado, podendo identificar os impactos das novas funcionalidades; Simplicidade; Melhor entendimento do negócio; Maior confiança e valor agregado ao código.
  • 17. Quando não usar TDD O desenvolvedor já sabe como resolver o problema; Métodos de terceiros.
  • 18. Aplicação do TDD em um modelo de software Tecnologias utilizadas
  • 19. Aplicação do TDD em um modelo de software Protótipo: Sistema de gerenciamento de notas e frequência de uma instituição de ensino. Cadastrar as notas; Calcular a frequência; Calcular a média; Definir o resultado final do aluno; Calcular a média do exame final. RN2. Reprovação por frequência: frequência < 75% RN3. Aprovação: frequência >= 75% e média >= 7
  • 20. Avaliação dos resultados Feedback dos testes; As falhas são identificadas no início; O código é melhor estruturado e com isso se torna mais limpo; Maior confiança e qualidade.
  • 21. Conclusões Benefícios com a utilização do TDD; Quando o TDD não deve ser utilizado; Objetivos alcançados.
  • 22. Recomendações para trabalhos futuros Testes automatizados com Maven; Método tradicional Vs. TDD; BDD (Behavior Driven Development) e ATDD (Acceptance Test Driven Development) juntamente do Test Driven Development.