Recursos para desenvolvimento orientado a teste em aplicativos da Web? [fechadas]

15

Eu gostaria de tentar implementar alguns TDD em nossos aplicativos da Web para reduzir regressões e melhorar a qualidade da versão, mas não estou convencido de quão bem os testes automatizados podem funcionar com algo tão fofo quanto os aplicativos da Web.

Li e testei o TDD e o teste unitário, mas os exemplos são funcionalidades 'sólidas' e simples, como conversores de moeda e assim por diante.

Existe algum recurso que possa ajudar nos sistemas de gerenciamento de conteúdo e publicação de testes de unidade? Como cerca de unidade de teste de um carrinho de compras / loja (produtos físicos e online)? AJAX?

Pesquisando por "Web Driven Development" só me pega artigos antigos de vários anos atrás, abrangendo os mesmos exemplos de funções semelhantes a uma calculadora ou discussões sobre por que o TDD é melhor do que qualquer coisa (sem nenhum exemplo).

    
por HorusKol 22.03.2011 / 00:11
fonte

4 respostas

2

Aviso importante: não criei nenhum aplicativo da Web nem testei nenhum aplicativo da web. A seguir, são apenas informações que eu absorvi em minhas caminhadas aleatórias dentro da esfera da informação.

Construa seu aplicativo da Web de maneira a poder testar as regras de negócios de forma isolada. Se você estiver testando regras de negócios por meio da interface do usuário, talvez seja hora de pensar em redesenhar.

Quando se trata de testar a interface do usuário, substitua as regras de negócios por implementações falsas que respondem de maneira previsível.

As duas regras acima foram tiradas da palestra de Bob Martin na RailsConf 2010 . A conversa não é sobre TDD e a seção onde ele menciona o teste é curta e em algum lugar no meio.

Existem ferramentas como JsUnit , JSSpec , Teste YUI para testar JavaScript e Selênio e Watir para testar a interface do usuário.

A Pragmatic Bookshelf tem alguns livros sobre testes de aplicativos da web. Uma lista de livros marcados com o teste está no link . Os livros de testes de aplicativos da Web Pragmatic Bookshelf estão principalmente focados em Ruby e Rails, mas devem ser genericamente aplicáveis.

    
por 22.03.2011 / 01:14
fonte
3

O Desenvolvimento de JavaScript orientado a testes é um livro muito legal de Christian Johansen, o desenvolvedor por trás de Sinon.js e Buster.js , que abrange assuntos como (retirados do site):

  • Understanding unit testing and TDD
  • Choosing the right unit testing framework
  • Building cleaner APIs, modularized and robust JavaScript
  • Continuously improving code through refactoring
  • Five practical TDD sessions: Ajax, DOM manipulation, Node.js and more
  • Test-driven tour to JavaScript for developers not familiar with the language

Atualmente, usamos o Sinon.js com o Mocha, mas estamos prontos para mudar para o Buster.js, já que seus recursos são realmente interessantes!

    
por 08.10.2012 / 20:49
fonte
1

Em um projeto em que trabalhei recentemente, o principal desenvolvedor decidiu usar o Unity para que o mocking e o TDD fossem simplificados em um grande aplicativo da Web - Eu acho que o uso de Unity frequentemente será acompanhado por TDD é uma aplicação web.

Investigando o teste unitário O CMS provavelmente levará a um beco sem saída porque simplesmente não há uma coisa razoável a ser ridicularizada. Eu não vejo o que pode ser testado sem zombar do tráfego http para as páginas - e nesse ponto o teste tem pouco valor.

Acredito que uma regra prática útil com aplicativos da Web é se ela pode usar um simulado para reduzir a complexidade. provavelmente será testado na unidade.

Assim, em um aplicativo da Web, você pode fazer uma simulação do seu banco de dados para testar diferentes partes de sua camada ou modelo de acesso a dados; você pode simular a entrada do usuário na unidade para testar a visualização ou a interface do usuário e assim por diante.

    
por 22.03.2011 / 01:50
fonte
0

Eu escrevi um livro sobre o TDD para desenvolvimento web com Python + Django. abrange o TDD, tanto com testes funcionais de ponta a ponta (selênio) quanto com testes de "unidade" de nível inferior. Eu também abordo as práticas modernas de desenvolvimento, como integrar o git em seu fluxo de trabalho, como implantar em um servidor e automatizar e testar isso, integração contínua, simulação e teste de isolamento, e muito mais:

link

(ou link )

    
por 01.04.2013 / 15:50
fonte