Organizzazione, ruoli, responsabilità e competenze nel testing software

Organizzazione, ruoli, responsabilità e competenze nel testing software

Organizzazione e composizione del gruppo di lavoro

Un momento chiave nella gestione dei test è la fase di composizione del gruppo di lavoro. L’attività di testing è molto diversa da quella dello sviluppo del software e richiede competenze ed attitudini completamente diverse. Si tratta di due figure (il programmatore ed il tester) diverse e complementari. Solo apparentemente in conflitto, esse sono invece contrapposte perché è giusto che lo siano, in quanto è il ruolo che lo richiede. Alcuni pensieri circolanti nell’ambiente dello sviluppo software esprimono concetti negativi quali: il programmatore “crea” del software mentre il tester lo “distrugge”. Esiste anche una corrente di pensiero, specialmente tra alti dirigenti, secondo la quale “il test è solo una spesa”; “essa non produce nulla”; “spende il proprio tempo solo a trovare errori senza mai costruire nulla”; “se i costi fossero devoluti ai gruppi di sviluppo si produrrebbe di più e con meno problemi”.

E’ importante definire un responsabile dei test (Test Manager) con i seguenti compiti e responsabilità:

  • Personalizzare la metodologia di test alle particolari necessità del progetto;
  • Definire le responsabilità ed i compiti all’interno del gruppo di lavoro;
  • Individuare le persone più adatte a svolgere i compiti stabiliti;
  • Pianificare, coordinare, gestire e rapportare sull’esito dei test. Il gruppo di test, a sua volta, sarà responsabile di:
  • Produrre il materiale richiesto per il test (casi di test, matrice di test, dati di test, procedure di test);
  • Eseguire i casi di test, registrare i difetti, validare le correzioni degli errori, rapportare sui

Le persone coinvolte nelle attività di test possono provenire dai seguenti reparti o organizzazioni:

  1. Sviluppo
  2. Utenti
  3. Gestione operativa
  4. Specialisti di test o gruppi indipendenti (es. sicurezza, performance, usabilità, ecc.).

Per una gestione e controllo efficace dei test è necessario definire, specialmente nei progetti di dimensioni medio-grandi, i coordinatori dei test (Test Team Leader) ed i singoli tester assegnando a ciascuno di essi le responsabilità definite. Per ciascun livello di test (test unitario, test d’integrazione, test di sistema, test d’accettazione) è bene chiarire quanto segue senza lasciare alcuna ambiguità:

  • Chi crea i dati per i test?
  • Chi esegue i test e inserisce i dati?
  • Chi controlla i risultati?
  • Chi prende le decisioni su quali correzioni eseguire?
  • Chi effettua le correzioni?
  • Chi predispone e mantiene gli ambienti di test?
  • Chi opera sulle procedure di test?

Organizzazione, ruoli, responsabilità e competenze nel testing software

Ruoli, responsabilità e competenze

Il gruppo di collaudo diventa efficace ed efficiente quando per esso siano state definiti: il ruolo del tester all’interno del progetto di sviluppo; le responsabilità associate al ruolo; le competenze necessarie per svolgere il ruolo assegnato.

Nell’ambito del gruppo di test sono identificati i seguenti ruoli:

  • Responsabile del testing
  • Esperto tecnico di testing
  • Tester

Di seguito sono descritti i ruoli identificati e le relative responsabilità e competenze.

Responsabile del testing

Per progetti molto grandi e complessi il ruolo è ricoperto da un manager (Test Manager). In progetti meno complessi e di dimensioni minori il ruolo è ricoperto da un coordinatore (Test Team Leader).

Il responsabile dei test coordina tutte le attività di testing (pianificazione, progettazione e preparazione, esecuzione, monitoraggio e reporting) all’interno del progetto.

E’ responsabile di completare le attività di test pianificate secondo i tempi ed i costi previsti e raggiungendo gli obiettivi di qualità attesi. Altre responsabilità legate al ruolo sono l’emissione e l’approvazione dei piani di test (Piano di test generale e Piani di test specifici), la costituzione del gruppo di test, la gestione delle persone del gruppo di test e le relazioni con gli altri responsabili dei gruppi di lavoro del progetto. E’ anche responsabile di comunicare ai membri del progetto lo stato di esecuzione dei test e lo stato di risoluzione dei difetti. E’ inoltre responsabile di fornire il feedback necessario al miglioramento del processo di testing.

Le competenze principali richieste per ricoprire il ruolo sono:

  • Comunicazione
  • Leadership
  • Organizzazione / People management
  • Project Management
  • Metodologia di testing

Specialista di testing

Il ruolo è generalmente ricoperto da un analista esperto con grande esperienza nelle metodologie di collaudo. Ha molteplici responsabilità legate ai diversi aspetti del testing.

In fase di pianificazione, ha la responsabilità di definire la strategia di collaudo, definire le linee guida per lo svolgimento dei test, definire i criteri di completamento dei test ed identificare gli ambienti e gli strumenti necessari (test tool).

In fase di progettazione e realizzazione dei test, effettua l’analisi dei requisiti per identificare i criteri di testabilità degli stessi. In particolare, analizza i requisiti qualitativi per identificare le caratteristiche del prodotto da sottoporre a test delle prestazioni del prodotto (usabilità, performance, affidabilità, sicurezza, ecc.). Progetta gli scenari di business entro cui calare i casi di test in modo da indirizzare tutti gli aspetti critici dell’applicativo. Progetta i casi di test e partecipa alla loro realizzazione. Assicura la piena copertura dei requisiti, delle funzionalità, delle caratteristiche prestazionali e la gestione delle condizioni speciali e di errore da parte dei casi di test progettati. Supporta l’esperto di ambienti (a meno che non lo sia egli stesso) nella progettazione e realizzazione degli ambienti di test.

In fase di esecuzione, collabora nell’esecuzione dei singoli casi di test e nella valutazione dei risultati ottenuti rispetto a quelli attesi. Assicura la registrazione dei difetti riscontrati e la notifica al gruppo di sviluppo. Verifica la validazione delle modifiche apportate al software a fronte della correzione degli errori. I particolare, conduce i test più critici come quelli relative alle performance, all’affidabilità, all’installabilità, ecc.

Raccoglie e analizza i dati relativi ai test effettuati e supporta il responsabile del collaudo nella produzione dei rapporti periodici sullo stato dei test e degli errori.

Lo specialista esperto di ambienti realizza gli ambienti di test e collaudo secondo le specifiche di progettazione con il supporto tecnico dei sistemisti esperti nei singoli prodotti utilizzati.

Le competenze richieste dal ruolo sono molteplici:

  • Architetture tecnologiche e piattaforme applicative
  • Strategie di sviluppo e relative metodologie
  • Strategie di collaudo, metodologie e ciclo di vita del test e strumenti a supporto del test
  • Pianificazione dei progetti
  • Ambienti tecnologici e ambienti di collaudo, hardware e software
  • Conoscenza del business indirizzato dagli applicativi
  • Utilizzo di tecniche di analisi statistica
  • Gestione dei problemi
  • Gestione della configurazione

Tester

Conosce la metodologia di testing ed applica il processo di testing definito in azienda. Effettua l’integrazione dei componenti di un applicativo nell’ambiente di test, sviluppa i casi di test sulla base della progettazione fatta dallo specialista, esegue i casi di test secondo il piano della attività, valuta i risultati ottenuti a fronte di quelli presiti, gestisce i difetti secondo la procedura stabilità. Opera nell’ambiente di test con i componenti hardware e software ivi disponibili. Operare sulle basi di dati. Utilizza i tool per l’automazione dei test e scrive i relativi script necessari. Scrive eventuali procedure di testing secondo la progettazione stabilità.

Possiede le seguenti competenze:

  • Creazione di casi di test e di matrici di test
  • Esecuzione dei casi di test nell’ambiente di collaudo stabilito
  • Realizzazione degli ambienti di test secondo la progettazione disponibile
  • Registrazione dei difetti e gestione dell’iter di risoluzione degli errori
  • Utilizzo delle librerie negli ambienti di test e collaudo.

Formazione del personale per il testing software

Un buon tester non s’improvvisa dall’oggi al domani. Un buon sviluppatore non può svolgere efficacemente il compito di collaudatore senza che sia stato opportunamente formato.

La creazione di un gruppo di collaudo richiede quindi l’individuazione delle persone più adatte, la pianificazione del percorso formativo da seguire, l’organizzazione del lavoro corrente in modo da liberare le risorse che necessitano di assentarsi dai progetti per seguire i corsi di formazione, un adeguato tirocinio presso il gruppo di collaudo esistente.

La formazione teorica può essere formale in aula oppure, se la persona possiede già elementi di base, può consistere nello studio di un buon manuale (il presente manuale si offre indegnamente a tale scopo).

Dopo la preparazione teorica la persona segue una fase di tirocinio presso il gruppo di collaudo seguito da un tutor cui è affidata.

La partecipazione attiva alle fasi di collaudo di un progetto in corso e l’esecuzione di attività specifiche di progettazione dei casi di test e della matrice di test, nonché l’esecuzione di casi di prova in autonomia con registrazione dei difetti riscontrati, completano la preparazione del futuro “tester” che potrà essere inserito a pieno titolo nel team di collaudo.

Puntare su persone particolarmente adatte a tale mansione, garantire una formazione tecnica adeguata e fornire il gruppo di test con strumenti (tool) appropriati è il miglior investimento che un’azienda di software possa fare per la qualità dei propri prodotti e servizi.

Infine, il livello di soddisfazione dei propri clienti costituisce una misura tangibile del maggiore successo che ne consegue.

 

Pubblicato da Vito Lavecchia

Lavecchia Vito Ingegnere Informatico (Politecnico di Bari) Email: [email protected] Sito Web: https://vitolavecchia.altervista.org

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *