Il controllo di qualità è l'atto di guardare i prodotti, volti a rilevare i difetti dei singoli prodotti mentre rotolano lungo la linea di produzione. La garanzia della qualità riguarda i processi implementati per garantire il controllo della qualità, ora e in futuro. Pertanto, nel mondo del software, l'atto di eseguire l'analisi statica è QC, mentre il processo che garantisce l'analisi (e misura quanto sia efficace ecc.) È il QA. (cioè il QA è l'atto di piallare per farlo, QC è l'atto di farlo)
L'argomento secondo cui l'atto dell'ispezione è QA perché diminuisce la probabilità di un difetto è imperfetto nella mia mente. È come argomentare qualcosa come "L'uso di OOP è QA, in quanto diminuisce i difetti ...." Basta guardare chi esegue l'operazione. Se si tratta di una persona responsabile del processo di qualità, è probabile che sia il controllo qualità. Se si tratta di un ingegnere esperto, è probabile che sia il controllo qualità. L'ispezione è certamente fatta da un ingegnere esperto - è QC ...
All'interno della comunità di sviluppo del software questi termini sono usati liberamente e scambiati a caso. In molte case del software il test è QA e QA è il test, anche alcuni libri non distinguono la differenza: come ti aspetti che la sottile differenza tra QA e QC sarà compresa.
A parte l'attenzione del settore e la mancanza di formazione sulla qualità in generale, credo che questo sia in gran parte il risultato di ciò che è il software. A differenza di una fabbrica, in cui ogni widget prodotto è un prodotto unico (ad esempio, le persone capiscono come una macchina potrebbe avere un difetto che nessun altro ha), ogni "widget" software (cioè ciò che ottiene il cliente) è esattamente lo stesso, non importa se ne producete 2 o 2 miliardi. Pertanto, il controllo di qualità sul software viene eseguito "una sola volta" (per versione) - ed è solo sottilmente diverso dal processo di controllo qualità per la maggior parte delle persone.