Prove di prova del codice

0

Quindi ora sono arrivato alla conclusione come molti altri che avere un modo di testare costantemente il codice è una buona pratica in quanto consente di coinvolgere meno persone (college e clienti) semplicemente sapendo cosa c'è che non va prima che qualcun altro lo scopra nel modo più duro.

Ho sentito e letto alcuni sui Test delle unità e capisco cosa deve fare e tutto. Ci sono così tanti diversi tipi di bug. Può essere qualsiasi cosa, dal browser web che non è in grado di non essere in grado di inviare valori corretti, fallimento di javascript, una funzione globale che incasina un pezzo di codice da qualche parte a un cambiamento che sembrava buono quando lo testava, ma fallisce in qualche caso speciale che era difficile anticipare. Semplicemente trovando questi errori imparo raramente a ripeterli di nuovo, ma sembra che ci siano sempre nuovi bug da trovare e da cui imparare.

Suppongo che la migliore pratica sarebbe quella di eseguire la pagina ogni e le sue funzioni un paio di volte, testimoniare il risultato e ripeterlo in Firefox, Chrome e Internet Explorer (e apparentemente tutti gli smartphone) per assicurarsi che funzioni come previsto. Tuttavia questo richiederebbe un bel po 'di tempo per fare in considerazione che non lavoro con patch / versioni e faccio piccole correzioni qua e là un paio di volte a settimana.

Quello che preferisco sarebbe un qualche tipo di pagina. Posso semplicemente caricare quel test quante più cose possibili per assicurarmi che il sito funzioni come previsto. In pratica basta eseguire un sacco di cURL con valori POST e vedere se ottengo il risultato atteso. Ma come preferirei non aumentare gli ID di ogni file mysql se cancello queste righe di test? Sembra stupido essere su ID 1000 con forse 50 righe in totale.

Se potessi creare un nuovo progetto partendo da zero probabilmente implementerei una sorta di modo semplice per restituire un "VERO" al test invece della pagina effettiva. Ma per il momento questa soluzione dovrebbe essere trasferita su progetti esistenti.

La mia domanda
Cosa consiglieresti per essere il modo migliore per testare il mio sito per assicurarti che le funzioni esistenti facciano il loro lavoro dopo aver modificato il codice? Dovrei considerare di implementare molte modifiche prima, quindi testare manualmente l'intero codice per assicurarmi che funzioni ancora? C'è un modo piacevole di testare i codici senza "danneggiare" le colonne ID?

Anche se Sarebbe una buona idea associare tutti i miei file alle diverse parti del mio sito che riguardano? Ad esempio, se modifico home.php eseguirò il test di documentazione se l'avvio della mia homepage funziona come previsto poiché è l'unica parte del mio sito che dovrebbe interessare.

    
posta Robin Castlin 03.09.2012 - 12:41
fonte

2 risposte

5

Guarda un framework di test basato sul browser come Selenium e Watin come suggeriva Yannis. Puoi usarlo per automatizzare l'interazione di tipo umano con le tue pagine web, ad esempio "controlla che l'intestazione sia" X "quando la pagina viene caricata, inserisci" Test "nella casella di testo, invia utilizzando il pulsante" OK "e controlla il risultato l'intestazione della pagina è cambiata in "Y".

Come tutti i test di unità automatizzate, diventa ripetibile e più veloce da eseguire. Se cambi home.php, nell'esempio che fornisci sopra, esegui i test sull'intero sito web e assicurati che non vi sia alcun flusso sugli affetti. La maggior parte dei framework di testing supporta i comuni browser e li esegue anche in parallelo su più computer .

Se sei interessato al rendimento di YSlow puoi aiutare a identificare i problemi di rendimento (anche se non l'ho usato da un po 'di tempo) . Esistono validatori di link , validatori di sicurezza SSL , strumenti di analisi della sicurezza e molti altri strumenti là fuori.

Non dimenticare i tradizionali test di unità automatizzate sul tuo back-end. Ad esempio, può aiutare a isolare gli errori anziché semplicemente a dire che questa pagina non è stata caricata correttamente.

Se sei preoccupato di inquinare il tuo database di produzione con i dati di test, questa può essere o meno una buona idea in primo luogo. Il rischio che i test possano interferire con i clienti e i loro dati, in particolare se ci sono transazioni finanziarie o informazioni personali identificabili (PII) coinvolte, è qualcosa che tu e il tuo management devono valutare, ma raccomanderei l'uso di un test o test separato ma identico ambiente invece. Se è necessario eseguire test su un sistema di produzione, assicurarsi che i dati del test siano facilmente separati dai dati del cliente e rimuoverli dopo l'esecuzione del test.

    
risposta data 03.09.2012 - 13:55
fonte
1

Gli ID non dovrebbero essere un problema per te. Puoi sempre abbandonare il database e ricrearlo quando necessario.

Il test delle unità è qualcosa di leggermente diverso da quello che stai cercando. Il test unitario fa in modo che un'unità di codice funzioni correttamente. Questo è tutto.

Devi eseguire test di integrazione per assicurarti che tutte le unità funzionino correttamente se integrate insieme.

Puoi anche eseguire test automatici della GUI per simulare le tue operazioni come premere un pulsante sul browser web.

    
risposta data 03.09.2012 - 12:53
fonte

Leggi altre domande sui tag