La piramide dei test è un modello ben noto per i test del software.
L'idea chiave della piramide dei test è che dovresti avere più test ai livelli inferiori, che sono le fasi iniziali della tua progressione, e meno test nelle fasi successive. La piramide è stata ideata per lo sviluppo di software applicativo. Il livello inferiore della piramide è composto da unit test, ognuno dei quali verifica una piccola parte di codice e viene eseguito molto rapidamente.
Lo strato intermedio è costituito dai test di integrazione, ciascuno dei quali copre una raccolta di componenti assemblati insieme. Le fasi superiori sono i test applicativi, guidati attraverso l'interfaccia utente, che testano l'applicazione nel suo complesso.
I test nei livelli superiori della piramide coprono lo stesso ambito già coperto nei livelli inferiori. Ciò significa che possono essere meno completi: devono solo testare la funzionalità che emerge dall'integrazione dei componenti, piuttosto che provare il comportamento dei componenti di livello inferiore.
La piramide di test è meno preziosa con i codebase dell'infrastruttura dichiarativa. La maggior parte del codice stack dichiarativo di basso livello scritto per strumenti come Terraform e CloudFormation è troppo grande per i test unitari e dipende dalla piattaforma dell'infrastruttura.
I moduli dichiarativi sono difficili da testare in modo utile, sia a causa del valore inferiore del test del codice dichiarativo e perché c'è di solito non molto che possa essere utilmente testato senza l'infrastruttura. Ciò significa che, anche se quasi certamente avrai test di infrastruttura di basso livello, potrebbero non essercene tanti quanti suggerisce il modello piramidale. Quindi, una suite di test dell'infrastruttura per l'infrastruttura dichiarativa potrebbe sembrare più simile a un diamante.