DevMedia - asp.net, Java, Delphi, SQL e web Design, tudo em um só lugar!
Bem vindo a DevMedia!
LOGIN:     SENHA:
 
 

  Este é um post disponível para assinantes MVP
Este post também está disponível para assinantes da Java Magazine DIGITAL
ou para quem possui Créditos DevMedia.  Clique aqui para saber mais!

TDD: Evidenciando a importância do Teste - Revista Java Magazine 92

Neste artigo veremos como os testes podem agregar valor ao desenvolvimento através da utilização do TDD. Mitos, equívocos, vantagens e a comparação entre TDD e a metodologia tradicional são alguns dos assuntos abordados.

[fechar]

Você não gostou da qualidade deste conteúdo?

(opcional) Você gostaria de comentar o que não lhe agradou?





Java Magazine 92

[Artigo disponível no Leitor Digital DevMedia. Clique aqui para acessá-lo]

> Clique aqui para ler todos os artigos da Java Magazine 92


A metodologia ágil (em inglês Agile Modeling, ou AG) surgiu no início da década de 70 após o fracasso de alguns grandes projetos de software. A deficiência no gerenciamento das atividades, atrasos na entrega e sistemas que não refletiam a verdadeira necessidade do cliente eram características habitualmente atribuídas à metodologia tradicional.

A existência de uma crise do software não foi um consenso entre os profissionais da área naquela época. Mas para tornar possível a solução dos problemas enfrentados, foi criada uma nova metodologia com uma abordagem bem diferenciada.

Os métodos ágeis são um conjunto de práticas onde os princípios e valores são aplicados por profissionais de software no dia a dia e seguidos como guia. Não é um processo que define detalhadamente como criar um modelo, mas indica caminhos para obtenção de melhores resultados.

A expressão “Métodos Ágeis” é conhecida há muito tempo, porém, apenas recentemente começou a se tornar popular no Brasil. Ser ágil geralmente é confundido com falta de controle e completa­­­ anarquia, quando na verdade, ter agilidade, ao contrário do que parece, exige bastante organização.

O objetivo da Metodologia Ágil é acelerar o desenvolvimento do software através do desenvolvimento de versões mínimas. Dessa forma, as funcionalidades são desenvolvidas por partes, há uma interatividade direta com o cliente e os testes são realizados em paralelo ao ciclo de desenvolvimento.

Agilidade envolve disciplina e trabalho coordenado, podendo tratar de projetos de vários segmentos e portes. Agilidade é também a habilidade de criar e responder a mudanças com respeito ao resultado financeiro do projeto em um turbulento ambiente de negócios.

Em 2001, um grupo de profissionais da área de desenvolvimento de software se reuniu para discutir assuntos relacionados à agilidade. Como consequência desse encontro, foram definidas boas práticas para utilização dos Métodos Ágeis no gerenciamento de projetos. Essas práticas foram denominadas “Manifesto Ágil”.

A metodologia ágil Extreme Programming (XP) foi popularizada na década de 90 e tem sido muito utilizada por pequenas e médias empresas nos Estados Unidos. Atualmente, também vem sendo adotada com bastante frequência no Brasil.

O processo do XP é composto por quatro atividades: Planejamento, Projeto, Codificação e Teste; e por quatro diretrizes: Feedback, Comunicação, Simplicidade e Coragem. Existem ainda outros pontos fortes na metodologia, citados na Figura 1, que também contribuem bastante para um ciclo de desenvolvimento de software ágil.

 

Uma técnica que vem sendo muito utilizada em conjunto com a metodologia XP é o Test Driven Development (TDD), numa tradução livre Desenvolvimento Orientado a Testes. Ela não é uma técnica de teste como muitos pensam. É uma abordagem voltada para ajudar em todo o ciclo de desenvolvimento do software.

Como funciona o TDD?

O Desenvolvimento Orientado a Testes tem como objetivo obter um código “limpo”, com qualidade e que funcione. O grande diferencial dessa técnica é que a evolução do código é gradativa (cresce conforme o problema), além disso, os testes automatizados são escritos antes mesmo de a solução existir.

 

O processo do TDD, conhecido como Teste-Codificação-Refatoração, ou Vermelho-Verde-Refatoração, demonstrado na Figura 2, é bastante simples e se baseia em três premissas básicas:

1. Escreva um teste que falhe (vermelho): é a fase inicial do ciclo. O primeiro passo antes de codificar é entender a necessidade do cliente (o negócio). Neste momento, realize a análise dos requisitos e ordene as funcionalidades que serão desenvolvidas de acordo com as prioridades do cliente.

"

A exibição deste artigo foi interrompida.

  Este é um post disponível para assinantes MVP
Este post também está disponível para assinantes da Java Magazine DIGITAL
ou para quem possui Créditos DevMedia.  Clique aqui para saber mais!


Devmedia - Equipe De Moderacao
(Sem mini-bio cadastrado)
O que você achou deste post?

    6 COMENTÁRIOS

[Fechar]

Este post é fechado - você precisa ter acesso ao post para incluir um comentário.



Moacir Pereira Ramos Junior
Caros,
Tem alguma coisa errada com o metodo compareTo da Listagem 3. Ele é implementado a toa porque o metodo utilizado efetivamente é compareTo da classe BigDecimal. Por favor, corrijam-me se eu estiver errado.
[há +1 ano] - Responder

 

Dyego Souza Do Carmo
Na realiadde ele vai ser utilizado em um comparator para uma possivel reorganização , entao vc deve utilizar a interface mesmo que nao queira altera-la :)

Valeu !
[há +1 ano] - Responder
 

[autor] Devmedia - Equipe De Moderacao
*resposta do autor*

Moacir,
para corrigir esse problema é preciso apagar a implementação da interface Comparable, o método sobrescrito compareTo() da classe Conta e substituir o método sacar() pelo apresentado a seguir:

public BigDecimal sacar(BigDecimal montante) throws SaldoInsuficienteException {
if (new BigDecimal(getSaldo().doubleValue()){
@Override
public int compareTo(BigDecimal valor) {
if(getSaldo().doubleValue() == valor.doubleValue()) {
return 0;
} else if (getSaldo().doubleValue() >= valor.doubleValue()) {
return 1;
} else {
return -1;
}

}
}.compareTo(montante) == -1)
throw new SaldoInsuficienteException ("Saldo insuficiente para sacar");
setSaldo(getSaldo().subtract(montante) );
return getSaldo();
}

Repare que o método compareTo() foi declarado internamente na condicional "if" que recupera o saldo.
Sabemos que essa não é a melhor prática, mas o exemplo é apenas didático, como citado no artigo."
[há +1 ano] - Responder
 

Douglas Vidotto Carvalho
Esse artigo sobre TDD ficou muito bom. A revista tem abordado bastante sobre esse tópico nos últimos números. Acredito que seria legal se houvesse uma abordagem um pouco mais avançada na criação de testes como o uso das ferramentas mocks para realizá-los como o framework EasyMock.
[há +1 ano] - Responder

 

[autor] Devmedia - Equipe De Moderacao
Sua sugestão será considerada.

Obrigado pelo comentário.

Atenciosamente,

Equipe Devmedia.
[há +1 ano] - Responder
 

Hedley Luna Gois Oria
Concordo plenamente. Acho que um artigo mais avançado seria bem legal.
[há +1 ano] - Responder
 
Cursos relacionados
Publicidade
[Fechar]

Você precisa estar logado para dar um feedback.

Clique aqui para efetuar o login
[Fechar]


Este post está fechado. Saiba mais sobre a assinatura MVP!
web-03
DevMedia  |  Anuncie  |  Fale conosco
Hospedagem web por Porta 80 Web Hosting
2013 - Todos os Direitos Reservados a web-03