TDD Test Driven Development: Uma investigaأ§أ£o sobre a ... torna-se necessأ،rio a realizaأ§أ£o de atividades

  • View
    0

  • Download
    0

Embed Size (px)

Text of TDD Test Driven Development: Uma investigaأ§أ£o sobre a ... torna-se necessأ،rio a...

  • UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ

    CURSO DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE

    SISTEMAS

    Anderson Yoshiaki Iwazaki da Silva

    TDD – Test Driven Development: Uma investigação sobre a

    utilização de TDD em projetos com framework JSF

    TRABALHO DE CONCLUSÃO DE CURSO

    Cornélio Procópio – PR

    2015

  • 2

    Anderson Yoshiaki Iwazaki da Silva

    TDD – Test Driven Development: Uma investigação sobre a utilização

    de TDD em projetos com framework JSF

    Trabalho de Conclusão de Curso de graduação, apresentado a

    disciplina de Trabalho de Conclusão de Curso 2, do Curso

    Superior em Análise e Desenvolvimento de Sistemas do

    Departamento de Computação (DACOM) da Universidade

    Tecnológica Federal do Paraná – UTFPR, como requisito para

    a obtenção do título de Tecnólogo.

    Orientador: Prof. Dr. Willian Massami Watanabe

    Cornélio Procópio – PR

    2015

  • 3

    FOLHA DE APROVAÇÃO

  • 4

    Dedico este trabalho à minha família.

  • 5

    AGRADECIMENTOS

    Agradeço a Deus, por me dar força e vida todos os dias.

    Ao meu Prof. Orientador Willian Massami Watanabe, que aceitou me auxiliar

    e colaborar em meu trabalho de conclusão de curso.

    Aos meus colegas de trabalho, que me recepcionaram de maneira

    agradável, como Fabio Dutra, Marco Fabris e Romulo Neves.

    A minha família, em especial a minha mãe que sempre esteve ao meu lado e

    me acompanhando nesta jornada longa.

    E aos meus colegas Airton Padilha Junior, Régis Stresser, Caroline Moliani,

    Emileide Cardoso, Bruna Fernandez, Hugo Aguiar, José Carlos Moraes entre outros

    não citados aqui, os meus sinceros agradecimentos, na qual me auxiliaram nos

    momentos de dificuldades e assim como os momentos felizes.

    Enfim, a todos que contribuíram para a realização deste trabalho de

    conclusão de curso, os meus sinceros agradecimentos.

  • 6

    RESUMO

    DA SILVA, Anderson Y. Iwazaki. TDD – Test Driven Development: Uma investigação

    sobre a utilização de TDD em projetos com framework JSF. 2015. Trabalho de

    Conclusão de Curso – Graduação Tecnológica no Curso de Análise e

    Desenvolvimento de Sistemas, Universidade tecnológica Federal do Paraná.

    Cornélio Procópio, 2015.

    O TDD possui como foco principal a programação orientada a teste, ou seja, o

    desenvolvimento terá início com a elaboração de um caso de teste. É argumentado

    que o uso de TDD leva ao desenvolvimento de um código mais simples e claro, além

    de disponibilizar uma maior quantidade de feedback ao desenvolvedor durante a

    etapa de codificação. Este trabalho tem como objetivo investigar as vantagens de se

    utilizar a prática do Test Driven Development (TDD), introduzindo-a no

    desenvolvimento de uma aplicação web. Foi realizado uma investigação no

    desenvolvimento de sistemas web utilizando o framework JSF. Com essa

    investigação foi possível identificar que a elaboração de testes pode ser crucial na

    entrega de um produto, o software, pois é através dela que identificam problemas

    que podem ocorrer em momentos de utilização do mesmo. Com relação a

    elaboração de códigos mais simples e claros no uso de TDD, os resultados

    apresentados não foram satisfatórios, visto que a complexidade do projeto que

    utiliza o TDD foi maior que os demais projetos que não utilizam a prática, na

    investigação.

    Palavras Chave: Teste de Software, TDD, métodos de teste de software.

  • 7

    ABSTRACT

    DA SILVA, Anderson Y. Iwazaki. TDD - Test Driven Development: An investigation

    into the use of TDD in projects with JSF framework. 2015. Work Completion of

    course - Technology Graduation Course in Systems Analysis and Development,

    Federal Technological University of Paraná. Cornelius, 2015.

    TDD consists of test-oriented programming, ie, the development will start with the

    development of a test case. It is argued that the use of TDD leads to the

    development of a simple and clear code, in addition to providing a greater amount of

    feedback to the developer during the encoding step. This paper aims to investigate

    the advantages of using the practice of Test Driven Development (TDD). The authors

    reporto n the conduction of na investigation within the development of JSF web

    applications. With this research it observed that the test preparation can be crucial in

    delivering a product, the software because it is through it that can identify problems

    that can occur during times of use thereof. In the investigation, the results were not

    satisfactory somewhat, since the complexity of the project is greater than the other.

    Key word: Software Testing, TDD, Method Software Testing.

  • 8

    LISTA DE GRÁFICO

    GRÁFICO 1 – Número de Linhas .......................................................................... 32

    GRÁFICO 2 – Complexidade ................................................................................ 33

    GRÁFICO 3 – Complexidade por pacote .............................................................. 34

    GRÁFICO 4 – Complexidade Ciclomática ............................................................. 36

  • 9

    LISTA DE FIGURAS

    Figura 1 – Defeito, Erro, Falha .............................................................................. 17

    Figura 2 – Modelo V .............................................................................................. 21

    Figura 3 – Ciclo desenvolvimento Vermelho-Verde-Refatora ............................... 26

    Figura 4 – Ciclo da Pesquisa-ação ........................................................................ 28

    Figura 5 – Fluxograma .......................................................................................... 35

    Figura 6: Grafo de Fluxo ....................................................................................... 35

    Figura 7 – Lógica Composta ................................................................................. 36

  • 10

    LISTA DE EXEMPLOS

    Exemplo 1 ............................................................................................................. 33

  • 11

    LISTA DE SIGLAS

    TDD Test Driven Development

    XP eXtreme Programming

    MVC Model-View-Controller

    JSF JavaServer Faces

    UTFPR Universidade Tecnológica Federal do Paraná

    APS Atividade Prática Supervisionada

  • 12

    SUMÁRIO

    1 INTRODUÇÃO ................................................................................................... 14

    1.1 Objetivo Geral e Específico ............................................................................. 15

    1.2 Justificativa ...................................................................................................... 15

    1.3 Estrutura do Projeto ........................................................................................ 16

    2 FUNDAMENTAÇÃO TEÓRICA ......................................................................... 17

    2.1 Erros, Defeitos e Falhas .................................................................................. 17

    2.2 Teste de Software ........................................................................................... 18

    2.3 Estratégia de Teste de Software ..................................................................... 19

    2.3.1 Teste de Unidade ......................................................................................... 19

    2.3.2 Teste de Integração...................................................................................... 19

    2.3.3 Teste de Sistema ......................................................................................... 20

    2.3.4 Teste de Validação ....................................................................................... 21

    2.3.5 Modelo V ...................................................................................................... 21

    2.4 Abordagem de Teste de Software ................................................................... 22

    2.5 Visões Interna e Externa do Teste .................................................................. 23

    2.5.1 Teste Caixa-Branca / Estrutural ................................................................... 23

    2.5.2 Teste Caixa-Preta / Funcional ...................................................................... 23

    2.6 Métodos Ágeis ................................................................................................. 24

    2.6.1 Extreme Programming (XP) ......................................................................... 24

    2.6.2 TDD .............................................................................................................. 25

    3 TRABALHOS RELACIONADOS ........................................................