Je pense que vous devriez certainement écrire autant de tests que possible pour l'application. Ils vous aideront à apprendre la base de code et vous prépareront à la refactorisation éventuelle ou au nouveau développement.
Il existe quelques types de tests que vous pouvez écrire dans ce scénario, chacun d'eux a ses propres mérites. L'écriture de ces tests vous en apprendra beaucoup sur l'application que vous utilisez.
Tout d'abord, avant de commencer à écrire des tests d'exactitude, écrivez des tests qui capturent le comportement actuel , qu'il soit bon ou mauvais. Il y a fort à parier que vous allez découvrir des bogues dans des cas d'angle ou dans des parties du code qui n'ont pas été minutieusement testées en exécutant le programme. Ne vous inquiétez pas de ce que le code devrait faire, capturez simplement ce qu'il fait. Au fur et à mesure que vous progressez, ne vous inquiétez pas de lire le code ou de passer du temps à déterminer ce que devrait être la sortie. Exécutez simplement votre test et capturez cette sortie dans une assertion.
Cela vous donnera une base solide de compréhension du fonctionnement du code et de l'emplacement des principaux points douloureux ou des points faibles. Si vous découvrez des bogues, vous pouvez alors approcher les personnes ayant le pouvoir de décider si elles valent la peine d'être corrigées et de prendre ces décisions.
Ensuite, vous pouvez écrire quelques tests plus volumineux (dans la portée) qui couvrent des parties du code qui peuvent ne pas être facilement testables par unité, mais où il serait toujours important de tester les flux de travail autant que possible. Ces tests de flux de travail ou tests d' intégration , selon la façon dont vous les regardez, vous fourniront une bonne base pour refactoriser ces flux de travail afin de les rendre plus testables et de vous protéger lorsqu'une nouvelle fonctionnalité doit être ajoutée qui pourrait affecter un flux de travail existant.
Au fil du temps, vous allez créer une suite de tests qui sont là pour vous aider ou aider la personne suivante qui finira par hériter de l'application.