« Test the Web Forward » : le Web de demain

La qualité et la conformité des moteurs HTML5 des différents navigateurs restent très variables. Pour continuer sur la voie de l'interopérabilité des plateformes Web et de la standardisation du code, nous contribuons aux suites de tests en cours de développement au sein du W3C. Au total, nous avons proposé 7 573 tests, que vous pouvez consulter dans le Centre des tests IE. À l'heure où différents navigateurs améliorent leur prise en charge du code standardisé, nous pouvons tous profiter des avantages du HTML5.

Le titre de ce billet fait référence à la manifestation organisée par Adobe le week-end des 15 et 16 juin au sein de son site de San Francisco. Des dizaines de bénévoles ont rejoint les experts du W3C et les membres salariés d'Adobe, de Google, de Mozilla, d'Apple, de HP et de Microsoft pour en savoir plus sur les tests relatifs aux standards du Web, découvrir les outils permettant de gérer les suites de tests et apprendre à mettre au point des tests CSS et SVG, et à consigner correctement les bogues.

La réunion a ensuite donné lieu à un véritable « hackathon » de test, avec nourriture et boissons gratuites toute la journée ! Les bénévoles ont passé la majeure partie du samedi à développer de nouveaux cas de test pour les modules Modèle objet CSS, Transformations, Arrière-plans et bordures, Exclusions, SVG et d'autres modules. Les participants ont reçu de nombreux prix.

Tester les standards Web

Alan Stearns, d'Adobe, a présenté aux participants les grands principes des tests du W3C et le rôle des tests dans l'évolution des spécifications. Il a notamment réaffirmé que l'attribution d'une note individuelle à chaque navigateur pour une spécification donnée ne fait pas partie des objectifs des suites de tests du W3C. Pour qu'une spécification accède au statut de « Recommandation W3C », le groupe de travail doit démontrer qu'elle peut être mise en œuvre. En pratique, cela implique deux étapes :

  • Création d'un cas de test pour chacune des exigences de la spécification (une déclaration normative)
  • Vérification du fait qu'au moins deux implémentations séparées passent chaque test avec succès

Notez bien la différence subtile entre « au moins deux navigateurs doivent passer avec succès la suite de tests dans son ensemble » et « au moins deux navigateurs doivent passer avec succès chaque test de la suite de tests ». Pour les testeurs de navigateurs, cette phase correspond généralement au « test de la spécification ».

Néanmoins, ce processus de test a une conséquence importante : il est nécessaire d'établir une base commune et interopérable, sur laquelle peuvent s'appuyer les développeurs et les testeurs des navigateurs. Les suites de tests facilitent la recherche de bogues dans l'ensemble des navigateurs et permettent parfois d'identifier les problèmes liés à la spécification.

Développement de tests CSS et SVG

Il existe trois types de tests différents :

  • Les tests autonomes reposent en général sur une vérification visuelle : en présence d'une condition d'échec, du contenu en rouge s'affiche.
  • Les tests de référence comparent un test avec une référence visuelle qui ne présente aucune dépendance vis-à-vis de la fonctionnalité testée. Vous remarquerez que le test contient un lien vers le test de référence auquel il doit être comparé.
  • Les tests de modèle objet CSS s'appuient sur une série de tests JavaScript visant à vérifier que le modèle objet reflète les éléments spécifiés par les feuilles de style statiques. Ce test de requête de média CSS en est un bon exemple.

Doug Schepers, du W3C, a abordé les tests SVG, tandis que Rebecca Hauck et Jacob Goldstein, d'Adobe, ont proposé un didacticiel consacré à la mise au point des tests. Peter Linss, coprésident du groupe de travail CSS, a quant à lui exploré en détail le framework de tests CSS, y compris le système de création des suites de tests et les outils de gestion tels que Shepherd.

Enregistrement des bogues adéquats

Elika Etemad (Mozilla) a ensuite partagé quelques conseils sur les caractéristiques d'un rapport idéal de bogue survenant dans un navigateur :

  • Le problème est précis et peut être reproduit.
  • La version et la plateforme sont précisées.
  • Vous avez recherché les éventuels doublons.
  • Le rapport de bogue inclut une procédure permettant de reproduire le problème.
  • Les résultats attendus et réels sont décrits.
  • Si possible, le problème a été condensé (tous les éléments HTML, JavaScript et CSS qui ne sont pas indispensables pour reproduire le problème ont été éliminés de la page du problème et les éléments restants ont été joints au bogue).

Mise au point d'une suite de tests

La mise au point d'une suite de tests nécessite de lourds investissements. Si CSS2.1 a mis autant de temps à atteindre le statut de Recommandation, c'est notamment à cause de la taille de la spécification et du nombre sous-jacent d'exigences à tester. La dernière version de la suite de tests contient 9 422 tests.

Microsoft a contribué à plus de 7 000 de ces tests et nous contribuons en permanence à établir d'autres tests pour d'autres spécifications standard.

Dans IE10, nous avons ajouté la prise en charge d'une longue liste de nouvelles fonctionnalités standard couvrant les CSS, HTML, SVG et le DOM. Nous avons publié quelques-uns de nos cas de test relatifs à ces nouvelles fonctionnalités dans notre Centre de tests IE. Nous en proposerons d'autres, axés en particulier autour des fonctionnalités récemment dépréfixées dans IE10 Release Preview.

Comment nous aider ?

Nous sommes ravis de faire partie de la communauté travaillant à la création d'un Web plus interopérable. Si vous souhaitez contribuer à faire progresser le Web, vous pouvez vous aussi promouvoir l'interopérabilité. Vous pouvez notamment apprendre à participer aux tests ou à vérifier les tests existants. Pour en savoir plus, consultez le wiki du groupe de travail CSS ainsi que la page consacrée à cet évenement.

Nous vous tiendrons informés sur les prochains événements.

—Sylvain Galineau, chef de projet, Internet Explorer
—John Jansen, responsable des tests, Internet Explorer