Non lo chiamerei "unit test" esattamente, ma ho avuto un certo grado di successo con l'esecuzione di test automatici contro un'interfaccia utente di WinForms e anche nell'interfaccia utente web che utilizza WatiN.
Supponendo che è possibile ottenere un handle per la finestra dell'applicazione che si desidera testare, si dovrebbe essere in grado di codificare un sacco di codice C# per testare la funzionalità dell'interfaccia utente.
Molte persone condannano l'idea di provare a eseguire test automatici contro un'interfaccia utente, perché c'è così tanto che non è possibile testare in questo modo. Ad esempio, nessun test automatico noterà che un font è brutto o che un testo è confuso o un pulsante è leggermente fuori centro. Non c'è dubbio, per questi tipi di cose hai sicuramente bisogno di una persona umana intelligente che guardi lo schermo.
Tuttavia, a parte questo tipo di test, c'è sicuramente una vasta gamma di test ripetitivi che possono essere automatizzati ed eseguiti regolarmente. La maggior parte delle applicazioni di grandi dimensioni ha un intero batch di script di test di regressione che devono essere eseguiti manualmente ogni volta che una nuova release sta per uscire. Questi test sono di solito qualcosa da addestrare a fare una scimmia, solo un elenco di istruzioni per fare clic su questo link, inserire del testo, fare clic su questo pulsante, controllare il messaggio risultante, ecc. Queste cose sono terribilmente sprecate nel tempo del tester di QA, e li rende infelici, quindi se possono essere automatizzati, fantastico. Questi tipi di test dovrebbero essere in grado di essere eseguiti automaticamente dal tuo server di build ogni giorno e potrebbero essere realizzati in modo molto più approfondito rispetto a qualsiasi test manuale.
Ancora una volta, non troverà strane cose inaspettate, ma ti darà un certo livello di sicurezza che il tuo piccolo cambiamento non ha infranto altri schermi che non hai mai sentito sull'altro lato dell'applicazione.
Concesso, questo risulta in un lavoro più continuo per gli sviluppatori, poiché piccole modifiche all'applicazione potrebbero interrompere i test per motivi stupidi, proprio come qualsiasi test automatico, ma dovrebbe far risparmiare un sacco di tempo in testing e debug. Se questo valga la pena per voi è per voi da decidere, ma penso che sia una considerazione che non dovrebbe essere liquidata con la stessa rapidità con cui normalmente si vede.
fonte
2010-05-17 15:21:52
D'accordo con le tue considerazioni. Penso che avere qualche test sia meglio di niente. Quindi mi piacerebbe trovare un metodo per scrivere rapidamente batch che mi permetta di aumentare la condidenza quando qualcuno esegue piccole modifiche. – pierocampanelli