TDD e automazione dei test in applicazioni strongmente dipendenti da database e input dell'utente [chiuso]

4

Recentemente ho letto online sulla programmazione eXtreme e sulle pratiche agili. Desidero adattarli. Tuttavia la maggior parte del mio codice è tutto in PHP, che è la normale applicazione web di tipo CRUD. Inoltre ho un framework web utente come CodeIgniter, che astrae anche molte delle funzionalità principali.

Per riassumere, come posso implementare lo sviluppo basato su test in applicazioni che sono strongmente dipendenti dai database e dagli input dell'utente, in particolare nella parte di automazione del test?

Vorrei ora porre questa domanda sul mio progetto attuale

Sto lavorando ad un'applicazione web del forum del college. Ha le funzionalità di base dei social network e include anche il server XMPP nel suo stack. I seguenti componenti costituiscono il mio stack di applicazioni:

  1. Server web Apache con mod_php abilitato.
  2. PHP come linguaggio di back-end. (Framework CodeIgniter)
  3. Database MySql.
  4. Server Openfire per XMPP.
  5. HTML, CSS, jQuery e Strophe (per XMPP) sul front-end e
  6. Un middleware Python per XMPP.

Attualmente sto lavorando senza alcun test o ciclo di build. Io uso SVN come sistema di controllo della versione. E desidero includere TDD e CI nel processo di sviluppo. Ho già del codice nel progetto. Quali strategie e migliori pratiche dovrei adottare per l'implementazione di TDD e IC in questo tipo di progetto?

PS: Siamo una squadra di tre persone che lavorano su un progetto autonomo in quanto tale, non abbiamo altre persone che influenzano il design (a parte gli utenti finali).

Questo è quello che ho fatto per iniziare a implementare

Ho ricontrollato la funzione di login che stava prendendo il nome utente e la password passati dal front-end e quindi applica i controlli di integrità, controlla il nome utente valido, quindi la password valida, Se sì imposta il cookie di sessione e reindirizza l'utente a una pagina basato sul suo ruolo.

Ho interrotto la funzione sopra in tre per prendere nome utente e password e controllare se sono corretti, un altro per impostare i cookie e l'ultimo che prende i valori dal front-end e applica i controlli di integrità, chiama le altre due funzioni e quindi reindirizza.

Potrei scrivere test solo per la prima funzione. Basta?

    
posta mlakhara 30.12.2012 - 00:16
fonte

1 risposta

3

PHPUnit ti aiuterà a testare la tua applicazione.

Di solito, le persone scrivono test unitari per verificare la singolarità delle loro regole di business, i metodi effettivi che hanno una logica di business. Questa sarebbe la parte unitaria dei tuoi test.

Puoi prendere in giro il database o scrivere test funzionali o di integrazione per testare le funzionalità su uno spazio più ampio.

PHPUnit ti aiuta anche in questo.

    
risposta data 30.12.2012 - 02:26
fonte