Garantia da Qualidade da Programação de Software Utilizando a Metodologia de Desenvolvimento Dirigido por Testes TDD – Test Driven Development

  • View
    5

  • Download
    1

Embed Size (px)

DESCRIPTION

Garantia da Qualidade da Programação de SoftwareUtilizando a Metodologia deDesenvolvimento Dirigido por TestesTDD – Test Driven Development

Text of Garantia da Qualidade da Programação de Software Utilizando a Metodologia de Desenvolvimento...

  • UNIVERSIDADE CATLICA DE SANTOS

    FACULDADE DE ENGENHARIA - FENGE

    CINCIA DA COMPUTAO

    TRABALHO DE CONCLUSO DE CURSO II

    Garantia da Qualidade da Programao de Software

    Utilizando a Metodologia de

    Desenvolvimento Dirigido por Testes

    TDD Test Driven Development

    Prof. Orientador: Joo Batista Carneiro Aluna: Tatiana Costa Rodrigues Novembro / 2003

  • Garantia da Qualidade da Programao de Software

    Utilizando a Metodologia de

    Desenvolvimento Dirigido por Testes

    TDD Test Driven Development

    ___________________________________ Aluna: Tatiana Costa Rodrigues

    ____________________________________ Prof. Orientador: Joo Batista Carneiro

  • Resumo Qualidade de Software um requisito que preocupa a maioria das empresas de

    desenvolvimento de software. Todavia, muitas empresas no se preocupam em

    aplicar esforos para garantir que os produtos do software sejam gerados com

    qualidade. Geralmente essas empresas no utilizam processos de desenvolvimento

    de software ou usam processos ineficazes, que comprometem o cronograma do

    projeto e conseqentemente a qualidade do software.

    As Metodologias geis foram criadas para enfrentar a burocracia das metodologias

    tradicionais e assim conquistar desenvolvedores de software que rejeitam as

    metodologias tradicionais.

    A Extreme Programming (XP) uma metodologia gil de desenvolvimento de

    software, que possui prticas simples e se preocupa em entregar ao cliente software

    com qualidade.

    O Desenvolvimento Dirigido por Testes (TDD) uma metodologia direcionada

    atravs da prtica de testes da XP, e consiste em criar cdigos de teste para guiar o

    desenvolvedor na criao dos cdigos de design, desenvolvendo com simplicidade,

    confiana e qualidade.

    Palavras-Chave

    Software, Qualidade, Processos, SQA, Testes, Metodologias geis, XP, TDD,

    Anlise, Design, Simplicidade, Confiana, Produtividade, JAVA, JUnit

  • Abstract

    Software quality is a requirement that worries most of the software development

    companies. Still, much companies dont care in apply efforts to certify that the

    software products have been produced with quality. Usually, these companies dont

    use software development process or do it in a non-effective process that

    compromise the projects schedule and consequently the softwares quality.

    The Agile Methodologies were created to confront with the bureaucracy of the

    traditional methodologies and then to conquer softwares developers that reject the

    traditional methodologies.

    The Extreme Programming (XP) is a software development agile methodology that

    has simple practices and worries in delivering to the customer software with quality.

    The Test Driven Development (TDD) is a methodology directed through XP test

    practice and consists in produce test-code to guide the developer in the production of

    design- code, developing with simplicity, confidence and quality.

    Keywords

    Software, Quality, Process, SQA, Test, Agile Methodologies, XP, TDD, Analysis,

    Design, Simplicity, Confidence, Productivity, JAVA, Junit

  • Lista de Figuras Fig. 1 Prticas XP [Bec, 2000] _____________________________________________________ 19 Fig. 2 - TestCadastro.Java __________________________________________________________ 40 Fig. 3 Compilando TestCadastro.Java _______________________________________________ 41 Fig. 4 - Cadastro.java ______________________________________________________________ 41 Fig. 5 Compilando Cadastro.java ___________________________________________________ 41 Fig. 6 Compilando TestCadastro.java ________________________________________________ 42 Fig. 7 - Cadastro.java ______________________________________________________________ 42 Fig. 8 Compilando todas as classes _________________________________________________ 42 Fig. 9 Comando de execuo do JUnit _______________________________________________ 43 Fig. 10 Execuo do JUnit ________________________________________________________ 43 Fig. 11 - Cadastro.java _____________________________________________________________ 44 Fig. 12 Compilando todas as classes e executando o JUnit ______________________________ 44 Fig. 13 Execuo do JUnit ________________________________________________________ 45 Fig. 14 - TestCadastro.Java _________________________________________________________ 46 Fig. 15 Compilando TestCadastro.java _______________________________________________ 46 Fig. 16 - Cadastro.java _____________________________________________________________ 47 Fig. 17 Compilando todas as classes e executando o JUnit ______________________________ 47 Fig. 18 Execuo do JUnit ________________________________________________________ 48 Fig. 19 - Cadastro.java _____________________________________________________________ 49 Fig. 20 Compilando todas as classes e executando o JUnit ______________________________ 49 Fig. 21 Execuo do JUnit ________________________________________________________ 50 Fig. 22 - TestCadastro.java _________________________________________________________ 51 Fig. 23 Compilando TestCadastro.java _______________________________________________ 52 Fig. 24 - Cadastro.Java ____________________________________________________________ 52 Fig. 25 - Compilando todas as classes e executando o JUnit ______________________________ 53 Fig. 26 Execuo do JUnit ________________________________________________________ 53 Fig . 27 - Cadastro.java ____________________________________________________________ 54 Fig. 28 Compilando todas as classes e executando o JUnit ______________________________ 54 Fig. 29 Execuo do JUnit ________________________________________________________ 55

  • Sumrio 1. Introduo _____________________________________________1

    1.1 Contextualizao _____________________________________________________________ 1 1.2 Problema____________________________________________________________________ 3 1.3 Problematizao ______________________________________________________________ 3 1.4 Objetivos ____________________________________________________________________ 3

    1.4.1 Objetivo Geral ____________________________________________________________ 3 1.4.2 Objetivos Especficos _______________________________________________________ 4

    1.5 Relevncia ou Justificativa ______________________________________________________ 5

    2. Reviso Bibliogrfica ____________________________________5 2.1 Qualidade de Software _________________________________________________________ 5 2.2 Metodologias geis ___________________________________________________________ 6 2.3 Extreme Programming XP _____________________________________________________ 7 2.4 Test Driven Development TDD _________________________________________________ 9

    3. Projeto _______________________________________________11 3.1 A Garantia da Qualidade de Software ____________________________________________ 11

    3.1.1 Qualidade de Software_____________________________________________________ 11 3.1.2 Garantia da Qualidade de Software - SQA _____________________________________ 12 3.1.3 Testes de Software _______________________________________________________ 13 3.1.4 Padres de Qualidade _____________________________________________________ 14

    3.2 Metodologias geis Agile Methodology __________________________________________ 15 3.3 Extreme Programming - XP ____________________________________________________ 17

    3.3.1 Valores da XP ___________________________________________________________ 19 3.3.1.1 Simplicidade _________________________________________________________ 20 3.3.1.2 Comunicao ________________________________________________________ 21 3.3.1.3 Feedback ___________________________________________________________ 22 3.3.1.4 Coragem ____________________________________________________________ 23

    3.3.2 Prticas da XP ___________________________________________________________ 23 3.3.2.1 The Planning Game____________________________________________________ 23 3.3.2.2 Small Releases _______________________________________________________ 24 3.3.2.3 Metaphor ____________________________________________________________ 25 3.3.2.4 Simple Design ________________________________________________________ 26 3.3.2.5 Testing ______________________________________________________________ 27 3.3.2.6 Refactoring __________________________________________________________ 28 3.3.2.7 Pair Programming _____________________________________________________ 29 3.3.2.8 Collective Ownership ___________________________________________________ 29 3.3.2.9 Continuous Integration _________________________________________________ 30 3.3.2.10 40 Hour Week______________________________________________________ 31 3.3.2.11 On-site Customer ____________________________________________________ 31 3.3.2.12 Coding Standards ____________________________________________________ 32

    3.3.3 Os papis na XP _________________________________________________________ 32 3.3.3.1 A equipe do cliente ____________________________________________________ 33 3.3.3.2 A equipe de desenvolvimento ____________________________________________ 33

    3.4. Test Driven Development - TDD ________________________________________________ 34 3.4.1 Como funciona o TDD? ____________________________________________________ 35 3.4.2 Benefcios do TDD. _______________________________________________________ 38 3.4.3 A Importncia de Ferramentas Automatizadas de Teste __________________________ 38

    3.5 Implementao de Casos de Teste ______________________________________________ 40 3.6 Concluso __________________________________________________________________