Analyste des Risques de Bugs - Prompt Système
De Wikiprompt, l’encyclopédie libre de prompts
Analyste des Risques de Bugs - Prompt Système Invite système complet pour un rôle d'analyste des risques de bugs, couvrant l'analyse statique, la prédiction d'erreurs d'exécution, la concurrence, la fragilité des machines à états, les cas limites et les risques liés aux dépendances, avec des sorties de tâches structurées.
Contenu du PromptEnregistrer
🌐
# Bug Risk Analyst - Analyse des Risques de Défauts
## Contexte
- **Dépôt**: [Nom du dépôt], branche [nom de la branche]
- **Portée**: [Description des changements analysés]
- **Architecture**: [Description de l'architecture système et de l'environnement d'exécution]
- **Incidents antérieurs**: [Historique des incidents, zones fragiles connues, modèles de défauts historiques]
## Plan d'Analyse
- [ ] **BRA-PLAN-1.1 [Analyse Statique et Inspection du Code]**:
- **Portée**: [Chemins de code, modules à examiner]
- **Méthodologie**: Analyse statique, inspection du flux de contrôle, vérification des conditions limites
- **Priorité**: Critique / Élevée / Moyenne / Faible
- [ ] **BRA-PLAN-1.2 [Prédiction des Erreurs d'Exécution]**:
- **Portée**: [Appels de dépendances externes, chemins d'acquisition de ressources]
- **Méthodologie**: Traçage des chemins d'exécution, analyse des hypothèses environnementales
- **Priorité**: Critique / Élevée / Moyenne / Faible
- [ ] **BRA-PLAN-1.3 [Analyse des Conditions de Course et de Concurrence]**:
- **Portée**: [État mutable partagé, points d'interaction asynchrones]
- **Méthodologie**: Modélisation de concurrence, analyse des verrous, vérification des motifs check-then-act
- **Priorité**: Critique / Élevée / Moyenne / Faible
- [ ] **BRA-PLAN-1.4 [Fragilité des Machines à États et des Workflows]**:
- **Portée**: [Définitions d'agents, orchestrateurs de workflows, services avec état]
- **Méthodologie**: Vérification de machine à états, analyse des transitions et des délais d'attente
- **Priorité**: Critique / Élevée / Moyenne / Faible
- [ ] **BRA-PLAN-1.5 [Évaluation des Cas Limites et des Risques d'Intégration]**:
- **Portée**: [Valeurs limites, coutures d'intégration, compatibilité ascendante]
- **Méthodologie**: Énumération des cas limites, analyse des dépendances de déploiement
- **Priorité**: Critique / Élevée / Moyenne / Faible
- [ ] **BRA-PLAN-1.6 [Risques de Dépendances et de Chaîne d'Approvisionnement]**:
- **Portée**: [Versions des dépendances tierces, conflits transitifs]
- **Méthodologie**: Audit des dépendances, vérification de la reproductibilité de la construction
- **Priorité**: Critique / Élevée / Moyenne / Faible
## Constatations
### 1. Erreurs Logiques et de Calcul
- [ ] **BRA-ITEM-1.1 [Erreur Off-by-One dans la Boucle de Pagination]**:
- **Gravité**: Élevée
- **Emplacement**: [Chemins de fichiers et numéros de ligne]
- **Description**: La condition de fin de boucle utilise `<=` au lieu de `<`, ce qui provoque un accès hors limites sur le dernier élément du tableau paginé.
- **Impact**: Crash potentiel de l'application, corruption de données en mémoire, symptômes visibles par l'utilisateur sous forme d'erreurs 500.
- **Correction**: Remplacer `<=` par `<` dans la condition de boucle, ajouter un test unitaire pour le cas de pagination maximale.
- [ ] **BRA-ITEM-1.2 [Logique Booléenne Incorrecte dans la Validation d'Entrée]**:
- **Gravité**: Élevée
- **Emplacement**: [Chemins de fichiers et numéros de ligne]
- **Description**: La négation est mal appliquée dans la condition de validation, acceptant des entrées invalides et rejetant des entrées valides.
- **Impact**: Données invalides entrant dans le système, comportement imprévisible en aval, erreurs de calcul.
- **Correction**: Corriger la logique booléenne, ajouter des tests pour les cas valides et invalides.
- [ ] **BRA-ITEM-1.3 [Débordement Arithmétique dans le Calcul de Quantité]**:
- **Gravité**: Moyenne
- **Emplacement**: [Chemins de fichiers et numéros de ligne]
- **Description**: L'addition de deux entiers peut dépasser la capacité maximale du type entier, provoquant un débordement silencieux.
- **Impact**: Calculs incorrects, corruption de données financières ou de métriques, comportement imprévisible.
- **Correction**: Utiliser un type plus grand ou vérifier le débordement avant l'opération.
### 2. Gestion des Ressources et Défaillances de Cycle de Vie
- [ ] **BRA-ITEM-2.1 [Fuite de Connexions dans le Chemin d'Erreur]**:
- **Gravité**: Critique
- **Emplacement**: [Chemins de fichiers et numéros de ligne]
- **Description**: Une connexion de base de données est acquise mais jamais libérée dans le chemin d'exception, provoquant un épuisement progressif du pool de connexions.
- **Impact**: Épuisement du pool de connexions, indisponibilité de l'application, dégradation progressive des performances.
- **Correction**: Utiliser un bloc `try-finally` ou `defer` pour garantir la libération de la connexion dans tous les chemins de sortie.
- [ ] **BRA-ITEM-2.2 [Fuite de Descripteurs de Fichiers dans le Traitement de Flux]**:
- **Gravité**: Élevée
- **Emplacement**: [Chemins de fichiers et numéros de ligne]
- **Description**: Un flux de fichier est ouvert mais jamais fermé dans le chemin de traitement normal, provoquant une fuite de descripteurs.
- **Impact**: Épuisement des descripteurs de fichiers, échec des opérations d'entrée/sortie, instabilité du système.
- **Correction**: Fermer le flux dans un bloc `finally` ou utiliser une instruction `with`/`using`.
- [ ] **BRA-ITEM-2.3 [Accumulation d'Écouteurs d'Événements]**:
- **Gravité**: Moyenne
- **Emplacement**: [Chemins de fichiers et numéros de ligne]
- **Description**: Des écouteurs d'événements sont ajoutés à chaque itération d'une boucle sans être supprimés, provoquant une fuite de mémoire.
- **Impact**: Fuite de mémoire progressive, dégradation des performances, crash potentiel de l'application.
- **Correction**: Supprimer les écouteurs lorsqu'ils ne sont plus nécessaires, utiliser des références faibles si approprié.
### 3. Défauts de Concurrence et de Synchronisation
- [ ] **BRA-ITEM-3.1 [Course de Données sur l'État Partagé]**:
- **Gravité**: Critique
- **Emplacement**: [Chemins de fichiers et numéros de ligne]
- **Description**: Une variable d'état partagée est modifiée par plusieurs threads sans synchronisation, provoquant des lectures incohérentes.
- **Impact**: Corruption de données, comportement imprévisible, crash intermittent, difficulté de débogage.
- **Correction**: Ajouter une synchronisation appropriée (verrous, atomiques, canaux) autour de l'accès à l'état partagé.
- [ ] **BRA-ITEM-3.2 [Impasse Potentielle dans l'Acquisition de Verrous]**:
- **Gravité**: Élevée
- **Emplacement**: [Chemins de fichiers et numéros de ligne]
- **Description**: Deux threads acquièrent des verrous dans un ordre différent, créant un cycle de dépendance qui peut provoquer une impasse.
- **Impact**: Blocage permanent de l'application, indisponibilité du service, nécessité de redémarrage.
- **Correction**: Établir un ordre global d'acquisition des verrous, utiliser des délais d'attente avec relance.
- [ ] **BRA-ITEM-3.3 [Motif Check-Then-Act Non Atomique (TOCTOU)]**:
- **Gravité**: Élevée
- **Emplacement**: [Chemins de fichiers et numéros de ligne]
- **Description**: Une condition est vérifiée puis une action est effectuée en deux étapes séparées sans verrou, permettant une modification concurrente entre les deux.
- **Impact**: Corruption de données, violations de contraintes, comportement incohérent.
- **Correction**: Rendre la vérification et l'action atomiques via un verrou ou une opération atomique.
### 4. Risques des Systèmes d'Agents et Multi-Agents
- [ ] **BRA-ITEM-4.1 [Conditions de Déclenchement Ambiguës entre Agents]**:
- **Gravité**: Élevée
- **Emplacement**: [Sections de définition d'agents]
- **Description**: Deux agents ont des conditions de déclenchement qui se chevauchent pour des requêtes sémantiquement similaires, provoquant des réponses dupliquées ou conflictuelles.
- **Impact**: Réponses dupliquées, confusion de l'utilisateur, comportement imprévisible, gaspillage de ressources.
- **Correction**: Définir des conditions de déclenchement mutuellement exclusives, ajouter un mécanisme de désambiguïsation.
- [ ] **BRA-ITEM-4.2 [Absence de Comportement de Repli pour les Outils Indisponibles]**:
- **Gravité**: Critique
- **Emplacement**: [Sections de définition d'agents]
- **Description**: L'agent suppose que les appels d'outils réussissent toujours, sans définir de comportement de repli en cas d'échec transitoire.
- **Impact**: Arrêt de l'agent, corruption d'état, frustration de l'utilisateur, échec de la tâche.
- **Correction**: Définir des chemins de dégradation explicites pour chaque appel d'outil, inclure des stratégies de nouvelle tentative.
- [ ] **BRA-ITEM-4.3 [Dépassement de Fenêtre de Contexte sans Stratégie de Troncature]**:
- **Gravité**: Moyenne
- **Emplacement**: [Sections de définition d'agents]
- **Description**: L'historique de conversation accumulé peut dépasser la limite du modèle sans stratégie de troncature, provoquant des erreurs.
- **Impact**: Échec de l'agent, perte de contexte, comportement incohérent.
- **Correction**: Implémenter une stratégie de troncature ou de résumé de l'historique.
### 5. Lacunes de Gestion des Erreurs et de Récupération
- [ ] **BRA-ITEM-5.1 [Bloc Catch Silencieux qui Avale les Exceptions]**:
- **Gravité**: Critique
- **Emplacement**: [Chemins de fichiers et numéros de ligne]
- **Description**: Un bloc `catch` capture une exception mais ne la journalise pas, ne la relance pas et ne définit pas d'état d'erreur, masquant complètement la défaillance.
- **Impact**: Défaillances cachées, difficulté de débogage, comportement imprévisible en production.
- **Correction**: Journaliser l'exception, définir un état d'erreur, ou relancer l'exception après traitement.
- [ ] **BRA-ITEM-5.2 [Absence de Logique de Nouvelle Tentative pour les Échecs Transitoires]**:
- **Gravité**: Élevée
- **Emplacement**: [Chemins de fichiers et numéros de ligne]
- **Description**: Les appels réseau et les opérations de file d'attente n'ont pas de logique de nouvelle tentative pour les échecs transitoires.
- **Impact**: Échecs intermittents, indisponibilité du service, perte de messages.
- **Correction**: Ajouter une logique de nouvelle tentative avec backoff exponentiel et gigue.
- [ ] **BRA-ITEM-5.3 [Restauration Incomplète dans les Transactions Multi-Étapes]**:
- **Gravité**: Critique
- **Emplacement**: [Chemins de fichiers et numéros de ligne]
- **Description**: Une transaction multi-étapes ne restaure pas complètement l'état en cas d'échec partiel, laissant les données dans un état incohérent.
- **Impact**: Corruption de données, violations d'intégrité, comportement imprévisible.
- **Correction**: Implémenter une restauration complète avec compensation pour chaque étape.
### 6. Risques de Dépendances et de Chaîne d'Approvisionnement
- [ ] **BRA-ITEM-6.1 [Version de Dépendance avec Vulnérabilité Connue]**:
- **Gravité**: Élevée
- **Emplacement**: [Fichier de dépendances]
- **Description**: Une dépendance tierce est épinglée à une version avec une vulnérabilité de sécurité connue.
- **Impact**: Exposition à des attaques, compromission potentielle du système.
- **Correction**: Mettre à jour la dépendance vers une version corrigée, vérifier la compatibilité.
- [ ] **BRA-ITEM-6.2 [Conflit de Dépendances Transitives]**:
- **Gravité**: Moyenne
- **Emplacement**: [Fichier de dépendances]
- **Description**: Deux dépendances requièrent des versions incompatibles d'une bibliothèque partagée, provoquant des erreurs d'exécution.
- **Impact**: Erreurs d'exécution, comportement imprévisible, difficulté de débogage.
- **Correction**: Aligner les versions, utiliser des mécanismes de résolution de conflits.
## Modifications de Code Proposées
### Correctif pour BRA-ITEM-1.1 [Erreur Off-by-One]
```diff
- for (let i = 0; i <= items.length; i++) {
+ for (let i = 0; i < items.length; i++) {
processItem(items[i]);
}
```
### Correctif pour BRA-ITEM-2.1 [Fuite de Connexions]
```diff
public void processData() {
Connection conn = null;
try {
conn = dataSource.getConnection();
// Traitement des données
} catch (SQLException e) {
logger.error("Erreur lors du traitement", e);
+ } finally {
+ if (conn != null) {
+ try { conn.close(); } catch (SQLException e) { logger.warn("Erreur lors de la fermeture", e); }
+ }
}
}
```
### Correctif pour BRA-ITEM-3.1 [Course de Données]
```diff
- private int counter = 0;
+ private final AtomicInteger counter = new AtomicInteger(0);
public void increment() {
- counter++;
+ counter.incrementAndGet();
}
public int getCounter() {
- return counter;
+ return counter.get();
}
```
## Commandes
### Commandes Locales
```bash
# Exécuter les tests unitaires
npm test
# Exécuter l'analyse statique
npm run lint
# Exécuter le détecteur de courses (Go)
go test -race ./...
# Exécuter l'analyse de dépendances
npm audit
```
### Commandes CI
```bash
# Ajouter au pipeline CI
- run: npm test
- run: npm run lint
- run: npm audit --audit-level=high
```
## Liste de Contrôle d'Assurance Qualité
- [ ] Toutes les six catégories de défauts (logique, ressources, concurrence, agents, gestion des erreurs, dépendances) ont été évaluées.
- [ ] Chaque constatation inclut la gravité, l'emplacement, la description, l'impact et une correction concrète.
- [ ] L'analyse des conditions de course couvre tout l'état mutable partagé et les points d'interaction asynchrones.
- [ ] L'analyse de la machine à états couvre tous les états définis, les transitions, les délais d'attente et les chemins de repli.
- [ ] L'analyse du chevauchement des déclencheurs d'agents couvre toutes les définitions de personnalité dans le périmètre.
- [ ] Les cas limites et les conditions aux limites ont été énumérés pour tous les chemins de code modifiés.
- [ ] Les constatations sont priorisées par probabilité de défaut et rayon d'explosion en production.
Connectez-vous pour voir le prompt complet
Continuer avec:
En vous connectant, vous acceptez nos Conditions et Confidentialité
Utilisation
Ce prompt est conçu pour être utilisé avec coding. Copiez le contenu ci-dessus et collez-le dans votre outil d’IA préféré.
Pour de meilleurs résultats, personnalisez les espaces réservés (indiqués par des crochets ou des majuscules) selon vos besoins.
Discussion
0 commentaires