Visualizzazione dei risultati da 1 a 6 su 6

Discussione: PHPUnit esperienze?

  1. #1

    PHPUnit esperienze?

    Qualcuno ha esperienze su PHPUnit? o in generale sugli unit Test?

    Non ho esperienze dirette, tuttavia una volta mi è capitato di dover mettere in produzione un modulo, abbastanza complesso, di un progetto molto complesso, scritto da un collega che mi ha assicurato: "Vai tranquillo, l'ho testato con PHPUnit".
    Alla fine questo modulo aveva più di un errore, qualcuno veramente "stupido" che un qualsiasi test "normale" (ovvero dotato di occhio umano), ma comunque approfondito, avrebbe scovato facilmente (roba anche da errori query mysql).

    Il collega non era affatto un ingenuo. Era, all'epoca, all'ultimo anno di informatica (-EDIT- non ing. informatica, scusate -/EDIT-)ed è un esperto programmatore sia per esperienza, sia per grado teorico in più di un linguaggio. Insomma capisco che possa aver commesso un errore di valutazione... ma non parliamo del newbie di turno.

    Questo avvenimento mi ha creato un enorme pregiudizio nei confronti dei test automatici, ma ora leggendo qua e la articoli scopro che stanno forzatamente prendendo piede.

    Mi chiedevo se avete avuto esperienze in merito.

    Sia chiaro: sempre meglio un test in più che uno in meno. Però non vorrei ci si crogiolasse troppo nei test automatici (che poi non sono tanto automatici visto che li devi costruire tu: e chi testa quello che testa? =))

  2. #2
    se non sai fare i test, non è colpa di Unit. Io l'ho usato molto in Java, e devo dire che è fondamentale soprattutto nel testare componenti che non hanno bisogno dell'intero programma per funzionare. Scopri un sacco di errori. Certo, se non copri tutti gli errori possibili col test, alcuni errori sfuggiranno
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  3. #3
    Se PHPUnit funziona come JUnit (per Java) o come in generale questi "tool" di test, allora non fanno tutto in automatico.

    Ti mettono a disposizione un "framework" che ti permette di testare i comportamenti di una tua funzione/classe/modulo/etc; il problema è che il test lo devi comunque scrivere tu in rispetto del comportamento e dei vincoli che dovrebbe seguire la tua applicazione.

    Quindi se tu scrivi male il test di conseguenza quel test non serve a niente.
    Administrator of NAMDesign.Net

  4. #4
    Il senso è infatti quello.
    "Se non sai fare i test", o in modo meno assolutistico: "Se non li fai perfetti"... Allora il gioco vale la candela? Comunque creare un test ha bisogno di tempo e ci vuole anche un minimo di analisi del test stesso.

    Ho specificato che il tizio dell'esempio era un esperto, quindi escludo il fatto che "non li sapesse fare". Era un programmatore Java anche in ambito universitario dove aveva studiato e applicato appunto gli unit test.

    Il concetto è più pratico che teorico perché teoricamente un qualsiasi test in più, è sempre meglio di un test in meno. Non ci piove.

    Domanda allora più "succulenta": Voi gli Unit test li usate? se si, sempre? spesso? o solo in pochi casi? e in quali casi?

  5. #5
    Originariamente inviato da chumkiu
    Il senso è infatti quello.
    "Se non sai fare i test", o in modo meno assolutistico: "Se non li fai perfetti"... Allora il gioco vale la candela? Comunque creare un test ha bisogno di tempo e ci vuole anche un minimo di analisi del test stesso.
    Il test non necessariamente deve essere perfetto, il test deve esaudire tutti gli scenari per i quali la funzione/classe/modulo è stata creata, deve mostrare che il comportamento del codice scritto sia quello che ci si aspetti all'interno del dominio di parametri richeisto.

    E' vero, effettuare la fase di test richiede tempo; in genere il tempo è (o dovrebbe essere) decisamente superiore al tempo speso per scrivere il codice. Però il test una volta scritto è valido "sempre", quindi oltre a permetterti di scovare potenziali bug nel codice dovrebbe permetterti di avere un certo grado di confidenza che (se il test viene superato) la tua funzione/classe/modulo anche in seguito a modifiche (magari ottimizzazioni) mostra sempre lo stesso comportamento (quello corretto).

    Ho specificato che il tizio dell'esempio era un esperto, quindi escludo il fatto che "non li sapesse fare". Era un programmatore Java anche in ambito universitario dove aveva studiato e applicato appunto gli unit test.
    Essere universitario, o fare informatica, non significa di conseguenza essere un esperto o comunque un "bravo" programmatore. Io sono un laureato in informatica, non ti esprimo un parere su me stesso ma posso dirti che ho visto laurearsi persone che di informatica non sanno niente.
    Inoltre saper programmare non significa saper scrivere dei test per la propria applicazione.

    Il concetto è più pratico che teorico perché teoricamente un qualsiasi test in più, è sempre meglio di un test in meno. Non ci piove.

    Domanda allora più "succulenta": Voi gli Unit test li usate? se si, sempre? spesso? o solo in pochi casi? e in quali casi?
    Risposta breve: non sempre, dipende.
    Per piccoli progetti personali non sono solito usare suite di test, preferisco debug in vecchio stile (trascendendo da php).
    Invece, per lavoro la fase di test è un obbligo ma la scelta di utilizzare o meno determinati strumenti dipende molto dal tipo di progetto al quale si lavora e sopratutto dal se si lavora in team o meno (non si può pretendere che gli altri programmatori abbiano a che fare con i tuoi bug).

    In ogni caso la scelta del tipo di test da utilizzare dipende da tanti fattori.
    Administrator of NAMDesign.Net

  6. #6
    Grazie per le delucidazioni e per aver condiviso la tua esperienza.
    Preciso solo che non volevo dire:
    laureato informatica => esperto. Cosa non sempre vera (ma nemmeno non sempre falsa). in OT qui mi hanno quasi linciato per una discussione simile =)

    Ho detto che era esperto (almeno, dopo un anno di collaborazione posso sicuramente affermare che non era un improvvisato programmatore) e in aggiunta studiava anche all'università materie inerenti. Poi che mi abbia dato in mano un modulo con dei bug "gravi" è ingiustificabile, sono d'accordo. Ma forse perché ha commesso l'errore di crogiolarsi nel test automatico... e da qui il senso del topic.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.