Rechercher des bugs comme mode de vie


Le développement d'analyseurs de code statique et la lutte pour la qualité des projets open source depuis plus de six ans ne pouvaient qu'affecter mon interaction avec les programmes après les heures. Malheureusement, je rencontre constamment divers bugs et, encore plus malheureusement, il est presque impossible d'influencer cela. J'ai décidé de rassembler quelques histoires sur des bogues intéressants et leur correction ou leur ignorance. Je vous présente un format alternatif pour un article sur la recherche d'erreurs dans les programmes qui remplissent généralement le blog PVS-Studio.

Présentation


Dans la vie de tous les jours, nous utilisons déjà plus souvent des sites Web et des applications mobiles que des applications informatiques. Il y a très peu de projets open source dans ce domaine. La plupart des projets sont des produits de grandes entreprises avec plusieurs lignes de support. Signaler un bogue via la première ligne d'assistance est une activité presque inutile. Le problème est particulièrement aigu avec les applications bancaires. Et les sites? Les propriétaires de sites n'ont souvent pas d'équipe de développement. Et si un service est fourni via le site, la communication avec les responsables de ces services est encore pire qu'avec la première ligne de support. Les histoires les plus intéressantes seront ci-dessous. J'espère qu'ils aideront les entreprises à prêter attention à la qualité de leurs produits logiciels.

Bugs sur les sites


Chaîne de télévision 2x2



Peut-être que 2x2 est la seule chaîne de télévision que je regarde. Je n’ai connecté aucune télévision et j’ai été très heureux lorsque la diffusion en direct est apparue sur le site. Avoir un téléviseur avec accès à Internet, c'était une solution idéale pour moi de regarder la chaîne de télévision en ligne. Mais en réalité, cela s'est avéré beaucoup plus compliqué.

En direct via le navigateur sur le téléviseur n'a pas fonctionné. Parce que signaler des bogues aux développeurs fait partie de ma carrière, j'ai rapidement trouvé des contacts sur le site officiel et essayé de signaler un problème. Pourquoi as-tu essayé? Pendant 2 mois, il n'a pas été possible de recevoir de réponses de deux adresses postales. Et le groupe VK n'a rien répondu de sensé (le marketeur, faisant la promotion du groupe sur les réseaux sociaux, n'était clairement pas à ma hauteur avec un site non fonctionnel).

Mais je ne désespérais pas. Le problème était clairement dans l'émission et j'ai pu le suivre. Elle venait des serveurs Rutube. Il a fallu environ un mois pour essayer de contacter leurs spécialistes. La communication la plus réussie a eu lieu avec l'administrateur du groupe Rutube à VK. On m'a donné les contacts de l'administrateur système. Son collègue a rapidement répondu à la lettre et nous avons accepté de nous connecter pour enregistrer les journaux. Il s'est avéré que le serveur n'était pas configuré pour un tel client connecté (TV avec Tizen). Il a fallu 2 heures pour résoudre le problème. Merci à Alexei Lebedev de Rutube et à l'administrateur du groupe de VK, qui ont été les seuls à avoir réagi de manière responsable à leur travail dans toute cette chaîne de «contacts».

Restaurant MaMa Mia



Sur le site MaMa Mia , vous ne pouvez pas payer une commande en ligne. Au moins, ça n'a pas marché pour moi. Et la raison, comme il s'est avéré plus tard, est la mauvaise qualité du code. Mais mettons-le dans l'ordre.

Lorsque le panier a été entièrement formé, le bouton "Passer une commande" n'a montré aucun signe de vie. Et puis dans l'e-mail, j'ai trouvé ceci:


Chaque clic sur le bouton "inactif" formait une nouvelle commande. Comme vous pouvez le voir, je ne me suis pas refusé le plaisir de tester à fond ce bug: D

Il n'y a pas de formulaire de rétroaction sur le site et tout autre contact à l'exception du téléphone. Il y a bien sûr des managers qui sont loin de tels problèmes. Avec le groupe VK de ce restaurant la même situation. Je n'ai pas pu avoir de contacts plus ou moins pertinents.

En fait, c'est un sérieux problème pour l'entreprise, lorsque certains défauts, notamment financiers (je voulais payer la commande, mais je n'ai pas pu), restent invisibles pour la direction. De plus, même nous-mêmes avons récemment réussi à nous retrouver dans une situation similaire lorsque le formulaire de demande de clé d'essai s'est cassé pendant cinq jours. Nous sommes vraiment désolés pour les utilisateurs perdus :( Et au restaurant, apparemment non.

N'ayant reçu aucun retour de communication avec les managers, j'ai ouvert la console du navigateur et j'ai commencé à chercher (au fait, je comprends à peine le développement web):

Oui, c'est une exception non capturée! Quelle beauté. C'est là qu'un analyseur statique pourrait aider.

À l'aide de quelques requêtes, le moteur de recherche a réussi à découvrir qu'il s'agit d'un compteur pour Yandex.Metrica. L'interprétation de la page s'arrête simplement après la défaillance de tout composant externe. Comme on dit, beaucoup de roubles ont été alloués au développement ... Alors pourquoi l'exception est-elle levée? Une extension de Kaspersky Protect a été installée dans mon navigateur. La désactivation de toutes sortes de balises et de compteurs, apparemment, est une protection contre le suivi, activée par défaut. C'était la cause du problème. J'ai ensuite commandé de la nourriture sur un autre site, plus avancé techniquement.

Malheureusement, ce problème est assez courant. Ce n'est qu'après cet incident que j'ai réalisé le comportement incompréhensible des autres sites que j'ai rencontrés. J'espère que les développeurs Web qui sont venus à cet article auront plus d'expérience.

LK Rostelecom




Probablement, chaque Russe a une histoire de communication «intéressante» avec les représentants de Rostelecom. Mais le mien portera sur un petit bug. À l'appui, ils ont répondu qu'ils ne le pensaient pas, mais les programmeurs comprendraient la blague.

Capture d'écran de mon compte personnel:

Quel est le «n» dans les initiales? C'est vrai, c'est NULL ! .. Parce que tout le monde n'a pas de deuxième prénom, vous ne pouvez pas le spécifier:

La base de données stocke une valeur NULL , les représentants de Rostelecom considèrent normal d'afficher cette valeur à l'écran. À mon avis, c'est complètement anormal. Peut-être que je pense juste en tant que programmeur C ++, et cette valeur me fait peur: D

Applications mobiles


Passagers des chemins de fer russes



Une erreur intéressante a été rencontrée dans l'application mobile des chemins de fer russes.

Écran depuis une application mobile:

J'ai lu les réponses aux questions et je n'ai rien compris. Les textes étaient complètement incohérents. Mais après une page, tout est devenu clair:

Les paragraphes de documentation ont été stockés dans un tableau et affichés dans l'ordre inverse . Le développeur a gâché quelque chose avec des compteurs de tri ou de boucle dans le code. Dans la dernière version de l'application, ce bogue est corrigé.

VTB-Online



C'était une merveilleuse banque avec une application pratique. Mais à l'été 2019, apparemment, le manager «efficace» est venu dans l'équipe et l'application a mal tourné. Le plus grand avantage pour moi était un support pratique et rapide. Mais à l'été 2019, les expériences ont commencé avec le bot dans le chat de support. Ce bot était très buggé. Pendant au moins 3 mois, il y a eu une désynchronisation difficile dans le chat d'assistance. Personne n'a répondu aux messages, le chat était vide et après avoir redémarré l'application, il s'est avéré que le chat était plein de messages de bots, mais ils n'étaient affichés qu'après un redémarrage. Mais alors la session était déjà fermée, et avec le message suivant le même bug a été répété. Par e-mail, le support VTB a toujours répondu rapidement, mais n'a rien fait en substance.

La dernière goutte pour moi était un autre bug dans le chat de support, qui n'a pas encore été corrigé:

L'application ne télécharge pas stupidement les captures d'écran du téléphone sur lequel l'application s'exécute. C'est un échec épique. J'ai refusé les cartes bancaires et j'ai réduit au minimum l'activité restante à la banque.

Sberbank Online



Probablement la banque la plus bancarisée de Russie. Le temps moyen pour corriger un bug confirmé au cours de mes nombreuses années de pratique est de 1 an .

Voici le cas le plus flagrant, à mon avis.

Lors de la transmission des relevés des compteurs pour le paiement du logement et des services communaux (ci-après ZhKU), une mauvaise surprise vous attend:

La question se pose immédiatement pourquoi mes données n'ont pas été acceptées, mais un coup d'œil à la capture d'écran suivante explique tout:

Je vais vous expliquer en plus: les lectures PU sont prises avec un point, et pour la saisie sur le clavier il n'y a qu'un symbole "virgule".

Ce bug a franchement interféré avec l'utilisation de l'application, et j'ai souvent contacté le support pour le corriger. Depuis la découverte, le bug a duré 6 mois (février-juin). Ensuite, dans la mise à jour de juillet, il a été corrigé en activant le clavier standard. Mais ce n'est pas la fin de l'histoire! Le mois suivant (août), dans la prochaine mise à jour de l'application, le clavier a été rendu sans le caractère souhaité! Je ne sais pas ce qui aurait pu arriver dans l'équipe de développement, que j'ai dû faire un tel retour en arrière des modifications, mais j'ai cessé d'utiliser la banque. C'était l'un des nombreux bugs, et ils ne sont pratiquement pas corrigés.

Lien avec la recherche d'erreurs dans le code


L'apparition des problèmes et erreurs décrits a certaines raisons. Ce sont des défauts dans le processus d'élaboration des programmes, ainsi que dans l'organisation du travail des employés dans leur ensemble. De l'écriture de code à la livraison de l'application à l'utilisateur, il y a plusieurs étapes.

Les problèmes identifiés sont avant tout l'approbation des services d'essais. Dans les grandes entreprises, il s'agit généralement de grandes équipes de test. Mais leur efficacité peut souffrir de divers facteurs.

Un des facteurs importants qui aggrave le travail des testeurs est les erreurs qui pourraient être corrigées même au stade de l'écriture du code. Le traitement des bogues trouvés prend du temps à quelques personnes. Mais certains d'entre eux pourraient ne pas atteindre les testeurs, ce qui, à son tour, leur a fait gagner du temps. Ils l'auraient dépensé pour des tests plus productifs et de plus haut niveau.

Ainsi, notre équipe de développeurs de l'analyseur de code PVS-Studio promeut la méthodologie de l'analyse statique. Il s'agit de la phase de développement logiciel qui fait face au transfert de l'application au service de test. D'après notre expérience, la plupart des erreurs sont des défauts dans la phase de développement. Et ils peuvent être corrigés à un stade précoce, ce qui permet d'économiser du temps et de l'argent.

Malheureusement, contrairement aux programmes open source, ici je n'ai aucun moyen de vérifier indépendamment le code pour les erreurs. Mais si le code est écrit en C, C ++, C # ou Java, alors il serait utile que ces commandes se rendent sur le site et exécutent l'analyseur sur votre code. Pour les programmes open source, cet outil apporte une très grande contribution .

Conclusion


Je n'arrêterai pas de remarquer des bugs dans le logiciel utilisé. Ce n'est probablement pas la pire chose qui aurait pu arriver. J'ai des amis qui travaillent dans le cinéma (animation). Ils remarquent donc des bugs lorsqu'ils regardent des dessins animés, ce qui n'est pas pratique. À mon avis, c'est encore pire. Au moins, les programmes peuvent être modifiés, contrairement aux images.

Comme vous l'avez remarqué, avec le support utilisateur, tout est complètement mauvais. De plus, cela est typique des grandes entreprises. Il leur est presque impossible de communiquer quelque chose et de partager leur expérience. J'ai obtenu un certain succès en assistant à des conférences de développeurs. De grandes entreprises y sont souvent présentes et certains problèmes peuvent vraiment être discutés et résolus.

Si vous aimez le nouveau format pour passer en revue les bogues et les histoires avec eux, alors je continuerai dans la même veine.

Source: https://habr.com/ru/post/fr483742/


All Articles