Golden Nine et Silver Ten, une collection de questions d'entretien sur les tests de logiciels (avec réponses)

avant-propos

J'ai déjà vu des questions d'entretien auparavant, et j'ai toujours le sentiment qu'elles seront utiles, mais je ne m'en souviens plus après les avoir lues encore et encore, alors j'ai intégré toutes les questions d'entretien ensemble, et elles ont toutes été partagées par de grands gars de tous Balayez, pas besoin de chercher des questions partout, et partagez ces questions d'entretien que j'ai triées aujourd'hui. En parallèle, je vous ai aussi préparé un tuto vidéo de test logiciel, juste en dessous, vous pouvez le regarder directement si vous en avez besoin, ou vous pouvez directement cliquer sur la petite carte en fin d'article pour obtenir le document d'information gratuitement

Regardez des didacticiels vidéo gratuits sur :

[Test de logiciel] Utilisez 300 questions d'entretien pour vous aider à vous connecter, brossez-le une fois par jour, laissez-vous entrer directement dans le poste et obtenez votre offre préférée_哔哩哔哩_bilibili [Test de logiciel] utilisez 300 questions d'entretien pour vous aider connectez-vous, brossez-le une fois par jour, laissez-vous rejoindre directement le travail et obtenez un total de 200 vidéos de votre offre préférée, y compris : Explication de l'entretien 1——Meituan Zhenti 1—Étant donné un scénario, parlez de vos idées de conception de cas de test, un ensemble complet de matériel de test de logiciel et d'itinéraires d'apprentissage, explication de l'entretien 2 —— Meituan Zhenti 2 - Parlons de la différence entre la vérification de session et de jeton, etc. Pour des vidéos plus passionnantes du maître UP, veuillez suivre le compte UP. https://www.bilibili.com/video/BV1SY4y1p7k6/?spm_id_from=333.999.0.0&vd_source=74d0257ec7066cc4f9013524f0bb7013

1. 30 questions pour le test du logiciel JD après l'entretien (marchandises sèches)

1. Quelles sont les méthodes de conception courantes des cas de test pour les tests de boîte noire ? Veuillez utiliser des exemples spécifiques pour illustrer l'application de ces méthodes dans la conception de cas de test.

1) Division de classe d'équivalence : Une classe d'équivalence fait référence à un sous-ensemble d'un champ d'entrée. Dans ce sous-ensemble, chaque donnée d'entrée équivaut à révéler des erreurs dans le programme. Il est raisonnable de supposer que : tester une certaine équivalence La valeur représentative d'un classe est égale au test des autres valeurs de cette classe. Par conséquent, toutes les données d'entrée peuvent être raisonnablement divisées en plusieurs classes d'équivalence, et une donnée dans chaque classe d'équivalence est prise comme condition d'entrée du test, et une petite quantité de données de test représentatives. Obtenez de bons résultats de test. La division de classe d'équivalence peut avoir deux situations différentes : classe d'équivalence valide et classe d'équivalence invalide.

2) Analyse des valeurs limites : C'est un complément à la méthode de division des classes d'équivalence. L'expérience de test me dit qu'un grand nombre d'erreurs se produisent à la limite de la plage d'entrée ou de sortie, plutôt qu'à l'intérieur de la plage d'entrée et de sortie.Par conséquent, la conception de cas de test pour diverses conditions aux limites peut détecter plus d'erreurs.

Pour concevoir des cas de test à l'aide de la méthode d'analyse des valeurs limites, les conditions aux limites doivent d'abord être déterminées. Habituellement, les limites des classes d'équivalence d'entrée et de sortie sont les conditions aux limites qui doivent être axées sur les tests. Des valeurs qui sont exactement égales à, juste supérieur ou juste inférieur à la limite doit être sélectionné comme données de test, Au lieu de sélectionner des valeurs typiques ou des valeurs arbitraires dans la classe d'équivalence comme données de test.

3) Méthode d'estimation des erreurs : basée sur l'expérience et l'intuition pour spéculer sur toutes les erreurs possibles dans le programme, afin de concevoir des cas de test de manière ciblée.

L'idée de base de la méthode de devinette d'erreur : répertorier toutes les erreurs possibles et les cas particuliers susceptibles d'entraîner des erreurs dans le programme, et sélectionner des cas de test en fonction de ceux-ci. Par exemple, de nombreuses erreurs courantes dans les modules ont été répertoriées lors des tests unitaires. Produits précédents Les erreurs trouvées dans le test, etc., ce sont le résumé de l'expérience. De plus, les données d'entrée et les données de sortie sont 0. Le formulaire d'entrée est vide ou le formulaire d'entrée ne comporte qu'une seule ligne. Ce sont les situations qui sont sujettes aux erreurs. Vous pouvez choisir ces situations L'exemple suivant est utilisé comme cas de test.

4) Méthode du diagramme de cause à effet : la méthode de division des classes d'équivalence et la méthode d'analyse des valeurs limites présentées ci-dessus se concentrent toutes deux sur la prise en compte des conditions d'entrée, mais ne prennent pas en compte la relation entre les conditions d'entrée, la combinaison mutuelle, etc. des conditions d'entrée, de nouvelles situations peuvent être générées. Mais ce n'est pas une tâche facile de vérifier la combinaison des conditions d'entrée. Même si toutes les conditions d'entrée sont divisées en classes d'équivalence, il existe un grand nombre de combinaisons entre elles. Par conséquent, il est nécessaire d'envisager l'adoption d'un Pour décrire la combinaison de diverses conditions, générer en conséquence plusieurs actions pour envisager la conception de cas de test. Cela nécessite l'utilisation de diagrammes de causalité (modèles logiques). Le résultat final de la méthode du diagramme de causalité est le table de décision. Il convient pour vérifier les conditions d'entrée du programme de diverses combinaisons.

5) Méthode d'analyse de table orthogonale : elle peut entraîner une augmentation du nombre de cas de test en raison de la combinaison d'un grand nombre de paramètres. Dans le même temps, ces cas de test n'ont pas d'écart de priorité évident et les testeurs ne peuvent pas effectuer un tel test. grand nombre de tests. , certains cas d'utilisation peuvent être réduits grâce à la table orthogonale, de manière à avoir la possibilité de couvrir une plage aussi large que possible avec le moins de cas d'utilisation possible.

6) Méthode d'analyse de scénario : fait référence à la simulation des étapes de fonctionnement de l'utilisateur en fonction du scénario de l'utilisateur. Ceci est similaire au diagramme de cause à effet, mais il peut avoir une meilleure profondeur d'exécution et une meilleure faisabilité.

7) Méthode du diagramme d'état : obtenez tous les états du système testé via les conditions d'entrée et la description des exigences du système, et obtenez les conditions de sortie via les conditions et les états d'entrée ; obtenez des cas de test du système testé via les conditions d'entrée, les conditions de sortie et les états.

8) Méthode des grandes lignes : La méthode des grandes lignes est une méthode qui se concentre sur les exigences.Afin de répertorier les différentes conditions de test, les exigences sont converties en grandes lignes. Le contour est représenté sous la forme d'une structure arborescente avec un chemin unique entre la racine et chaque nœud feuille. Chaque chemin dans l'outline définit un ensemble spécifique de conditions d'entrée utilisées pour définir les cas de test. Le nombre de feuilles dans l'arborescence ou de chemins dans l'outline donne le nombre approximatif de cas de test nécessaires pour tester toutes les fonctionnalités.

2. Décrire en détail le processus complet d'une activité de test. (Pour référence, cette réponse est principalement la pratique du modèle en cascade)

Le chef de projet communique avec le client pour compléter le document d'exigences, et les développeurs et les testeurs complètent conjointement l'examen du document d'exigences. Le contenu de l'examen comprend : lorsque la description des exigences n'est pas claire et lorsqu'il peut y avoir des conflits évidents ou des fonctions irréalisables . Le chef de projet complète le plan de projet en intégrant les avis des développeurs, des testeurs et des clients. Ensuite, SQA entre dans le projet et commence à faire des statistiques et un suivi

Le développeur complète le document d'analyse des exigences conformément au document d'exigences, et le testeur effectue une revue. Le contenu principal de la revue comprend s'il y a des omissions ou des différences de compréhension entre les deux parties. Le testeur remplit le document de plan de test et le contenu inclus dans le plan de test est décrit ci-dessus.

Les testeurs commencent à rédiger des cas de test en fonction du document d'analyse des exigences modifié, et les développeurs complètent le document de conception générale et le document de conception détaillée. Ces deux documents deviennent des supports supplémentaires permettant aux testeurs de rédiger des cas de test.

Une fois les cas de test terminés, les tests et le développement doivent être revus.

Le testeur construit l'environnement

Le développeur soumet la première version, et il peut y avoir des fonctions inachevées qui doivent être expliquées. Les testeurs effectuent des tests et les soumettent à BugZilla après avoir trouvé des bogues.

Le développement soumet la deuxième version, y compris Bug Fix et certaines fonctions ajoutées, et les testeurs effectuent des tests.

Répétez le travail ci-dessus, généralement après 3-4 versions, le nombre de BUG diminuera et les exigences d'expédition seront satisfaites.

Si des problèmes sont signalés par les clients, les testeurs sont tenus d'aider à reproduire et à retester.

3. Le processus de suivi des outils de gestion de BUG (en utilisant BugZilla comme exemple)

Le testeur trouve le BUG, ​​le soumet à Bugzilla, le statut est nouveau et le destinataire du BUG est le personnel de l'interface de développement

L'interface de développement attribue le BUG au développeur du module concerné, et le statut passe à attribué. Le développeur et le test confirment le BUG. S'il s'agit de mon propre BUG, ​​il est configuré pour recevoir ; s'il s'agit d'un autre problème du développeur, il est transmis. C'est au développeur suivant d'effectuer ce comportement ; si ce n'est pas un problème, vous devez en discuter et le confirmer, rejeter ce BUG, ​​puis le testeur ferme ce problème.

Si le développeur accepte le BUG et le modifie, changez le statut du BUG en fixe, et informez la version dans laquelle le test peut être testé.

Les testeurs testent dans la nouvelle version, et s'ils constatent que le problème existe toujours, ils refuseront de vérifier ; s'il a été corrigé, ils fermeront le BUG.

4. A votre avis, dans le processus de communication entre testeurs et développeurs, comment améliorer l'efficacité et l'effet de la communication ? Quelle est la clé pour maintenir de bonnes relations interpersonnelles entre les testeurs et les autres membres de l'équipe de développement ?

Essayez de communiquer en face à face, et deuxièmement, communiquez directement par téléphone. Si vous ne pouvez communiquer que par le biais d'outils de communication non ponctuels tels que le courrier électronique, insistez sur la nécessité d'avoir une compréhension approfondie des caractéristiques et d'être capable de vous exprimer clairement.

Il est également plus efficace d'utiliser certains outils de gestion de test tels que TestDirector pour la gestion.En même temps, il convient de noter qu'il existe une description précise du BUG dans TestDirector.

Faites attention aux points suivants pour établir une bonne communication entre les testeurs et les développeurs de l'équipe :

L'un est la sincérité, l'autre est l'esprit d'équipe, le troisième est d'avoir un langage commun dans la profession, et le quatrième est d'avoir raison sur les choses et non sur les gens, travailler d'abord

Bien sûr, vous pouvez également augmenter la faveur de l'autre partie en signalant directement certains problèmes mineurs au lieu d'entrer dans le système de suivi des bogues.

5. Quel est votre plus grand intérêt pour les tests ? Pourquoi?

Il n'y a pas de réponse fixe et unifiée à cette question d'entretien, mais elle peut être posée par de nombreuses entreprises. Fournissez les réponses suivantes pour examen :

Le plus grand intérêt, sentant qu'il s'agit d'un travail stimulant ;

Les tests sont une industrie d'expérience. Plus vous travaillez longtemps, plus il sera difficile et amusant de faire du bon travail dans les tests.

Grâce à votre propre travail, vous pouvez rendre les produits logiciels de plus en plus parfaits et en tirer le plaisir

Faites attention aux points suivants lorsque vous répondez à ces questions :

Exprimez votre intérêt en faisant correspondre le plus possible le parcours technique de l'entreprise qui recrute. Par exemple, si l'entreprise est une société d'applications de bases de données, exprimez votre intérêt pour les tests de bases de données et espérez améliorer votre maîtrise des bases de données grâce aux tests.

Indiquez que le but de vos tests est d'améliorer vos capacités et de faire un meilleur travail de test ; l'amélioration de vos capacités n'est pas destinée à un développement futur ou à d'autres choses, à moins que l'employeur n'ait un tel arrangement.

N'exprimez pas trop votre intérêt en dehors du périmètre de l'entreprise qui recrute. Par exemple, l'entreprise qui recrute fait des logiciels financiers, mais vous avez manifesté de l'intérêt pour les logiciels de jeu ; ou l'entreprise qui recrute fait du développement JAVA, mais vous vous intéressez au développement de programmes en langage C.

6. Selon vous, quels sont les avantages des tests ?

Il n'y a pas de réponse fixe à cet entretien, mais vous pouvez vous référer aux points suivants et combiner vos propres caractéristiques :

Résilient, patient, organisé, aime relever des défis, a la confiance nécessaire pour tout bien faire, de solides compétences en communication, les bons commentaires des anciens managers montrent que je vais bien

7. Décrivez brièvement ce que vous avez fait dans votre travail précédent et ce que vous connaissez. La réponse de référence est la suivante.

Mon travail principal dans le passé était les tests de système et les tests d'automatisation. Lors du test du système, la fonction de logique métier du système BOSS et les caractéristiques de classe 5 du système de commutation logicielle sont principalement testées. Dans le test de performance, le test de résistance est principalement effectué, et le temps de réponse du système et la consommation des ressources système sont obtenus dans le cas de différents nombres de requêtes. Les tests automatisés consistent principalement à tester les caractéristiques du softswitch grâce à la combinaison de scripts auto-écrits et de certains outils tiers.

Lors des tests, je pense qu'une compréhension parfaitement précise des besoins des utilisateurs est très importante. De plus, la gestion des BUG doit être basée sur les exigences, tous les BUG n'ont pas besoin d'être modifiés.

Le travail de test demande de la patience et de la méticulosité, car dans la nouvelle version, bien que la plupart des bogues découverts à l'origine aient été corrigés, les fonctions correctes d'origine peuvent également devenir incorrectes. Faites donc attention aux tests itératifs et aux tests de régression.

8. A quoi sert static en C/C++ ? (Veuillez en préciser au moins deux)

1) Dans le corps de la fonction, une variable déclarée statique conserve sa valeur tant que la fonction est appelée.
2) A l'intérieur du module (mais en dehors du corps de la fonction), une variable déclarée statique est accessible par les fonctions utilisées dans le module, mais pas par d'autres fonctions extérieures au module. C'est une variable globale locale.
3) Dans un module, une fonction déclarée statique ne peut être appelée que par d'autres fonctions de ce module. Autrement dit, la fonction est limitée à la portée locale du module dans lequel elle est déclarée

9. Quelle est la différence entre une référence et un pointeur ?

1) Les références doivent être initialisées, pas les pointeurs.
2) Une fois la référence initialisée, elle ne peut plus être modifiée et le pointeur peut modifier l'objet pointé.
3) Il n'y a pas de référence à null, mais il y a un pointeur vers null.

10. Quel protocole réseau Internet utilise-t-il ? La hiérarchie principale du protocole ? Quel protocole est utilisé pour la traduction des adresses physiques Internet et des adresses IP ?

La structure hiérarchique principale du protocole TCP/IP est la suivante : couche application/couche transport/couche réseau/couche liaison de données.

ARP (protocole de résolution d'adresse) (protocole de résolution d'adresse)

11. Parlez-moi de votre compréhension des deux stratégies d'intégration descendante et d'intégration ascendante dans les tests d'intégration, et parlez de leurs avantages et inconvénients respectifs et du type de test pour lequel elles sont principalement adaptées ;

intégration descendante

Avantages : les principaux points de contrôle et de jugement sont vérifiés plus tôt ; une fonction logicielle complète peut d'abord être réalisée et vérifiée en fonction de la profondeur ; la fonction est vérifiée plus tôt, ce qui apporte la confiance ; un seul pilote est nécessaire, ce qui réduit le coût de développement du pilote prendre en charge l'isolation des pannes.

Inconvénients : la quantité de développement de la colonne est importante ; la vérification sous-jacente est retardée ; les composants sous-jacents ne sont pas suffisamment testés.

La structure de contrôle des produits est relativement claire et stable ; l'interface de haut niveau évolue peu ; l'interface de bas niveau est indéfinie ou peut être modifiée fréquemment ; les composants de production et de contrôle portuaire présentent des risques techniques élevés et doivent être vérifiés au plus vite ; espérons voir le système du produit dès que possible un comportement fonctionnel.

intégration ascendante

Avantages : vérifier plus tôt le comportement des composants sous-jacents ; le travail peut être initialement intégré en parallèle, ce qui est plus efficace que le haut vers le bas ; réduit la charge de travail du stub ; prend en charge l'isolation des pannes.

Inconvénients : La charge de travail de développement du pilote est lourde, la vérification du haut niveau est retardée et les erreurs de conception ne peuvent pas être trouvées à temps.
L'interface sous-jacente est relativement stable ; l'interface de haut niveau change fréquemment ; les composants sous-jacents sont complétés plus tôt.

12. Les tests d'acceptation des logiciels comprennent les tests d'acceptation formels, les tests alpha et les tests bêta.
13. Il existe de nombreuses stratégies pour tester le système, notamment les tests de performances, les tests de charge, les tests de résistance, les tests d'utilisabilité, les tests de sécurité, les tests de configuration, les tests d'installation, les tests de documents, les tests de récupération après défaillance, les tests d'interface utilisateur, les tests de récupération et les tests de distribution. tests, tests d'utilisabilité.
14. Les documents de projet auxquels il faut se référer lors de la conception d'un plan de test système comprennent le plan de test logiciel, l'artefact d'exigence logicielle et le plan d'itération
. Les étapes pour écrire un cas de test en dessinant un diagramme de cause à effet sont ___, ___, ___, ___ et en convertissant le diagramme de cause à effet en un diagramme d'état. Il y a cinq étapes. Les étapes de base pour générer des cas de test à l'aide de diagrammes de cause à effet sont :

§ Analyser les descriptions des spécifications logicielles, qui sont des causes (c'est-à-dire des conditions d'entrée ou des classes équivalentes de conditions d'entrée) et qui sont des résultats (c'est-à-dire des conditions de sortie), et attribuer un identifiant à chaque cause et résultat.

§ Analyser la sémantique dans la description de la spécification logicielle, trouver quelle est la relation correspondante entre la cause et l'effet, et entre la cause et la cause ?D'après ces relations, tracer un diagramme de cause à effet.

§ En raison de contraintes grammaticales ou environnementales, certaines combinaisons de causes et causes et entre causes et effets sont impossibles. Pour indiquer ces cas particuliers, les contraintes ou restrictions sont marquées sur le diagramme causal par des symboles. § Convertir les diagrammes de cause à effet en tableaux de décision.

§ Prendre chaque colonne du tableau de jugement comme base et concevoir des cas de test.

16. Dites-moi, s'il vous plaît, par qui ces tests sont les mieux réalisés et qu'est-ce qu'ils testent ?

Les tests au niveau du code et des fonctions sont généralement effectués par des testeurs boîte blanche, qui vérifient l'exactitude de chaque morceau de code ou fonction pour vérifier s'il implémente correctement les fonctions spécifiées.

La base principale des tests au niveau des modules et des composants est la relation d'intégration et d'appel entre la conception de la structure du programme et les modules de test, qui est généralement complétée par les testeurs.

Les tests du système sont effectués sur la base des tests de module et des tests unitaires. Comprendre les fonctions et les performances du système et effectuer des tests complets basés sur des cas de test.

17. Quels aspects doivent être pris en compte lors de la conception des cas de test, c'est-à-dire quels aspects sont testés par différents cas de test ?

Lors de la conception des cas de test, il est nécessaire de prêter attention non seulement au processus et aux fonctions globaux, mais également aux tests de résistance, aux tests de performance, aux tests de résistance, aux tests de valeur limite, aux tests de stabilité, aux tests de sécurité et à d'autres aspects. (Les quatre éléments de base qui doivent être pris en compte dans le cas de test sont l'entrée, la sortie, le fonctionnement et l'environnement de test ; en outre, le cas de test doit tenir compte du type de test (fonction, performance, sécurité...), cette partie peut être répondu en se référant à TP. En outre, l'importance et la priorité des cas d'utilisation doivent également être prises en compte)

18. Lors de l'enregistrement d'un fichier texte sous Windows, une boîte de dialogue d'enregistrement apparaît. Si un cas de test est créé pour le nom du fichier, comment la classe d'équivalence doit-elle être divisée ?

Un octet, tel que A ; double octet, AA, I I ; caractère spécial /'. ' ;, =-, etc. ; mots réservés, tels que com ; le format de fichier est au format 8.3 ; le format du nom de fichier n'est pas au format 8.3 ; neuf caractères spéciaux tels que /,, *.

19. En supposant qu'il existe une zone de texte nécessitant la saisie d'un code postal à 10 caractères, comment la zone de texte doit-elle être divisée en classes d'équivalence ?

Caractères spéciaux, tels que 10 * ou ¥ ; lettres anglaises, telles que ABCDefghik ; moins de dix caractères, tels que 123 ; plus de dix caractères, tels que 11111111111 ; nombres et autres caractères mixtes, tels que 123AAAAAAAA ; caractères vides ; caractères réservés

20. Quand le projet de test logiciel a-t-il démarré ? Pourquoi?

Les tests logiciels doivent être impliqués dans la phase d'analyse des exigences, car l'objet des tests n'est pas seulement le codage du programme, mais tous les produits générés au cours du processus de développement logiciel doivent être testés, et les défauts logiciels ont tendance à s'amplifier. plus il vous en coûtera pour le réparer, plus le coût sera élevé.

21. Qu'est-ce qu'un test de régression ?

Tests de régression : (tests de régression) : il existe deux types de tests de régression : la régression des cas d'utilisation et la régression des erreurs ; la régression des cas d'utilisation consiste à revenir en arrière et à retester les cas d'utilisation précédemment utilisés après un certain temps pour voir si le problème sera trouvé encore. La régression de bogue est une méthode de revérification des défauts qui sont apparus et réparés dans la version précédente dans la nouvelle version, et de tester les pièces modifiées pertinentes avec les défauts comme noyau.

22. Quel est l'objectif des tests unitaires, des tests d'intégration et des tests système ?

Les tests unitaires visent la plus petite unité de conception de logiciels - les modules de programme (fonctions et procédures orientées processus ; classes orientées objet). Le travail de test pour la vérification de l'exactitude consiste à trouver les erreurs possibles qui peuvent exister à l'intérieur de chaque module de programme. Généralement , il y a deux étapes : l'inspection statique manuelle \
le test d'intégration de suivi d'exécution dynamique vise l'inspection des composants intégrés par chaque module ayant réussi le test unitaire, et son contenu principal est l'interface entre chaque module unitaire et la fonction réalisée.
Le Le test du système est destiné au système logiciel intégré. En tant qu'élément de l'ensemble du système informatique, il est combiné avec d'autres éléments du système tels que le matériel informatique \ les périphériques \ certains logiciels de support \ les données et le personnel. Une série de tests d'intégration et de tests de confirmation sont effectuées sur le système informatique dans l'environnement d'exploitation.

23. Quelles qualités doit posséder un ingénieur d'essai ?

1. Responsabilité 2. Compétences en communication 3. Esprit d'équipe 4. Patience, prudence, confiance 5. Toujours garder une attitude sceptique et avoir conscience de la prévention des défauts 6. Avoir une certaine expérience en programmation

24. Quels types de tests logiciels connaissez-vous et présentez-les brièvement.

Classés par stratégie de test : 1. Tests statiques et dynamiques 2. Tests boîte noire et boîte blanche 3. Tests manuels et automatiques 4. Tests de fumée 5. Tests de régression ;

Classé par phase de test : test unitaire, test d'intégration, test système ;

Autres méthodes de test courantes : 1. Tests fonctionnels 2. Tests de performances 3. Tests de résistance 4. Tests de charge 5. Tests d'utilisabilité 6. Tests d'installation 7. Tests d'interface 8. Tests de configuration 9. Tests de documentation 10. Tests de compatibilité 11. Tests de sécurité 12 , essai de récupération

25. Selon vous, quelle est la clé pour faire un bon travail dans la planification des tests ?

Clarifier l'objectif du test et améliorer la praticabilité du plan de test

L'objectif important de la rédaction d'un plan de test logiciel est de permettre au processus de test de trouver davantage de défauts logiciels, de sorte que la valeur d'un plan de test logiciel dépend de sa capacité à aider à gérer les projets de test et à découvrir les défauts logiciels potentiels. Par conséquent, la portée des tests dans le plan de test logiciel doit couvrir largement les exigences fonctionnelles, les méthodes de test doivent être pratiques, les outils de test doivent être très pratiques, faciles à utiliser et les résultats de test générés sont intuitifs et précis.

Adhérer aux règles "5W", clarifier le contenu et le processus

La règle "5W" fait référence à "Quoi (que faire)", "Pourquoi (pourquoi le faire)", "Quand (quand le faire)", "Où (où)", "Comment (comment le faire) ". L'utilisation de la règle "5W" pour créer un plan de test logiciel peut aider l'équipe de test à comprendre l'objectif du test (Pourquoi), clarifier la portée et le contenu du test (Quoi), déterminer la date de début et de fin du test (Quand ), et précisez les méthodes et les outils du test (Comment), en indiquant le lieu de stockage des documents et logiciels de test (Où).

Adopter un mécanisme de révision et de mise à jour pour s'assurer que le plan de test répond aux besoins réels

Une fois le plan de test rédigé, s'il n'a pas été examiné, il sera envoyé directement à l'équipe de test. Le contenu du plan de test peut être inexact ou omettre le contenu du test, ou la portée du test peut augmenter ou diminuer en raison de modifications. dans les exigences logicielles, et le contenu du plan de test n'est pas mis à jour à temps, ce qui est trompeur.

Créer un plan de test et tester les spécifications détaillées, respectivement le cas de test

Les indicateurs techniques de test détaillés doivent être inclus dans le document de spécification détaillée de test créé indépendamment, et les cas de test utilisés pour guider l'équipe de test dans l'exécution du processus de test doivent être placés dans le document de cas de test créé indépendamment ou dans la base de données de gestion des cas de test. Il existe une relation stratégique et tactique entre le plan de test et la spécification de test et les cas de test. Le plan de test planifie principalement la portée, la méthode et l'allocation des ressources de l'activité de test d'un point de vue macro, tandis que la spécification de test et les cas de test sont les aspects spécifiques. tactiques pour accomplir la tâche de test.

26. Selon vous, quelle est la clé pour faire du bon travail dans la conception de cas de test ?

La clé de la conception de cas de test en boîte blanche est de couvrir autant de résultats de logique de programme interne que possible avec moins de cas de test

La clé de la conception de cas d'utilisation en boîte noire est également de couvrir les interfaces de sortie et d'entrée du module avec moins de cas d'utilisation. Impossible de tester complètement pour trouver le plus de problèmes dans un laps de temps raisonnable avec le moins de cas d'utilisation

27. Quel est votre objectif de développement de carrière en test ?

Plus l'expérience de test est importante, plus la capacité de test est élevée. Mon évolution de carrière a donc besoin de temps pour s'accumuler, étape par étape vers un ingénieur d'essai senior. Et j'ai également un plan de carrière préliminaire, accumulant de l'expérience en matière de tests au cours des 3 premières années, me mettant constamment à jour et me corrigeant, et faisant un bon travail dans les tâches de test.

28. Quelle est la norme pour la fin du test ?

D'un point de vue microscopique, il est défini dans le plan de test. Par exemple, le système fonctionne sans problème pendant 72 heures sous une certaine performance. Actuellement, dans le système de suivi des bogues, il n'y a pas de bogues graves généraux dans cette version. Le nombre de bogues courants est inférieur à 3 et le taux de réparation de bogues est de 90 %. Les paramètres ci-dessus, etc., puis le responsable du développement, le responsable des tests et le chef de projet signeront pour accepter la version.

Si nous parlons de la macro, le test se terminera lorsque le logiciel disparaîtra complètement.

29. En quelles étapes un ensemble complet de tests devrait-il consister ?

Analyse de faisabilité, analyse des exigences, conception générale, conception détaillée, codage, tests unitaires, tests d'intégration, tests système, tests d'acceptation

30. Connaissez-vous le processus de développement logiciel des entreprises avec lesquelles vous avez travaillé par le passé ? Si oui, veuillez décrire le travail qui doit être fait dans un processus de développement complet ? Quels sont les différents rôles pour accomplir ces tâches ? Sur quelles tâches spécifiques avez-vous travaillé dans vos emplois de test précédents ? Dans quelle partie du travail êtes-vous le meilleur ?

Processus de développement - recherche des exigences (personnel des exigences), analyse des exigences (personnel des exigences), conception des grandes lignes (concepteurs), conception détaillée (concepteurs), codage (développeurs)

Processus de test - examen des exigences, conception des tests système, examen de la conception sommaire, conception des tests d'intégration, examen de la conception détaillée, conception des tests unitaires, exécution des tests

Avoir effectué tout le processus de travail de test, bon en conception de test

Le processus détermine la qualité, et l'amélioration du processus logiciel consiste simplement à améliorer la qualité du logiciel et à accumuler diverses expériences et leçons passées.

2. Les questions d'entretien classiques des tests de logiciels sont toutes là, et les 5 premières questions doivent être posées

Question 1 : Pourquoi avez-vous choisi l'industrie des tests logiciels ?

Réponse : J'ai choisi le test de logiciels comme carrière parce que j'adore les tests de logiciels. Je pense que le test de logiciels est une profession plus stimulante et créative que la programmation de logiciels. (Ne dites pas que vous choisissez de faire des tests de logiciels parce que vous ne pouvez pas continuer à développer, et ne dites pas que vous n'aimez pas taper du code)

Question 2 : Parlez-moi de votre compréhension des tests logiciels ?

Réponse : Le test de logiciel est le processus de vérification de la fonctionnalité du logiciel et de production d'un produit logiciel de bonne qualité sans défauts, bogues et dysfonctionnements.

Question 3 : Qu'est-ce que le journal de test ?

Réponse : Le journal de test contient une liste complète des opérations effectuées pendant le test du logiciel, et à partir du journal de test, vous pouvez savoir si le test a réussi ou échoué.

Question 4 : Quelle est la différence entre les tests manuels et les tests automatisés ?

Réponse : Les tests manuels sont effectués manuellement par l'utilisateur et les tests automatisés sont effectués automatiquement à l'aide de pré-scripts. Les tests automatisés sont plus rapides, plus sûrs et plus économiques, tandis que les tests manuels sont plus lents et moins sécurisés.

Question 5 : Quelle est la différence entre les tests boîte blanche et boîte noire ?

Réponse : Le test de la boîte blanche est une méthode de test de logiciel dans laquelle l'utilisateur doit connaître la réalisation de la structure interne, tandis que dans le test de la boîte noire, l'utilisateur n'a pas besoin de connaître les modules de travail internes de l'utilisateur. Dans les tests en boîte blanche, l'utilisateur doit avoir des compétences en programmation alors que dans les tests en boîte noire, l'utilisateur n'a pas besoin de compétences en programmation.

Question 6 : Quels sont les avantages des tests en boîte noire ?

Réponse : Les tests en boîte noire peuvent être effectués par des utilisateurs ayant peu de connaissances en programmation et sont beaucoup plus rapides que le processus de test en boîte blanche. Peu d'erreurs peuvent entraîner un produit logiciel car chaque composant et module du logiciel n'a pas été testé.

Question 7 : Quels sont les avantages des tests en boîte blanche ?

Réponse : Les tests en boîte blanche garantissent un produit logiciel de meilleure qualité, car chaque composant est testé par le programmeur. Il s'agit d'un long processus qui prend plus de temps que les tests de boîte noire.

Question 8 : Qu'est-ce qu'un test de régression ?

R : Lorsque le logiciel est changé ou modifié, retestez pour vérifier que les fonctions du logiciel fonctionnent correctement et pour vous assurer qu'il n'y a pas de bogues involontaires dans le logiciel. Ce processus de test est appelé test de régression.

Question 9 : Qu'est-ce qu'un test fonctionnel ?

R : Les tests fonctionnels sont un processus de test et de vérification par rapport aux spécifications du client et répondent à toutes les exigences du client.

Question 10 : Quelle est la relation entre les cas de test et les scripts de test ?
 

Trois questions d'entretien courantes sur les tests de logiciels

1. Quelles sont les étapes du test ?

Généralement divisé en cinq étapes : tests unitaires, tests d'intégration, tests de confirmation, tests système, tests d'acceptation.

2. Quelles sont les méthodes de test des logiciels ?

Boîte noire, boîte blanche, boîte grise.

3. La différence et l'utilisation de sum et count dans la base de données

Les entretiens généraux utiliseront la somme et l'ordre par groupe
compter : compter le nombre d'enregistrements de données que vous interrogez : sélectionner le nombre (*) dans la table des étudiants ;
somme : somme : sélectionner la somme (chengji) dans la table des étudiants où nom='张trois' ;

4. Concevoir un cas de test de module


Examinez si l'expérience de l'intervieweur, sa capacité de conception de cas d'utilisation , sa réflexion et ses méthodes de test maîtrisées sont complètes.

5. Comment pytest gère-t-il les cas de test ?

Maîtrisez les règles de cas, telles que commencer par test, classe nommée d'après Test, etc.
Comment exécuter un seul fichier de cas py, comment gérer plusieurs dossiers

6. Pourquoi avez-vous choisi l'industrie du test logiciel ?

Parce que je connaissais l'industrie des tests de logiciels auparavant, je pense que ses perspectives de développement sont très bonnes.
(Ne dites pas que vous passez simplement aux tests lorsque vous ne pouvez pas faire de développement !)

7. Quels sont les types de tests logiciels ?

Les types de test incluent : test fonctionnel, test de performance, test d'interface

8. Qu'est-ce qu'un scénario de test, qu'est-ce qu'un script de test et quelle est la relation entre les deux ?

Un ensemble spécifique de données d'entrée, de fonctionnement ou de divers paramètres environnementaux et de résultats attendus fournis au système testé pour la mise en œuvre du test.
Les scripts de test sont des scripts écrits pour les tests automatisés.
L'écriture des scripts de test doit correspondre aux cas de test correspondants

9. Comment rédiger un plan de test et des cas de test ?

Pour être simple, le plan de test doit inclure des stratégies de test et des méthodes de test détaillées, des arrangements de ressources raisonnables et détaillés, etc. s'ils peuvent être testés attendre.

10. Quelle est la stratégie de test logiciel ?

Stratégie de test logiciel : sous la direction de certaines normes de test logiciel et spécifications de test, l'ensemble des principes, méthodes et méthodes de test logiciel stipulés en fonction des contraintes environnementales spécifiques du projet de test.

Questions de test écrites courantes pour les tests de logiciels :

Vrai ou Faux (O=Oui, N=Faux)

1. Le but des tests logiciels est de trouver autant de défauts logiciels que possible. (O)

2. Les tests bêta sont une sorte de test d'acceptation. (O)

3. Les tests d'acceptation sont effectués par l'utilisateur final. (N)

4. Les testeurs n'ont pas besoin de soumettre d'artefacts avant que le projet ne soit approuvé. (O)

5. Les tests unitaires peuvent détecter environ 80 % des défauts logiciels. (O)

6. L'examen du code consiste à vérifier si le code source répond aux exigences de la conception du module. (N)

7. L'intégration ascendante nécessite que les testeurs écrivent des pilotes. (O)

8. Le test de charge consiste à vérifier le plus haut niveau de capacité du système à tester. (N)

9. Les testeurs doivent adhérer au principe et le défaut ne sera pas transmis si le défaut n'est pas réparé. (N)

10. Les réviseurs de code sont généralement servis par des testeurs. (N)

11. Nous pouvons artificiellement rendre la configuration du logiciel sans problème. (N)

12. Le plan de test d'intégration est soumis à la fin de la phase d'analyse des besoins. (N)

choix multiple

1. Parmi les méthodes de test de couverture logique suivantes, celle qui a la plus forte capacité de couverture est (D)

UN. Couverture de la déclaration b. Couverture du jugement C. couverture des conditions d. Couverture de la combinaison de conditions

2. En ce qui concerne la différence entre les tests en boîte noire et les tests en boîte blanche, lequel des énoncés suivants est correct (A)

UN. Les tests en boîte blanche se concentrent sur la structure du programme, tandis que les tests en boîte noire se concentrent sur la fonctionnalité
B. Les tests de la boîte blanche peuvent utiliser des outils de test automatiques, mais les tests de la boîte noire ne peuvent pas utiliser d'outils 100 conférences intensives sur les questions de test
C. Les tests en boîte blanche nécessitent la participation des développeurs, contrairement aux tests en boîte noire
. Les tests en boîte noire sont plus largement utilisés que les tests en boîte blanche

3. Concernant la représentation du code d'état dans le protocole HTTP, laquelle des affirmations suivantes est fausse (D)

UN. 1** : Indique l'erreur client
B.2* : Indique que la demande a été reçue avec succès *
C. 3** : indique que la demande est terminée et que le client doit affiner davantage la demande
D. 4** : indique une erreur de serveur

4. Sous Linux Pour décompresser bugzilla.tar.gz et rapporter en détail les noms de fichiers traités par la commande tar, la commande (A) doit être utilisée

A.tar –xvzf bugzilla.tar.gz B.tar –cvzf bugzilla.tar.gz
C.tar –cvzf bugzilla.tar.gz D.tar –cxvf bugzilla.tar.gz

5. Dans Redhat linux 9, pour installer un progiciel, perl.i386.rpm, et afficher la progression de l'installation avec # lors de l'installation, la commande à utiliser est (A)

A.rpm –ih perl.i386.rpm B.rpm –i perl.i386.rpm
C.rpm –e perl.i386.rpm D.rpm –V perl.i386.rpm

6. Dans l'éditeur vi de Linux, vous souhaitez quitter vi sans enregistrer les modifications. Besoin d'utiliser la commande est (C)

A.:qa B.:qw C.:q! D.:!q

7. Deux tables de données sont stockées dans une base de données : table des enseignants (numéro de l'enseignant, nom de l'enseignant) et table des programmes (numéro de cours, nom du cours, numéro de l'enseignant). Pour trouver rapidement les cours enseignés par un certain enseignant, l'index suivant est établi La manière correcte est (C)

UN. Créez un index sur la table des enseignants par l'ID d'enseignant
B. Créer un index sur le curriculum par numéro de cours
C. Créer un index sur le programme par numéro d'enseignant
D. Index sur la table des enseignants par nom d'enseignant

8. Pour interroger la situation de tous les livres contenant "ordinateur" dans le nom du livre (bookname) dans la table des livres, vous pouvez utiliser l'instruction (B)

A. SELECT * FROM livre WHERE nom_livre LIKE 'ordinateur'
B. SELECT * FROM livre WHERE nom_livre LIKE '%ordinateur%'
C. SELECT * FROM livre WHERE nom_livre='ordinateur'

9. Laquelle des affirmations suivantes concernant les tests alpha est correcte : (AD)

Les tests A.alpha nécessitent la participation des représentants des utilisateurs
Les tests B.alpha ne nécessitent pas la participation des représentants des utilisateurs
Les tests C.alpha sont un type de test du système
Les tests D.alpha sont un type de test d'acceptation

10. Qui participera à l'examen du plan de test logiciel ? (ABCD)

A. Chef de projet
B. Responsable SQA
C. Responsable de la configuration
D. Groupe de test

4. Les questions d'entretien de test de logiciels les plus complètes sur l'ensemble du réseau avec des réponses (tests de performance + tests fonctionnels + tests d'interface + tests automatisés)

Test de performance

Décrivez brièvement le processus de test de performance ?

1. Analyser les exigences de performance.
2. Développer un plan de test de performance.
3. Écrire des cas de test
4. Construire un environnement de test et préparer les données de test
5. Écrire des scripts de test de performance
6. Réglage des scripts de test de performance.
7. Concevoir des scénarios de test.
8. Analysez les résultats des tests.
9. Tests de performance de régression.
10. Rédiger le rapport de test.

Dans quel environnement et quand votre test de performance est-il effectué ?

Nous construirons un environnement de test de performance indépendant pour les tests. En termes de temps,
les tests de référence : après les tests fonctionnels, nous le ferons lorsque le système sera relativement stable.
Test de charge : en pleine nuit, lorsque personne n'utilise le système

Quel est le rôle de think_time ?

Simulez les opérations réelles des utilisateurs de production pour examiner l'impact sur le serveur.
Après avoir confirmé que les résultats des tests de performance sont crédibles, si les problèmes suivants sont détectés, localisez les problèmes selon les idées fournies ci-dessous

Avec la fonction de code de vérification, comment faire des tests de performance ?

1. Bloquez temporairement le code de vérification et restaurez-le une fois le test de performance terminé.
2. Utilisez le code de vérification universel.

Quels sont les indicateurs de test de performance ?

Temps de réponse
  Débit
  cpu
  mémoire
  io
  disque

test fonctionel

Que pensez-vous de l'industrie des tests de logiciels, pourquoi devriez-vous choisir les tests de logiciels ?

Les tests de logiciels sont une carrière prometteuse. J'ai plus d'expérience dans cette industrie. Je pense que je suis tout à fait approprié pour ce poste et je veux continuer fermement.

Que devez-vous faire si un bogue est trouvé pendant les tests mais que le développeur pense que ce n'est pas un bogue ?

Tout d'abord, soumettez le problème à la plate-forme de gestion des défauts pour classement et enregistrement. Ensuite, pour obtenir la base et les critères de jugement :

Selon la spécification des exigences, la description du produit, les documents de conception, etc., confirmer si les résultats réels sont incompatibles avec le plan et fournir une base directe pour confirmer les défauts ;

S'il n'y a pas de base documentaire, il peut être confirmé s'il existe un défaut sur la base des caractéristiques générales d'un logiciel similaire pour expliquer s'il existe une incohérence ;

Selon les habitudes générales d'utilisation de l'utilisateur, pour confirmer s'il s'agit d'un défaut ;

Discutez avec le personnel concerné tel que les concepteurs, les développeurs et les chefs de produit pour confirmer s'il s'agit d'un défaut.

Faites une discussion raisonnable, expliquez les raisons de votre jugement au responsable du test, faites attention à l'objectivité, à la rigueur et ne mélangez pas les émotions personnelles. Attendez que le chef de produit prenne une décision finale. S'il y a toujours un litige, confirmez avec le responsable des tests. Lors de l'envoi du rapport en ligne, laissez le risque de ce bogue comme un avertissement précoce, et informez tout le monde dans le projet à ce sujet. situation.

Quelles sont les méthodes de conception des cas de test ?

Classes d'équivalence, valeurs limites, tables de décision, diagrammes de cause à effet.

Quelle est la stratégie de test logiciel ?

Stratégie de test logiciel : sous la direction de certaines normes de test logiciel et spécifications de test, l'ensemble des principes, méthodes et méthodes de test logiciel stipulés en fonction des contraintes environnementales spécifiques du projet de test.

Quelle est la tâche d'un testeur dans le processus de développement logiciel ?

(1) Découvrez les bugs du système le plus tôt possible ;

(2) Éviter les défauts dans le processus de développement logiciel ;

(3) Mesurer la qualité du logiciel et assurer la qualité du système ;

(4) Prêter attention aux besoins des utilisateurs et s'assurer que le système répond aux besoins des utilisateurs. L'objectif global est : d'assurer la qualité du logiciel.

Test d'automatisation d'interface

La différence entre obtenir et publier ?

Get request, le navigateur enverra l'en-tête http et les données ensemble, le serveur renvoie une
requête Psot de code de réponse 200, le navigateur envoie d'abord l'en-tête, le serveur répond 100 (continuer), puis envoie les données, le serveur renvoie une réponse 200 code
Post est plus sûr que de se défoncer

Comment gérer l'association dans l'automatisation des interfaces ?

Transmettez le résultat renvoyé par la requête précédente dans le paramètre de la requête suivante, répercutez le résultat de la requête sur un attribut de classe (à l'aide de la fonction setattr()) et appelez l'attribut de classe dans la requête suivante

Comment vérifier les résultats des tests automatisés ?

Assertions, où les résultats attendus sont comparés aux résultats réels

Vérification de la base de données, selon le scénario de test pour interroger les données de la base de données et comparer les données avant la requête

Parlez-moi de votre compréhension du paramétrage et du data-driven ?

Cette question implique deux concepts très importants dans les tests automatisés : le paramétrage et les données. En fait, il me semble que c'est la même chose - la séparation des scripts de test et des données. Par exemple : Votre script de connexion a écrit à l'origine un ensemble fixe de données de test : nom d'utilisateur, mot de passe. Chaque fois que les données sont modifiées, le script doit être modifié. Si je veux séparer les données du script, extrayez le nom d'utilisateur et le mot de passe vers l'extérieur, de préférence dans un fichier externe. C'est ce qu'on appelle le paramétrage.

Pour les tests de performances, je veux m'assurer que chaque utilisateur virtuel se connecte avec un nom d'utilisateur et un mot de passe différents, ce qui est plus proche des scénarios professionnels réels. Pour les tests automatisés, je veux tester une variété de combinaisons de données - telles que différents types de noms d'utilisateur, mots de passe. Quel que soit le scénario, il doit y avoir plusieurs ensembles de données, mais le processus d'opération de connexion est fixe. C'est ce qu'on appelle axé sur les données.

Les frameworks de tests unitaires pour les langages de développement généraux ont des fonctions basées sur les données, telles que le module ddt de Python et l'annotation DataProvider de TestNG.

Comment nettoyer les données parasites générées par l'interface ?


Comme ci-dessus, pour la création et le nettoyage des données, vous devez utiliser python pour vous connecter à la base de données et effectuer des opérations d' ajout, de suppression, de modification et de
requête nettoyage

Aspects des tests automatisés WebUI

Comment déterminer si un élément existe dans le sélénium ?

Il n'y a pas de méthode native pour juger si un élément existe. Généralement, on peut juger en localisant les éléments + capture d'exception

Les éléments hidden ou display = none peuvent-ils être localisés dans le sélénium ?
Non, si vous voulez cliquer, vous pouvez utiliser js pour supprimer la propriété display=none

Comment augmenter la vitesse d'exécution du script Selenium ?

1. Optimisez les cas de test.
2. Réduisez les étapes de fonctionnement inutiles.
3. Interrompre le chargement des pages.
4. Utilisez la grille de sélénium.

Qu'est-ce que l'Intégration Continue ?

Intégrez fréquemment le code dans le tronc, et réalisez en continu la construction du projet, afin que les erreurs puissent être trouvées rapidement et éviter que la branche ne s'écarte fortement du tronc

Qu'est-ce qu'un test stratifié ?

1. Couche de données
2. Couche d'interface'
3. Couche d'interface utilisateur

Test d'application

Veuillez expliquer la différence entre le téléphone mobile IOS et le téléphone mobile Android, le système ?

Les deux mécanismes de fonctionnement sont différents : IOS utilise un mécanisme de fonctionnement de bac à sable et Android utilise un mécanisme de fonctionnement de machine virtuelle.

Le système d'arrière-plan des deux est différent : tout programme tiers dans IOS ne peut pas s'exécuter en arrière-plan ; tout programme sous Android peut s'exécuter en arrière-plan et ne sera pas fermé tant qu'il n'y aura pas de mémoire.

Selon vous, sur quoi le test de performance de l'application, c'est-à-dire le test spécial, doit-il se concentrer ?

Mémoire, utilisation du processeur, consommation d'énergie, trafic, etc.

Veuillez présenter brièvement l'architecture à quatre couches du système Android ?

De haut en bas, il s'agit de la couche de programme d'application, de la couche d'infrastructure de programme d'application, de la couche d'exécution du système et de la couche principale de Linux.

Que ferez-vous si vous rencontrez un crash ou un ANR dans l'application pendant le test ?

Vous pouvez d'abord filtrer les journaux : adb logcat | findstr xxxxx (filtrer les informations du journal), puis rechercher les mots-clés qu'il contient, tels que : exception, crash, pour voir quelles méthodes ou exceptions ont provoqué l'envoi du problème, et après localisant la cause du problème, peut être remis au développeur pour découvrir la cause sous-jacente et y remédier.

Veuillez présenter brièvement les outils pratiques de test d'automatisation de l'interface utilisateur Android ?

appium : il s'agit d'un cadre d'automatisation mobile qui peut être utilisé pour tester des applications natives, des applications Web mobiles et des applications hybrides, et qui est multiplateforme.

robotium : il s'agit d'un cadre de test automatisé Android étranger, principalement pour les tests automatisés en boîte noire des applications de la plate-forme Android. Il fournit des API pour simuler diverses opérations gestuelles (clic, appui long, glissement, etc.), des mécanismes de recherche et d'assertion, et peut Actionnez diverses commandes.

Questions d'entretien sur les tests d'automatisation de la pile complète

1. Questions d'entretien sur les tests d'automatisation Web

1. Les éléments hidden ou display = none de Selenium peuvent-ils être localisés ?

Non, vous pouvez écrire du JavaScript pour changer d'abord le caché dans l'étiquette en 0, puis positionner l'élément.

2. Comment assurer le taux de réussite des éléments opératoires dans Selenium ? Autrement dit, comment s'assurer que l'élément sur lequel je clique doit être cliquable ?

Ajouter un élément de temps d'attente intelligent driver.implicitly_wait(30)
Ajouter un temps d'attente obligatoire (comme écrire sleep en python)
essayer de localiser id, name, clas, x path, css selector de différentes manières, si le premier échoue, vous pouvez automatiquement essayez le deuxième

3. Comment augmenter la vitesse d'exécution du script Selenium ?

L'optimisation du code, le multitâche et le déploiement distribué peuvent tous améliorer la vitesse d'exécution des scripts.

4. Le cas d'utilisation est souvent instable pendant le processus d'exécution, c'est-à-dire qu'il peut passer cette fois, mais il ne passera pas la prochaine fois.Comment améliorer la stabilité du cas d'utilisation ?

time.sleep( )
driver.implicitly_wait(30)
Utilisez try pour capturer et gérer les exceptions

5. Quelle est la stratégie d'exécution pour votre cas d'utilisation d'automatisation ?

Les tests automatisés sont essentiellement les mêmes que le développement de logiciels. En utilisant des outils de test automatisés et en analysant les exigences de test, concevez des cas de test automatisés pour créer un cadre de test automatisé, concevez et écrivez des scripts automatisés, vérifiez l'exactitude des scripts de test et enfin terminez l'automatisation. des scripts (c'est-à-dire des logiciels d'application dont la fonction principale est le test) et les résultats des tests de sortie.

6. Est-il nécessaire de se connecter à la base de données pour vérifier les données lors des tests automatisés ?

La vérification des données au niveau de la base de données permet de vérifier plus facilement si le traitement des données du système est correct. Une fois que la logique de traitement des données est normale, une vérification au niveau de l'interface utilisateur doit également être effectuée.

7. Parmi les attributs de id, name, class, xpath, css selector, lequel préférez-vous et pourquoi ?

Presque tous les éléments de css et xpath peuvent être localisés, mais leur inconvénient est que la position est facile à changer après la modification de l'élément sur la page, de sorte que l'identifiant ou le nom est utilisé en premier.

8. Comment localiser les éléments chargés dynamiquement sur la page ?

Déclencher l'événement de l'élément chargé dynamiquement jusqu'à ce que l'élément dynamique apparaisse pour le positionnement

9. Comment localiser des éléments dont les attributs changent dynamiquement ?

xpath ou css localise à travers les frères et sœurs, les parents et les enfants

10. Après avoir cliqué sur un lien, Selenium attendra-t-il automatiquement que la page se charge ?

Ça ira

11. Qu'est-ce que le modèle de conception d'objet de page ?

Pour le dire simplement, la page est utilisée comme un objet, et l'objet de la page est passé en cours d'utilisation pour utiliser les membres ou méthodes correspondants dans l'objet de la page, ce qui peut mieux refléter les fonctionnalités orientées objet et d'encapsulation d'un langage orienté objet. (comme java ou python).

12. Comment puis-je mettre en surbrillance des éléments après les avoir positionnés (à des fins de débogage) ?

Utilisez des scripts tels que JavaScript pour réinitialiser les attributs des éléments et ajouter des arrière-plans et des bordures aux éléments positionnés.

13. Qu'est-ce qu'une affirmation ?

Une assertion est une expression logique qui spécifie un état qu'un programme doit déjà avoir, ou une condition qu'un ensemble de variables de programme doit satisfaire à un moment donné pendant l'exécution du programme.

14. Selon vous, quel est le plus gros défaut des tests automatisés ?


Fiabilité instable
Difficile à maintenir
Coûts et avantages

2. Questions d'entretien sur le test d'automatisation APPUI

1. Lorsque la mémoire de l'APP Android est insuffisante, comment le système termine-t-il le processus pour obtenir de la mémoire ?

Le système donne la priorité à la fin du processus suspendu (suspendu) et libère de la mémoire.

2. Quels sont les problèmes graves courants rencontrés lors des tests APP ? Quelles sont les causes respectivement?

Les plus courants sont les plantages et l'ANR (application qui ne répond pas, bloquée), généralement causés par la fragmentation de l'appareil, les grandes fluctuations du réseau, les fuites de mémoire et les erreurs d'écriture de code.

3. Veuillez présenter brièvement un outil de test automatisé APP que vous avez utilisé ?

Questions ouvertes avec une opinion subjective

Comparez les avantages et les inconvénients d'autres outils d'automatisation familiers.
Un bref plan d'automatisation (veuillez être précis sur le contenu clé tout en étant bref). (indice : appnium, etc.)

4. Quelle est la différence entre les tests Android et les tests Web ?

Même remarque :

La conception des cas de test est basée sur des méthodes telles que les classes d'équivalence et les valeurs limites, et les principes de test sont les mêmes ; la
plupart d'entre eux utilisent des méthodes de test de boîte noire pour vérifier les fonctions métier ;
il est nécessaire de vérifier si la disposition de l'interface, le style , et les boutons sont beaux et unifiés (test de l'interface utilisateur)
 ; La vitesse de chargement et de rotation des pages, si le temps de connexion déborde et d'autres problèmes (test de performance)
testent la stabilité du système d'application ;

différence:

Le téléphone mobile est utilisé comme un outil de communication, et certains comportements tels que la communication provoqueront APP (test d'interruption).
Installation et désinstallation des produits d'application par les utilisateurs de téléphones mobiles : mise à niveau directe de la version précédente/des deux versions précédentes vers la dernière.
Les outils les plus couramment utilisés pour les tests automatisés sur le Web sont le sélénium, tandis que les outils automatisés les plus couramment utilisés pour les tests automatisés sur les téléphones mobiles Android sont monkey, monkeyrunner et Appium (les outils de test sont différents).

5. Quels types d'environnements existe-t-il pour les tests d'applications ?

Environnement local : l'environnement du téléphone mobile dans lequel l'application est installée et l'environnement de test automatisé construit sur l'ordinateur (tel que le SDK Android, etc.
).
Environnement serveur : le serveur déployé par le package war, le serveur est accessible via un navigateur ou via une application
. (Access est l'interface du programme Web)

6. Présentez brièvement les étapes d'installation du SDK Android :

Téléchargez jdk et Android SDK
pour installer jdk, configurez les variables d'environnement (java_home, classpath, path)

7. Veuillez présenter brièvement les points de test de l'application mobile et de son serveur ?

Les applications mobiles incluent principalement les autorisations, l'installation, le fonctionnement et la désinstallation, l'interface utilisateur, la fonction, les performances, l'interruption, la compatibilité, la sécurité,
la régression, la mise à niveau et la mise à jour et l'expérience utilisateur. (Les 11 principaux points de test de l'application)
Le serveur a des tests d'interface, des tests de performances et des tests de sécurité.

8. Comment déterminer si le bogue de l'application est un problème client ou un problème d'arrière-plan

Cela dépend de l'entreprise. Il y a plus de problèmes frontaux avec des problèmes généraux de données. L'approche générale consiste à signaler les problèmes aux développeurs frontaux. Ils
savent s'il s'agit de leur propre problème ou des données renvoyées par l'arrière-plan.

9. Comment récupérer les informations du journal sur Android ?

Importez les informations de journal du système Android en temps réel en local : adb logcat -v time > d:\mylog.log
Exécutez et utilisez une application pour obtenir les informations de journal de l'application en temps réel (informations de retour dans cmd) :
adb shell monkey -p com.android.calendar -v 1000 > d:\mylog2.log

10. Commandes adb courantes :

Afficher les appareils actuellement connectés : adb devices
Installer le logiciel : adb install path\xx.apk
Désinstaller le logiciel : adb uninstall <package name>
Envoyer des fichiers de l'ordinateur à l'appareil : adb push <local path> <remote path>
adb push C:\ test1. txt /sdcard/
Télécharger les fichiers de l'appareil vers l'ordinateur : adb pull <chemin distant> <chemin local>
adb pull /sdcard/test1.txt D :
Obtenir les journaux en temps réel : adb logcat -v time > D:\mylog. log
Connectez-vous au shell du terminal : adb shell
pour trouver le nom du package/nom de l'activité : adb logcat | findstr START
(dans le script, la valeur après cmp= est le nom du package/nom de l'activité)
Start APP Start
adb shell am start -n packageName/activity
Fermer
la syntaxe de l'application : adb shell am force-stop package name
monitor APP startup time
adb shell am start -W packageName/activity
Commande Monkey :
adb shell monkey -v -p mypackage 50

11. Comment tester autant de modèles grand public d'APP ?

Notre société l'a acheté, Meizu, Huawei, Xiaomi, iphone7, iphone8, iphone8plus, iphone
x pour tester la compatibilité, certains modèles qui ne sont pas disponibles, empruntez d'abord le téléphone portable d'un collègue pour le tester et demandez à l'entreprise d'acheter en même temps , ou utilisez la
vraie machine cloud.

12. L'application plante (flashback), quelle peut en être la raison ?

Trop de déchets de cache : en raison des caractéristiques du système Android, si vous ne nettoyez pas les fichiers indésirables pendant une longue période, cela conduira à de plus en plus de fichiers bloqués. Il y aura également des flashbacks. Trop de programmes sont en cours d'exécution, ce qui
entraîne mémoire insuffisante
Problème de compatibilité de la version de l'application : Si la version de l'application est trop basse, cela entraînera une incompatibilité et un plantage. De plus, certaines nouvelles versions sont en cours de débogage, ce qui entraînera également le plantage de l'application. Solution : si la version est trop ancienne, mettez simplement à jour vers la nouvelle version ; si la nouvelle version plante, il se peut que l'application soit en cours de révision et de débogage, et l'ancienne version peut être installée après la désinstallation.
Vérifiez où l'APP accède au réseau et si ImageView dans le composant peut être téléchargé normalement et affiché sur la page de l'application.
Vérifiez si le SDK de l'application est compatible avec le système du téléphone.
Flashback dans certaines situations spécifiques, telles que la lecture de vidéos, lorsque Android 5.0 est mis à niveau vers Android 6.0,
certaines API système sont disponibles dans l'ancienne version mais pas dans la nouvelle version.

13. Quelles sont les méthodes de démarrage d'Appium

1. Démarrage du client
2. Démarrage de la ligne de commande

14. Veuillez présenter brièvement les outils de test d'automatisation de l'interface utilisateur Android que vous avez utilisés ?

appium : il s'agit d'un cadre d'automatisation mobile qui peut être utilisé pour tester des applications natives, des applications Web mobiles
et des applications hybrides, et qui est multiplateforme. robotium : il s'agit d'un cadre de test automatisé Android étranger, principalement pour
les tests automatisés en boîte noire des applications de la plate-forme Android. Il fournit des API pour simuler diverses opérations gestuelles (clic, appui long,
glissement, etc.), des mécanismes de recherche et d'assertion, capables de actionner diverses commandes.

15. Veuillez expliquer la différence entre le téléphone mobile Android et le téléphone mobile IOS, et le système ?

Les deux mécanismes de fonctionnement sont différents : IOS utilise un mécanisme de fonctionnement de bac à sable et Android utilise un mécanisme de fonctionnement de machine virtuelle.

Les systèmes d'arrière-plan des deux sont différents : tout programme tiers dans IOS ne peut pas s'exécuter en arrière-plan ; tout programme sous Android peut s'exécuter en arrière-plan et ne sera pas fermé tant qu'il n'y aura pas de mémoire.

IOS a la plus haute autorité pour les instructions de l'interface utilisateur et Android a la plus haute autorité pour les instructions de traitement des données.

3. Questions d'entretien pour le test d'automatisation de l'interface

1. Webdriver peut-il être utilisé pour tester l'interface ?

Il existe des modules prêts à l'emploi pour les tests d'interface et WebDriver est utilisé pour les tests automatisés de WebUI. Si vous souhaitez implémenter des tests d'interface, vous pouvez utiliser le module Requêtes pour obtenir

2. Selon votre compréhension, quelle est l'interface du logiciel ?

Il fait référence à la classe ou à la fonction du programme qui est spécifiquement responsable de la transmission ou de la réception des données entre différents modules et de leur traitement.

3. Quelle est la différence entre les protocoles HTTP et HTTPS ?

Le protocole https nécessite de demander un certificat auprès d'une AC (Autorité de certification, autorité de certification).Généralement, il y a peu de certificats gratuits, donc une certaine redevance est demandée ; http est un protocole de transfert hypertexte,
et les informations sont transmises en clair. Le protocole réseau pour la transmission cryptée et l'authentification de l'identité est
plus sûr que le protocole http ;
http et https utilisent des méthodes de connexion complètement différentes et des ports différents, le premier est 80 et le second est 443 ;

4. À quelle couche HTTPS se trouve-t-il ?

HTTPS est au niveau de la couche application.

5. Quelle est la différence entre obtenir et publier ?

POST et GET soumettent des données au serveur et obtiennent tous deux des données du serveur.
la différence:

Méthode de transmission : get est transmis via la barre d'adresse, post est transmis via le message
Longueur de transmission : les paramètres get ont une longueur limite (limitée par la longueur de l'url), et post est illimité.
GET génère un paquet TCP (pour un GET requête, le navigateur envoie l'en-tête http et les données ensemble, le serveur répond avec
200 et renvoie les données), POST génère deux paquets TCP (pour POST, le navigateur envoie d'abord l'en-tête, le serveur répond avec 100
continuer, le navigateur envoie données à nouveau, et le serveur répond avec 200 ok pour renvoyer les données)
Les paramètres de la demande d'obtention seront complètement conservés dans l'historique de navigation, mais les paramètres de la publication ne seront pas conservés.
Lors d'une requête de données, il est recommandé d'utiliser le GET méthode ; et lors de l'ajout, de la modification ou de la suppression de données, il est recommandé d'utiliser la méthode post

6. Méthodes courantes de soumission des données POST

Il existe quatre méthodes principales : application/x-www-form-urlencoded, multipart/form-data,
application/json, text/xml, etc.

7. Qu'est-ce que le protocole sans état du protocole HTTP ? Comment résoudre le protocole sans état du protocole HTTP

Sans état signifie que le protocole n'a pas de capacité de mémoire pour le traitement des transactions et que le serveur ne sait pas dans quel état se trouve le client. Autrement dit, après avoir
envoyé une requête HTTP au serveur, le serveur nous enverra des données en fonction de la requête, mais
aucune information ne sera enregistrée après l'envoi. HTTP est un protocole sans état, ce qui signifie que chaque requête est indépendante, et Keep-Alive ne peut pas
modifier ce résultat. L'absence d'état signifie que si des informations précédentes sont nécessaires pour un traitement ultérieur, elles doivent être retransmises, ce qui peut entraîner une
augmentation de la quantité de données transférées par connexion. En revanche, lorsque le serveur n'a pas besoin d'informations préalables, sa réponse est plus rapide. La fonctionnalité du protocole HTTP
présente à la fois des avantages et des inconvénients. L'avantage est que le serveur est libéré et que chaque requête ne causera pas d'
occupation inutile de la connexion. L'inconvénient est que chaque requête transmettra une grande quantité d'informations de contenu répétées. Après l'émergence d'applications web qui interagissent dynamiquement entre le client et le serveur
, la nature sans état de HTTP entrave sérieusement la réalisation de ces applications.Après tout,
l'interaction doit être un lien entre le passé et l'avenir.Un simple panier d'achat le programme a également besoin de savoir ce que l'utilisateur a choisi auparavant. Par conséquent,
deux technologies pour maintenir l'état de la connexion HTTP ont vu le jour, l'une est Cookie et l'autre est Session.

8. La différence entre cookie et session

Les données du cookie sont stockées sur le navigateur du client et les données de session ne sont pas très sûres sur le serveur
. D'autres peuvent analyser le cookie stocké localement et tromper le cookie. Compte tenu de la sécurité, vous devez
utiliser la session
. La session sera enregistrée sur le serveur pendant un certain temps. . Lorsque le nombre de visites augmente, cela occupera les performances de votre serveur. Afin
de réduire les performances du serveur, vous devez utiliser des cookies.
Les données enregistrées par un seul cookie ne peuvent pas dépasser 4K. De nombreux navigateurs limitent un site pour enregistrer un maximum de 20 les cookies, qui
peuvent stocker des informations importantes telles que les informations de connexion. Pour la session ; d'autres informations doivent être enregistrées, qui peuvent être placées dans un cookie

9. Codes d'état de retour communs dans l'interface de demande

1xx – Informationnel (indique une réponse provisoire. Le client est prêt à recevoir une ou plusieurs réponses 1xx avant de recevoir une réponse régulière)
2xx – Succès (indiquant que le serveur a accepté avec succès la demande du client)
3xx – Redirection (le client parcourt Le serveur doit prendre plus d'action pour répondre à la demande. Par exemple, le navigateur peut devoir demander une page différente sur le serveur ou répéter la demande via un serveur proxy)
4xx - Erreur client (erreur envoyée, il y a un problème avec le client. Par exemple , le client Le client demande une page qui n'existe pas et le client ne fournit pas d'informations de vérification d'identité valides)
5xx - erreur de serveur (le serveur ne peut pas terminer la demande en raison d'une erreur)
Les codes de retour courants sont :

200 OK - [GET] : Le serveur renvoie avec succès les données demandées par l'utilisateur
201 CREATED - [POST/PUT/PATCH] : L'utilisateur a créé ou modifié avec succès des données
202 Accepted - [*] : Indique qu'une requête est entrée en arrière-plan file d'attente (tâche asynchrone)
204 NO CONTENT - [DELETE] : l'utilisateur a supprimé les données avec succès.
400 INVALID REQUEST - [POST/PUT/PATCH] : la requête envoyée par l'utilisateur était erronée et le serveur n'a pas effectué l'opération de création ou modification des données
401 Unauthorized -[*] : Indique que l'utilisateur n'a pas de permission (Token, username, password error)
403 Forbidden -[*] : Indique que l'utilisateur est autorisé (par opposition à 401 error), mais l'accès est interdit
404 NOT FOUND -[*] : La requête émise par l'utilisateur n'existe pas pour le Record, le serveur n'a pas fonctionné, l'opération est idempotente
406 Not Acceptable - [GET] : Le format demandé par l'utilisateur n'est pas disponible (par exemple, l'utilisateur a demandé le format JSON, mais uniquement le format XML)
500 INTERNAL SERVER ERROR - [*] : Le serveur s'est produit une erreur, l'utilisateur ne pourra pas dire si la requête effectuée a abouti

10. Qu'est-ce que le DNS ?

DNS est le système de nom de domaine (Domain Name System). DNS est utilisé pour la résolution du nom de domaine. Il le convertira
en IP après avoir entré l'URL sur Internet, puis accédera à l'autre serveur ; sans lui, vous devez vous rappeler si vous souhaitez accéder à l'adresse IP de Baidu Baidu,
mais avec le traitement DNS, il vous suffit de vous souvenir du nom de domaine du site Web correspondant, c'est-à-dire de l'URL.

11. Comment votre entreprise effectue-t-elle les tests d'interface ?

La différence réelle entre les tests d'interface et les tests généraux est la partie conception du cas de test.

Obtenez la spécification de l'interface.
Concevoir des cas d'utilisation de la fonction de test d'interface (principalement du point de vue des utilisateurs pour voir si l'interface peut répondre aux exigences de l'entreprise, la conception de cas d'utilisation est l'ensemble des cas d'utilisation de la boîte noire).
Diverses vérifications des paramètres d'entrée (cas normaux, les cas anormaux incluent un nombre incorrect de paramètres d'entrée, des types incorrects, facultatifs/obligatoires et la prise en compte de paramètres mutuellement exclusifs ou liés).
Diverses vérifications de la valeur de retour de l'interface (conformes aux exigences du document d'interface)
comprennent la logique d'implémentation de l'interface et réalisent la couverture logique (instruction/condition/branche/jugement/…)
L'interface peut-elle être exécutée simultanément, est-elle sûre et Les performances répondent-elles aux exigences ?
Utilisez des outils ou du code auto-écrit pour vérifier.
Le problème trouvé est le même que le test fonctionnel, le bogue doit être signalé et l'état de suivi de l'état de suivi doit être suivi.

12. Comment concevoir des cas de test d'interface ?

Généralement, la conception des cas de test d'interface doit prendre en compte les aspects suivants :

Si les conditions préalables sont remplies
Certaines interfaces doivent remplir les conditions préalables avant de pouvoir obtenir des données avec succès. Un cas d'utilisation inverse courant
qui doit se connecter Token : concevoir 0 ~ n cas d'utilisation pour savoir si les conditions préalables sont remplies (supposées être n conditions)

S'il faut porter des paramètres de valeur par défaut
Cas d'utilisation positif : ne remplissez pas les paramètres avec des valeurs par défaut, ne transmettez pas de paramètres, remplissez les paramètres requis avec des valeurs "régulières" correctes et existantes, ne remplissez pas les
autres, concevez 1 cas d'utilisation

Règles métier et exigences fonctionnelles
Ici, en fonction de la situation temporelle, combinée à la description des paramètres d'interface, il peut être nécessaire de concevoir N cas d'utilisation directs et cas d'utilisation inverses

Le paramètre est-il obligatoire ?
Cas d'utilisation inverse : pour chaque paramètre requis, concevez un cas d'utilisation inverse dans lequel la valeur du paramètre est vide

Existe-t-il une corrélation entre les paramètres
Certains paramètres ont une relation mutuellement restrictive les uns avec les autres

Restrictions du type de données de paramètre
Cas d'utilisation inverse : concevez un cas d'utilisation inverse pour chaque paramètre qui ne correspond pas au type de valeur du paramètre

La limite de valeur de la plage de données du type de données de paramètre lui-même
Cas d'utilisation avant : pour tous les paramètres, concevez un cas d'utilisation avant dans lequel la valeur de paramètre de chaque paramètre est la valeur maximale dans la plage de données

13. Vous faites des tests d'interface, que testez-vous ?

Test d'utilisabilité
Selon le protocole, la méthode et le contenu du format convenus, transférez les données vers l'interface et renvoyez le résultat attendu après traitement :

Si la fonction d'interface est correctement implémentée ;
test de la valeur de retour - la valeur de retour doit être correcte en plus du contenu, et le type doit être correct pour garantir que l'appelant peut correctement analyser ;
valeur limite de la valeur du paramètre, test de la classe d'équivalence ;
erreur et test de gestion des exceptions

Entrez des valeurs anormales (valeurs nulles, caractères spéciaux, dépassement de la longueur convenue, etc.), l'interface peut gérer correctement et répondre comme prévu ;
entrez des paramètres erronés, l'interface peut gérer correctement et répondre comme prévu ;
plus d'entrée, moins de paramètres d'entrée, l'interface peut corriger le traitement et la réponse comme prévu ;
test de format de données de transmission incorrect (tel que le format json écrit au format de formulaire) ;
test de sécurité, se réfère principalement à la sécurité des données transmises :

Si les données sensibles (telles que les mots de passe, les clés secrètes) sont cryptées pour la transmission ;
si les données renvoyées contiennent des données sensibles, telles que les mots de passe utilisateur, les informations complètes sur le compte bancaire de l'utilisateur, etc. ;
si l'interface effectue une vérification de sécurité sur les données entrantes, telles que ID d'identité plus jeton Vérification similaire :
si l'interface empêche les requêtes malveillantes (telles qu'un grand nombre d'interfaces de requête falsifiées provoquant le blocage du serveur) ;
tests de performances, tels que le temps de réponse de l'interface, les capacités de traitement simultané et le traitement des tests de résistance :

Requêtes simultanées à la même interface (en particulier les requêtes POST), le traitement de l'interface (comme l'insertion du même enregistrement entraîne des erreurs de données, provoquant des pannes du système) ; le
temps de réponse de l'interface est dans la plage que l'utilisateur peut tolérer
 ; Tests de pression pour déterminer si le plus gros goulot d'étranglement répond aux besoins actuels de l'entreprise ;

14. Quel outil est généralement utilisé pour tester l'interface ?

Outils de test d'interface de protocole http couramment utilisés, tels que : postman, fiddler, jmeter ; l'interface webService utilise SoapUI,
jmeter, etc.

15. Il n'y a pas de document d'interface, comment faire un test d'interface ?

Cette question teste principalement le QE. En termes simples, il s'agit de la capacité de tromper l'intervieweur. Tout d'abord, laissez l'intervieweur être dupe. C'est aussi un test à l'aveugle lorsque vous entrez. Soyez prêt à prendre le blâme à tout moment. Bien sûr , vous ne devez pas répondre à la surprise de l'intervieweur (mmp psychologique,
visage souriant), l'étape suivante consiste
à utiliser l'outil de capture de paquets pour capturer et traiter l'interface, puis à effectuer des tests ciblés ; si les informations de champ dans l'interface ne sont pas claires, recherchez le temps de se concentrer sur
les solutions de développement. (Outils communs de capture de paquets Fiddler, Charles, etc.)

16. Dans le processus de test d'interface manuel ou de test d'interface automatisé, comment gérer la dépendance des données des interfaces en amont et en aval ?

Utilisez une variable globale pour traiter les données dépendantes, telles que le renvoi d'un jeton après la connexion, et d'autres interfaces ont besoin de ce jeton,
puis utilisez une variable globale pour transmettre le paramètre de jeton.

17. Comment tester l'interface qui dépend de données tierces ?

Après la simulation, l'intervieweur vous demandera s'il s'agit d'une simulation, puis vous continuerez à creuser le long de la fosse et à construire un service fictif.

18. Dans le test d'interface, comment tester l'interface qui dépend du statut de connexion ?

L'essence de l'interface qui dépend du statut de connexion est que chaque fois qu'une demande est envoyée, une session ou un cookie doit être inclus pour l'
envoyer avec succès, et la session ou le cookie nécessaire est ajouté lors de la construction d'une demande POST

19. Comment simuler un réseau faible pour tester ?

Fiddler et Charles peuvent tous deux simuler des tests de réseau faible.Ce que l'on appelle généralement la perte de paquets simulée est également un test de réseau faible simulé. Pour
plus de détails, veuillez consulter "Plusieurs méthodes de simulation de réseau faible, il y en a toujours une qui vous convient"

20. Quels bugs avez-vous trouvés lors de vos tests d'interface habituels ?

L'interviewer pose cette question principalement parce qu'il veut savoir si vous avez vraiment fait le test d'interface. Après tout, beaucoup de CV de petits partenaires sont packagés (ils n'ont même pas d'opportunité d'entretien sans packaging, il n'y a pas moyen, dans l'ordre pour survivre, je peux comprendre) Erreurs générales,
interface Il n'est pas implémenté, le résultat n'est pas renvoyé conformément à l'accord, l'erreur de traitement de la valeur limite, etc.
Entrez des valeurs anormales (valeurs nulles, caractères spéciaux, dépassement de la longueur convenue, etc.), l'interface génère une erreur et aucune encapsulation n'est effectuée ; entrez des
paramètres erronés, plus d'entrées, moins de paramètres d'entrée et des erreurs possibles dans l'interface ;
des problèmes de sécurité, tels que la transmission en clair, le résultat renvoyé contient des informations sensibles, aucune vérification des informations d'identité de l'utilisateur, aucune interception de requête malveillante, etc. ; des
problèmes de performances, tels que l'insertion simultanée de plusieurs opérations identiques sur l'interface, un temps de réponse long, goulots d'étranglement dans les tests de pression d'interface, etc. ;

21. Lorsqu'une interface a une exception, comment analysez-vous l'exception ?

Capturez d'abord le paquet, utilisez l'outil fiddler (charles) pour capturer le paquet, ou l'outil de débogage F12 sur le navigateur ; s'il se trouve sur l'APP, utilisez Fiddler comme proxy
et définissez le proxy via le téléphone mobile pour afficher la demande et le message de retour ;
vérifiez le journal principal, tel que Le système Linux se connecte au serveur via xhell, vérifie le journal de l'interface et vérifie s'il y a un message d'erreur (commande : tail -f log file) ;

22. Comment analyser si un bug est front-end ou back-end ?

Habituellement, lorsque des bogues sont mentionnés, le développement front-end et le développement back-end se disputent toujours, n'admettant pas que c'est le bogue de l'autre partie. Cette situation est facile à juger. D'abord capturez le paquet et regardez le message de requête, puis regardez le document d'interface pour voir s'il y a un problème avec le message de requête.
S'il y a un problème, les
données envoyées par le frontal est erroné ;
, les données renvoyées sont incorrectes, c'est le problème du développement back-end.

23. Faites-vous de l'automatisation des tests d'interface ?

Or pour un grand nombre d'applications, il est généralement recommandé d'automatiser les tests d'interface, avec de faibles coûts de maintenance et des rendements élevés. Il existe de nombreux outils couramment utilisés
, tels que Jmeter, Robot Framework, pytest, etc.

24. Combien d'écouteurs JMeter sont répertoriés ?

Certains des écouteurs JMeter sont :
Rapport de collecte
Rapport récapitulatif
Afficher l'arborescence des résultats
Afficher les résultats dans le tableau
Résultats du graphique Rapport récapitulatif
de l'écouteur BeanShell,
etc.

25. Tests pilotés par les données en python

Dans unittest, il n'y a pas de pilote de données intégré, nous devons utiliser ddt pour y parvenir, tout d'abord, nous devons
installer ddt dans l'environnement d'exploitation python, utilisez la commande suivante pour installer
pip install ddt
un autre framework de test pytest, qui vient avec l'implémentation pilotée par les données, il est
paramétré par @pytest.mark.parametrize(argnames,argvalues).
Vous pouvez également utiliser python pour lire et piloter des données en fonction de vos propres besoins.

26. Comment gérer l'association dans l'automatisation des interfaces ?

Transmettez le résultat renvoyé par la requête précédente dans le paramètre de la requête suivante, répercutez le résultat de la requête sur un attribut de classe (à l'aide de la
fonction setattr()) et appelez l'attribut de classe dans la requête suivante

27. Comment vérifier les résultats des tests automatisés ?

Assertion, comparer le résultat attendu avec le résultat réel
Vérification de la base de données, interroger les données dans la base de données selon le scénario de test et les comparer avec les données avant la requête.

28. Plus précisément, comment l'automatisation est-elle appliquée à la situation réelle de ce projet, et votre analyse des résultats de l'automatisation

Après avoir terminé la conception et la mise en œuvre de tous les frameworks de test automatisés, effectuez des tests d'interface, puis intégrez-les dans
Jenkins, configurez l'exécution de la synchronisation, générez des rapports html, vérifiez le taux de réussite des tests et vérifiez les fonctions de l'interface.
Chaque fois qu'une version est publiée, effectuer des tests de régression et de nouvelles fonctions Avant le développement et les tests.

assistance technique

Enfin, voici une collection de tutoriels d'auto-apprentissage pour les tests de logiciels. Cela devrait être très utile aux amis qui se développent dans l'industrie des tests. Pour les amis dans le besoin, vous pouvez [cliquez sur la petite carte à la fin de l'article pour l'obtenir gratuitement] . En plus des ressources de base d'entrée de gamme, les blogueurs collectent également de nombreuses ressources d'automatisation avancées.De la théorie au combat réel, l'unité de la connaissance et de l'action peut vraiment la maîtriser. L'ensemble complet du contenu a été empaqueté sur le disque réseau et le contenu total est proche de 300 G.

☑ 215 épisodes - un ensemble complet de cours vidéo de la fondation zéro à la compétence
☑ [Courseware + code source] - didacticiels complets de soutien
☑ 18 ensembles - testez le code source réel du projet
☑ 37 ensembles - ensemble d'outils de test
☑ 268 questions - vraies questions d'entrevue
☑ 200 modèles - Modèle de CV d'entretien, modèle de plan de test, modèle de rapport de test logiciel, modèle d'analyse de test, modèle de plan de test, rapport de test de performance, rapport de test de performance, modèle de cas d'utilisation de script de test de performance (informations complètes)

Ces matériaux devraient être l'entrepôt de préparation le plus complet et le plus complet pour les amis qui font [des tests de logiciels]. Cet entrepôt m'a également accompagné tout au long du voyage le plus difficile, et j'espère qu'il pourra vous aider aussi ! Tout doit être fait le plus tôt possible, surtout dans l'industrie technique, nous devons améliorer nos compétences techniques.

 


 

Je suppose que tu aimes

Origine blog.csdn.net/HUA1211/article/details/132275510
conseillé
Classement