Systèmes distribués testant le monde perdu Tagide d’une valeur de 1 bitcoin

Il s’agit d’un jeu de diapositives qui donne un bon aperçu de la façon de tester les systèmes distribués, en particulier les applications de micro-services. Il présente tous les niveaux de test, de l’unité à l’autre essai. Bitcoin prix aujourd’hui en Inde Inutile de dire que mon tweet original était sur le point de bout en bout-techniques ish. Comme l’indique cette diapositive: «En raison de la difficulté inhérente à la rédaction d’essais en ce style, certaines équipes choisissent d’éviter complètement les tests de bout en bout, en faveur d’une surveillance approfondie de la production et de tests directs sur l’environnement de production. »OK, les choses ne se sont pas améliorées depuis 1980. Mais cela a mis en évidence des projets intéressants. ne savait pas lié à la spécification des cas tests, à savoir Concordion et Gauge.


Soigné!

En recherchant une copie de cet article, que je n’ai trouvée nulle part ailleurs, j’ai trouvé cet autre article pertinent également publié dans la file d’attente d’ACM. TL; DR: de bout en bout, c’est difficile, l’article donne quelques conseils. Je suis également tombé sur cet autre jeu de diapositives d’Ines Sombra. Message similaire: c’est difficile, pas grand chose là-bas.

Shadow semble être un simulateur de réseau qui prend des plugins se connectant à divers distribué des applications telles que Tor et Bitcoin. Il semble que le code réel de ces applications soit exécuté en tant que boîtes noires, ce qui est très pratique. Voici le papier à ce sujet. Il s’agit de tester de bout en bout le comportement des nœuds d’application en cas de défaillance du réseau.

Le dépôt Github a un lien vers le papier SIGMOD sur Molly. Molly implémente une “injection de faute pilotée par lignage” qui “utilise la lignée de données pour raisonner à l’envers (des effets aux causes) sur le point de savoir si un résultat correct donné aurait pu échouer à cause d’une combinaison de fautes.” C’est donc la faute bien connue. technique de test d’injection adaptée à des idées spécifiques issues du monde de la base de données et liées au lignage des données. logiciel d’exploitation Bitcoin pour Windows Cela semble un peu trop database-y, et n’est généralement pas applicable. En réalité,

Je dois dire que, contrairement à Adrian, je suis toujours aussi sceptique quant à la vérification initiale de programmes complexes, solution miracle pour les logiciels sans bogues, beaucoup moins complexes distribués. systèmes. Un travail intéressant dans la vérification, cependant, mais certainement pas tester ce que je regarde.

Et c’est tout pour la lecture de matériel. comment transférer bitcoins encaisser pas beaucoup, malheureusement. J’espérais que les conférences d’essais présenteraient des articles, mais ils semblent être complètement silencieux à la radio sur les essais de systèmes distribués. (S’il vous plaît, prouvez-moi que j’ai tort!) Cadres intéressants – Sans papiers

J’avais déjà entendu parler de Jepsen et j’avais même vu le discours de @ Aphyr à StrangeLoop 2013. J’avais tout oublié, alors oui, super bien! Comme Shadow, mentionné ci-dessus, Jepsen est un système complet de tests. Je ne sais pas à quel point c’est souple, je n’ai pas trouvé de livre blanc à ce sujet, et tous les [grands] discours d’Aphyr parlent de trouver toutes sortes de bugs dans toutes sortes de bases de données populaires sans expliquer très bien son outil. . Peut-être semblable à Shadow, mais je ne peux pas vraiment le dire. Il faut creuser davantage pour voir s’il peut être utilisé par des mortels autres qu’Aphyr, pour tester des scénarios d’utilisation concrets d’applications sans base de données, et dans le cadre d’objectifs opérationnels autres que les effets de pannes de réseau.

Il y a quelques mois, nous fondant sur notre propre expérience de développement et de test d’OpenSimulator, mes étudiants et moi-même avons beaucoup approfondi ce sujet dans la littérature de recherche et sommes sortis les mains vides. Nous avons trouvé quelques excellentes citations, dont le titre d’un article rédigé en 1980, intitulé «Le monde perdu du débogage et des tests de logiciels». Oui, il y a 1980 – il y a 36 ans! Beaucoup d’entre vous ne sont même pas nés, et les gens avaient perdu J’espère déjà! Bien que les tests unitaires soient une pratique courante partout dans le monde, les choses ne semblent pas aller mieux pour tester les systèmes distribués de bout en bout. Pourquoi? Ici certains possibilités:

• Il y a trop d’éléments dans le concept de test des systèmes distribués, et c’est assez clair dans ce qui est entré dans mon flux Twitter: éviter les anciens bogues à mesure que le code évolue, rechercher des bogues auparavant inconnus, piquer le système de production pour son fonctionnement, surveiller le système de production, les tests de résistance, la détection du comportement de tolérance aux pannes, la vérification des propriétés d’activité… Peut-être devrions-nous décomposer toutes ces choses dans une sorte de taxonomie (connaître un pointeur apprécié) et les résoudre séparément.

Quoi qu’il en soit, nous avons quelques idées sur les problèmes de développement concrets rencontrés (et que nous continuons de rencontrer) avec OpenSimulator. La plupart d’entre elles sont liées au fait que les anciens bogues ne reviennent pas à mesure que le code évolue, par exemple dans le cadre des tests de régression de bout en bout. Comme c’est généralement le cas dans les systèmes distribués, les pires bogues apparaissent généralement de manière non déterministe et ne sont pas fonctionnels, mais de nature opérationnelle – par ex. les performances chutent inexplicablement, les choses fonctionnent 8 fois sur 10, etc. Elles sont parfois faciles à trouver et à corriger, parfois elles sont difficiles. bitcoin en 2017 Nous les avons finalement résolus, ce n’est donc pas le problème. (Donnez-moi une description d’un bogue qui peut être reproduit de temps en temps, et il est probable que je puisse le corriger très rapidement) Le problème est que nous n’avons aucun moyen d’écrire un test de régression pour eux, il n’est donc pas rare de vieux bugs à apparaître un an plus tard, quand nous ne sommes pas attentifs. C’est le problème de génie logiciel que mes étudiants et moi-même essayons de résoudre. Mise à jour [2016-06-07]