what is software quality assurance
Che cos'è la garanzia della qualità del software?
Garanzia di qualità del software (SQA) è un processo che assicura che tutti i processi, i metodi, le attività e gli elementi di lavoro dell'ingegneria del software siano monitorati e conformi agli standard definiti. Questi standard definiti potrebbero essere uno o una combinazione di qualsiasi ISO 9000, modello CMMI, ISO15504, ecc.
SQA incorpora tutti i processi di sviluppo del software a partire dalla definizione dei requisiti alla codifica fino al rilascio. Il suo obiettivo principale è garantire la qualità.
Cosa imparerai:
- Piano di garanzia della qualità del software
- Attività SQA
- Standard di garanzia della qualità del software
- Elementi di garanzia della qualità del software
- Tecniche SQA
- Conclusione
- Lettura consigliata
Piano di garanzia della qualità del software
Abbreviato come SQAP, il piano di garanzia della qualità del software comprende le procedure, le tecniche e gli strumenti utilizzati per garantire che un prodotto o servizio sia allineato ai requisiti definiti nella SRS (specifica dei requisiti software).
Il piano identifica le responsabilità SQA di un team, elenca le aree che devono essere riviste e controllate. Identifica anche i prodotti di lavoro SQA.
Il documento del piano SQA è costituito dalle seguenti sezioni:
- Sezione scopo
- Sezione di riferimento
- Sezione di gestione della configurazione del software
- Segnalazione dei problemi e sezione delle azioni correttive
- Sezione strumenti, tecnologie e metodologie
- Sezione di controllo del codice
- Registri: sezione raccolta, manutenzione e conservazione
- Metodologia di prova
Attività SQA
Di seguito è riportato l'elenco delle attività SQA:
# 1) Creazione di un piano di gestione SQA:
come creare un progetto java in eclipse
L'attività principale include la definizione di un piano adeguato per quanto riguarda il modo in cui la SQA verrà eseguita nel progetto.
Insieme all'approccio SQA che seguirai, alle attività di ingegneria che verranno svolte, e include anche la garanzia di avere un giusto mix di talenti nel tuo team.
# 2) Impostazione dei punti di controllo:
Il team SQA imposta diversi punti di controllo in base ai quali valuta la qualità delle attività del progetto in ogni punto di controllo / fase del progetto. Ciò garantisce un controllo di qualità regolare e il funzionamento secondo il programma.
# 3) Applicare tecniche di ingegneria del software:
L'applicazione di alcune tecniche di ingegneria del software aiuta un progettista di software a ottenere specifiche di alta qualità. Per raccogliere informazioni, un progettista può utilizzare tecniche come interviste e FAST (Functional Analysis System Technique).
Successivamente, sulla base delle informazioni raccolte, il progettista del software può preparare la stima del progetto utilizzando tecniche come la stima WBS (work breakdown structure), SLOC (linea di codici sorgente) e FP (punto funzionale).
# 4) Esecuzione di revisioni tecniche formali:
Viene eseguito un FTR per valutare la qualità e il design del prototipo.
In questo processo, viene condotto un incontro con lo staff tecnico per discutere sugli effettivi requisiti di qualità del software e sulla qualità del design del prototipo. Questa attività aiuta a rilevare gli errori nella fase iniziale di SDLC e riduce lo sforzo di rilavorazione nelle fasi successive.
# 5) Avere una strategia di multi-test:
Per strategia multi-test, intendiamo che non si dovrebbe fare affidamento su un singolo approccio di test, ma dovrebbero essere eseguiti più tipi di test in modo che il prodotto software possa essere testato bene da tutte le angolazioni per garantire una migliore qualità.
# 6) Applicazione dell'aderenza al processo:
Questa attività insiste sulla necessità di aderenza al processo durante il processo di sviluppo del software. Il processo di sviluppo dovrebbe inoltre attenersi alle procedure definite.
Questa attività è una combinazione di due sotto-attività che vengono spiegate di seguito in dettaglio:
(i) Valutazione del prodotto:
Questa attività conferma che il prodotto software soddisfa i requisiti rilevati nel piano di gestione del progetto. Assicura che gli standard stabiliti per il progetto siano seguiti correttamente.
(ii) Monitoraggio del processo:
Questa attività verifica se sono stati eseguiti i passaggi corretti durante lo sviluppo del software. Questo viene fatto confrontando i passaggi effettivamente eseguiti con i passaggi documentati.
# 7) Controllo del cambiamento:
In questa attività, utilizziamo un mix di procedure manuali e strumenti automatizzati per avere un meccanismo per il controllo delle modifiche.
Convalidando le richieste di modifica, valutando la natura del cambiamento e controllando l'effetto del cambiamento, si garantisce che la qualità del software sia mantenuta durante le fasi di sviluppo e manutenzione.
# 8) Misura l'impatto del cambiamento:
Se un qualsiasi difetto viene segnalato dal team QA, il team interessato corregge il difetto.
Dopodiché, il team QA dovrebbe determinare l'impatto della modifica apportata da questa correzione del difetto. Devono testare non solo se la modifica ha risolto il difetto, ma anche se la modifica è compatibile con l'intero progetto.
A tal fine, utilizziamo metriche di qualità del software che consentono a manager e sviluppatori di osservare le attività e le modifiche proposte dall'inizio alla fine dell'SDLC e avviare azioni correttive laddove necessario.
strumenti di test di registrazione e riproduzione gratuiti
# 9) Esecuzione di audit SQA:
L'audit SQA ispeziona l'intero processo SDLC effettivo seguito da un confronto con il processo stabilito.
Controlla anche che tutto ciò che è stato segnalato dal team nei rapporti sullo stato sia stato effettivamente eseguito o meno. Questa attività espone anche eventuali problemi di non conformità.
# 10) Conservazione di registri e rapporti:
È fondamentale conservare la documentazione necessaria relativa a SQA e condividere le informazioni SQA richieste con le parti interessate. I risultati dei test, i risultati degli audit, i rapporti di revisione, la documentazione delle richieste di modifica, ecc. Devono essere conservati per riferimento futuro.
# 11) Gestisci buone relazioni:
In effetti, è molto importante mantenere l'armonia tra il QA e il team di sviluppo.
Sentiamo spesso che tester e sviluppatori spesso si sentono superiori gli uni agli altri. Questo dovrebbe essere evitato in quanto può influire sulla qualità complessiva del progetto.
Standard di garanzia della qualità del software
In generale, SQA può richiedere la conformità a uno o più standard.
Alcuni degli standard più popolari sono discussi di seguito:
ISO 9000: Questo standard si basa su sette principi di gestione della qualità che aiutano le organizzazioni a garantire che i loro prodotti o servizi siano allineati con le esigenze del cliente '.
7 principi di ISO 9000 sono illustrati nell'immagine sottostante:
Livello CMMI: CMMI sta per Integrazione del modello di maturità delle capacità . Questo modello è stato originato dall'ingegneria del software. Può essere utilizzato per indirizzare il miglioramento del processo in un progetto, reparto o un'intera organizzazione.
5 livelli CMMI e le loro caratteristiche sono descritti nell'immagine sottostante:
Un'organizzazione viene valutata e assegnata una valutazione del livello di maturità (1-5) in base al tipo di valutazione.
Integrazione del modello di maturità del test (TMMi): Basato su CMMi, questo modello si concentra sui livelli di maturità nella gestione e nei test della qualità del software.
5 livelli TMMi sono rappresentati nell'immagine sottostante:
domande e risposte del colloquio di automazione qa
Man mano che un'organizzazione si sposta su un livello di maturità più elevato, raggiunge una maggiore capacità di produrre prodotti di alta qualità con meno difetti e soddisfa da vicino i requisiti aziendali.
Elementi di garanzia della qualità del software
Ci sono 10 elementi essenziali di SQA che sono elencati di seguito come riferimento:
- Standard di ingegneria del software
- Revisioni tecniche e audit
- Test del software per il controllo della qualità
- Raccolta e analisi degli errori
- Cambio gestione
- Programmi educativi
- Gestione dei fornitori
- Gestione della sicurezza
- Sicurezza
- Gestione del rischio
Tecniche SQA
Esistono diverse tecniche per SQA. L'auditing è la tecnica principale ampiamente adottata. Tuttavia, abbiamo anche alcune altre tecniche significative.
Varie tecniche SQA includono:
- Auditing: L'audit implica l'ispezione dei prodotti di lavoro e delle relative informazioni per determinare se l'insieme di processi standard è stato seguito o meno.
- Revisione : Una riunione in cui il prodotto software viene esaminato dagli stakeholder interni ed esterni per ottenere i loro commenti e l'approvazione.
- Ispezione del codice: È il tipo di revisione più formale che esegue test statici per trovare bug ed evitare la crescita di difetti nelle fasi successive. È fatto da un mediatore / peer qualificato e si basa su regole, checklist, criteri di ingresso e uscita. Il revisore non dovrebbe essere l'autore del codice.
- Ispezione del design: L'ispezione del progetto viene eseguita utilizzando una lista di controllo che ispeziona le seguenti aree della progettazione del software:
- Requisiti generali e design
- Specifiche funzionali e di interfaccia
- Convegni
- Tracciabilità dei requisiti
- Strutture e interfacce
- Logica
- Prestazione
- Gestione e ripristino degli errori
- Testabilità, estensibilità
- Accoppiamento e coesione
- Simulazione: La simulazione è uno strumento che modella la situazione della vita reale al fine di esaminare virtualmente il comportamento del sistema in esame.
- Test funzionale: È una tecnica di QA che verifica cosa fa il sistema senza considerare come lo fa. Questo tipo di test della scatola nera si concentra principalmente sulla verifica delle specifiche o delle caratteristiche del sistema.
- Standardizzazione: La standardizzazione gioca un ruolo cruciale nella garanzia della qualità. Riduce l'ambiguità e le congetture, garantendo così la qualità.
- Analisi statica: È un'analisi software che viene eseguita da uno strumento automatizzato senza eseguire effettivamente il programma. Questa tecnica è molto utilizzata per la garanzia della qualità nel software medico, nucleare e aeronautico. Le metriche del software e il reverse engineering sono alcune forme popolari di analisi statica.
- Procedure dettagliate: La procedura dettagliata del software o la procedura dettagliata del codice è una sorta di revisione tra pari in cui lo sviluppatore guida i membri del team di sviluppo per esaminare il prodotto e sollevare domande, suggerire alternative, fare commenti su possibili errori, violazioni degli standard o altri problemi.
- Test del percorso: È un tecnica di prova scatola bianca dove la copertura completa delle filiali è assicurata eseguendo ogni percorso indipendente almeno una volta.
- Stress Test: Questo tipo di test viene eseguito per verificare la robustezza di un sistema testandolo sotto carico pesante, ovvero oltre le condizioni normali.
- Sei Sigma: Six Sigma è un approccio di garanzia della qualità che mira a prodotti o servizi quasi perfetti. È ampiamente applicato in molti campi, incluso il software. L'obiettivo principale di six sigma è il miglioramento del processo in modo che il software prodotto sia privo di difetti al 99,76%.
Conclusione
SQA è un'attività ombrello che viene impiegata per tutto il ciclo di vita del software.
La garanzia della qualità del software è molto importante per il tuo prodotto o servizio software per avere successo sul mercato e sopravvivere alle aspettative del cliente.
Esistono varie attività, standard e tecniche che è necessario seguire per garantire che il software consegnabile sia di alta qualità e sia strettamente allineato alle esigenze aziendali.
Spero che tu possa avere un'idea chiara del concetto di Software Quality Assurance attraverso questo articolo informativo !!
Lettura consigliata
- Test del software e certificazioni di garanzia della qualità - Parte 2
- Quali sono gli attributi di qualità?
- Il falso dio della qualità contro i veri esseri umani: chi è responsabile della qualità del software?
- Differenza tra garanzia di qualità e controllo di qualità (QA vs QC)
- Perfect Software Testing Resume Guide (con esempio di curriculum per Software Tester)
- Come utilizzare la tecnica Poka-Yoke (Mistake Proofing) per migliorare la qualità del software
- Comprensione reciproca nei test: una chiave per fornire un software di qualità
- Lavoro assistente QA test software