Risorse per lo sviluppo guidato dai test in applicazioni Web? [chiuso]


15

Vorrei provare a implementare alcuni TDD nelle nostre applicazioni Web per ridurre le regressioni e migliorare la qualità di rilascio, ma non sono convinto di quanto bene i test automatizzati possano eseguire con qualcosa di così soffice come le applicazioni web.

Ho letto e provato TDD e unit test, ma gli esempi sono funzionalità "solide" e piuttosto semplici come i convertitori di valuta, e così via.

Ci sono risorse che possono aiutare con i sistemi di gestione e pubblicazione dei contenuti di testing delle unità? Che ne dite di test unitari di un carrello / negozio (prodotti fisici e online)? AJAX?

Googling per "Web Test Driven Development" mi porta solo vecchi articoli di diversi anni fa o che coprono gli stessi esempi di funzioni simili a calcolatrici o discussioni sul perché TDD sia migliore di qualsiasi cosa (senza alcun esempio).


1
gli strumenti disponibili dipenderanno dalla lingua. che lingua (e) stai usando?
Alb

Me ne rendo conto, ma stavo cercando più articoli di discussione e saggi piuttosto che strumenti specifici. So quali strumenti sono disponibili, ma vorrei sapere come utilizzarli al meglio per le applicazioni front-end.
HorusKol

Risposte:


2

Dichiarazione di non responsabilità: non ho creato applicazioni Web né ho testato applicazioni Web. Quelle che seguono sono solo bocconcini di informazioni che ho assorbito nelle mie passeggiate casuali all'interno della sfera dell'informazione.

Costruisci la tua applicazione web in modo tale da poter testare le regole aziendali in modo isolato. Se ti ritrovi a testare le regole di business attraverso l'interfaccia utente, potrebbe essere il momento di pensare alla riprogettazione.

Quando si tratta di testare l'interfaccia utente, sostituire le regole aziendali con implementazioni simulate che rispondono in modo prevedibile.

Le due regole precedenti sono tratte dal discorso di Bob Martin a RailsConf 2010 . Il discorso non riguarda TDD e la sezione in cui menziona i test è breve e da qualche parte nel mezzo.

Esistono strumenti come JsUnit , JSSpec , YUI Test per testare JavaScript e Selenium e Watir per testare l'interfaccia utente.

La libreria Pragmatic ha alcuni libri che coprono i test delle applicazioni web. Un elenco di libri taggati con Testing è disponibile all'indirizzo http://www.pragprog.com/categories/design . I libri di test dell'app Web Pragmatic Bookshelf sono principalmente incentrati su Ruby e Rails ma dovrebbero essere genericamente applicabili.


Un grosso problema con il web design è il test CSS: una nuova regola CSS può avere conseguenze non intenzionali, ma solo su una pagina con contenuto specifico ... Puoi testarlo?
HorusKol

Buona domanda. Vorrei suggerire che questo fa parte del test dell'interfaccia utente. Sviluppi i tuoi test per includere i vari contenuti della pagina che ti aspetti (e alcuni che non ti aspetti) e scrivere le tue accettazioni in modo appropriato. Quindi, quando si introducono nuove regole CSS, il test dell'interfaccia utente dovrebbe evidenziare eventuali regressioni. Forse questo processo richiede troppo tempo e potresti essere meglio servito solo dal fatto che qualcuno faccia test di qualità sul sito e riferisca problemi.
Anthony Cramp,

3

Test-Driven JavaScript Development è un bel libro di Christian Johansen, lo sviluppatore di Sinon.js e Buster.js , che tratta argomenti come (tratto dal sito Web):

  • Comprensione dei test unitari e del TDD
  • Scelta del giusto framework di unit test
  • Creazione di API più pulite, JavaScript modulare e robusto
  • Miglioramento continuo del codice attraverso il refactoring
  • Cinque sessioni pratiche di TDD: Ajax, manipolazione DOM, Node.js e altre
  • Tour guidato da JavaScript a test per sviluppatori che non hanno familiarità con la lingua

Attualmente utilizziamo Sinon.js con Mocha, ma siamo pronti per passare a Buster.js, poiché le sue funzionalità sono davvero pulite!


1

Su un progetto su cui ho lavorato di recente, lo sviluppatore principale aveva deciso di utilizzare Unity in modo che il beffardo e il TDD fossero semplificati in un'applicazione Web di grandi dimensioni.

Indagare sull'unità di test CMS probabilmente porterà a un vicolo cieco perché semplicemente non c'è una cosa ragionevole da deridere. Non vedo cosa può essere testato senza deridere il traffico http verso le pagine - ea quel punto il test ha poco valore.

Ritengo che un'utile regola empirica con le applicazioni web sia che se può usare un finto per ridurre la complessità, allora può probabilmente essere testato in unità.

Quindi in un'applicazione web puoi deridere il tuo database per testare unità diverse parti del tuo livello o modello di accesso ai dati; puoi deridere l'input dell'utente per testare l'unità la vista o l'interfaccia utente e così via.


0

Ho scritto un libro su TDD per lo sviluppo web con Python + Django. copre TDD, entrambi con test end-to-end / funzionali (selenio) e test di "unità" di livello inferiore. Copro anche pratiche di sviluppo moderne come come integrare git nel tuo flusso di lavoro, come implementare su un server e automatizzare e testare ciò, integrazione continua, simulazioni e isolamento dei test e molto altro:

http://www.obeythetestinggoat.com/

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


Il collegamento è interrotto
Keldon Alleyne,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.