Un consultant nous a récemment dit que si une fonctionnalité ne peut être testée que via des tests d'interface utilisateur automatisés (par exemple Selenium, Coded UI), il y a alors un problème architectural sous-jacent. Bien que cette déclaration puisse être un peu extrême, elle va dans le même sens que la pyramide des tests dans la mesure où les tests d'interface utilisateur devraient constituer une petite partie de votre suite de tests automatisée globale.
Alors, quels types de fonctionnalités devraient avoir des tests d'interface utilisateur automatisés? Un système avec une architecture convaincante aura-t-il toujours des fonctionnalités qui ne peuvent être vérifiées que par des tests d'interface utilisateur, ou ces tests devraient-ils simplement servir de «sauvegarde» pour une suite de tests unitaires et de service?