Les joyeux bricolages de Facebook pour tester son application mobile sur 2000 téléphones

32 smartphones de test par rack dans le Data Center de Facebook

Facebook a créé une plateforme spécifique afin d’industrialiser les tests de son App mobile et ses multiples évolutions sur les vrais téléphones mobiles dont disposent ses utilisateurs. Impossible de s’en remettre à un outil de simulation de mobile pour le leader mondial des réseaux sociaux.

2000 téléphones en test

Il en résulte un joyeux capharnaüm d’empilement de téléphones mobiles de toutes origines et de tous modèles, alignés en rang d’oignon dans des racks conçus spécifiquement afin de vérifier la compatibilité des nouvelles versions de Facebook avec les mobiles actuellement utilisés. A ce jour, Facebook teste son App sur 2000 téléphones. Ce qui lui permet de rester compatible avec de vieilles versions de systèmes d’exploitation.

L’enseignement positif, c’est que même un géant richissime comme Facebook doit s’en remettre à l’ingéniosité et au bricolage de ses équipes internes afin qu’elles créent peu à peu leurs propres outils dans un domaine comme les applications mobiles où l’hétérogénéité des terminaux et de leurs systèmes d’exploitation est un véritable casse tête.

Pour l’anecdote, les équipes en charge des développements mobiles chez VoyagesSNCF.com doivent de la même manière disposer de smartphones de différentes versions afin de vérifier les compatibilités du code, et les non régressions. La SNCF en reste cependant seulement à quelques dizaines de mobiles. Quant à la Française des Jeux, elle s’en est remis récemment à une société spécialisée afin de tester ses jeux sur mobiles.

Chez Facebook, l’équipe en charge du développement de l’App dispose de 60 racks de tests de 32 mobiles chacun dans le Data Center de Facebook à Prineville (Etats Unis). L’objectif est de passer à 64 téléphones par rack. Ce qui pose de nombreux problèmes techniques. L’objectif est également d’ouvrir la plateforme à d’autres équipes de Facebook et de standardiser les tests sur la solution Webdriver.

Des milliers de changements par semaine

C’est ce que décrit Antoine Reversat, ingénieur chez Facebook, dans un intéressant billet de blog, publié le 13 juillet, et illustré de plusieurs photos que nous reproduisons ici. « Nous avons des milliers de changements chaque semaine, et vu l’imbrication du code de l’App Facebook, nous pourrions introduire par inadvertance des régressions qui consomment plus de batterie, de mémoire ou de données, » présente l’ingénieur.

Afin d’automatiser ces tâches de test, Facebook a développé l’année dernière une plateforme baptisée CT-Scan. Elle est censée réduire le nombre de régressions logicielles. Elle exécute des tests de performance comme des démarrages à chaud ou à froid, le remplissage du fil de news, et la consommation de la batterie. Les résultats doivent permettre aux ingénieurs de réagir s’ils créent des soucis avec leur nouvelle version de Facebook.

Au départ, CT-Scan était exécuté sur le mobile du développeur logiciel. « Mais cela ne convenait pas, il nous fallait être capable d’exécuter ces tests sur plus de 2000 modèles différents de terminaux, afin de prendre en compte la diversité des matériels, des systèmes d’exploitation et des connexions réseau, » pointe l’ingénieur.


Mesurer une dégradation de 1% des performances

Les ingénieurs de Facebook ont alors écarté l’usage d’un simulateur de mobile. « Ils ne conviennent pas pour le test de performances d’une App. Par exemple, nous n’aurions pas été capables de détecter une diminution de 1% des performances dans un simulateur, » affirme Antoine Reversat. Dès lors, ce sont les tests sur les équipements réels qui ont été choisis.

Il décrit ensuite les différents dispositifs bricolés par Facebook pour réunir plusieurs mobiles, les uns à côté des autres afin de les tester. Une accumulation de métal empêcha le fonctionnement du Wifi, d’où l’usage de câbles USB dans un sacré fouillis.

Les ingénieurs ont créé ensuite une paroi de smartphones. Cela permettait de déployer 240 mobiles. Comme Facebook souhaitait pour des raisons statistiques tester 2000 mobiles, il lui aurait fallu neuf pièces pour stocker tout cela, ce qui n’était pas possible. D’où l’idée de s’installer dans un Data Center et de placer les smartphones dans des racks. Afin de ne pas souffrir des interférences en Wifi, les racks ont été conçus comme des isolants électromagnétiques.

Les écrans des mobiles filmés

Dans chaque rack, ont été installés 8 Mac Mini afin de dérouler les tests ou 4 serveurs OCP Leopard pour tester les mobiles sous Android. Chaque Mac mini est connecté à 4 iPhones et chaque serveur OCP est connecté à 8 terminaux sous Android. Ce qui donne un total de 32 téléphones par rack. Les téléphones sont connectés au Wifi via un point d’accès Wifi dans chaque rack.

Les téléphones sont filmés pour que les ingénieurs puissent observer ce qui se passe sur les écrans à distance. Les téléphones ne devaient pas être trop près de l’émetteur Wifi, car un signal trop fort ne permet pas des performances optimales. Pour les tests, Facebook a également conçu un logiciel de gestion des modules à installer sur le serveur,  baptisé Chef.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *