SiteWeb:Tests de la migration Drupal 6

De April MediaWiki
Révision datée du 1 juin 2010 à 16:16 par Pbuyle (discussion | contributions) (Tests réalisés)
Logo-drupal.png Bienvenue sur une page Logo-drupal.png
du groupe de travail Site Web


Ambox warning red construction.png
/!\ Travail en cours /!\

Cette page présente un contenu en cours de réalisation.

Si vous souhaitez participer, n'hésitez pas à laisser votre avis sur la page de discussion en suivant au mieux ces recommandations.

La migration de Drupal 5 à Drupal 6 est scriptée pour permettre de la répéter facilement et mettre en place un site de test.

Deux phases de test sont prévues. Lors de la première phase, les membres les plus actifs et les plus impliqué de l'April ont accès au site. L'objectif est de trouver et corriger les problèmes les plus graves et/ou de sécurité. Tandis que la seconde phase est ouverte à tous.

Tester le site

  • Le site de test est disponible à l'adresse http://staging.april.org.
  • La liste des problèmes connus est accessible à l'adresse https://redmine.april.org/projects/siteweb/issues?query_id=8
  • La liste des test réalisé est fournie en fin de page
  • Une fois un élément ou une fonctionnalité du site testée, il est nécessaire de l'ajouter à cette liste
  • L'intégration gDTC et Alexandrie ne sont pas portés
    • les pages en dépendant ne fonctionnent pas (quand elles existent).
    • Les tags NB_ADHERENTS#, #NB_PERSONNES# et #NB_ENTITES# ne fonctionnent pas non plus (fournis par le module d'intégration gDTC)
  • Le site de test est prêt pour le test, au moins pour les utilisateurs non-identifiés
  • Le compte "april" (uid=1) fonctionne

Rapporter les problèmes

  • Les anomalies rencontrées lors de tests doivent être rapportées sous forme de demandes (aka. bug report) pour le projet SiteWeb sur le Gestionnaire de projets de l'April.
  • La création de demande se fait depuis l'URL suivante https://redmine.april.org/projects/siteweb/issues/new
    Tracker
    Utilisez anomalie.
    Sujet
    Entrez une description brève du problème rencontré, en un phrase
    Description
    Entrez une description détaillée du problème. Il est particulièrement important de donner un maximum d'information sur le comportement attendus et les étapes nécessaire pour y parvenir. Gardez à l'esprit que vous écrivez pour un lecteur qui ne connait pas le site de l'April dans les détails, qui ne sait pas comment une page fonctionne d'habitude, normalement ou comme avant.
    Status
    Utilisez Nouveau
    Priorité
    Utilisez Normal sauf si une autre priorité est plus approprié. Si un problème rencontré est une gène ou bloquant pour la poursuite des tests, utilisez Élevé ou Urgent, voir Immediat pour les cas le plus graves ou les failles de sécurité (ex. vous avez accès au contenu d'une page que vous ne devriez pas pouvoir voir). Inversement, pour les problèmes mineurs qui pourraient même être acceptables sur le site après la migration effective, utilisez Failbe.
    Assigné à
    N'utilisez pas de valeurs.
    Catégorie
    Utilisez Migration Drupal 6
  • Après création d'une demande, vous pouvez la lier avec des problèmes ou tâches déjà rapportés. Entre autre
  • Un script de test pour reproduire le problème et valider sa solution peut-être attaché au ticket (cf. section suivante)

Automatisation de test

Exemple

#coding=UTF-8
from windmill.authoring import WindmillTestClient
import functest

def test_foobar():
  client = WindmillTestClient(__name__)
  #Aller à la page /foo/bar
  client.open(url=u'/foo/bar')
  client.waits.forPageLoad(timeout=u'50000')
  #Vérifier l'existence d'une élément HTML contenant du texte
  client.asserts.assertNode(jquery=u"('p:contains(foo bar)')[0]")
  #Vérifier qu'une image est affichée
  client.asserts.assertImageLoaded(jquery=u"('[src*=foobar.png]')[0]")

  #Connexion (login et mdp passé en paramètre)
  client.type(text=functest.registry['username'], id=u'edit-name')
  client.type(text=functest.registry['password'], id=u'edit-pass')
  client.click(value=u'Connexion')
  client.waits.forPageLoad(timeout=u'20000')

  #Tester si le script est exécuté sur le site www.april.org ou non
  if client.execJS(js="document.location")['output']['hostname'] == 'www.april.org':
    #Site Drupal 5
  else:
    #Site Drupal 6

Exécution du test

windmill firefox test=foobar.py http://staging.april.org/ username=foobar password=s3kr3t


Tests réalisés

Ajoutez les test réalisés à la liste çi-dessous. Essayez d'être le plus précis dans la description du test. Si un script windmill existe, indiqué son nom de fichier.

  • Page d'accueil (acceuil.py)
    • Contient le logo April (*/logo.png)
    • Contient une nuage de tag avec les termes "Éducation", "Administrations et collectivités" et "Archive".
    • Devrait contenir les titres h2 (bloc de panel) suivants Dernières actualités, Derniers communiqués, Revue de Presse, Dernières actualités, Derniers communiqués, Revue de Presse, Le mot du président, Évènements à venir, Citation du moment, Adhérez maintenant pour, Thèmes (cf. #144).
  • Page "Bibliographie" (bibliographie.py)
    • Contient la table de matière (valide que le module ToC a été migré, valide que le module htmlcomments a été installé pour permettre l'utilisation de commentaires HTML)
    • Contient les titres de views embarqués dans la page (valide le remplacement du module insert_view, cf. #142)
    • Contient l'image =La bataille du logiciel libre.jpg issu d'une page dans une des vues (validation de la migration des images)
  • Pages CA (ca.py, pas fonctionnelles, cf. #140)
    • Pour un utilisateur non connecté
      • La page "Groupe CA" (fr/ca) est accessible
      • La page "Groupe CA" ne contient pas le titre "Tableau de bord CA"
      • La page "Tableau de bord du CA" existe mais n'est pas accessible
    • Pour un utilisateur connecté
      • La page "Groupe CA" (fr/ca) est accessible
      • La page "Groupe CA" contient pas le titre "Tableau de bord CA"
      • La page "Tableau de bord du CA" est accessible
  • Page de citation lapril-joue-un-role-extremement-important-dans-lecosysteme-logiciel-libre-en-france (citation.py)
    • Contient le nom de son auteur
    • Contient un lien inclus dans la biographie de l'auteur (donc contient la biographie de l'auteur).
  • Menu primary-links (cf. #149, 149-primary-links.py)
    • Contient les entrées "About us" "L'association", "Communiqués" , "FAQ", "Nos positions", "Activités", "Our positions", "Thèmes", "Revue de presse", "Help us", "Wiki", "Adhérer", "Nous aider"
  • Page "Thèmes" (cf. #147, 147-themes.py)
    • La page est accessible depuis un lien "Thème" en page d'accueil
    • Elle contient les liens "Économie", "Éducation", "Accessibilité", "ACTA", "Administrations et collectivités", "Aprilien", "Archive", "Associations", "Brevets"
  • Le Menu en anglais ne contient "Press Information", "Contact Us", "Rester informé" et "Document - Sensibilisation" (cf. #150, 150-english-menu.py)
  • Page "Espace presse" (cf. #154, 154-espace-presse.py)
    • Ne contient pas "Fatal error"
    • Contient le titre "Espace presse"
  • Page "Activités de l'april" (cf. #148, 148-activites.py)
    • Ne contient pas "Fatal error"
    • Contient le titre "Activités de l'April"