


Comment Python implémente l'algorithme d'organisation par paires (cas de test efficaces)
L'éditeur suivant vous proposera une méthode d'implémentation Python d'un algorithme efficace d'organisation des cas de test par paires. L'éditeur le trouve plutôt bon, je vais donc le partager avec vous maintenant et le donner comme référence pour tout le monde. Suivons l'éditeur et jetons un coup d'oeil.
Ouverture :
Pendant le processus de test, des cas de tests sont organisés pour le cas de multi- Paramètres de paramètres avec plusieurs valeurs., J'utilise [Méthode d'analyse orthogonale] pour organiser les cas d'utilisation, pour parler franchement, cela signifie faire une combinaison complète de toutes les valeurs de chaque paramètre avec les valeurs. d'autres paramètres. Il est implémenté avec un script Python, qui est la méthode produit (également connue sous le nom de flûte) dans le module itertools (méthode produit Karl).
L'avantage de la méthode d'analyse orthogonale est que le taux de couverture des cas de test est de 100 %. L'inconvénient est que le nombre de cas de test est énorme et la consommation de main-d'œuvre pour l'exécution des cas d'utilisation est énorme.
L'algorithme par paires est dérivé de l'optimisation des méthodes d'analyse orthogonales traditionnelles, et sa théorie vient des statistiques mathématiques. Pour être honnête, je ne comprends pas les articles universitaires sur les statistiques mathématiques, je ne peux donc trouver que quelques explications simples et populaires sur Internet pour comprendre leur signification fondamentale.
De nombreuses personnes sur Internet utilisent [système d'exploitation, navigateur, environnement linguistique] comme exemples. J'utilise également le même exemple :
Système d'exploitation : W (Windows), L (Linux), Mac (Mac) ; Navigateur : M (Firefox), O (Opera), IE ; Environnement linguistique : C (chinois), E (anglais)
Selon la méthode d'analyse orthogonale : 3x3x2 sera généré =18. méthodes de combinaison, couverture des cas de test à 100 %.
La méthode d'organisation des cas de test par paires peut être compressée en 9 combinaisons. Par conséquent, l'inconvénient est que le nombre de cas de test est faible et l'inconvénient est qu'il y aura certainement des tests manqués.
Introduction :
Le concept de base de l'algorithme Pairwise
1. Un ensemble de cas de test (chaque cas d'utilisation se compose de 3 valeurs de paramètres, telles que [W, M, C]). Chaque 2 éléments est combiné, et lorsqu'il est combiné par paires, il existe 3 combinaisons (positionnées) [W,). M][W,C][M,C]);
2. Si cette première série de tests utilise trois combinaisons de deux par deux, le principe de comparaison est : [W,M] Ce sera seulement par rapport au premier élément des autres groupes, et [W, C] ne sera comparé qu'au deuxième élément des autres groupes. . . . ;
[W,M][W,C][M,C] Ces trois éléments apparaissent dans les éléments ayant la même position dans les groupes valides restants, ce groupe de Cas peut donc être considéré comme des Cas redondants. , et à supprimer.
Explication du nom : [Groupe effectif] désigne un groupe qui n'a pas été supprimé et un groupe qui n'a pas été comparé. Par exemple : Si les groupes 1 et 3 sont supprimés, les groupes effectifs à comparer avec le groupe 4 sont les groupes 2, 5, 6, 7...18. Le groupe effectif a franchi la fosse ici%>_<%
3. Le cas de test est finalement obtenu, qui est l'ensemble optimal de cas de test calculé par l'algorithme d'appariement.
Une preuve académique brillante
Pairwise a été proposée pour la première fois par L. L. Thurstone (29 mai 1887 – 30 septembre 1955) en 1927. C'est un psychostatisticien américain. Pairwise est également un produit basé sur des statistiques mathématiques et l'optimisation des méthodes d'analyse orthogonales traditionnelles.
Pairwise est basé sur les deux hypothèses suivantes :
(1) Chaque dimension est orthogonale, c'est-à-dire que chaque dimension est indépendante de chacune autre carrefour.
(2) Selon l'analyse statistique mathématique, 73 % des défauts (35 % pour un seul facteur et 38 % pour deux facteurs) sont causés par un seul facteur ou par l'interaction de 2 facteurs. 19 % des défauts sont causés par l’interaction de 3 facteurs.
Par conséquent, par paire est généré sur la base de l'ensemble de cas d'utilisation le plus rentable généré par l'interaction des 2 facteurs.
Texte
1. Idées
Un scénario de test Comment pour commencer depuis la saisie des conditions testées jusqu'à la production de cas de test Pairwise, les idées de programmation Python sont les suivantes :
1 Définissez allparams=[['M','O','P'],[' W. ','L','I'],['C','E']] effectue un traitement de combinaison complète de produits cartésiens pour générer un tableau unidimensionnel (len=N) de l'ensemble complet de cas de test générés par l'application régulière. méthode d'analyse ;
2. Chaque cas de test de l'ensemble complet des cas de test est décomposé en deux combinaisons pour générer un tableau bidimensionnel de la même longueur que l'ensemble complet des cas de test (len= unidimensionnel). N);
3. Utiliser la version Python de l'algorithme Pairwise pour éliminer les cas de test invalides, et enfin obtenir un ensemble de cas de test appariés efficaces
Les 1ère et 2ème fonctions du code ; sont écrits à l'aide de la propre bibliothèque de calcul mathématique de Python, itertools, et du 3ème code. La fonction est le code que j'ai proposé.
2. Téléchargez directement le code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 |
|
Interprétation du code :
La troisième ligne de code de boucle for 39~48 sert principalement à déterminer verticalement si l'élément à détecter et l'élément à la même position ont la même valeur
Le deuxième code de boucle for 38 ~ Lignes 48, associez deux paires de cas de test dans un groupe et comparez-les avec des éléments à la même position de gauche à droite
Le premier code de boucle for, lignes 37 ~ 48 , parcourt chaque groupe de cas de test.
第50~58行代码,判断一组用例的两两配对在其他组同位置上从上到下都能找到相同元素,则将改无效Case从templistb中删除,保持templistb的有效性。
执行结果:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
|
三、代码核心内容白话解释
pairwise(self,listb)函数包含3层for循环,先画一个二维数组:
1 2 3 4 5 6 7 8 9 10 11 12 |
|
二维列表 listb ,其中的行(发音:hang,二声。横着的那排)从上到下就是第一层for循环 ;每一行中的i[0],i[1],i[2]就是第二层for循环从左至右;第三次for循环元素i[x]从上之下与有效组 templistb通位置元素的对比。
1、第n行的i[0]要和有效templistb的其他行的i[0]元素对比(第三for),如果有相等的,记录一个标识 如 flag1=True,如果没有相等的记录falg1=False;
2、直到第二for中的i[0],i[1],i[2]都进行对比后,会得到 [flag1,flag2,flag3 ],所有flag=True则该行为无效用例
3、第一for遍历全部组合,最终得到保留下来的有效templistb
见图:
完结篇
以上是自己编写的pairwise的全部内容,此算法共耗时3天:
第一天在确定这究竟是什么算法,看了很多学术文献,看不懂;
第二天开始写程序,for的嵌套循环设计耽误很久;
第三天程序成型,有执行结果,发现与参考文章结论不同,随后再仔细研读参考文章,发现掉坑里了。重新推翻代码按照正确思路,用1个小时完成最终结果。
本人做测试的,还不是专业的测试开发,写代码比较费劲,真正应了设计占70%,编码占30%的理。如果像基础在差点,逻辑在乱点,就只能用时间堆了。
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

PHP est principalement la programmation procédurale, mais prend également en charge la programmation orientée objet (POO); Python prend en charge une variété de paradigmes, y compris la POO, la programmation fonctionnelle et procédurale. PHP convient au développement Web, et Python convient à une variété d'applications telles que l'analyse des données et l'apprentissage automatique.

PHP convient au développement Web et au prototypage rapide, et Python convient à la science des données et à l'apprentissage automatique. 1.Php est utilisé pour le développement Web dynamique, avec une syntaxe simple et adapté pour un développement rapide. 2. Python a une syntaxe concise, convient à plusieurs champs et a un écosystème de bibliothèque solide.

Python convient plus aux débutants, avec une courbe d'apprentissage en douceur et une syntaxe concise; JavaScript convient au développement frontal, avec une courbe d'apprentissage abrupte et une syntaxe flexible. 1. La syntaxe Python est intuitive et adaptée à la science des données et au développement back-end. 2. JavaScript est flexible et largement utilisé dans la programmation frontale et côté serveur.

PHP est originaire en 1994 et a été développé par Rasmuslerdorf. Il a été utilisé à l'origine pour suivre les visiteurs du site Web et a progressivement évolué en un langage de script côté serveur et a été largement utilisé dans le développement Web. Python a été développé par Guidovan Rossum à la fin des années 1980 et a été publié pour la première fois en 1991. Il met l'accent sur la lisibilité et la simplicité du code, et convient à l'informatique scientifique, à l'analyse des données et à d'autres domaines.

VS Code peut fonctionner sur Windows 8, mais l'expérience peut ne pas être excellente. Assurez-vous d'abord que le système a été mis à jour sur le dernier correctif, puis téléchargez le package d'installation VS Code qui correspond à l'architecture du système et l'installez comme invité. Après l'installation, sachez que certaines extensions peuvent être incompatibles avec Windows 8 et doivent rechercher des extensions alternatives ou utiliser de nouveaux systèmes Windows dans une machine virtuelle. Installez les extensions nécessaires pour vérifier si elles fonctionnent correctement. Bien que le code VS soit possible sur Windows 8, il est recommandé de passer à un système Windows plus récent pour une meilleure expérience de développement et une meilleure sécurité.

VS Code peut être utilisé pour écrire Python et fournit de nombreuses fonctionnalités qui en font un outil idéal pour développer des applications Python. Il permet aux utilisateurs de: installer des extensions Python pour obtenir des fonctions telles que la réalisation du code, la mise en évidence de la syntaxe et le débogage. Utilisez le débogueur pour suivre le code étape par étape, trouver et corriger les erreurs. Intégrez Git pour le contrôle de version. Utilisez des outils de mise en forme de code pour maintenir la cohérence du code. Utilisez l'outil de liaison pour repérer les problèmes potentiels à l'avance.

L'exécution du code Python dans le bloc-notes nécessite l'installation du plug-in exécutable Python et du plug-in NPEXEC. Après avoir installé Python et ajouté un chemin à lui, configurez la commande "python" et le paramètre "{current_directory} {file_name}" dans le plug-in nppexec pour exécuter le code python via la touche de raccourci "F6" dans le bloc-notes.

Les extensions de code vs posent des risques malveillants, tels que la cachette de code malveillant, l'exploitation des vulnérabilités et la masturbation comme des extensions légitimes. Les méthodes pour identifier les extensions malveillantes comprennent: la vérification des éditeurs, la lecture des commentaires, la vérification du code et l'installation avec prudence. Les mesures de sécurité comprennent également: la sensibilisation à la sécurité, les bonnes habitudes, les mises à jour régulières et les logiciels antivirus.
