Mythes sur les tests d'IA
Ces dernières années, j'ai prêté attention aux tests liés à l'IA et j'ai participé activement à plusieurs communautés et communautés de tests nationales. Dans ces communautés, je communique avec des experts en tests de différentes entreprises et domaines pour discuter de sujets liés aux tests d'IA, y compris des experts des plus grandes entreprises du secteur et des spécialistes nationaux bien connus des tests. J'ai également participé à de nombreuses conférences, écouté de nombreux partages sur des sujets liés aux tests d'IA et essayé une variété d'outils de test liés à l'IA, grâce auxquels j'ai acquis beaucoup de connaissances et d'idées.
Dans ces communautés et communautés de tests, j'ai rencontré de nombreuses questions sur les tests d'IA, telles que qu'est-ce que les tests d'IA, comment effectuer des tests d'IA, quels outils et méthodes sont disponibles pour les tests d'IA, etc. Cependant, lorsque j'ai recherché des livres liés aux tests d'IA sur Internet, j'ai trouvé un grand nombre de livres liés au développement de l'IA, mais peu de livres introduisaient spécifiquement les tests d'IA. Cela montre que l’industrie des tests avance toujours à tâtons dans le chaos.
Afin de partager les connaissances et l'expérience que j'ai acquises sur les tests d'IA, j'ai trié mon expérience d'apprentissage, essayé de répondre à quelques questions courantes que j'ai rencontrées sur les tests d'IA et organisé ces contenus en articles à partager avec tout le monde. .
Le mythe des tests d'IA
Lorsque l'on parle de tests d'IA, il existe généralement deux compréhensions :
- La première consiste à utiliser l'IA pour assister les tests de logiciels actuels, comme l'utilisation de systèmes d'IA pour apprendre l'analyse et la conception de tests. , Générez ensuite automatiquement des cas de test et implémentez automatiquement ces cas de test.
- La deuxième étape consiste à tester le système d'IA. Bien que l'industrie utilise encore des méthodes de test conventionnelles pour tester les systèmes d'IA, telles que les tests fonctionnels, les tests de performances et les tests de sécurité, il est souvent difficile d'obtenir des données de test et des conditions d'acceptation claires lors du test de l'efficacité de ses fonctions. Dans ce cas, les tests ne peuvent être effectués que grâce à une compréhension approfondie de l'algorithme et en générant ou en trouvant des données de manière empirique et en évaluant grossièrement la validité des résultats des tests fonctionnels.
L'utilisation de l'IA pour assister les tests automatisés actuels est un domaine émergent. L'utilisation de systèmes d'IA (tels que l'apprentissage profond) pour faciliter le travail de test est certainement l'une des tendances de test les plus en vogue ces dernières années, notamment la génération et l'exécution automatiques de tests automatisés, l'analyse des résultats de test à grande échelle, les tests exploratoires automatisés, la localisation des défauts, etc.
De nombreuses entreprises aux États-Unis ont lancé des outils commerciaux de test d’IA. Dans le compte public de l'enseignant Zhu Shaomin « Software Quality Report », il y a un article intitulé « L'avenir est là, les tests d'intelligence artificielle sont imparables : présentation de 9 outils de test d'IA », qui présente 9 outils de test basés sur l'IA. Cependant, ces outils de test d’IA rencontrent généralement des problèmes tels que la précision des scénarios de test et la maintenabilité des scénarios de test à grande échelle.
Première question : les tests assistés par l'IA peuvent-ils vraiment être utilisés ?
Bien que de nombreuses entreprises aient commencé à étudier les tests assistés par l'IA et que de nombreux outils soient apparus, ils ont tous un problème important : la précision. En raison des limites de l'algorithme d'apprentissage de l'IA existant lui-même, la précision des cas de test et des conditions de vérification apprises et générées n'est pas très élevée. J'ai assisté à plusieurs conférences où le taux de précision des tests assistés par l'IA partagés par certains des principaux fabricants Internet chinois n'était que légèrement supérieur à 80 % et inférieur à 90 %. Ce type de précision est difficile à reconnaître dans certains systèmes qui nécessitent une grande précision, comme dans le domaine financier.
Deuxièmement, lorsque l'échelle des cas de tests automatisés est grande, il est difficile de s'appuyer sur une maintenance manuelle des cas de tests et ne peut s'appuyer que sur des outils. En raison de l'imprécision des outils de test de l'IA, la précision des travaux de maintenance n'est pas très satisfaisante.
Néanmoins, dans les grands systèmes avec de faibles exigences de qualité, les tests assistés par l'IA peuvent réduire considérablement les coûts de test, c'est pourquoi dans ces systèmes, des tests automatisés assistés par l'IA ont été appliqués. De plus, dans les projets ayant des exigences de qualité élevées et des ressources suffisantes, les tests assistés par l'IA peuvent être utilisés comme une extension des tests automatisés manuels et comme un outil de tests exploratoires automatisés pour garantir davantage la qualité des logiciels.
Deuxième question : dans quelle mesure les tests assistés par l'IA se sont-ils développés ?
Actuellement, les tests assistés par l’IA en sont encore à leurs balbutiements. Je divise les tests assistés par l'IA en trois étapes :
- La première étape consiste à générer automatiquement l'entrée des cas de test via le modèle d'apprentissage en profondeur, puis à vérifier manuellement l'exactitude des résultats de sortie.
- La deuxième étape consiste à générer automatiquement une entrée de scénario de test via le modèle d'apprentissage en profondeur et à vérifier automatiquement l'exactitude des résultats de sortie via le modèle de règles.
- La troisième étape consiste à générer automatiquement l'entrée et la sortie du scénario de test via le modèle d'apprentissage en profondeur et à vérifier automatiquement l'exactitude des résultats de sortie.
À l'heure actuelle, l'industrie a essentiellement réalisé la première phase, et certaines entreprises ont également commencé à réaliser la deuxième phase. Cependant, seule une poignée de grandes entreprises ont atteint l’étape 3, et la précision de ces entreprises reste encore à améliorer. Par conséquent, les tests assistés par l’IA ont encore un long chemin à parcourir.
La troisième question : quels systèmes logiciels peuvent être testés avec l'aide de l'IA ?
Théoriquement, n'importe quel système logiciel peut utiliser l'IA pour faciliter le travail de test automatisé. Cependant, en raison de l’état actuel des systèmes de test d’IA, ils ne peuvent pas véritablement être utilisés pour tous les types de systèmes logiciels. De nombreux projets actuels n'utilisent que des tests d'IA sur des couches d'interface spécifiques de certains systèmes, telles que les API de services Web, etc.
Dans différents domaines industriels, l'utilisation des tests d'IA est également différente. Par exemple, dans les secteurs ayant des exigences de qualité élevées, comme la finance et l’industrie militaire, les tests d’IA ne peuvent actuellement être utilisés que comme une extension des tests fonctionnels automatisés existants. Dans les secteurs où les exigences de qualité sont faibles, comme Internet, certaines entreprises dotées de solides capacités techniques ont adopté les tests d’IA comme l’une des principales méthodes de tests automatisés. Cependant, les tests automatisés assistés par l’IA sont sans aucun doute l’avenir des tests automatisés !
Résumé
Grâce aux réponses aux questions ci-dessus, j'espère dissiper la confusion de tout le monde à propos des tests d'IA, notamment comprendre ce qu'est le test d'IA, si votre propre projet est adapté aux tests d'IA et si vous devez investir dans les tests d'IA dans l'avenir.
Pour résumer, les tests d’IA en sont encore aux premiers stades de développement, ils ne sont donc pas adaptés à une utilisation à grande échelle et ne peuvent être envisagés que pour une utilisation dans des projets spécifiques. Que vous utilisiez l'IA ou des méthodes manuelles pour mettre en œuvre des tests automatisés, l'essentiel est l'efficacité du test, l'exactitude des résultats des tests et la maintenabilité des cas de test. Ce sont des facteurs essentiels au succès des tests automatisés à grande échelle.
Par conséquent, qu'il s'agisse de tests automatisés d'IA ou de tests automatisés manuels, son essence fondamentale est la même : s'appuyer sur une série de pensées humaines telles que l'apprentissage des connaissances, l'analyse et la synthèse pour résoudre le travail d'analyse des tests, de conception des tests et mise en œuvre de tests automatisés. Cependant, le développement actuel du système d'IA lui-même ne suffit pas à remplacer le travail humain dans l'analyse et la conception des tests. En conséquence, la précision et la maintenabilité des tests automatisés mis en œuvre par l'IA sont pires que les méthodes manuelles. Cependant, les tests d’IA présentent des avantages évidents en termes de temps et de coût, c’est pourquoi ils deviennent de plus en plus populaires.
Par conséquent, dans le domaine des tests, l’IA doit redoubler d’efforts pour véritablement remplacer le travail humain. Avant d’envisager d’utiliser les tests d’IA, les besoins et conditions spécifiques de votre projet doivent être soigneusement évalués pour déterminer si les tests d’IA sont appropriés. À l'avenir, avec le développement et l'amélioration continus de la technologie de l'IA, les tests d'IA deviendront une tendance importante dans les tests automatisés, et investir dans les technologies et les talents liés aux tests d'IA sera également un choix judicieux.
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

AI Hentai Generator
Générez AI Hentai gratuitement.

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

Les types de valeur de retour de la fonction de langue C incluent les types int, float, double, char, void et pointer. INT est utilisé pour retourner des entiers, Float et Double sont utilisés pour retourner des flotteurs, et Char retourne les caractères. void signifie que la fonction ne renvoie aucune valeur. Le type de pointeur renvoie l'adresse de mémoire, veillez à éviter les fuites de mémoire. Une structure ou un consortium peut renvoyer plusieurs données connexes.

Les fonctions de langue C sont des blocs de code réutilisables. Ils reçoivent des entrées, effectuent des opérations et renvoient les résultats, ce qui améliore modulairement la réutilisabilité et réduit la complexité. Le mécanisme interne de la fonction comprend le passage des paramètres, l'exécution de la fonction et les valeurs de retour. L'ensemble du processus implique une optimisation telle que la fonction en ligne. Une bonne fonction est écrite en suivant le principe de responsabilité unique, un petit nombre de paramètres, des spécifications de dénomination et une gestion des erreurs. Les pointeurs combinés avec des fonctions peuvent atteindre des fonctions plus puissantes, telles que la modification des valeurs de variables externes. Les pointeurs de fonctions passent les fonctions comme des paramètres ou des adresses de magasin, et sont utilisées pour implémenter les appels dynamiques aux fonctions. Comprendre les fonctionnalités et les techniques des fonctions est la clé pour écrire des programmes C efficaces, maintenables et faciles à comprendre.

Le calcul de C35 est essentiellement des mathématiques combinatoires, représentant le nombre de combinaisons sélectionnées parmi 3 des 5 éléments. La formule de calcul est C53 = 5! / (3! * 2!), Qui peut être directement calculé par des boucles pour améliorer l'efficacité et éviter le débordement. De plus, la compréhension de la nature des combinaisons et la maîtrise des méthodes de calcul efficaces est cruciale pour résoudre de nombreux problèmes dans les domaines des statistiques de probabilité, de la cryptographie, de la conception d'algorithmes, etc.

STD :: Unique supprime les éléments en double adjacents dans le conteneur et les déplace jusqu'à la fin, renvoyant un itérateur pointant vers le premier élément en double. STD :: Distance calcule la distance entre deux itérateurs, c'est-à-dire le nombre d'éléments auxquels ils pointent. Ces deux fonctions sont utiles pour optimiser le code et améliorer l'efficacité, mais il y a aussi quelques pièges à prêter attention, tels que: std :: unique traite uniquement des éléments en double adjacents. STD :: La distance est moins efficace lorsqu'il s'agit de transacteurs d'accès non aléatoires. En maîtrisant ces fonctionnalités et les meilleures pratiques, vous pouvez utiliser pleinement la puissance de ces deux fonctions.

Bien que C et C # aient des similitudes, ils sont complètement différents: C est une gestion manuelle de la mémoire manuelle et un langage dépendant de la plate-forme utilisé pour la programmation système; C # est un langage orienté objet, des ordures et un langage indépendant de la plate-forme utilisé pour le bureau, l'application Web et le développement de jeux.

La fonction de langue C renvoie un pointeur pour sortir une adresse mémoire. Le contenu de pointage dépend de l'opération à l'intérieur de la fonction, qui peut pointer vers des variables locales (soyez prudent, la mémoire a été libérée après la fin de la fonction), la mémoire allouée dynamiquement (doit être allouée à Malloc et libre) ou des variables globales.

Les paramètres du pointeur de la fonction du langage C fonctionnent directement la zone de mémoire passée par l'appelant, y compris les pointeurs vers des entiers, des chaînes ou des structures. Lorsque vous utilisez des paramètres de pointeur, vous devez faire attention à modifier la mémoire pointée par le pointeur pour éviter les erreurs ou les problèmes de mémoire. Pour les doubles pointeurs vers les chaînes, la modification du pointeur lui-même conduira à pointer de nouvelles chaînes, et la gestion de la mémoire doit être prêtée attention. Lorsque vous gérez les paramètres du pointeur vers les structures ou les tableaux, vous devez vérifier soigneusement le type de pointeur et les limites pour éviter l'accès hors limites.

Les éléments clés de la définition de la fonction C comprennent: type de retour (définissant la valeur renvoyée par la fonction), nom de fonction (suivant la spécification de dénomination et déterminant la portée), la liste des paramètres (définissant le type de paramètre, la quantité et l'ordre acceptés par la fonction) et le corps de la fonction (implémentation de la logique de la fonction). Il est crucial de clarifier la signification et la relation subtile de ces éléments, et peut aider les développeurs à éviter les "fosses" et à écrire du code plus efficace et élégant.
