Di quali competenze di programmazione hanno bisogno gli sviluppatori di software QA?

Presumo che per "sviluppatore di software QA", intendi qualcuno che è assunto per sviluppare effettivamente software per eseguire operazioni di QA contro qualche prodotto software e/o hardware. Se questo presupposto è corretto, allora uno sviluppatore di software QA è uno sviluppatore di software a tutti gli effetti, con la conoscenza di come pianificare, progettare, implementare, automatizzare e gestire i test.

Le specifiche competenze di programmazione richieste di solito dipendono dal tipo di prodotto da testare, quindi una conoscenza a tutto tondo sia dei linguaggi compilati che interpretati è utile. In un grande progetto a cui ho lavorato, avevamo un esercito di sviluppatori di software che lavoravano nel gruppo di test per sviluppare codice di test in C per testare le API fornite da un nuovo prodotto del sistema operativo. A causa della portata del prodotto da testare e del volume di casi di test che dovevano essere eseguiti, gli sviluppatori software del gruppo di test dovevano progettare, implementare, testare e fare il debug del proprio codice di test (spesso usando i primi strumenti di sviluppo che erano ancora in fase di test), fare il debug del codice del prodotto target, capire esattamente cosa stava andando storto nel prodotto target e fornire uno scenario di riproduzione completo (compreso il codice di test e le istruzioni passo dopo passo) quando si presentava un bug report sul prodotto.

Automatizzare un grande volume di test sviluppati spesso richiede la conoscenza di uno o più linguaggi di scripting, la capacità di creare front-end basati su GUI per rendere i test più facili da eseguire per gli altri, e talvolta la conoscenza di lavorare con i database per registrare, riassumere e riportare i risultati dei test. In sintesi, uno sviluppatore di software che sviluppa test ha bisogno di competenze di programmazione e debug simili a quelle di uno sviluppatore di software che sviluppa il prodotto da testare.