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

15

Gostaria de tentar implementar algum 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 ser executados com algo tão macio quanto os aplicativos da web.

Eu li e experimentei TDD e testes de unidade, mas os exemplos são funcionalidades "sólidas" e bastante simples, como conversores de moeda, e assim por diante.

Existem recursos que podem ajudar no teste de unidade de sistemas de gerenciamento e publicação de conteúdo? Que tal testar a unidade de um carrinho de compras / loja (produtos físicos e online)? AJAX?

Pesquisando no "Desenvolvimento Orientado para Testes na Web", apenas me traz artigos antigos de vários anos atrás, que cobrem os mesmos exemplos de funções semelhantes a calculadoras ou discussões sobre por que o TDD é melhor do que qualquer coisa (sem exemplos).

HorusKol
fonte
1
as ferramentas disponíveis dependerão do idioma. qual idioma você está usando?
Alb
Percebo isso - mas estava procurando mais artigos e ensaios para discussão, em vez de ferramentas específicas. Sei quais ferramentas estão disponíveis, mas gostaria de aprender a melhor maneira de usá-las para aplicativos orientados a front-end.
precisa saber é

Respostas:

2

Isenção de responsabilidade: não criei aplicativos da Web nem testei aplicativos da Web. A seguir, são apenas informações que eu absorvi em minhas caminhadas aleatórias na esfera da informação.

Construa seu aplicativo da Web de maneira a poder testar as regras de negócios isoladamente. Se você se encontra testando regras de negócios por meio da interface com o usuário, talvez seja hora de pensar em redesenhar.

Quando se trata de testar a interface do usuário, substitua suas regras de negócios por implementações simuladas que respondem de maneiras previsíveis.

As duas regras acima foram retiradas da palestra de Bob Martin no RailsConf 2010 . A conversa não é sobre TDD e a seção em que ele menciona os testes é curta e está no meio.

Existem ferramentas como JsUnit , JSSpec , YUI Test para testar JavaScript e Selenium e Watir para testar UI.

A Pragmatic Bookshelf tem alguns livros que cobrem o teste de aplicativos da web. Uma lista de livros marcados com Testing está em http://www.pragprog.com/categories/design . Os livros de teste de aplicativos da Web Pragmatic Bookshelf são focados principalmente em Ruby e Rails, mas devem ser genericamente aplicáveis.

Anthony Cramp
fonte
Um dos principais problemas do design da web é o teste de CSS - uma nova regra de CSS pode ter consequências indesejadas, mas apenas em uma página com conteúdo específico ... Você pode testar isso em unidade?
HorusKol
Boa pergunta. Eu sugiro que isso faça parte do seu teste de interface do usuário. Você desenvolve seus testes para incluir os vários conteúdos da página que você espera (e alguns que você não espera) e escreve suas aceitações adequadamente. Então, quando você introduzir novas regras de CSS, seu teste de interface do usuário deverá destacar quaisquer regressões. Talvez esse processo consuma muito tempo e você possa ser melhor atendido apenas com alguém fazendo testes de controle de qualidade no site e relatando problemas.
Anthony Cramp 22/03
3

O JavaScript é um livro muito bom de Christian Johansen, o desenvolvedor por trás do Sinon.js e Buster.js , que aborda assuntos como (retirado do site):

  • Noções básicas sobre testes de unidade e TDD
  • Escolhendo a estrutura de teste de unidade correta
  • Construindo APIs mais limpas, JavaScript modularizado e robusto
  • Melhorando continuamente o código através da refatoração
  • Cinco sessões práticas de TDD: Ajax, manipulação de DOM, Node.js e mais
  • Tour orientado a testes para JavaScript para desenvolvedores não familiarizados com o idioma

Atualmente, usamos o Sinon.js com o Mocha, mas estamos prontos para mudar para o Buster.js, pois seus recursos são realmente legais!

nuc
fonte
1

Em um projeto em que trabalhei recentemente, o desenvolvedor principal decidiu usar o Unity para simplificar a simulação e o TDD em um aplicativo da Web grande - eu acho que o uso do Unity geralmente será acompanhado pelo TDD é um aplicativo da Web.

Investigar o teste de unidade CMS provavelmente levará a um beco sem saída, porque simplesmente não há uma coisa razoável para zombar. Não vejo o que pode ser testado sem zombar do tráfego http das páginas - e nesse ponto o teste tem pouco valor.

Eu acho que uma regra prática útil para aplicativos da Web é que, se ele pode usar uma simulação para reduzir a complexidade, provavelmente pode ser testado em unidade.

Portanto, em um aplicativo da Web, você pode simular seu banco de dados para testar unidades diferentes partes da camada ou modelo de acesso a dados; você pode simular a entrada do usuário para testar a unidade ou a interface do usuário e assim por diante.

amelvin
fonte
0

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

http://www.obeythetestinggoat.com/

(ou http://shop.oreilly.com/product/0636920051091.do )

hwjp
fonte
O link está quebrado
Keldon Alleyne 26/06