Fermer

juillet 12, 2018

Assurance qualité dans les tests de logiciels – Passé, présent et futur


Nous voulons tous de la qualité dans tout ce que nous utilisons. La qualité est la norme de quelque chose mesuré contre des choses de même nature. C'est la mesure de l'excellence d'un produit, d'un processus, d'un service ou d'une expérience.

La qualité dans les temps anciens

Depuis les temps anciens, les sociétés ont fait des efforts considérables pour atteindre la qualité. Dans l'économie des chasseurs-cueilleurs et de l'agriculture, les humains n'avaient pas beaucoup de choix. Au Moyen Age, les gens ont commencé à se spécialiser dans leurs propres domaines et sont devenus des experts en la matière. La sophistication pure de la construction grecque et l'architecture égyptienne rappellent les normes établies à cette époque.

A l'époque pré-industrielle, les marchés étaient monopolisés principalement par les Guildes, qui étaient une union d'artisans formés au 13ème siècle. Les guildes étaient responsables du maintien ou de la vérification de la qualité des biens et services fournis par les membres. Les maîtres de guilde ont inspecté les marchandises pour s'assurer que les normes nécessaires étaient maintenues.

La qualité dépendait de la personne durant cette période. La compétence individuelle était le facteur déterminant de la qualité. Les gens étaient fiers de leurs produits et travaillaient dur pour maintenir la qualité. Cela a duré jusqu'à la fin du 19ème siècle, lorsque l'industrialisation a pris pied rapidement. La production de masse a brisé la fabrication de marchandises en étapes simples.

La division du travail a conduit à la spécialisation et la qualité a commencé à devenir plus axée sur les processus que sur les personnes orientées. Il y avait une réduction des coûts de main-d'œuvre car les travailleurs non qualifiés pouvaient être formés pour effectuer des tâches spécifiques. Mais les gens manquaient de motivation et se lassaient du travail monotone et répétitif. De plus, comme les emplois étaient divisés en différents niveaux, comme les tâches de niveau inférieur, les travailleurs avaient de la difficulté à s'identifier et à être fiers du produit final

Ils étaient mécontents des ouvriers avec le travail qu'ils faisaient et En conséquence, la qualité des produits a commencé à baisser de manière significative. La production de masse a également entraîné la manipulation et l'exploitation de travailleurs non qualifiés. De plus, le processus rendait les travailleurs inutiles et augmentait le pouvoir conféré au contremaître et aux directeurs, ce qui entraînait souvent une mauvaise utilisation et une exploitation.

Gestion scientifique

Frederick Winslow Taylor améliora l'efficacité industrielle en utilisant le concept de gestion scientifique de former les employés, de mettre en œuvre la documentation, de répartir le travail de façon égale entre les travailleurs et de limiter le contrôle de la qualité à quelques personnes précises. Cette théorie de la gestion visait à améliorer les flux de travail en les analysant et en les intégrant, ce qui visait à accroître l'efficience économique et la productivité du travail.

Henry Ford a mis l'accent sur la mise en œuvre de conceptions et de composants standard. Le contrôle de la qualité relevait de la responsabilité des inspecteurs de la machine qui effectuaient des contrôles de qualité à intervalles fréquents, de sorte qu'aucune opération défectueuse ne se produisait à des intervalles plus longs.

Walter Shewhart a perfectionné la méthode de gestion scientifique. PDSA), qui consiste à planifier l'action, à faire le travail en plan, à étudier les résultats et à prendre des mesures correctives si nécessaire. Ce concept met l'accent sur l'efficacité et la qualité. En utilisant cette méthode, le général MacArthur et W. Edwards Deming reconstruisirent le Japon après la défaite de la Seconde Guerre mondiale.

Au début des années 50, Joseph M. Juran, considéré comme le père de la gestion de la qualité, définit la qualité comme un usage. Le développement de logiciels est également devenu un domaine à part entière, durant cette période. Assurer la qualité du logiciel est devenu un besoin important. Il a progressé simultanément avec les développements dans l'informatique menés par les pionniers dans le domaine pendant les dernières décennies du XXe siècle.

Du premier logiciel à plusieurs langages de programmation de haut niveau comme Fortran, il a augmenté l'ère informatique personnelle avec le développement de micro-ordinateurs. Un impact notable sur le développement logiciel a été fait avec la sortie de l'Apple II, qui a été suivie par de nombreuses avancées.

Qualité du logiciel par test

La qualité du logiciel est définie comme le degré auquel un système répond aux exigences spécifiées ou aux besoins des utilisateurs et les attentes. Il comprend une mesure de la qualité du design utilisé dans le logiciel et de la manière dont il correspond au design. La qualité du logiciel est principalement déterminée par l'analyse de plusieurs variables clés, internes et externes.

L'expérience utilisateur constitue la majeure partie de la qualité externe tandis que le code forme la qualité interne. Les tests sont devenus un segment important dans le processus de développement logiciel pour assurer sa qualité. Auparavant, le développeur de logiciels et l'utilisateur étaient les mêmes personnes généralement un scientifique. Il était assez facile et rapide de faire le contrôle de la qualité par eux-mêmes.

L'assurance de la qualité du logiciel était très efficace, centrée sur l'utilisateur, ciblée et avait le cycle de rétroaction le plus rapide. Il s'agissait d'assurer la qualité pour toute la phase de développement logiciel en détectant et en résolvant les faiblesses. Les tests logiciels ont subi un processus évolutif qui a permis de passer de ses formulaires préliminaires aux tests fondés sur les frameworks de bout en bout utilisés aujourd'hui.
David Gelperin et Bill Hetzel dans leur étude, 'The growth of software testing' affirme que les tests de logiciels ont subi une évolution avec des changements notables dans le modèle de processus de test. Une proposition similaire est mentionnée dans le livre blanc intitulé «L'évolution continue des tests logiciels» par les auteurs, Hung Q. Nguyen et Robert Pirozzi. Le premier discute de l'évolution des tests logiciels basés sur le temps tandis que le dernier est basé sur les processus, les méthodologies et l'utilisation des outils

Evolution of Software Testing – basé sur le temps

par. Nous pouvons diviser l'évolution des tests logiciels en différentes phases basées sur le temps

 Assurance qualité - Tests logiciels

Phase orientée débogage

Cette phase est la période initiale de test. Le terme checkout a été utilisé pour tester et s'est concentré sur l'exécution du système. Les programmeurs effectuaient généralement cela eux-mêmes dans le cadre du développement de logiciels jusqu'à ce qu'ils s'assurent que le programme fonctionnait correctement. Il n'y avait aucune distinction claire entre le développement de logiciel, le test et le débogage.

Démonstration Oriented Phase

Le terme débogage continue dans cette phase. Charles Baker a souligné que le but de la vérification n'est pas seulement de faire fonctionner le logiciel, mais aussi de démontrer l'exactitude en fonction des exigences mentionnées. Ainsi, dans cette phase, la portée de la vérification a augmenté de l'exécution du programme à l'exactitude du programme. De plus, il y avait une idée fausse dans cette phase que les logiciels pourraient être testés exhaustivement.

Pendant cette phase, l'effort de test inclut la détection, l'emplacement, l'identification, et la correction des défauts. La première équipe de test a été formée par Gerald M. Weinberg en 1958 dans le cadre du projet Mercury, le premier programme de vols spatiaux habités des États-Unis

Waterfall model, un modèle de développement séquentiel pour la gestion de grands logiciels.

Phase de Destruction Orientée

GJ Myers a changé la vue des tests de 'testing pour montrer l'absence d'erreurs' à 'testing pour trouver de plus en plus d'erreurs'. Il a séparé les tests du débogage et a insisté sur l'importance des cas de test pour détecter plus de bugs. Cette phase a donné plus d'importance à des tests efficaces que des tests exhaustifs.

Phase d'évaluation orientée

Peu à peu, les gens réalisèrent qu'il était moins coûteux de déboguer si les bogues étaient identifiés au cours des premières étapes du développement, ce qui impliquait la collecte des exigences et les phases de conception. . Cette phase met l'accent sur la qualité des produits logiciels afin qu'ils puissent être évalués à chaque étape du développement. Le concept de test précoce a été établi sous forme d'activités de vérification et de validation, ce qui contribue à produire un logiciel de meilleure qualité

Prévention des défauts

En détectant les défauts tôt et en les corrigeant, Au-delà, les bugs peuvent également être évités dans les futurs projets avec l'expérience acquise sur des projets similaires. Le modèle de prévention utilisé comprend la planification et l'analyse des tests. Les activités de conception de test jouent ici un rôle majeur, contrairement au modèle d'évaluation où les techniques d'analyse et de révision sont importantes

Phase orientée processus

Dans cette phase, le test est établi comme un processus complet plutôt que comme une étape du logiciel. cycle de vie du développement (SDLC). Le processus de test démarre dès que les exigences pour les projets sont spécifiées et qu'il fonctionne en parallèle avec SDLC. L'accent est également mis sur la quantification de divers paramètres qui déterminent les performances du processus de test

Evolution des tests logiciels – basée sur les processus et les outils

Les tests logiciels sont divisés en trois phases différentes basées sur cette classification. 19659002] Test de logiciel 1.0

Dans cette phase, le test de logiciel est considéré comme une phase unique après que le logiciel a été codé dans le cycle de développement. Aucune organisation de test était là. Quelques outils de test étaient présents, mais leur utilisation était limitée en raison du coût excessif. Les tests de logiciels ont pris de l'importance dans le cycle de vie du développement logiciel et le concept des tests précoces a également commencé. Les tests ont évolué dans le sens de la planification des ressources de test. De nombreux outils de test étaient également disponibles dans cette phase

Software Testing 3.0

Dans cette phase, les tests de logiciels ont évolué en tant que processus, ce qui donne une feuille de route du processus de test global. De plus, il est guidé par des objectifs de qualité afin que le suivi et le contrôle puissent être effectués par les gestionnaires.

L'avenir des tests de logiciels

Aujourd'hui, les tests constituent l'un des principaux processus de développement de logiciels qui impliquent plusieurs aspects techniques et non techniques, notamment la spécification, la conception et la mise en œuvre, la maintenance, les processus, et le management. Les tests de logiciels sont principalement effectués avec des ressources limitées en termes de temps, de budget ou de personnel. Par conséquent, le processus de test doit toujours être ajusté pour s'adapter à ces limites. Ces limitations soulignent l'importance des outils d'automatisation dans le processus.

Malgré les changements importants que l'automatisation a créés, les tests manuels restent toujours partie intégrante du cycle de vie du développement. Selon l'application, certains tests peuvent être automatisés, tandis que d'autres doivent encore être effectués manuellement. Et sans aucun doute, certains types de tests logiciels nécessitent un effort manuel total dans le processus.

Pour cela, la connaissance des outils sera un atout majeur pour les testeurs car elle les aidera à accomplir les tâches plus rapidement et avec précision. À l'avenir, d'innombrables opportunités attendent les testeurs prêts à changer de profil.

Les tests logiciels progressant rapidement chaque année, les testeurs peuvent adopter ces nouvelles tendances en devenant plus habiles et bien au fait des derniers développements. Les compétences d'un testeur humain sont indispensables et l'automatisation est encore loin laissant d'innombrables possibilités pour les testeurs.

Références:

  • https://blog.smartbear.com/process/the-history-of-quality-assurance /
  • La croissance des tests logiciels par David Gelperin et Bill Hetzel
  • L'évolution continue des tests logiciels par Hung Q Nyugen et Robert Pirozzi
  • Tests logiciels – Principes et pratiques par Naresh Chauhan




Source link