Nous aimerions utiliser Modèle de branche GIT de Driessen mais nous avons aussi un côté Qa. Je pense que je comprends comment ce flux de git fonctionne, mais je ne suis toujours pas sûr de tester. Par exemple, j'ai cinq nouvelles fonctionnalités, chacune d'entre elles est dans ma propre branche et je souhaite donner ces fonctionnalités à tester. Maintenant je suis confus sur où les fusionner? Faire développer une branche? Si oui, ce qui se passe lorsque Qa refuse que deux et j'ai déjà fusionné les cinq caractéristiques? Je voudrais continuer à séparer les traits dans mes propres branches, mais j'aimerais utiliser une requête de traction pour voir les commentaires diffs et de type, mais à nouveau, alors il y a un problème dans lequel la branche de fusionner?
Dans un autre point, selon le diagramme, toutes les nouvelles fonctionnalités (c'est-à-dire 5) devraient être fusionnées dans Développement de la branche. De développer une succursale à la branche de sortie, puis de la branche de sortie au Maître (je m'en fiche des correctifs en ce moment - ils sont assez clairs). Mais où est un espace pour QA et option, ils refuseront une partie de la fonctionnalité? Qu'est-ce que j'ai alors besoin de changer dans le diagramme? Je m'excuse pour l'anglais, je fais ce que je peux.
Quel modèle de ramification GIT que vous devriez choisir dépend entièrement du processus de développement que vous souhaitez utiliser. Le "flux de git" populaire que vous avez mentionné concerne des produits comportant des communiqués clairs et des caractéristiques ambitieuses développées de manière indépendante. La branche de développement représente ces fonctionnalités qui devraient faire partie de la prochaine version.
Cela ouvre deux opportunités dans lesquelles les QA peuvent être effectuées: QA peut être effectuée soit axée sur la libération, soit axée sur la fonctionnalité.
Dans un processus d'assurance qualité axé sur la libération, une branche de sortie est lancée et des critiques d'assurance qualité qui l'indiquent. Si la QA trouve des problèmes, vous pouvez les corriger sur la branche de version qui est ensuite fusionnée dans la branche Développement. Cela suppose qu'il n'y aura pas de problèmes énormes qui entraîneraient une fonctionnalité d'être rejetée complètement, vous avez donc besoin de tests bien avant.
Un processus d'assurance qualité axé sur la libération peut très bien fonctionner avec des versions semi-fréquentes mais régulières, par exemple une version par mois. Les Devs passent un mois à préparer la prochaine version. Alors QA a un mois en revue la libération. Pendant ce temps, les problèmes trouvés sont fixes. À la fin du mois, la version peut être publiée et Qa reçoit la prochaine version des développeurs. Cela évite le temps d'inactivité pour les deux QA et les développeurs, au coût d'allongement du temps de cycle entre la création d'une caractéristique et sa libération.
Dans un processus d'assurance qualité axé sur les fonctionnalités, la fonctionnalité est examinée lorsqu'elle est fusionnée dans la Développement de la branche. Donc, l'état de la Développement de la branche est toujours QA'D et publié. Cela étend le risque sur une fois plus longue et permet de rejeter une fonctionnalité non définie avant qu'elle ne soit incluse dans une version, sans retarder également les fonctionnalités non liées.
L'inconvénient est que vous pouvez au maximum une fonctionnalité à la fois, vous risquez de manquer d'interférences entre différentes fonctionnalités. Cela pourrait être un goulot d'étranglement d'un processus et décourage les petites fonctionnalités facilement examinées.
Certaines activités d'assurance qualité peuvent également être effectuées avant que tout ne soit fusionné. Par exemple. Si une fonctionnalité implique des modifications d'interface utilisateur, les tests UX ciblés peuvent être effectués isolément pour cette fonction bien avant de pouvoir être libérée. Cela nécessite que les Devs puissent demander une assistance à l'assurance qualité lorsqu'ils pensent que c'est utile, sans avoir à naviguer dans une cassette rouge. Cela nécessite également que QA soit suffisamment flexible pour répondre à ces demandes.
Toutes ces stratégies peuvent et doivent être combinées. Plus vous arrivez à une libération, plus l'assurance qualité est importante, mais les commentaires antérieurs sont plus rentables, car les changements peuvent être déployés plus facilement.
Notez que l'automatisation et l'outillage peuvent avoir d'énormes avantages ici. Cela accélère et simplifie votre processus, ce qui peut avoir un effet exponentiel sur la productivité. Cela commence par une automatisation simple de construction et de déploiement de sorte que QA puisse facilement exécuter le logiciel de toute branche qu'ils souhaitent examiner. L'automatisation des tests peut libérer QA pour effectuer des tâches de haut niveau plus précieuses, telles que la validation de la fonctionnalité, les essais de fumée, les tests exploratoires manuels et le développement de nouveaux scénarios de test. Ce n'est pas vraiment spécifique à tout processus de processus ou de ramification, mais l'outillage solide peut faciliter l'implication du QA plus tôt dans le processus de développement.