J'ai récemment été embauché pour un projet qui implique de travailler avec et autour de plusieurs systèmes "d'entreprise" tiers. En raison de ce que j'imagine que ce serait le coût astronomique et les efforts nécessaires pour construire une réplique suffisamment fidèle de l'environnement de production, la perspective d'avoir un véritable environnement de développement semble disparaître.
Ce n'est bien sûr pas idéal. Du côté positif, j'imagine qu'il doit y avoir des gens qui testent et déploient des logiciels en toute sécurité dans des environnements non reproductibles comme celui-ci, et je peux probablement suivre leurs traces.
Comment ceux qui gèrent efficacement ce genre de situations le font-ils?
testing
development-process
Jason Swett
la source
la source
Réponses:
Cela se produit tout le temps dans le monde réel. Je connais un gars qui écrit des applications qui contrôlent de gigantesques serres agricoles - ventilation, chauffage, contrôle de l'humidité, vous l'appelez. Il n'a pas de «serre d'essai», mais il a un programme de simulation fourni par la société qui construit les systèmes matériels réels. Si le code fonctionne correctement avec le simulateur, il est supposé fonctionner correctement avec l'équipement réel. En de rares occasions, le simulateur s'avère faux, mais c'est le problème de la société de matériel de serre à traiter, car il ne simule pas correctement.
la source
Ce sont des situations où la documentation de l'API, les documents de contrôle d'interface et les émulateurs sont primordiaux. Dans une entreprise pour laquelle je travaillais précédemment, cela s'est réellement produit, cela se produirait fréquemment au sein d'un projet au cours de certaines phases d'intégration où un segment était prêt, mais d'autres étaient en retard, une autre fonctionnalité était en cours d'élaboration ou pour une autre raison, ils ne pouvaient pas se déployer. la dernière version de leur segment à notre système de test. Donc, oui, nous avions en fait une réplique fidèle de notre environnement de production sur laquelle nous avons testé; cependant, dans la pratique, tous les segments n'étaient jamais prêts dans les délais, mais des interfaces avaient été convenues et verrouillées avant le démarrage du développement, et des émulateurs avaient été créés qui pouvaient pour la plupart imiter le comportement des autres segments.
Comme une autre réponse l'a indiqué, l'émulateur est ce qui permettra aux tests d'avoir lieu avant le déploiement. Un bon émulateur; cependant, dépend des interfaces et de la documentation bien définies.
la source
Je suis dans de telles situations tout le temps.
Vous n'avez sûrement pas besoin d'interagir avec l'ensemble de l'application, mais probablement quelques interfaces en quelque sorte. Assurez-vous d'avoir une documentation confirmée et détaillée des interfaces, puis configurez des simulations de ces interfaces uniquement pour vérifier que votre code ajouté / modifié fonctionne comme vous le souhaitiez.
Vous pouvez également faire un hybride. Essayez de reproduire les parties que vous pouvez faire facilement, puis "connectez" aux systèmes réels (si cela est possible dans votre situation). Je l'ai fait avec un certain succès - dans certains cas où ma logique et le logiciel serveur étaient exécutés localement, mais j'avais toujours des connexions avec le vrai système ERP pour vérifier les appels, etc. Pas idéal, mais les choses le sont rarement.
Étant donné que vous n'avez qu'un système de production avec lequel travailler - notez que vous ne pouvez pas compter uniquement le temps de développement économisé lors de la configuration d'une réplique, mais vous devez prendre en compte le risque commercial d'utiliser un code largement non testé avec des données commerciales en direct. Votre code SERA moins fiable que le code testé contre une réplique. Les systèmes peuvent-ils être en panne pendant un certain temps? Peuvent-ils être restaurés en cas de corruption de données? Combien ça coûte?
Une meilleure pratique dans les entreprises consiste à mettre en place une réplique (ou peut-être plus d'une) de la production au moment où l'environnement de production est configuré. À ce moment, le coût supplémentaire ne sera pas si énorme.
la source
Notre système fonctionne avec plusieurs grands systèmes externes. Nous combinons les approches suivantes lors de leur test si nous n'avons pas une configuration complète de bout en bout:
la source