Lo scopo di Selenium è creare test di integrazione guidati dall'utente .
I test di integrazione verificano che tutti i componenti del sistema funzionino correttamente quando distribuiti insieme. I test di integrazione non sono una strategia di test sufficiente e integrano altre strategie di test che hanno un focus diverso, ad esempio test unitario e test di accettazione .
I test guidati dall'interfaccia utente sono intrinsecamente fragili, sebbene il Selenium e il Watir siano un passo avanti rispetto agli albori degli strumenti registrazione-e-riproduzione . Ci sono diversi modi per affrontare questo problema - ecco una raccolta di consigli di alcuni esperti di livello mondiale:
Non cercare di ottenere tutta la copertura del test da questo tipo di test . Robert C. Martin sostiene che la copertura del codice per test di integrazione dovrebbe essere di circa il 20% . È semplicemente impraticabile testare tutti i percorsi di esecuzione quando l'input è a diversi livelli di applicazione.
Ottieni la maggior parte della copertura di test dai test di unità e di accettazione . Cerca i link agli articoli di Gojko Adzic nella risposta FinnNk . Adzic ha sostenuto ripetutamente di testare la logica di business attraverso test di accettazione e bypassare l'interfaccia utente.
Ma è ancora necessario scrivere una quantità di test guidati dall'interfaccia utente . Qui è dove hai bisogno di alcuni consigli pratici oltre a "non testare la tua logica aziendale tramite l'interfaccia utente". Consiglierei il blog di Patrick Wilson-Welsh come punto di partenza.