mardi 30 octobre 2012
Techniques de test logiciel
Test logiciel est un procédé consistant à toutes les activités du cycle de vie, à la fois statiques et dynamiques, concernés par la planification, la préparation et l'évaluation des produits logiciels et des produits liés au travail afin de déterminer, qu'ils satisfont les exigences spécifiées, afin de démontrer qu'ils sont aptes à l'usage et à détecter les défauts. ~ Fondation des tests de logiciels par Dorothy Graham, Erik van Veenendal, Isabel Evans, Rex Black.
Software Testing - Une introduction!
De la définition des tests de logiciels, il est clair que l'essai de logiciels constitue l'élément fondamental de l'assurance qualité des logiciels. Même si un logiciel est mis à l'essai, il est prévu en morceaux pour découvrir des erreurs dans le logiciel. Lorsque le logiciel est testé, l'ingénieur de test vise à trouver des erreurs dans le système, afin de trouver une erreur inconnue. Pour trouver de nouvelles erreurs, différentes techniques de tests logiciels sont utilisés. Le but de ces différentes techniques est de découvrir de nouvelles erreurs. Dans cet article, nous allons voir les différents types de techniques de tests logiciels utilisés dans le processus de test logiciel.
Techniques de test logiciel et stratégies
Normalement tests de logiciels est effectué à toutes les étapes du cycle de vie du développement logiciel. L'avantage des tests à tous les stades, c'est que cela aide à trouver des défauts différents à différents stades de développement de logiciels. Cela permet de réduire le coût du logiciel, car il est plus facile d'identifier les défauts et corriger les défauts à un stade précoce du développement de logiciels. Lorsque tout le produit est prêt à recevoir les augmentations de coût, comme il existe un certain nombre d'autres composants, qui sont également fonction du composant, qui présente les défauts de celui-ci. Les méthodologies de tests de logiciels sont globalement divisés en deux, à savoir les techniques statiques et dynamiques des techniques.
Techniques statiques Software Testing
Dans ce type de technique, le test d'un composant est effectuée sans l'exécution du logiciel. Il est l'analyse statique du code, qui est mise en oeuvre. Il existe différents types de techniques statiques de tests de logiciels ainsi.
Revoir
Examen est dit être une technique puissante statique, ce qui est réalisé dans les premiers stades du cycle de vie des logiciels de test. Les commentaires peuvent être soit formel ou informel. L'inspection est l'examen le plus documenté technique et formelle. Cependant, dans la pratique, l'examen informel est peut-être la technique la plus couramment utilisée.
Dans les premiers stades du développement, le nombre de personnes qui fréquentent les critiques, qu'elles soient formelles ou informelles sont moins, mais ils augmentent dans les étapes ultérieures du développement de logiciels. Examen par les pairs est un examen d'un produit logiciel entrepris par les pairs et collègues de l'auteur du composant logiciel, afin d'identifier les défauts de la pièce et également de recommander des améliorations dans le système si nécessaire. Les types d'examens sont les suivants:
* Procédure pas à pas: L'auteur du document à réviser guide les participants à travers le document, avec sa / son processus de pensée d'arriver à une compréhension commune ainsi que pour recueillir des commentaires sur le document du composant sous revue.
* Commentaire technique: Il s'agit d'une discussion de groupe par les pairs, où le thème de la discussion, est de parvenir à un consensus sur l'approche technique prise, tout en développant le système.
* Inspection: C'est aussi un type d'examen par les pairs, où l'accent est mis sur l'examen visuel des divers documents pour détecter d'éventuels défauts dans le système. Ce type d'examen est toujours basé sur une procédure documentée.
Analyse statique par Outils
Outils d'analyse statique se concentrer sur le code du logiciel. Ces outils sont utilisés par les développeurs de logiciels aussi bien avant, parfois pendant des composants et des tests d'intégration. Les outils utilisés sont
* Normes de codification: Ici, il ya un contrôle effectué pour vérifier le respect des normes de codage.
* Code Metrics: Les métriques de code permet de mesurer les attributs structurels du code. Quand le système devient de plus en plus complexe, il est utile de décider des options de conception, d'autant plus alors que la refonte des portions du code.
Structure du code *: Trois principaux aspects de la structure du code sont la structure de contrôle de flux, la structure des flux de données et de structure de données.
Dynamic Software Testing Techniques
Dans les techniques dynamiques de tests de logiciels, le code est réellement testé pour les défauts. Cette technique est divisée en trois sous-catégories, à savoir la spécification technique de base, la technique basée sur la structure et la technique basée sur l'expérience. Nous allons maintenant voir chacun d'entre eux.
Spécifications Techniques d'essai à base de
La procédure utilisée pour établir et / ou sélectionner des cas de test basés sur l'analyse des spécifications fonctionnelles soit ou non des spécifications fonctionnelles, d'un composant ou d'un système, sans aucune référence à la structure interne du composant ou du système. Il est également connu comme «tests boîte noire» ou «entrées / sorties axées sur les techniques de test. Ils sont ce qu'on appelle le testeur n'a pas connaissance de la façon dont le système est structuré à l'intérieur. Le testeur se concentre sur ce que fait le logiciel et ne se préoccupent pas comment il le fait. Les tests fonctionnels se concentre sur ce que le système fait, avec ses caractéristiques ou fonctions. D'autre part, les essais non fonctionnelle se concentre sur la façon dont le système fait quelque chose. Il ya cinq principales techniques de spécification de test basés sur: 1. Le partitionnement d'équivalence: Les cas de test sont conçus pour exécuter des entrées représentatives d'une partition d'équivalence ou de classes d'équivalence. Les cas de tests sont conçus de telle sorte que les cas de test couvrent chaque partition au moins une fois. Pour l'expliquer plus loin, une technique de partitionnement d'équivalence, l'idée est de diviser - un ensemble de conditions d'essai en sous-groupes ou des ensembles, qui peuvent être considérés comme la même chose. Si une valeur dans le groupe est utilisé dans le système, le résultat doit être le même. Cela permet de réduire l'exécution d'un certain nombre de cas de test, comme seule condition de chaque partition peut être testé. Par exemple: Si 1-100 sont les valeurs valides, puis valide le partitionnement est de 1 à 50, 50 à 100. Par conséquent, pour le partitionnement valide, 1, 50 et 100 sont les valeurs pour lesquelles le système devra être vérifié. Mais il ne s'arrête pas là, le système devra être vérifié aussi pour les partitions non valides ainsi. Par conséquent, les valeurs aléatoires comme -10, 125, etc sont des partitions non valides. En choisissant les valeurs de partitionnement non valide, les valeurs doivent être loin des limites valables.
2. Analyse de la valeur de limite: Une valeur d'entrée ou de sortie qui se trouve sur le bord d'une cloison ou d'équivalence est à la plus petite distance incrémentale de part et d'autre d'une arête. Cette technique est basée sur le test des frontières entre les partitions pour les deux limites valides et invalides limites. Exemple: Si 1 à 99 sont des entrées valides. Par conséquent, les valeurs 0 et 100 sont les valeurs non valides. Par conséquent, les cas de test doivent être conçus de manière à inclure les valeurs 0, 1, 99 et 100, à savoir le fonctionnement du système.
3. Table de décision: Cette technique met l'accent sur la logique métier ou des règles métier. Une table de décision est également connu en tant que table de cause à effet. Dans ce tableau on combinaison d'entrées associées à leurs sorties, qui sont utilisés pour créer des cas de test. Cette technique fonctionne bien en conjonction avec le partitionnement d'équivalence. Ici, la première tâche consiste à identifier une fonction appropriée, ce qui a des traits de comportement, qui réagissent en fonction d'une combinaison de facteurs de production. S'il existe un grand nombre de conditions, puis en les divisant en sous-ensembles permet de trouver les résultats précis. S'il ya deux conditions, alors vous avez 4 combinaison d'ensembles d'entrée. De même, pour les 3 conditions il ya 8 combinaison et conditions pour 4 il ya 16 combinaison, etc
4. Test de transition d'état: Cette technique est utilisée, où tous les aspects de la composante ou le système peut être décrit comme une «machine à états finis. Les cas de test pour cette technique sont conçus pour exécuter des transitions d'état valides et non valides. En tout état donné, un événement peut donner lieu à une seule action, mais le même événement d'un autre état peut entraîner une action différente et un état final différent.
5. Utilisez Test Case: Elle aide à identifier les cas de test, qui exercent l'ensemble du système sur une transaction par transaction du début à la fin. Les cas de tests sont conçus pour exécuter des scénarios de la vie réelle. Ils aident à démêler les défauts d'intégration.
Techniques Structure Based Testing
Il ya deux fins de tests basés sur les techniques de la structure, à savoir. Mesure de couverture de test et de conception structurelle cas de test. Ils sont un bon moyen de générer des cas de test supplémentaires, qui sont différents des cas de test existants, issus des techniques de spécification base. Ceci est également connu en tant que stratégie de tests boîte blanche ou blanche techniques de test boîte.
De couverture de test *: Le degré exprimé en pourcentage, dans laquelle un élément de couverture spécifiée a été exercé par une suite de tests. La mesure de la couverture de base est
Couverture =
Nombre d'éléments de couverture exercisedTotal nombre d'éléments de couverture
* 100%
Il ya un danger à l'aide de la mesure de la couverture. Contrairement à la croyance, une couverture de 100% ne signifie pas que le code est testé à 100%.
Couverture * Déclaration et essais Déclaration:
Il s'agit du pourcentage d'instructions exécutables qui ont été exercées par une suite de tests particulier. Il est important de noter qu'une déclaration peut être sur une seule ligne ou il peut être étalé sur plusieurs lignes. Dans le même temps, une ligne peut contenir plus d'une instruction ou d'une partie d'une instruction aussi bien et de ne pas oublier les déclarations qui contiennent autre déclaration à l'intérieur. La formule à utiliser pour la couverture des instructions est la suivante:
Couverture déclaration =
Nombre de déclarations exercisedTotal nombre de déclarations
* 100%
Couverture décision et d'essais * Décision:
Décision déclarations sont des déclarations comme «If», instructions de boucle, des déclarations de cas, etc, où il ya deux ou plusieurs issues possibles de la même déclaration. Pour calculer la couverture de décision, la formule que vous allez utiliser est
Couverture décision =
Nombre de résultats des décisions exercisedTotal nombre de résultats de décisions
* 100%
La couverture des décisions est plus fort que la couverture des instructions, couverture à 100% de décision garantit toujours la couverture des instructions, mais l'inverse n'est pas vrai. Tout en vérifiant couverture de décision, chaque décision doit avoir à la fois un vrai et un faux résultat.
* Autres techniques de base de la structure de test:
En dehors de la structure de base des techniques mentionnées ci-dessus, il existe d'autres techniques aussi bien. Ils comprennent séquence de code linéaire et saut (LCSAJ) la couverture, la couverture multiple décision de condition (MCDC), les tests chemin, etc
Découvrez Techniques d'essai à base de
Bien que les tests doit être rigoureuse, systématique et approfondie, il existe des techniques non systématiques, qui sont fondées sur les connaissances d'une personne, l'expérience, l'imagination et l'intuition. Un chasseur de bug est souvent en mesure de localiser un défaut dans le système insaisissable. Les deux techniques, qui relèvent de cette catégorie, ils sont les suivants:
Erreur Deviner
Il s'agit d'une technique de conception de test, où l'expérience du testeur est mis à l'épreuve, à la chasse aux bogues insaisissables, qui peut être une partie de la composante ou le système, en raison des erreurs commises. Cette technique est souvent utilisée après les techniques formelles ont été utilisés pour tester le code et s'est avéré être très utile. Une approche structurée pour être utilisé dans l'approche de deviner d'erreur est de lister les défauts possibles, qui peuvent être une partie intégrante du système et des cas de test dans le but de les reproduire.
Techniques d'essai exploratoires
Exploratoire de test est également connu comme «test de singe". Il s'agit d'une approche hands-on, où il ya la planification minimale de tester le composant, mais le test est à son maximum. La conception du test et l'exécution des tests se déroulent simultanément, sans formellement documenter les conditions de test, cas de test ou des scripts de test. Cette approche est utile, lorsque les spécifications du projet sont pauvres ou lorsque le temps à portée de main est extrêmement limitée.
Il existe différents types de techniques d'essai de logiciels d'estimation. Une des techniques consiste à consulter les gens qui vont assurer les activités de test et les gens qui ont une expertise sur les tâches à accomplir. Les techniques de tests logiciels qui seront utilisés pour tester le projet dépend d'un certain nombre de facteurs. Les principaux facteurs sont l'urgence du projet, de la gravité du projet, les ressources en main, etc Dans le même temps toutes les techniques de tests logiciels seront utilisés dans tous les projets, en fonction des techniques politiques organisationnelles sera décidé....
Aucun commentaire:
Enregistrer un commentaire