Come effettuare il test di una applicazione web in PHP?

Ciao a tutti,

Volevo sapere quali sono i test che vengono fatti durante la progettazione della WebApplication, intendo tutti quei test che dimostrino che l'applicazione sia sicura, efficiente e prestante qualitativamente prima del rilascio di una versione stabile.

Inoltre c'è una documentazione anche per i test che bisogna fare sulla macchina server dove risiede la Web Application. 

Mi servirebbe quindi sapere tutti quei test che servono a certificare che il software è rilasciato con qualità.

Fobos.

inviato 3 anni fa
fobos
fobos
45
modificato 3 anni fa
Gianni Tomasicchio
X 2 X

Quello dei test del software è un argomento molto vasto e, dal punto di vista dei test, le applicazioni web non sono molto diverse da qualsiasi altro tipo di software.

Diciamo subito che non esistono dei test che garantiscono al 100% il buon funzionamento, la qualità o la sicurezza di un software. Ovviamente un software che viene testato è più affidabile di uno che non viene mai controllato ma garanzie dai test non ne vengono.

Considerato poi che le applicazioni si evolvono nel tempo, i test dovranno essere ripetuti ad ogni modifica del software. Di conseguenza qualsiasi test si voglia fare sul software è necessario che sia facilmente ripetibile e magari automatizzabile.

Di tipi di test ce ne sono molti ed andrebbero eseguiti solo quelli che si addicono alla tipologia di software, alle metodologie di sviluppo ed ai requisiti dell'intero sistema.

I test unitari sono quelli che verificano il corretto funzionamento di una porzione di codice isolata, come ad esempio la procedura che verifica il codice fiscale di un utente. Vengono realizzati creando dei programmi che invocano la porzione di codice da testare, generalmente una funzione o un metodo di una classe, e si basano sul principio che un componente, richiamato con determinati dati di input, deve necessariamente fornire certi dati di output. In PHP è possibile realizzare test unitari con PHPUnit.

Ci sono poi i test funzionali, il cui scopo è verificare una funzionalità dell'applicativo, ad esempio la corretta creazione di una pagina web relativa ad un URL passato in input. Non sempre questo tipo di test è automatizzabile poiché richiede che l'applicativo stesso preveda una modalità di esecuzione in cui, invece di interagire con l'utente, dialoghi con il codice del test. Il test infatti dovrebbe simulare l'utente che richiede una determinata funzionalità (es.: visualizzazione di una pagina) per poi verificarne al sua corretta esecuzione. I framework per PHP Symfony e Zend Framework hanno una architettura che permette la realizzazione di script per l'esecuzione di test funzionali.

Da non trascurare anche la possibilità di simulare l'interazione tra un utente e l'applicativo web offerta da Selenium. Si tratta di uno strumento per testare il comportamento dell'applicazione direttamente dal browser senza che l'utente debba intervenire.

Altra grade famiglia di test è quella dei test non funzionali, il cui scopo è verificare particolari aspetti del software non legati al funzionamento ma ad altre caratteristiche: sicurezza, performance, accessibilità, aderenza agli standard, ecc.

Per quanto riguarda la sicurezza esistono dei tool in grado di fare analisi statica del codice alla ricerca di falle e di effettuare dei penetration test. Più spesso si procede con un analisi delle criticità fatta da occhi esperti. Le linee guida in tal senso possono essere ricavate dall'OSWAP.

Per testare le performance dell'applicazione web invece bisogna far uso di strumenti che effettuano delle chiamante al server e misurano il tempo necessario a ricevere la risposta. Ce ne sono di spartani, tipo Apache ab, ed altri superaccessoriati, basta cercare sul web.

Infine per l'accessibilità e l'aderenza agli standard ci sono i validatori del W3C, che si trovano anche integrati in alcuni browser.

risposto 3 anni fa
Gianni Tomasicchio
Grazie Gianni, attendevo altre risposte, ma la tua è molto esaustiva. Devo solo mettere in pratica tutto questo, poi magari farò altre domande se ho bisogno.fobos 3 anni fa
X 2 X X
Effettua l'accesso o registrati per rispondere a questa domanda