Je travaille dans une entreprise de taille moyenne (150 employés, environ 10 ingénieurs) et la plupart de mes projets consistent à interfacer avec des équipements de laboratoire (oscilloscopes, analyseurs de spectre optique, etc.) à des fins d'applications de test semi-automatisées. J'ai rencontré plusieurs scénarios différents où je ne suis pas en mesure de dépanner ou de tester efficacement le nouveau code car je n'ai plus ou jamais la configuration matérielle à ma disposition.
Exemple 1: une configuration dans laquelle 10 à 20 processus de «rodage» sont exécutés indépendamment à l'aide d'un capteur de type de paillasse - j'ai pu obtenir un tel capteur pour les tests et je pouvais parfois en voler une seconde pour simuler toutes les facettes de l'interface avec plusieurs appareils (recherche, connexion, streaming, etc.).
Finalement, un bug est apparu (et s'est finalement retrouvé dans le firmware et les pilotes du périphérique) qui était très difficile à reproduire avec précision avec une seule unité, mais a atteint des niveaux proches de "show stopper" lorsque 10-20 de ces périphériques étaient utilisés simultanément. Ceci n'est toujours pas résolu et est en cours.
Exemple 2: Un test nécessitant un analyseur de spectre optique coûteux comme composant central. L'appareil est assez ancien, hérité selon le fabricant qui a été acquis par une grande entreprise et essentiellement dissous, et sa seule documentation était un document de longue haleine (et non informatif) qui semble mal traduit. Au cours du développement initial, j'ai pu garder l'appareil à mon bureau, mais maintenant il est immobilisé, à la fois physiquement et dans les délais lors de ses tests de 24 semaines sur 7.
Lorsque des bogues apparaissent liés ou non à l'appareil, je dois souvent passer par la difficulté de tester le code externe à l'application et de l'adapter, ou d'écrire du code à l'aveugle et d'essayer de réduire le temps de test entre les exécutions, autant de la logique du programme nécessite que l'OSA et le reste du matériel de test soient en place.
Je suppose que ma question est de savoir comment dois-je aborder cela? Je pourrais potentiellement passer du temps à développer des simulateurs de périphériques, mais comprendre que dans l'estimation du développement le montera en ballon plus que la plupart ne l'apprécieraient probablement. Il peut ne pas reproduire tous les problèmes avec précision non plus, et il est assez rare de voir le même équipement utilisé deux fois ici. Je pourrais m'améliorer dans les tests unitaires ... etc ... Je pourrais aussi être bruyant sur le problème et faire comprendre aux autres que des retards temporaires seront nécessaires, pas beaucoup plus qu'un mal de tête pour la recherche et le développement mais généralement perçu comme une blague lorsqu'il est présenté à la fabrication.