Windows Dev Center

Test et déploiement d’applications du Windows Store : Hilo (C++ et XAML)

Rubrique parente : Développement d’une application du Windows Store en C++ et XAML de bout en bout : Hilo

Logo de Patterns & Practices

Page précédente | Page suivante

Nous avons conçu Hilo C++ de manière à prendre en charge l’exécution de tests et vous recommandons de procéder de la même façon lors de la conception de vos applications. Pour Hilo C++, nous avons créé et dirigé des tests unitaires, tests d’intégration, tests d’expérience utilisateur, tests de sécurité, tests de localisation, tests de performances et tests de périphériques.

Téléchargement

Télécharger l’exemple Hilo
Télécharger le manuel (PDF)

Après avoir téléchargé le code, consultez Prise en main de Hilo pour obtenir des instructions.

Ce que vous allez apprendre

  • Comment utiliser les outils de test disponibles dans Microsoft Visual Studio.
  • Comment les divers modes de test contribuent à la fiabilité et à l’exactitude d’une application

S’applique à

  • Windows Runtime
  • Extensions des composants Visual C++ (C++/CX)
  • XAML

Comment tester votre application

Vous pouvez tester votre application de nombreuses façons. Voici les tests que nous avons sélectionnés pour Hilo :

  • Le test unitaire teste des fonctions individuelles en situation d’isolation. L’objectif du test unitaire est de vérifier que chaque unité de fonctionnalité fonctionne comme prévu de manière à ce que les erreurs ne se propagent pas dans tout le système. Le fait de détecter un bogue à l’endroit même où il se produit est plus efficace que d’observer l’effet indirect d’un bogue au niveau d’un point d’échec secondaire.
  • Le test d’intégration vérifie que les composants de l’application fonctionnent correctement ensemble. Les tests d’intégration mettent en œuvre les fonctionnalités de l’application de manière réaliste. Dans Hilo, vous pouvez reconnaître ce type de test, car il appelle des méthodes du modèle de vue. La séparation des affichages du modèle de vue rend possible la conduite de tests d’intégration.
  • Le test de l’expérience d’utilisateur interagit directement avec l’interface utilisateur. Ce type de test requiert souvent une intervention humaine. Il est possible de remplacer certains tests de l’expérience d’utilisateur par des tests d’intégration automatisés, mais ceux-ci ne peuvent pas les éliminer entièrement.
  • Le test de sécurité porte sur la détection des vulnérabilités de sécurité potentielles. Il est basé sur un modèle de risque qui identifie les classes d’attaque possibles.
  • Le test de localisation permet de s’assurer que l’application fonctionne dans tous les environnements linguistiques.
  • Le test des performances identifie la façon dont l’application se comporte lorsqu’elle est en cours d’exécution. Dans de nombreux cas, le test des performances peut permettre de localiser des goulots d’étranglement ou des routines qui s’approprient un pourcentage élevé du temps processeur de l’application.
  • Le test des périphériques vérifie que l’application fonctionne correctement sur la gamme de matériels qu’elle prend en charge. Par exemple, il est important de vérifier que l’application prend en charge différentes résolutions d’écran et technologies d’entrée tactile.

Le reste de cette page décrit les outils que nous avons utilisés pour tester Hilo.

[Haut]

Utilisation de l’infrastructure de tests unitaires Visual Studio

Dans Hilo, nous utilisons l’infrastructure de tests unitaires de Visual Studio pour conduire les tests unitaires et les tests d’intégration. Le projet HiloTests de la solution Visual Studio Hilo contient l’ensemble du code prenant en charge les tests réalisés sur Hilo.

Remarque  La version de Hilo qui contient le projet HiloTests est disponible sur Patterns & Practices - Développer des applications du Windows Store en C++ & XAML : Hilo.

Vous pouvez examiner les tests unitaires en ouvrant la solution Visual Studio Hilo. Dans la barre de menus, choisissez Test > Windows > Explorateur de tests. La fenêtre Explorateur de tests répertorie tous les tests unitaires de Hilo.

Voici la solution Hilo dans Visual Studio qui affiche la fenêtre Explorateur de tests.

Capture d’écran des tests unitaires Hilo tels qu’ils apparaissent dans l’Explorateur de tests Visual Studio

Voici un exemple de test :

RotateImageViewModelTests.cpp


TEST_METHOD(RotateImageViewModelShouldSaveAndLoadRotationAngle)
{
    auto vm = std::make_shared<RotateImageViewModel^>(nullptr);
    auto newVm = std::make_shared<RotateImageViewModel^>(nullptr);

    TestHelper::RunUISynced([this, vm, newVm]() 
    {
        (*vm) = ref new RotateImageViewModel(m_repository, m_exceptionPolicy);
        (*vm)->RotationAngle = 90;
        auto state = ref new Platform::Collections::Map<String^, Object^>();
        (*vm)->SaveState(state);

        (*newVm) = ref new RotateImageViewModel(m_repository, m_exceptionPolicy);
        (*newVm)->LoadState(state);
    });

    Assert::AreEqual((*vm)->RotationAngle,  (*newVm)->RotationAngle);
}


Le code vérifie que les méthodes SaveState et LoadState de la classe RotateImageViewModel enregistrent et restaurent la valeur de la propriété RotationAngle. La fonction RunUISynced est définie dans le projet de test Hilo pour permettre l’exécution de tests unitaires sur les opérations asynchrones.

La macro préprocesseur TEST_METHOD est définie par l’infrastructure de tests unitaires Microsoft pour C++.

Pour plus d’informations sur les outils de test unitaire dans Visual Studio, voir Vérification du code à l’aide de tests unitaires. Pour plus de détails sur la façon de tester le code C++, voir Écriture de tests unitaires pour C/C++ avec l’infrastructure de tests unitaires Microsoft pour C++.

[Haut]

Utilisation de Visual Studio pour tester la suspension et la reprise de l’application

Lorsque vous déboguez une application du Windows Store, la barre d’outils Emplacement de débogage contient un menu déroulant qui vous permet de suspendre, de reprendre ou de suspendre et d’arrêter l’application en cours d’exécution. Grâce à cette fonctionnalité, vous pouvez vous assurer que votre application se comporte comme prévu lorsque le système suspend votre application, la reprend ou l’active après une séquence suspension/arrêt.

Capture d’écran de la barre d’outils Emplacement de débogage

Si vous voulez observer la suspension à partir du débogueur, exécutez Hilo dans le débogueur Visual Studio et définissez des points d’arrêt dans les méthodes App:OnSuspending et App::OnLaunched de Hilo. Sélectionnez ensuite Suspendre et arrêter dans la barre d’outils Emplacement de débogage. L’application se ferme. Redémarrez l’application dans le débogueur. L’application suit alors le chemin de code de reprise à partir de l’état Terminated. Dans Hilo, cette logique se trouve dans la méthode App::OnLaunched. Pour plus d’informations, voir Gestion de la suspension, de la reprise et de l’activation.

[Haut]

Utilisation du simulateur et du débogueur à distance pour tester les périphériques

Visual Studio comprend un simulateur à l’aide duquel vous pouvez exécuter votre application du Windows Store dans divers environnements de périphérique. Par exemple, vous pouvez vérifier à l’aide du simulateur que votre application fonctionne correctement avec différentes résolutions d’écran et divers matériels d’entrée. Vous pouvez simuler des entrées tactiles même si vous développez l’application sur un ordinateur qui ne prend pas en charge l’interaction tactile.

Voici Hilo en cours d’exécution dans le simulateur.

Capture d’écran de Hilo en cours d’exécution dans le simulateur

Pour démarrer le simulateur, sélectionnez Simulateur dans le menu déroulant situé dans la barre d’outils Déboguer de Visual Studio. Les autres choix du menu déroulant sont Ordinateur local et Ordinateur distant.

Outre l’utilisation du simulateur, nous avons testé Hilo sur divers matériels. Vous pouvez utiliser le débogage à distance pour tester votre application sur un ordinateur sur lequel Visual Studio n’est pas installé. Pour plus d’informations sur le débogage à distance, voir Exécution d’applications du Windows Store sur un ordinateur distant.

[Haut]

Utilisation de versions pseudo-localisées à des fins de test

Nous avons utilisé des versions pseudo-localisées de Hilo pour tester la localisation. Pour plus d’informations, voir Tests de localisation.

[Haut]

Test de la sécurité

Nous avons utilisé la méthodologie STRIDE pour la modélisation des risques comme base des tests de sécurité dans Hilo. Pour plus d’informations sur cette méthodologie, voir Détecter les failles de sécurité dans la conception à l’aide de l’approche STRIDE.

[Haut]

Utilisation de WinDbg pour le débogage

Pour effectuer le débogage lors du développement normal, nous avons eu recours au débogueur Visual Studio. Nous avons également utilisé le débogueur Windows (WinDbg) pour déboguer certains scénarios de test.

[Haut]

Utilisation du compilateur Visual C++ à des fins de test

Vous pouvez également utiliser le compilateur Visual C++ pour vous aider à tester votre application. Par exemple, utilisez static_assert pour vérifier que certaines conditions sont vraies au moment de la compilation et assert pour les conditions qui doivent être vraies au moment de l’exécution. Les assertions peuvent vous aider à restreindre vos tests unitaires à des types et à des entrées donnés.

[Haut]

Rendre votre application apte à la globalisation

La préparation de votre application aux marchés internationaux peut vous aider à viser davantage d’utilisateurs. La rubrique Globalisation de votre application propose des guides, des listes de vérification et des tâches grâce auxquels vous pourrez créer une expérience utilisateur qui s’adapte aux utilisateurs en globalisant et en localisant votre application du Windows Store. Hilo prend en charge tous les formats de calendrier au monde. Les chaînes de ressources ont été localisées dans quatre langues : allemand (Allemagne), anglais (États-Unis), arabe (Arabie Saoudite) et japonais.

Voici quelques-uns des points importants que nous avons constatés lors du développement de Hilo.

  • Préparer la localisation le plus tôt possible. Nous avons examiné la façon dont la direction du flux et certains éléments de l’expérience utilisateur affectent les utilisateurs ayant des paramètres régionaux différents. Nous avons également incorporé la localisation des chaînes dès le début pour rendre l’ensemble du processus plus facile à gérer.
  • Séparer les ressources selon les paramètres régionaux. Nous maintenons des dossiers de solution séparés pour les différents paramètres régionaux. Par exemple, Chaînes > en-US > Resources.resw définit les chaînes pour les paramètres régionaux en-US. Pour plus d’informations, voir Démarrage rapide : utilisation de ressources de type chaîne et Comment nommer des ressources à l’aide de qualificateurs.
  • Localiser le manifeste de l’application. Nous avons suivi les étapes décrites dans le document Localisation du manifeste du package. Celui-ci explique comment utiliser le Concepteur de manifeste pour localiser le nom, la description et d’autres fonctionnalités d’identification de votre application.
  • Assurez-vous que chaque élément de texte qui apparaît dans l’interface utilisateur est défini par une ressource de chaîne. Nous utilisons la directive x:Uid pour fournir un nom unique au processus de localisation afin d’associer les chaînes localisées au texte qui apparaît à l’écran. Par exemple, voici le code XAML qui définit le titre de l’application qui apparaît dans la page principale :

    MainHubView.xaml

    
    <TextBlock x:Name="PageTitle"
               x:Uid="AppName"
               Grid.Column="1"
               Style="{StaticResource PageHeaderTextStyle}"
               Text="{Binding AppName}"/>
    
    
    

    Pour les paramètres régionaux en-US, dans le fichier de ressources, nous attribuons à AppName.Text la valeur « Hilo ». Nous spécifions l’élément .Text pour que le runtime XAML puisse associer la chaîne à la propriété Text du contrôle TextBlock. Nous utilisons également cette technique pour définir le texte info-bulle (ContentControl::Content).

  • Ajouter des commentaires contextuels au fichier de ressources de l’application. Les commentaires fournis dans le fichier de ressources aident les traducteurs à traduire les chaînes de manière plus précise. Par exemple, pour la chaîne DisplayNameProperty, nous avons ajouté le commentaire « DisplayName property value for the package manifest » (valeur de la propriété DisplayName pour le manifeste du package) afin de donner au traducteur une meilleure idée de l’endroit où la chaîne est utilisée. Pour plus d’informations, voir Comment se préparer à la localisation.
  • Définir la direction du flux pour toutes les pages. Nous définissons Page.FlowDirection dans le fichier de ressources de chaînes pour définir la direction du flux pour toutes les pages. Pour les langues qui se lisent de gauche à droite, comme l’anglais et l’allemand, nous lui attribuons la valeur « LeftToRight ». Pour les langues qui se lisent de droite à gauche, comme l’arabe et l’hébreu, la valeur « RightToLeft » est attribuée. Nous spécifions également la direction du flux pour toutes les barres d’application en définissant AppBar.FlowDirection dans les fichiers de ressources.
  • Vérifiez que les messages d’exception sont lus à partir du fichier de ressources. Il est important de localiser les chaînes des messages d’exception, car les chaînes des exceptions non gérées peuvent être visibles par l’utilisateur. Hilo définit l’interface IResourceLoader pour charger les ressources de chaînes.

    IResourceLoader.h

    
    public interface class IResourceLoader
    {
        Platform::String^ GetString(Platform::String^ value);
    };
    
    
    

    La classe LocalResourceLoader dérive d’IResourceLoader et utilise la classe ResourceLoader pour charger les chaînes du fichier de ressources.

    LocalResourceLoader.cpp

    
    String^ LocalResourceLoader::GetString(String^ value)
    {
        auto loader = ref new ResourceLoader();
        return loader->GetString(value);
    }
    
    
    

    Lorsque nous fournissons un message lors de la levée d’une exception Windows Runtime, nous utilisons la classe LocalResourceLoader pour lire le texte du message. Voici un exemple.

    WideFiveImageTile.cpp

    
    void WideFiveImageTile::SetImageFilePaths(const vector<wstring>& fileNames)
    {
        if (fileNames.size() > MaxTemplateImages)
        {
            throw ref new FailureException(m_loader->GetString("ErrorWideTileTooBig"));
        }
    
        m_fileNames = fileNames;
    }
    
    
    

    Pour les paramètres régionaux en-US, nous définissons « ErrorWideTileTooBig » comme suit : « Wide tile can only take up to 5 images » (une vignette large peut uniquement prendre la place de 5 images). La même erreur est communiquée dans les messages des autres paramètres régionaux. Par exemple, le fichier Strings/ja-JP/Resources.resw contient une chaîne japonaise équivalente, à savoir "ワイドタイルは5イメージまでしか".

    Remarque  Nous définissons l’interface IResourceLoader à des fins de test. Dans le projet HiloTests, nous définissons la classe StubResourceLoader qui utilise des chaînes codées en dur à la place de chaînes localisées. Le fait d’utiliser des données fictives de cette façon peut permettre d’isoler plus facilement les tests et de se concentrer sur des fonctionnalités spécifiques.
  • Utiliser la classe Calendar pour prendre en charge les calendriers internationaux. Hilo utilise des méthodes et des propriétés de la classe Windows::Globalization::Calendar. Par exemple, Hilo obtient la propriété Calendar::NumberOfMonthsInThisYear pour déterminer le nombre de mois dans l’année actuelle plutôt que d’assumer qu’une année compte toujours 12 mois. La logique de gestion des calendriers de Hilo se trouve dans le fichier CalendarExtensions.cpp.

Vous pouvez tester la localisation de votre application en configurant la liste des langues par défaut dans le Panneau de configuration. Pour plus d’informations sur la manière de préparer votre application au marché mondial, voir Comment se préparer à la localisation, Guidelines for app resources et Démarrage rapide : traduction des ressources de l’interface utilisateur.

Test de votre application à l’aide du Kit de certification des applications Windows

Pour maximiser les chances de certification de votre application, validez-la à l’aide du Kit de certification des applications Windows. Le kit effectue un certain nombre de tests pour vérifier que votre application répond à certaines exigences de certification pour le Windows Store. Parmi les tests effectués, citons les suivants :

  • Examen du manifeste de l’application pour vérifier que son contenu est correct
  • Inspection des ressources définies dans le manifeste de l’application afin de vérifier qu’elles sont présentes et valides
  • Test de la résilience et de la stabilité de l’application
  • Détermination de la vitesse à laquelle l’application est démarrée et suspendue
  • Inspection de l’application pour vérifier qu’elle appelle uniquement des API pour des applications du Windows Store
  • Vérification que l’application utilise les fonctionnalités de sécurité Windows

Vous devez exécuter le Kit de certification des applications Windows sur une build Release de votre application ; sinon, la validation échoue. Pour plus d’informations, voir Comment définir les configurations Debug et Release.

Par ailleurs, vous avez la possibilité de valider votre application chaque fois que vous la générez. Si vous exécutez Team Foundation Build, vous pouvez modifier des paramètres sur votre ordinateur de build de manière à ce que le Kit de certification des applications Windows s’exécute automatiquement chaque fois que votre application est générée. Pour plus d’informations, voir Validation d’un package dans des builds automatisées.

Pour plus d’informations, voir Comment tester votre application à l’aide du Kit de certification des applications Windows.

[Haut]

Création d’une liste de vérification de certification du Windows Store

Vous allez utiliser le Windows Store comme méthode principale pour vendre vos applications ou les mettre à disposition des utilisateurs. Pour plus d’informations sur la façon de préparer et de soumettre votre application, voir Soumission de votre application.

Lorsque vous planifiez votre application, nous vous recommandons de créer une liste de conditions de publication que vous pourrez utiliser plus tard lorsque vous testerez votre application. Cette liste de vérification peut varier selon le type d’application que vous générez et la façon dont vous envisagez de la commercialiser. Voici notre liste de vérification :

  1. Ouvrir un compte de développeur. Vous devez posséder un compte de développeur pour télécharger des applications dans le Windows Store. Pour plus d’informations, voir Inscription pour l’obtention d’un compte de développeur du Windows Store.
  2. Réserver un nom d’application. Vous pouvez réserver un nom d’application pendant un an ; si vous ne soumettez pas l’application dans l’année, la réservation expire. Pour plus d’informations, voir Attribution d’un nom et d’une description à votre application.
  3. Acquérir une licence de développeur. Vous devez obtenir une licence de développeur pour développer une application du Windows Store. Pour plus d’informations, voir Obtention d’une licence de développeur pour Windows 8.
  4. Modifier votre manifeste d’application. Modifiez le manifeste d’application pour définir les fonctionnalités de votre application et pour fournir des éléments tels que des logos. Pour plus d’informations, voir Concepteur du manifeste.
  5. Associer votre application au Windows Store. Lorsque vous associez votre application au Windows Store, le fichier de manifeste de votre application est mis à jour pour inclure des données spécifiques au Windows Store.
  6. Copier une capture d’écran de votre application dans le Windows Store.
  7. Créer votre package d’application. Pour cela, le moyen le plus simple consiste à utiliser Visual Studio. Pour plus d’informations, voir Création du package de votre application à l’aide de Visual Studio 2012. Vous pouvez également créer votre package d’application à partir d’une invite de commandes. Pour plus d’informations, voir Génération d’un package d’application à partir d’une invite de commandes.
  8. Télécharger votre package d’application dans le Windows Store. Au cours du processus de téléchargement, les packages de votre application sont examinés pour vérifier leur conformité technique par rapport aux conditions de certification des applications. Si votre application réussit ces tests, un message indiquant que le téléchargement a réussi s’affiche. Si un package échoue à un test de téléchargement, vous recevez un message d’erreur. Pour plus d’informations, voir Résolution des erreurs de téléchargement de package.

Bien que nous n’ayons pas réellement téléchargé Hilo dans le Windows Store, nous avons effectué les étapes nécessaires pour vérifier sa validité.

Avant de créer votre package d’application en vue de le télécharger dans le Windows Store, procédez comme suit :

Par ailleurs, si votre application collecte des données personnelles ou utilise des logiciels fournis par des tiers, vous devez également inclure une déclaration de confidentialité ou des termes de contrat de licence supplémentaires.

[Haut]

 

 

Afficher:
© 2015 Microsoft