Domanda

L'azienda per cui lavoro attualmente utilizza Selenio per aver testato l'unione della nostra interfaccia utente.Cosa usi per eseguire il test unitario della tua interfaccia utente Web e quanto lo ritieni efficace?

È stato utile?

Soluzione

Usiamo Watin sul posto di lavoro, siamo un negozio .net, quindi questa soluzione aveva molto senso.In realtà abbiamo iniziato con Watir (l'implementazione originale di Ruby) e poi siamo cambiati.Finora è stata una buona soluzione per noi

Altri suggerimenti

Sono un grande fan del selenio.Dire "test unitario della tua interfaccia utente web" non è esattamente accurato come hanno menzionato alcuni commenti.Tuttavia, trovo che il selenio sia incredibilmente utile per eseguire questo tipo di test di accettazione e integrità sull'interfaccia utente.

Un buon modo per iniziare è utilizzare Selenium IDE come parte del tuo sviluppo.Cioè, tieni semplicemente aperto l'IDE mentre sviluppi e scrivi il tuo test mentre procedi per ridurre il tempo di sviluppo.(Invece di dover passare manualmente attraverso l'interfaccia utente per arrivare al punto in cui puoi testare qualunque cosa tu stia lavorando, basta premere un pulsante e Selenium IDE se ne occuperà per te.È un fantastico risparmio di tempo!)

La maggior parte dei miei principali scenari di casi d'uso dispongono di test Selenium RC per supportarli.Non puoi davvero pensarli come test unitari sulla falsariga di un framework xUnit, ma sono test mirati a funzionalità molto specifiche.Sono veloci da scrivere (specialmente se implementi metodi comuni per cose come l'accesso o l'impostazione dei casi di test), rapidi da eseguire e forniscono un ciclo di feedback molto stretto.In questo senso i test del selenio RC sono molto efficaci simile ai test unitari.

Penso che, come qualsiasi altra cosa, se ti impegni nell'apprendimento corretto di uno strumento di test (ad esempio, Selenium), i tuoi sforzi verranno ripagati a palate.Dici che la tua azienda utilizza già Selenium per eseguire test dell'interfaccia utente.Questo è fantastico.Lavora con esso.Se ritieni che il selenio sia difficile da usare o confuso, mantienilo.La curva di apprendimento non è poi così ripida una volta che hai imparato un po' l'API.

Se sto lavorando su un'app Web, è raro per me scrivere una quantità significativa di codice senza i test Selenium RC per eseguirne il backup.Ecco quanto trovo efficace il selenio.:) (Spero che questo risponda alla tua domanda..)

Bene, se hai progettato correttamente la tua applicazione, non avrai comunque un sacco di logica all'interno dell'interfaccia utente.Ha molto più senso separare il lavoro effettivo svolto in unità separate dall'interfaccia utente e quindi testarle.

Se lo fai, l'unico codice nell'interfaccia utente sarà il codice che richiama il backend, quindi è sufficiente testare semplicemente il backend.

Ho utilizzato NUnit ASP in passato (nel mio lavoro) e se insisti a testare l'unità della tua interfaccia utente, ti consiglio vivamente di utilizzare QUALSIASI COSA tranne NUnit ASP.È una seccatura lavorarci e i test tendono a essere invalidati (che necessitano di essere rivisti) anche dopo le modifiche più piccole dell'interfaccia utente (anche se gli argomenti dei test in realtà non cambiano).

Stiamo utilizzando QuickTestPro.Finora è efficace, ma la scelta del browser è limitata.La parte più bella è la possibilità di registrare l'attività del tuo browser e convertirla in una serie di passaggi programmabili.C'è anche un simpatico componente aggiuntivo .Net, quindi se hai del codice di convalida che devi eseguire per le diverse fasi del test, puoi scrivere metodi in un assembly e chiamarli dal tuo script.

Utilizziamo Visual Studio 2008 Tester Edition.

Professionisti:Molto bravo a catturare l'interazione dell'utente

Cattura le chiamate Ajax

È molto semplice mappare l'input dell'utente in un database, file XML o CSV

Il test acquisito può essere convertito in C# per un maggiore controllo

Gli stessi test possono essere utilizzati per i test di carico e la copertura del codice

Contro:

VS2008 Tester Edition è uno SKU separato dalla normale Developer Edition, il che significa un costo aggiuntivo

Potresti essere allergico a Microsoft ;-)

Lo abbiamo utilizzato in modo molto efficace nei progetti, tuttavia è necessario un grande sforzo per mantenere aggiornati i test, ogni volta che si cambia schermata potrebbe essere necessario registrare nuovamente il test

Tendiamo a mantenere i test brevi e precisi, a fare una cosa e uscire invece di registrare 10 minuti di clic in un singolo test.

Abbiamo alcuni tipi di test dell'interfaccia utente standard:

Prova del menu: Accedi come utente specifico (o tipo utente/ruolo) e assicurati che tutte le voci di menu richieste siano disponibili

Prova di convalida: Apri una pagina e fai clic su Salva senza inserire alcun dato, assicurati che vengano visualizzati tutti gli avvisi di convalida.Completa i campi obbligatori uno alla volta e controlla che i messaggi di avviso scompaiano quando dovrebbero.

Prova di ricerca: Effettua la ricerca utilizzando i dati del database o di un file di dati e assicurati che la ricerca restituisca i dati corretti

Test di immissione dati: Crea nuove registrazioni da un file di dati, pulisci il database per consentire l'esecuzione dei test più volte

Il test dell'interfaccia utente richiede molto tempo, ma la sensazione di conforto che provi quando vengono superate alcune centinaia di test prima di rilasciare una nuova versione non ha prezzo.

Abbiamo utilizzato JSunit per un po' per fare test unitari...potrebbero non essere gli stessi tipi di test di cui parli, ma è ottimo per garantire che JavaScript funzioni come previsto.

Lo esegui nel browser e può essere impostato in una build Ant per essere eseguito automaticamente su un gruppo di browser su un gruppo di piattaforme in remoto (così puoi assicurarti che il tuo codice sia cross-browser e assicurarti che la logica sia corretta ).

Non penso che sostituisca il Selenio, ma lo integra bene.

Usiamo Selenium Core, ma stiamo passando gradualmente a Selenium RC che è molto più bello e più facile da gestire.Abbiamo scritto molto codice personalizzato per eseguire i test sui nostri server di integrazione continua, alcuni dei quali in suite parallele per essere eseguiti più velocemente.

Una cosa che scoprirai è che Selenium sembra riavviare il browser per ogni test (puoi impostarlo per non farlo, ma abbiamo avuto problemi di memoria quando lo abbiamo fatto).Questo può essere lento in Firefox, ma non è poi così male in IE (una volta sono grato per l'integrazione del sistema operativo di Bill Gates).

ho usato WATIR, il che è abbastanza buono.Mi è piaciuto perché è Ruby e consente di testare l'interattività, gli elementi disponibili e l'analisi del codice sorgente.Non lo uso da un po' ma presumo che sia migliorato.

Si suppone che sia in fase di porting su Firefox e Safari, ma ciò accade già da un po' di tempo.

Guardare Test Web di Canoo.È open source e basato sul framework ANT.

Ho trascorso un po' di tempo a lavorarci per un corso di specializzazione sul QA del software e sembra essere uno strumento di test piuttosto potente.

Griglia di selenio puoi eseguire i tuoi test web su più macchine in parallelo, il che può accelerare il processo di test web

Per lo più uso CubicTest, che è un plugin di Eclipse che ti consente di definire graficamente i test.Può esportare/eseguire test attraverso diverse librerie, tra cui watir e selenium.La maggior parte delle persone però usa solo il runner Selenium.

Informativa completa:Sono uno degli sviluppatori, quindi sono un po' di parte :)

Dai un'occhiata più da vicino qui: cubictest.openqa.org

-Erlend

Il selenio è per i test di integrazione, non per i test unitari.È una differenza sottile, ma importante.L'utilizzo che di solito vedo è per il controllo dell'integrità di una build.cioè, avere un test che acceda, un test che (ad esempio) invii una storia, faccia un commento, ecc.

L'idea è che stai testando per vedere se l'intero sistema funziona insieme prima della distribuzione, piuttosto che far scoprire a un utente che il tuo sito non funziona.

Attualmente utilizziamo Silk4J - un approccio incentrato su Java per testare l'interfaccia utente Web.Può testare Flash, Flex, AIR, Silver Light, Win32, HTML e alcune altre applicazioni.

Poiché Silk4J può controllare le app Win32, può controllare direttamente le finestre di dialogo del browser, il che è un gradino sopra ciò che Selenium può controllare ed è particolarmente utile per le richieste di download.

Noi usiamo WatiN per il test del sistema e QUnità per test unitari JavaScript.

Molibdeno è costruito su Selenium e ha alcune funzionalità aggiuntive.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top