Passons aux concepts de base.
Le test logiciel est une vérification de la conformité des résultats réels et attendus du comportement du programme, effectuée sur un ensemble fini de tests choisis d'une certaine maniÚre.
Le but des tests est de vĂ©rifier que le logiciel rĂ©pond aux exigences, de garantir la confiance dans la qualitĂ© du logiciel, de rechercher des erreurs Ă©videntes dans le logiciel, qui doivent ĂȘtre identifiĂ©es avant que les utilisateurs du programme ne les trouvent.
Pourquoi des tests logiciels sont-ils nécessaires?
- Le processus de test garantit que le logiciel fonctionnera selon les besoins.
- Cela réduit les cycles de codage en identifiant les problÚmes au début de la phase de développement. La détection des problÚmes plus tÎt dans la phase de développement garantit une utilisation correcte des ressources et évite les augmentations de coûts.
- , .
- , , , .
- 1 â (Testing shows presence of defects). , , , . , , .
- 2 â (Exhaustive testing is impossible). , . , .
- 3 â (Early testing). , , .
- 4 â (Defects clustering). â . . , .
- 5 â (Pesticide paradox). , . « », , , , , .
- 6 â (Testing is concept depending). - . , , , , .
- Principe 7 - IdĂ©e fausse sur l'absence d'erreurs (mettre fin Ă l'absence-d'erreurs Ă l'erreur) . L'absence de dĂ©fauts constatĂ©s lors des tests ne signifie pas toujours que le produit est prĂȘt Ă ĂȘtre commercialisĂ©. Le systĂšme doit ĂȘtre convivial et rĂ©pondre aux attentes et aux besoins de l'utilisateur.
Assurance de la qualité (AQ) et contrÎle de la qualité (CQ) - ces termes sont similaires aux termes interchangeables, mais il existe toujours une différence entre l'assurance de la qualité et le contrÎle de la qualité, bien qu'en pratique les processus présentent certaines similitudes.
QC (Quality Control) - ContrÎle de la qualité du produit - analyse des résultats des tests et de la qualité des nouvelles versions du produit lancé.
Les tùches de contrÎle de la qualité comprennent:
- vérifier l'état de préparation du logiciel pour la publication;
- vérification du respect des exigences et de la qualité de ce projet.
QA (Quality Assurance) - Assurance qualitĂ© des produits - explorer les opportunitĂ©s de changer et amĂ©liorer le processus de dĂ©veloppement, amĂ©liorer la communication au sein de l'Ă©quipe, oĂč les tests ne sont que l'un des aspects de l'assurance qualitĂ©.
Les objectifs d'assurance qualité comprennent:
- vérification des caractéristiques techniques et des exigences logicielles;
- l'évaluation des risques;
- planifier des tùches pour améliorer la qualité des produits;
- préparation de la documentation, de l'environnement de test et des données;
- essai;
- l'analyse des résultats des tests, ainsi que la rédaction de rapports et autres documents.
La vérification et la validation sont deux concepts étroitement liés aux processus de test et d'assurance qualité. Malheureusement, ils sont souvent confus, bien que les différences entre eux soient assez importantes.
La vérification est le processus d'évaluation d'un systÚme pour voir si les résultats de la phase de développement en cours remplissent les conditions qui ont été formulées au début.
La validation est la détermination de la conformité du logiciel développé avec les attentes et les besoins de l'utilisateur, ses exigences pour le systÚme.
: 310, , «», . , , «». , . , , , . «» â , «» â . , .
La documentation utilisĂ©e sur les projets de dĂ©veloppement de logiciels peut ĂȘtre divisĂ©e en deux groupes:
- Documentation du projet - comprend tout ce qui concerne le projet dans son ensemble.
- La documentation produit fait partie de la documentation de conception, allouée séparément, qui se rapporte directement à l'application ou au systÚme développé.
Ătapes de test:
- L'analyse du produit
- Travailler avec les exigences
- Développer une stratégie de test et planifier des procédures de contrÎle qualité
- Création de la documentation de test
- Test de prototype
- Test de base
- Stabilisation
- Exploitation
Ătapes de dĂ©veloppement logiciel - les Ă©tapes que les Ă©quipes de dĂ©veloppement logiciel traversent avant que le programme ne devienne disponible pour un large Ă©ventail d'utilisateurs.
Le produit logiciel passe par les étapes suivantes:
- analyse des exigences du projet;
- conception;
- la mise en oeuvre;
- tests de produits;
- mise en Ćuvre et soutien.
Conditions
Les exigences sont une spĂ©cification (description) de ce qui doit ĂȘtre mis en Ćuvre.
Les exigences dĂ©crivent ce qui doit ĂȘtre mis en Ćuvre sans dĂ©tailler le cĂŽtĂ© technique de la solution.
Exigences relatives aux exigences:
- Exactitude - chaque exigence doit décrire avec précision la fonctionnalité souhaitée.
- VĂ©rifiabilitĂ© - l'exigence doit ĂȘtre formulĂ©e de telle maniĂšre qu'il existe des moyens de vĂ©rifier sans ambiguĂŻtĂ© si elle est remplie ou non.
- Exhaustivité - chaque exigence doit contenir toutes les informations nécessaires dont le développeur a besoin pour implémenter la fonctionnalité.
- Sans ambiguïté - l'exigence est décrite sans abréviations non évidentes et formulations vagues et ne permet qu'une interprétation sans ambiguïté de ce qui est écrit.
- â .
- â ( ). .
- â .
- â .
- â , .
Défaut (bug) - écart du résultat réel par rapport à celui attendu.
Un rapport de bogue est un document décrivant la situation qui a conduit à la découverte d'un défaut, en indiquant les raisons et le résultat attendu.
Attributs du rapport de défauts:
- Identifiant unique (ID) - attribué automatiquement par le systÚme.
- Sujet (brĂšve description, rĂ©sumĂ©) - une essence briĂšvement formulĂ©e du dĂ©faut selon la rĂšgle «Quoi? OĂč? Lorsque?"
- Description détaillée (Description) - une description plus large de l'essence du défaut (spécifiée facultativement).
... - Ătapes Ă reproduire - une description sĂ©quentielle des actions qui ont conduit Ă l'identification du dĂ©faut. Il est nĂ©cessaire de dĂ©crire avec le plus de dĂ©tails possible, en indiquant les valeurs d'entrĂ©e spĂ©cifiques.
- (Actual result) â , , .
- (Expected result) â , , .
- (Attachments) â , -.
- (, Severity) â .
- (, Priority) â .
- (Status) â . - .
- (environment) â , .
Severity vs Priority
La gravité indique le degré de dommage causé au projet par l'existence d'un défaut. La gravité est exposée par le testeur.
Graduation de la gravité des défauts:
- Le
test de blocage (S1 - Blocker) d'une partie importante de la fonctionnalitĂ© n'est pas du tout disponible. Erreur de blocage qui rend l'application inopĂ©rante, Ă la suite de quoi il devient impossible de continuer Ă travailler avec le systĂšme testĂ© ou ses fonctions clĂ©s. - (S2 â Critical)
, -, , , , - , workaround ( / ), . - (S3 â Major)
- /-, , workaround, - . visibility â , , , . - (S4 â Minor)
GUI, , . , . - Trivial (S5 - Trivial)
presque toujours des défauts dans l'interface graphique - fautes de frappe dans le texte, inadéquation de la police et de la teinte, etc., ou une erreur mal reproductible qui ne concerne pas la logique métier, un problÚme avec des bibliothÚques ou des services tiers, un problÚme qui n'a aucun effet sur la qualité globale du produit.
La prioritĂ© indique la rapiditĂ© avec laquelle le dĂ©faut doit ĂȘtre corrigĂ©. La prioritĂ© est dĂ©finie par le responsable, le chef d'Ă©quipe ou le client. Gradation de
priorité des défauts (priorité):
- P1 High L'
erreur doit ĂȘtre corrigĂ©e dĂšs que possible. sa prĂ©sence est essentielle au projet. - P2 Moyen L'
erreur doit ĂȘtre corrigĂ©e, sa prĂ©sence n'est pas critique, mais doit ĂȘtre rĂ©solue. - P3 (Low)
, .
:
- (epic) â , .
- (story) â (), 1 .
- (task) â , .
- - (sub-task) â / , .
- (bug) â , .
- (Development Env) â , , , Unit-. .
- (Test Env) â . . , , . .
- (Integration Env) â , . end-to-end , , . , . â , .
- (Preview, Preprod Env) â , : , - , . , «». end-to-end , / (User Acceptance Testing (UAT)), L3 L2 DryRun ( ). L3 .
- (Production Env) â , . L2 , , . L3.
- Pre-Alpha: . . . .
- Alpha: . â . - . . .
- Beta: . , .
- Release Candidate (RC) : Sur la base des commentaires du test bĂȘta, vous apportez des modifications au logiciel et souhaitez tester des corrections de bogues. Ă ce stade, vous ne voulez pas apporter de modifications drastiques aux fonctionnalitĂ©s, mais simplement rechercher des bogues. RC peut Ă©galement ĂȘtre rendu public.
- Libération: tout fonctionne, le logiciel est rendu public.
Les principaux types de tests logiciels
Un type de test est un ensemble d'activités visant à tester les caractéristiques spécifiées d'un systÚme ou de sa partie, en fonction d'objectifs spécifiques.
- Classification en exécutant du code pour l'exécution:
- â . , . «». â .
- â . , / . â , . , , .
- :
- â , , // .
- â , White Box Black Box . , .
- â , â , .
- :
- â - ( , subprograms, subroutines, ) . , .
- â , ( , ).
- â , , .
- â , - .
- :
- .
- .
-
- â , .
- â , .
- :
- (smoke test) â , , .
- (critical path) â , .
- (extended) â .
- :
- - â . - .
- - â . , .
- :
- (functional testing) â ( ).
- (non-functional testing) â , , , « ».
- (performance testing) â , , .
- (load testing) â , , .
- (scalability testing) â .
- (volume testing) â , .
- (stress testing) â , .
- (installation testing) â , , .
- (GUI/UI testing) â .
- (usability testing) â , .
- (localization testing) â (, ).
- (security testing) â , .
- (reliability testing) â .
- Test de régression - test de fonctionnalités précédemment testées aprÚs avoir apporté des modifications au code de l'application, pour s'assurer que ces modifications n'ont pas introduit d'erreurs dans des domaines qui n'ont pas été modifiés.
- Re-test / test de confirmation - test au cours duquel les scripts de test qui ont détecté des erreurs lors de la derniÚre exécution sont exécutés pour confirmer le succÚs de la correction de ces erreurs.
La conception des tests est l'étape des tests logiciels, au cours de laquelle les cas de test (cas de test) sont conçus et créés.
Techniques de conception de tests:
- (equivalence partitioning) â , , ( ) .
- (boundary value testing) â () .
- (pairwise testing) â , -.
- (State-Transition Testing) â .
- (Decision Table Testing) â , , .
- (Exploratory Testing) â , -: .
- (Domain Analysis Testing) â , .
- (Use Case Testing) â Use Case ( â ).
Le test en boĂźte blanche est une mĂ©thode de test logicielle qui suppose que la structure interne / le dispositif / la mise en Ćuvre du systĂšme sont connus du testeur.
Selon l'ISTQB, le test en boĂźte blanche est:
- un test basé sur une analyse de la structure interne d'un composant ou d'un systÚme;
- conception de test basée sur la technique de la boßte blanche - procédure d'écriture ou de sélection de cas de test basée sur l'analyse de la structure interne d'un systÚme ou d'un composant
Pourquoi White Box? Le programme testé pour le testeur est une boßte transparente dont il voit parfaitement le contenu.
Test de la boßte grise- méthode de test du logiciel, qui suppose une combinaison d'approches White Box et Black Box. Autrement dit, nous ne connaissons que partiellement la structure interne du programme.
Le test de la boßte noire - également connu sous le nom de test basé sur les spécifications ou test de comportement - est une technique de test qui repose uniquement sur les interfaces externes du systÚme testé.
Selon l'ISTQB, le test boĂźte noire est:
- le test, Ă la fois fonctionnel et non fonctionnel, qui n'implique pas la connaissance de la structure interne d'un composant ou d'un systĂšme;
- conception de test basée sur la technique de la boßte noire - une procédure d'écriture ou de sélection de cas de test basée sur une analyse de la spécification fonctionnelle ou non fonctionnelle d'un composant ou d'un systÚme sans connaßtre sa structure interne.
Documentation de test
Un plan de test est un document qui décrit l'ensemble de la portée des tests, de la description de l'installation, de la stratégie, du calendrier, des critÚres de début et de fin des tests, à l'équipement requis dans le processus d'exploitation, des connaissances spéciales, ainsi que l'évaluation des risques. avec des options pour leur résolution. ...
Le plan de test doit répondre aux questions suivantes:
- Que faut-il tester?
- Que vas-tu tester?
- Comment allez-vous tester?
- Quand allez-vous tester?
- CritÚres de démarrage du test.
- CritĂšres de terminaison des tests.
Les principaux points du plan de test:
La norme IEEE 829 énumÚre les points que le plan de test devrait comprendre:
a) identificateur du plan de test;
b) Introduction;
c) éléments de test;
d) Caractéristiques à tester;
e) Caractéristiques à ne pas tester;
f) approche;
g) CritÚres de réussite / échec de l'élément;
h) CritĂšres de suspension et exigences de reprise;
i) Tester les produits livrables;
j) TĂąches de test;
k) les besoins environnementaux;
l) Responsabilités;
m) les besoins en personnel et en formation;
n) Calendrier;
o) risques et imprévus;
p) Approbations.
Une liste de contrĂŽle est un document qui dĂ©crit ce qui doit ĂȘtre testĂ©. La liste de contrĂŽle peut ĂȘtre de niveaux de dĂ©tail complĂštement diffĂ©rents.
Le plus souvent, la liste de contrÎle ne contient que des actions, sans le résultat attendu. La liste de contrÎle est moins formalisée.
Un scénario de test est un artefact qui décrit un ensemble d'étapes, des conditions spécifiques et des paramÚtres nécessaires pour tester l'implémentation d'une fonction testée ou d'une partie de celle-ci.
Attributs du scénario de test:
- Conditions préalables - une liste d'actions qui amÚnent le systÚme à un état approprié pour effectuer une vérification de base. Ou une liste de conditions dont le respect indique que le systÚme est dans un état approprié pour effectuer le test principal.
- Ătapes - une liste d'actions qui transfĂšrent le systĂšme d'un Ă©tat Ă un autre, afin d'obtenir un rĂ©sultat, sur la base duquel il est possible de conclure que la mise en Ćuvre rĂ©pond aux exigences.
- Résultat attendu - ce qu'ils devraient obtenir en fait.
Résumé
Essayez de comprendre les définitions, pas de les mémoriser. Et si vous avez une question, vous pouvez toujours nous la poser sur la chaßne de télégramme @qa_chillout .