paint-brush
Les points communs entre la localisation de bogues et la résolution de crimespar@grgr
637 lectures
637 lectures

Les points communs entre la localisation de bogues et la résolution de crimes

par Ivan Grigorev5m2022/10/13
Read on Terminal Reader

Trop long; Pour lire

L'ingénieur du manuel QA d'InDrive décrit le processus d'enquête sur un rapport de bogue. Semblable à une enquête criminelle, l'AQ est guidée par la connaissance du produit et la connaissance du produit. Les deux processus sont axés sur l'enquête sur les résultats de l'inconduite, ainsi que sur ses causes et ses effets. L'ingénieur QA applique des techniques de conception de test axées sur les valeurs limites, les classes d'équivalence et par paires. En revanche, les enquêteurs appliqueront des tactiques et des combinaisons qui leur permettront de planifier leurs prochaines étapes aussi efficacement que possible.
featured image - Les points communs entre la localisation de bogues et la résolution de crimes
Ivan Grigorev HackerNoon profile picture

Il me semble que ces deux domaines ont beaucoup en commun. Par exemple, les deux processus sont axés sur l'enquête sur les résultats de l'inconduite, ainsi que sur ses causes et ses effets, ainsi que sur les pratiques connexes de tenue de dossiers et de documentation.


Il y a un an, j'ai reçu une offre pour le poste d'ingénieur manuel QA chez inDriver. Mais avant cela, j'ai passé sept ans à enquêter sur des affaires criminelles dans diverses unités et agences d'application de la loi. Au cours de mon service, j'ai travaillé sur un large éventail d'infractions pénales, allant des crimes graves mettant en danger la vie et la santé d'une personne aux crimes économiques de nature interrégionale. Lors de mon dernier emploi, mon titre était : « Enquêteur principal de la Division d'enquête pour la lutte contre le crime organisé de la Direction des enquêtes du Ministère de l'intérieur de la République de Sakha (Yakoutie) ».


Maintenant, mon travail consiste à mettre en place des tests de régression, à écrire des tests automatiques d'interface utilisateur mobile et à prendre en charge de nombreuses autres choses conçues pour accélérer le processus de fourniture de nouvelles fonctionnalités aux utilisateurs sans aucune perte de qualité du produit.


Lancer une enquête

Tout comme une enquête criminelle commence par l'inspection de la scène du crime, le rapport de bogue commence par une description de l'environnement dans lequel le défaut a été trouvé. De cette manière, nous collectons des données solides et fiables. Ensuite, en utilisant ces données comme base et en appliquant une approche déductive, ainsi que nos connaissances sur l'environnement ou le produit, nous pouvons réduire le domaine d'investigation, commencer à planifier d'autres mouvements et développer nos hypothèses.

Un schéma de la scène du crime et une description de l'environnement dans un rapport de bug

Élaboration d'un plan d'action

Une fois que nous obtenons les données brutes, nous sommes confrontés à la diversité de l'information. Il est maintenant important d'établir un plan d'action. Le temps est notre ressource numéro un ici. Il ne serait guère judicieux de vérifier toutes les valeurs de -2 147 483 648 à 2 147 483 647 dans le champ de saisie du nom en vue de localiser le défaut. De même, l'enquêteur n'a pas la capacité d'interroger tous les habitants de la ville ou d'envoyer chaque ustensile ou article ménager pour un test de génétique moléculaire.


Pour résoudre ce problème, l'ingénieur QA applique des techniques de conception de test axées sur les valeurs limites, les classes d'équivalence et par paires. En revanche, les enquêteurs appliqueront des tactiques et des combinaisons qui leur permettront de planifier leurs prochaines étapes aussi efficacement que possible.

Un exemple de table des matières pour une liste de contrôle d'interrogatoire


Faire nos premières hypothèses

Supposons que nous recevions un rapport de meurtre indiquant que nous avons eu un plantage dans notre application. D'après mon expérience d'enquêteur, je sais que près de 90 % de tous les meurtres sont liés d'une manière ou d'une autre au mari, à la femme, à la famille, aux amis ou aux voisins de la victime. C'est la même histoire avec l'application… nous sommes guidés par la connaissance du produit : disons que nous sortons un renifleur, et vérifions les demandes sortantes et les réponses que nous obtenons. Jusqu'ici, rien d'intéressant : tous les membres de la famille ont des alibis, et la réponse du serveur contient « 200 ». Tout semble être en ordre ici.

De plus, nous savons qu'une personne saine d'esprit ne commettrait pas un meurtre sans raison. Sur cette base, nous pouvons réduire une liste illimitée de suspects à ceux avec qui la victime était associée financièrement ou avait des contacts professionnels ou autres. De même, dans l'application, nous pouvons identifier la version à partir de laquelle le défaut commence à se propager et développer nos hypothèses sur les changements dans le code qui auraient pu provoquer l'apparition du bogue.

Tirer les bûches

Ensuite, nous essayons d'établir tous les événements qui ont précédé le crime afin de traquer certaines preuves à charge :


  • Nous regardons des images de caméras vidéo.

  • Nous interrogeons les voisins pour savoir s'ils ont entendu des bruits de lutte ou vu des personnes suspectes.

  • Nous établissons avec qui la victime a parlé au téléphone peu de temps avant que le crime ne soit commis.


En cas de défaut, nous recueillons également des preuves :


  • Nous capturons les journaux dans Android Studio ou XCode.
  • Nous vérifions les journaux du serveur.


Dans le processus, nous découvrons qu'un homme NullPointerException est entré dans l'appartement peu de temps avant que le crime ne soit commis. Les voisins l'ont identifié comme un petit voyou local avec un casier judiciaire qui s'enivrait régulièrement et était craint par tous les locataires de l'immeuble.


Vérification des preuves sur les lieux du crime

Supposons qu'une fois la preuve à charge produite, l'homme avoue le crime. L'enquête ne s'arrête pas là. Il faut s'assurer que c'est bien lui qui a commis le crime et que son aveu de culpabilité est motivé par le remords plutôt que par la crainte de gâcher l'humeur de l'enquêteur.


À cette fin, les preuves sont vérifiées sur le site du crime, où l'auteur accusé est tenu de révéler tous les détails du crime et de raconter toute circonstance qui n'est connue d'aucune partie qui n'est pas impliquée dans la commission du crime. la criminalité. Ainsi, en identifiant un scénario stable pour la reproduction du défaut, nous avons obtenu la preuve concluante que nous avions trouvé la bonne partie que nous recherchions.

Enquête criminelle terminée = Rapport de bogue

Une fois toutes les circonstances du crime établies, il n'appartient pas à l'enquêteur de rectifier le vice. Il organise les preuves recueillies dans le dossier pénal, rédige un acte d'accusation et le soumet au tribunal. La décision sur la détermination de la peine, sur la façon de corriger le bogue ou sur la déclaration de ce bogue comme une fonctionnalité innocente est prise en dehors du processus de test.

Établir les raisons du crime

Afin d'éviter que des infractions similaires ne se reproduisent à l'avenir, l'enquêteur doit établir les circonstances qui ont contribué à la commission du crime examiné et prendre les mesures appropriées. Il ou elle doit établir, par exemple, la raison pour laquelle aucune mesure n'a été prise auparavant en réponse aux rapports sur la conduite de l'auteur, ou pourquoi les mesures prises contre lui n'ont pas réussi à prévenir le crime.


Il en va de même dans le cas des tests : lorsqu'un bug est détecté sur PROD, il ne serait pas inutile d'identifier les facteurs qui ont contribué à son apparition :


  • Couverture de test inadéquate.
  • Fusionner sans couverture de test.
  • Mauvaise formulation du problème.
  • Exigences mal définies.
  • Cas de coin non vérifiés par un spécialiste de l'assurance qualité.
  • Un temps insuffisant alloué aux fins de test et de développement.
  • Faible qualification professionnelle des membres de l'équipe de développement.
  • Exigences changeant fréquemment.

Conclusion

Évidemment, les métiers d'un enquêteur et d'un testeur ne sont pas les mêmes. Malgré certaines caractéristiques communes, il existe encore beaucoup plus de différences que de similitudes entre eux. Mais si pour une raison quelconque vous vous trouvez confronté à une envie de changer radicalement de trajectoire professionnelle, vous pouvez trouver des cours adaptés chez notre partenaire, et c'est possible. Même dans un domaine complètement différent, vous pouvez trouver des activités qui nécessitent un état d'esprit similaire — et cela facilitera un peu l'atteinte de l'objectif que vous vous êtes fixé.


Également publié ici