agentsclimarketplace

Test strategy

Skill sharklandy/claude-code-starter-kit/skills/domains/test-strategy

Skills, subagents et templates /goal//loop//schedule prêts à l'emploi pour Claude Code — installables en une commande via /plugin marketplace add

Install
npx -y skills add sharklandy/claude-code-starter-kit --skill test-strategy

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

Decide what to test and at what level, and detect fragile existing tests. Trigger when asked what to test, how to structure a test suite, whether a test belongs at the unit/integration level, or when reviewing existing tests for reliability — not for generating test code directly.

SKILL.md

4.2 KB, ~1.1k tokens by cl100k_base, as published. Nobody here has run it

<!-- Skill de domaine (vague 2) -->

Stratégie de test (générique, stack-agnostique)

Ce skill aide à décider quoi tester et à quel niveau, avant d'écrire le code de test lui-même. Pour la vérification qu'un changement ne régresse pas (build/tests/lint), voir verify-code-change. Pour le garde-fou avant un refactor qui dépend d'une couverture suffisante, voir safe-refactor — ce skill ne duplique pas cette logique, il aide à décider quels tests écrire en amont.

1. Choisir le bon niveau (pyramide de tests)

  • Unitaire : logique pure, sans dépendance externe (calcul, règle métier isolée, transformation de données). Rapide, à privilégier pour couvrir les cas limites en nombre.
  • Intégration : interaction réelle entre plusieurs composants (accès base de données, appel à un service interne, plusieurs modules qui collaborent). À utiliser quand le risque réel se situe dans l'interaction elle-même, pas dans la logique de chaque composant pris isolément.
  • De bout en bout : parcours utilisateur complet à travers le système réel. Coûteux à maintenir et à exécuter — réservé aux parcours critiques (voir les skills de vérification verify-code-change, verify-frontend-change, verify-form-change pour ce niveau).

Ne pas dupliquer la même assertion à plusieurs niveaux : si un cas limite est déjà couvert de façon fiable en unitaire, ne pas le re-tester identiquement en intégration.

2. Prioriser cas limites vs cas nominal

  • Le cas nominal (chemin "heureux") mérite un test, mais n'est presque jamais la source de bugs en production.
  • Prioriser les cas limites réels du domaine : entrée vide, valeur maximale/minimale, absence de réseau, réponse d'erreur d'une dépendance externe, concurrence (deux opérations simultanées sur la même ressource).
  • Une couverture de lignes élevée qui ne teste que des variations du cas nominal donne une fausse impression de sécurité — voir le Gotcha correspondant, et le principe déjà énoncé dans le skill safe-refactor (une couverture élevée en pourcentage ne garantit pas une couverture des cas limites réels).

3. Détecter les tests fragiles

Un test existant doit être signalé comme fragile s'il présente au moins un des symptômes suivants :

  • Couplé à l'implémentation plutôt qu'au comportement observable : le test échoue si on renomme une variable interne ou réorganise le code sans changer le résultat produit — signe qu'il teste "comment" plutôt que "quoi".
  • Dépendant de l'ordre d'exécution : le test suppose qu'un autre test s'est exécuté avant lui (état partagé, fixture non réinitialisée), et échoue s'il est lancé isolément.
  • Assertions trop larges : le test vérifie seulement l'absence d'erreur ou un type de retour générique, sans vérifier la valeur réelle attendue — il passerait même si le comportement changeait de façon incorrecte.

Gotchas

  • Une couverture de lignes à 100% sur un module ne signifie pas que ses cas limites réels sont couverts — un test peut exécuter une ligne sans vérifier la valeur qu'elle produit dans un cas limite. Toujours vérifier la présence d'assertions significatives, pas seulement l'exécution du code.
  • Un test qui mocke une dépendance de façon à masquer un changement de contrat réel (ex. un mock qui ne reflète plus la réponse actuelle du service réel) donne une fausse confiance — signaler tout mock qui n'a pas été mis à jour en même temps que le comportement réel qu'il simule.
  • Un grand nombre de tests qui échouent en même temps après un petit changement est souvent le signe de tests trop couplés entre eux (fixture partagée, ordre d'exécution) plutôt que d'une vraie régression généralisée — vérifier ce cas avant de conclure à une régression massive.

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.