Théorie fondamentale des tests

Les tests ne sont pas une science exacte. Il n'y a pas de dĂ©finitions claires et bien Ă©tablies qui peuvent ĂȘtre rassemblĂ©es dans un dictionnaire et apprises avant une entrevue. Chaque projet informatique est unique, ce qui gĂ©nĂšre une Ă©norme quantitĂ© d'informations diffĂ©rentes, souvent contradictoires. Comprendre les processus et les approches devient important dans les tests, comme dans toute profession. Il est important non seulement de connaĂźtre le nom de tel ou tel processus, le type de test, mais ce que c'est et pourquoi il est nĂ©cessaire sur le projet.









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.




Capture d'écran



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:



  1. Documentation du projet - comprend tout ce qui concerne le projet dans son ensemble.
  2. 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:



  1. L'analyse du produit
  2. Travailler avec les exigences
  3. Développer une stratégie de test et planifier des procédures de contrÎle qualité
  4. Création de la documentation de test
  5. Test de prototype
  6. Test de base
  7. Stabilisation
  8. 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:

  1. analyse des exigences du projet;
  2. conception;
  3. la mise en oeuvre;
  4. tests de produits;
  5. 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:

  1. Exactitude - chaque exigence doit décrire avec précision la fonctionnalité souhaitée.
  2. 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.
  3. Exhaustivité - chaque exigence doit contenir toutes les informations nécessaires dont le développeur a besoin pour implémenter la fonctionnalité.
  4. 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.
  5. — .
  6. — ( ). .
  7. — .
  8. — .
  9. — , .




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:

  1. Identifiant unique (ID) - attribué automatiquement par le systÚme.

  2. Sujet (brĂšve description, rĂ©sumĂ©) - une essence briĂšvement formulĂ©e du dĂ©faut selon la rĂšgle «Quoi? OĂč? Lorsque?"
  3. Description détaillée (Description) - une description plus large de l'essence du défaut (spécifiée facultativement).

    ...
  4. É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.

  5. (Actual result) — , , .
  6. (Expected result) — , , .

  7. (Attachments) — , -.
  8. (, Severity) — .
  9. (, Priority) — .
  10. (Status) — . - .
  11. (environment) – , .






Capture d'écran

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.



Capture d'écran



  1. Classification en exécutant du code pour l'exécution:

    • — . , . «». — .
    • — . , / . — , . , , .


  2. :

    • — , , // .
    • — , White Box Black Box . , .
    • — , – , .


  3. :

    • — - ( , subprograms, subroutines, ) . , .
    • — , ( , ).
    • — , , .
    • — , - .


  4. :

    • .
    • .




    • — , .
    • — , .


  5. :

    • (smoke test) — , , .
    • (critical path) — , .
    • (extended) — .


  6. :

    • - — . - .
    • - — . , .


  7. :

    • (functional testing) — ( ).
    • (non-functional testing) — , , , « ».

      1. (performance testing) — , , .
      2. (load testing) — , , .
      3. (scalability testing) — .
      4. (volume testing) — , .
      5. (stress testing) — , .
      6. (installation testing) — , , .
      7. (GUI/UI testing) — .
      8. (usability testing) — , .
      9. (localization testing) — (, ).
      10. (security testing) — , .
      11. (reliability testing) — .
      12. 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.
      13. 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:

  1. (equivalence partitioning) — , , ( ) .
  2. (boundary value testing) — () .
  3. (pairwise testing) — , -.
  4. (State-Transition Testing) — .
  5. (Decision Table Testing) — , , .
  6. (Exploratory Testing) — , -: .
  7. (Domain Analysis Testing) — , .
  8. (Use Case Testing) — Use Case ( — ).








Capture d'écran



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 .



All Articles