Quali funzionalità devono essere testate tramite test automatici dell'interfaccia utente?


12

Recentemente un consulente ci ha detto che se una funzione può essere testata solo tramite test UI automatizzati (ad es. Selenium, UI codificata), c'è un problema di architettura di base. Sebbene questa affermazione possa essere un po 'estrema, è sulla stessa linea della piramide dei test in quanto i test dell'interfaccia utente dovrebbero costituire una piccola parte della suite di test automatizzata generale.

Quindi, quali tipi di funzionalità dovrebbero avere test automatici dell'interfaccia utente? Un sistema con un'architettura cogent avrà ancora funzionalità che possono essere verificate solo attraverso i test dell'interfaccia utente o questi test dovrebbero servire solo da "backup" per una suite di test di unità e servizi?


A parte ogni caratteristica dell'interfaccia utente, presumo?

Risposte:


11

Presumibilmente hai una sorta di architettura che collega pulsanti e altri widget alle azioni: fai clic su Salva e si dovrebbe chiamare la funzione di salvataggio, ecc.

Supponendo che abbiate una buona copertura dei test delle azioni stesse tramite test unitari o di integrazione, l'obiettivo del test UI automatizzato è quello di assicurare che tutti i widget facciano chiamate appropriate alle azioni sottostanti e visualizzino correttamente i risultati di tali azioni.

In altre parole, convalidano che l'interfaccia utente rifletta correttamente lo stato del modello e sia correttamente collegata al controller.

L'altro componente è quando una logica aziendale è nel codice dell'interfaccia utente. Ad esempio, forse hai bisogno di determinati caratteri in un campo password. È necessario testare queste funzionalità in qualche modo, poiché potrebbe essere difficile o impossibile farlo tramite unit test.


3

Quali funzionalità devono essere testate tramite test automatici dell'interfaccia utente?

Tutte le funzionalità dell'interfaccia utente.

Dovresti testare:

  • Tutte le funzioni che gli utenti possono fare.
  • Funzioni svolte dagli utenti in tutti i browser (e versioni) in cui sono presenti.
  • Sia percorsi felici (facendo la cosa giusta ad ogni passo) sia percorsi tristi (l'utente commette errori).
  • Dati validi e non validi.
  • Numeri grandi e piccoli.
  • Tutti i ruoli e le funzioni ruoli specifici per ruolo.
  • Interfacce utente e amministratore.
  • Tentativi di irruzione.
  • La creazione e l'aggiornamento dei dati funzionano come previsto.
  • Elimina il lavoro ed elimina i dati del database associati in altre tabelle.
  • Utenti in stile tastiera e mouse.
  • Diversi dispositivi o simulatori di: PC, telefoni, iPad, ecc.

0

Non esiste una funzione che può essere testata solo tramite test automatici dell'interfaccia utente. Strumenti come il selenio imitano il comportamento di un essere umano, senza annoiare l'uomo fino al suicidio. Poni a te stesso (o al tuo consulente) una domanda: "In che modo un programma verificherebbe gli aspetti dell'interfaccia utente che una persona non può? " La domanda successiva è: " In tal caso, perché ti importa di cosa fanno? "

D'altra parte, se hai una tale caratteristica, beh, sì, direi che hai un problema architettonico di base. :-)


1
Penso che "solo" si riferiscano a test automatici dell'interfaccia utente rispetto a test unitari o di integrazione. Non penso che sia possibile creare qualcosa che il selenio può testare che un umano non può (modulo la velocità degli umani contro la velocità del selenio)
Bryan Oakley,

Mi dispiace, posso vedere dove lo avresti preso dalla domanda. Anche se mi hai sfidato a sviluppare un'applicazione che può essere utilizzata solo da Selenium - solo per attaccarla al nostro team UX :)
mragh
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.