Le « contrôle », partenaire clé du « test ».

J’ai travaillé avec de nombreux développeurs d’applications mobiles et j’ai souvent rencontré des scénarios dans lesquels la différence entre le test et le suivi d’une application n’était pas claire pour les développeurs. Je m’efforce donc de clarifier les concepts et de mettre en évidence les différences.

Voici quelques différences essentielles :

1.) Définition : Essais et surveillance :

Les tests consistent à reproduire le scénario de production et à essayer de casser le système à l’aide de différents scénarios commerciaux. Cette reproduction de scénarios peut être réalisée à l’aide de scripts automatisés et les tests de régression sont effectués de cette manière. Les scripts aident les testeurs à simuler le scénario de production et à le tester dans des conditions similaires à celles de la production. Dans le cas des tests de performance, après avoir reproduit le scénario de production, de nombreux problèmes de performance observés au niveau de l’interface graphique et de la base de données sont identifiés.

Le contrôle consiste à surveiller les systèmes, les serveurs et l’infrastructure de l’application lorsque les tests sont en cours. La surveillance joue un rôle clé lors des tests de performance, car la charge soumise à l’application peut dégrader les performances du système. Les problèmes liés à la mémoire actuelle, à la bande passante du réseau et aux cycles du processeur sont résolus à l’aide du moniteur.

2.) Comportement (performance) estimé vs réel du système :

Dans le cas des applications mobiles, il y a une grande différence dans l’infrastructure (téléphone mobile) que les utilisateurs finaux utilisent et à laquelle ils soumettent l’application. Parmi les principales différences, on peut citer –

  • Différents types de combinés mobiles utilisés par différents utilisateurs
  • Largeur de bande du réseau disponible sur les différents sites
  • Le volume de données téléchargées par un utilisateur peut être très différent de celui d’un autre utilisateur.
  • L’utilisation de l’application par un utilisateur serait sensiblement différente de celle d’un autre utilisateur.
  • Pour une application spécifique, il peut y avoir une différence significative entre le nombre d’utilisateurs dans différentes zones géographiques.

Ces différences peuvent conduire à des chiffres de performance sensiblement différents des chiffres réels. Ainsi, compléter la surveillance des serveurs par des tests de performance peut aider l’équipe à améliorer les performances dans une bien plus large mesure. (Étant donné que les résultats réels seraient suffisamment différents des résultats estimés).

3.) Tests dans des environnements de développement, d’assurance qualité, de tests de performance et de production :

Les tests de performance peuvent être effectués dans la plupart de ces environnements, sous une forme ou une autre. Dev est la première infrastructure où la fonctionnalité de l’application est testée. L’assurance qualité est le moment où l’application est à nouveau testée par des testeurs pour en vérifier la fonctionnalité. Parfois, les tests de performance sont également effectués dans l’environnement d’assurance qualité. Toutefois, la meilleure solution consiste à tester l’application sous charge dans un environnement de test de performance distinct, dont l’échelle est aussi grande que celle de l’environnement de production. Lors d’un test sur un environnement de test de performance, la surveillance de l’infrastructure permet d’identifier beaucoup plus de problèmes de performance. Un scénario de test de production en temps réel permet de détecter de nombreux problèmes de performance avant la mise en production. Le suivi permet d’identifier les problèmes qui n’ont pas été détectés lors des tests.

Ainsi, le développement d’applications mobiles peut tirer de nombreux avantages des tests de performance et de la surveillance des serveurs pendant les tests. Aujourd’hui, les tests sont planifiés de manière à ce que les tests et la surveillance (pendant les tests et en production) soient effectués simultanément. Il permet d’améliorer les performances de l’application et aide ainsi l’entreprise à créer une meilleure application.