TESTE DE SOFTWARE COM XP Isac Aguiar isacaguiar.com.br isacaguiar@gmail.com
Contexto Inúmeros processos de software Evolução das formas/metodologias de desenvolvimento de software Dificuldades encontradas nos modelos baseados em produção industrial Dificuldade de adaptação O processo complexo com maior perca de tempo e dinheiro
Modelagem Ágil Metodologia baseada na prática para modelagem e documentação eficazes de sistemas baseados em software. É um conjunto de práticas guiado por princípios e valores para profissionais de software aplicarem no seu dia a dia[...]. Em outras palavras, não define procedimentos detalhados sobre como criar um determinado tipo de modelo. Em vez disso, fornece conselhos sobre como ser um modelador eficientes. AMBLER, 2004
Comparativo Modelos Modelos Tradicionais Previsibilidade Adaptabilidade Modelos Ágeis Controlar Mudanças Planejamento contínuo Burocráticos Documentação essencial Excesso de documentação Mudanças rápidas Enfatizam os aspectos de engenharia do desenvolvimento Enfatizam os aspectos humanos de desenvolvimento
Esboço de um diagrama UML
Diagrama UML em ferramenta
XP Extreme Programming Desenvolvimento focado no cliente, com times pequenos e trabalhos diários Consecutivas modelagem do sistema para melhorar a performance e reagir melhor a mudança Enquanto as práticas individuais são aplicadas em muitas situações, menos atenção é dada as práticas de gerência
Valores fundamentais Comunicação Fundamental para atividades realizadas por equipes Simplicidade A maneira mais simples de realizar a tarefa. Feedback Realização de testes unitários, na etapa de codificação Coragem Tomar decisões que parecem ser erradas mais acabam se mostrando valiosas
Práticas XP
Teste Unitário Nível de teste mais próximo das menores unidades de software Processo de testar as menores unidades de software desenvolvidas (pequenas partes ou unidades do sistema) As funções individuais ou métodos são o tipo mais simples de componente.
JUnit Framework open-source, criado por Eric Gamma e Kent Beck Suporta à criação de testes automatizados na linguagem de programação Java Facilita a criação de código para automação de testes unitários, com apresentação dos resultados Verifica o correto funcionamento de cada método, exibindo erros ou falhas Tem o objetivo de evitar bug s oriundos de códigos mau escritos e propiciar uma melhor qualidade
Vantagens do JUnit Criação rápida de código de teste possibilitando um aumento na qualidade do desenvolvimento e teste; Amplamente utilizado pelos desenvolvedores da comunidade código-aberto, possuindo um grande número de exemplos; Uma vez escritos, os testes são executados rapidamente sem que, para isso, seja interrompido o processo de desenvolvimento; Checa os resultados dos testes e fornece uma resposta imediata; Livre e orientado a objetos.
Configuração no Eclipse Baixar o arquivo.jar http//www.junit.org Adicionar o.jar do JUnit ao projeto <<projeto>>/ Properties /Java Build Path/ Add External JARs Externo
Adicionando Biblioteca
Arquitetura JUnit
Classe TestCase command O padrão (pattern) permite encapsular um pedido (de teste) como objeto e fornece um método run(). run() Cria um contexto (método setup); em seguida executa o código usando um contexto e verifica o resultado (método runtest); e por fim, limpa o contexto (método teardown). setup() Método chamado antes de cada método, pode ser utilizado para abrir uma conexão de banco de dados. teardown() Método chamado depois de cada método de teste, usado para desfazer o que setup() fez, por exemplo fechar uma conexão de banco de dados. runtest() Método responsável por controlar a execução de um teste particular.
Classe TestSuite Com esta classe, o desenvolvedor executa um único teste com vários métodos de testes e registra os resultados num TestResult. composite O padrão (pattern) permite tratar objetos individuais e composições de objetos de forma uniforme. addtest() Método responsável em adicionar um novo teste a rotina.
Analisando o resultado
Dúvidas
Referências Bibliográficas (Artigo) Gestão de Teste Ferramentas Open Source e melhores práticas na gestão de teste (Monografia) Extreme Programming: Uma abordagem em Teste de Software Utilizando Xunit (Artigo) Criando teste com Junit (Link) Site oficial do JUnit: http://www.junit.org (Link) Wikipédia: http://pt.wikipedia.org/wiki/junit (Manual) JUnit: http://junit.sourceforge.net/doc/cookstour/cookstour.htm