Risorse per lo sviluppo orientato ai test nelle applicazioni Web? [chiuso]

15

Vorrei provare a implementare alcuni TDD nelle nostre applicazioni web per ridurre le regressioni e migliorare la qualità del rilascio, ma non sono convinto del modo in cui i test automatizzati possono eseguire con qualcosa di soffice come le applicazioni web.

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

Esistono risorse che possono essere d'aiuto con i test di unità e i sistemi di pubblicazione dei contenuti? Che ne dici di testare l'unità di un carrello / negozio (prodotti fisici e online)? AJAX?

Cercare su Google "Web Test Driven Development" mi porta solo vecchi articoli di diversi anni fa che coprono gli stessi esempi di funzioni simili a calcolatrici o discussioni sul perché TDD è meglio di qualsiasi cosa (senza esempi).

    
posta HorusKol 22.03.2011 - 00:11
fonte

4 risposte

2

Big disclaimer: non ho creato nessuna applicazione web né ho provato alcuna applicazione web. Le seguenti sono solo piccole informazioni che ho assorbito nelle mie passeggiate casuali all'interno della sfera informativa.

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

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

Le suddette due regole sono tratte da discorso di Bob Martin al 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 , Test YUI per testare JavaScript e Selenium e Watir per testare l'interfaccia utente.

Lo Pragmatic Bookshelf contiene alcuni libri che trattano i test delle applicazioni web. Un elenco di libri taggati con Testing è disponibile all'indirizzo link . I libri di prova delle app Web Prashmatic Bookshelf si concentrano principalmente su Ruby e Rails ma dovrebbero essere applicabili genericamente.

    
risposta data 22.03.2011 - 01:14
fonte
3

Sviluppo JavaScript test-driven è un libro davvero carino di Christian Johansen, lo sviluppatore dietro Sinon.js e Buster.js , che copre argomenti come (presi dal sito web):

  • 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

Attualmente usiamo Sinon.js con Mocha, ma siamo pronti a passare a Buster.js, dal momento che le sue funzionalità sono davvero accurate!

    
risposta data 08.10.2012 - 20:49
fonte
1

In un progetto su cui ho lavorato di recente, lo sviluppatore principale aveva deciso di utilizzare Unity in modo tale che mocking e TDD fossero semplificati in una grande applicazione web - Penso che l'uso di Unity sarà spesso accompagnato da TDD è un'applicazione web.

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

Penso che una utile regola empirica con le applicazioni web sia se può utilizzare un simulazione per ridurre la complessità, quindi può probabilmente è stato testato unitamente.

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

    
risposta data 22.03.2011 - 01:50
fonte
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 "unità" di livello inferiore. Tratto anche le moderne pratiche di sviluppo come l'integrazione di git nel tuo flusso di lavoro, come distribuire su un server e automatizzarlo e testarlo, integrazione continua, derisioni e isolamento dei test e molto altro ancora:

link

(o link )

    
risposta data 01.04.2013 - 15:50
fonte

Leggi altre domande sui tag