5 consigli per garantire uno sviluppo software privo di bug

Pubblicato: 2017-10-24

La tua applicazione software ha dei bug? Naturalmente lo fa, dal momento che ogni programma software disponibile là fuori ha problemi e la storia del software privo di bug è un mito. Tuttavia, è ancora possibile ridurre al minimo in modo significativo bug, errori e problemi di sicurezza seguendo alcune tecniche di riduzione pratiche ma semplicistiche.

È necessaria molta disciplina quando si tratta di tracciare i bug, poiché è necessario incoraggiare tutti a rispettare le regole. Soprattutto nelle startup e nei settori spinti dalla creatività, può essere piuttosto difficile scoraggiare qualsiasi comunicazione informale. In effetti, in molti casi le persone non nominano il "bug tracking" come la parte più focalizzata di un progetto.

Di cosa tratta davvero il monitoraggio dei bug?

What is bug-tracking really about?

Secondo Technopedia: “ Il monitoraggio dei bug è un processo utilizzato dal personale di assicurazione della qualità e dai programmatori per tenere traccia dei problemi e delle risoluzioni del software.

Un sistema di bug tracking, quindi, gestisce tutte le informazioni sugli errori segnalati e tiene traccia dello stato di ogni bug. Si vede sicuramente la necessità di informazioni estese durante il monitoraggio dei problemi. Fornire dati sufficienti non solo richiede un'enorme quantità di tempo, ma anche abbondanti competenze nel campo dello sviluppo del software.

La classificazione dei bug

Esistono tre tipi di bug del software:

  • Specifiche errate
  • Difetti di attuazione
  • Specificazione mancante

Ognuno di questi tipi di bug può essere facilmente classificato come problema critico (o riclassificato come miglioramento). Di seguito sono menzionate alcune delle linee guida di riclassificazione utilizzate da Sam Hatoum, fondatore di Xolv.io.

  • La specifica errata ci causa una perdita? Ad esempio, le specifiche dichiarano di tenere traccia del conteggio dei clic, quando dovrebbe tenere traccia della spesa Riclassifica bug.
  • Si può trascurare il difetto di realizzazione? Ad esempio, il font web viene installato quando dovrebbe essere incorporato nel software.
  • La specifica mancante implica nuove funzioni? Ad esempio, gli utenti non sono in grado di condividere e modificare i dettagli del proprio profilo sui social network.

La posta in gioco viene sollevata affinché i product manager classifichino i bug in modo efficiente, poiché al team di sviluppo viene chiesto di dare la priorità ai bug rispetto a tutto il resto del lavoro. Gli sviluppatori non funzioneranno o altro finché tutti i bug non saranno stati rimossi.

Formazione di standard di qualità del team

Quando un team di progettazione e sviluppo decide se un virus dell'app può essere riclassificato o meno come miglioramento, quel processo decisionale afferma implicitamente gli standard di qualità del team. Ad esempio, un proprietario di un marchio che enfatizza immagini di alta qualità potrebbe avere una bassa tolleranza per le discrepanze di progettazione. Riclassificherebbero invece questi problemi come bug.

Un sistema di riclassificazione coerente ti consente di adattare continuamente le aspettative rispetto alla realtà, pur mantenendo un approccio di consegna strutturato che mette al primo posto gli standard di qualità del tuo team.

I bug falliti

Studi recenti affermano che quasi il 40 percento dei guasti di sistema sono causati da bug del software, mentre altri problemi di sicurezza e vulnerabilità del programma rappresentano il 60 percento, causati da memoria comune e problemi relativi alla concorrenza. Ridurre i bug del software nella tua applicazione è il modo migliore per aumentare la sicurezza, la stabilità e l'affidabilità del tuo software.

Suggerimenti per garantire uno sviluppo software privo di bug

Durante lo sviluppo dello strumento di registrazione SmartInspect, gli sviluppatori hanno utilizzato molti metodi per mantenere alta la qualità del loro sistema. L'elenco di cui sopra contiene alcune delle tecniche che hanno utilizzato.

1. Creare spazio per la comunicazione

Creating room for communication

Il rilevamento e la segnalazione di bug richiede le competenze per identificare le informazioni rilevanti che vengono poi aggiunte in ogni segnalazione di problema. Esistono molti strumenti di monitoraggio dei bug e di garanzia della qualità come Usersnap che offrono la possibilità di allegare automaticamente le informazioni necessarie. Tuttavia, ci sarà sempre spazio per informazioni mancanti o incomprensibili, con conseguente necessità di una corretta comunicazione.

In alcuni scenari di test, non c'è spazio per quel tipo di divulgazione tra sviluppatori e tester. Domande del tipo: 'Come posso contattare gli esperti incaricati?' o "Va bene chiedere un feedback tramite telefono o e-mail?" è necessario rispondere all'inizio del processo di tracciamento dei bug.

Per evitare malintesi da parte di tester e sviluppatori, prova a portare tutti sulla stessa pagina e a creare una cultura orientata al feedback in cui il lavoro di entrambe le parti sia rispettato allo stesso modo.

2. Tienilo uno contro uno

Evita di discutere di bug in una riunione di progetto. Ora non fraintendermi. Non c'è niente di male nel lavorare in squadra, riprodurre e correggere i bug. Ma non discutere i problemi in riunioni prolungate con l'intero gabinetto. Secondo Thomas Peham, un tech-blogger di Usersnap.com, segnalare bug e poi discuterne nella successiva fase di "retest" di sviluppo è un approccio piuttosto lento.

È, infatti, molto più efficiente mantenerlo uno contro uno. Come ha scritto Yegor nel suo articolo sui 5 principi di tracciamento dei bug, ogni segnalazione di bug è collegata tra due persone: lo specificatore e il risolutore del problema. Indipendentemente dal numero di persone coinvolte nel processo, ci sono solo 2 responsabilità principali (con due ruoli diversi) per la risoluzione di un problema segnalato.

3. Assicurati un buy-in dal tuo team

Se l'intero team non lo utilizza, un buon database di monitoraggio dei bug sarebbe inefficace. È meglio iniziare convincendo tutti i tuoi stakeholder (servizio clienti, garanzia della qualità, project manager e sviluppatori) a valutare gli strumenti e provare a prendere una decisione insieme; registrazione e risoluzione dei difetti in modo coerente utilizzando lo stesso sistema.

Se stai lottando per coinvolgere le persone, ecco cosa puoi fare;

Per gli sviluppatori, stabilisci la legge di accettare segnalazioni di bug tramite singoli database e non qualsiasi altro metodo. Quando i tester ti inviano e-mail con feedback, chiedi loro semplicemente di gettare i rapporti nel sistema informativo. Oltre a garantire che le cose rimangano organizzate, questo aiuta anche con la rendicontazione fornendo tutte le informazioni necessarie e definendo i campi necessari.

Un altro modo per creare un processo più efficiente è avere il controllo qualità o il supporto per verificare i bug dei clienti e aggiungere i passaggi esatti nel database prima ancora che gli sviluppatori vengano avvisati. Il monitoraggio efficace dei problemi del software è uno degli aspetti più essenziali per disporre di un framework di gestione dei progetti affidabile e coerente.

  • Un buon debugger

Visual Studio

Se utilizzi sistemi come Visual Studio o Delphi, hai già accesso a un debugger estremamente potente che dovresti utilizzare. Nel caso di un ambiente di scripting in cui gli sviluppatori cercano spesso di eliminare i bug per tentativi, il processo non solo diventa un modo ingombrante per identificare e risolvere i problemi, ma è anche molto pericoloso se non comprendi appieno il tuo codice e non sei in grado di farlo attraversalo con un debugger. Fatti un favore procurandoti una buona piattaforma di debug per il tuo team: ci sono debugger per quasi tutto.

4. Scopri cosa significa un bug "chiuso".

Sei mai stato coinvolto in una discussione sulla chiusura di un bug? Bene, congratulazioni, sei stato nella peggiore situazione di tracciamento dei bug che potrebbe mai verificarsi.

Se ti trovi in ​​una discussione sullo "stato del bug", considera di fare un passo indietro e porsi le seguenti domande:

  • Di chi è la responsabilità di accettare i risultati?
  • Quali sono i criteri di accettazione?
  • Chi è responsabile di dare l'ordine?

Dai un'occhiata al significato di 'chiuso'. Nella maggior parte dei team di sviluppo, un bug viene chiuso dalla persona che ha corretto l'errore. Peham consiglia di chiudere la segnalazione di bug dalla persona che ha segnalato il problema. Una volta che lo sviluppatore ha proposto la soluzione per un determinato bug, al giornalista dovrebbe essere chiesto di chiudere il rapporto. Ciò garantirebbe che il feedback sia una soluzione sufficiente per i pasticci software.

5. Macchine virtuali

Per testare il tuo software per i bug su molti diversi sistemi operativi e ambienti possibili, dovresti usare macchine virtuali con strumenti come Virtual PC o altri software di virtualizzazione disponibili. Puoi risparmiare un sacco di tempo con questo metodo perché puoi facilmente copiare, condividere e ripristinare le macchine virtuali, permettendoti di testare il tuo software su tutti i tipi di configurazioni.

È sempre preferibile creare varie immagini standard per tutti i sistemi operativi che controlli regolarmente e salvarle su un file server. Quando hai bisogno di una configurazione altamente specifica per testare qualcosa, puoi iniziare con una delle immagini di base senza installare il sistema operativo, il software e i driver richiesti e così via.

Non è un concetto nuovo

Quando Hatoum ha ideato questo concetto, ha scoperto che l'idea del software Zero-Bug non è nuova. In effetti esiste dagli anni '60, come molte delle filosofie della vecchia scuola dimenticate.

Il leggendario esperto di qualità, Phillip Crosby, ha inventato il termine Zero-Difetto mentre lavorava presso la Martin Company o come attualmente noto "Lockheed Martin" dove è stato riferito che hanno ottenuto "una riduzione del 54% dei difetti nell'hardware sotto controllo governativo".

Inizialmente, la tecnica Zero-Defect è stata utilizzata nella produzione aerospaziale negli anni '60, per poi essere applicata nella produzione automobilistica negli anni '90. Ci sono molte somiglianze tra l'industria manifatturiera e la fornitura di software.

La popolare modalità di gestione agile Kanban, ad esempio, ha avuto origine dal Toyota Production System. Ciò che in pratica ci dice è che possiamo facilmente esaminare questi processi di produzione per trovare ispirazione tecnologica nello sviluppo di software o app, e Zero-Bug è una di quelle ispirazioni.

Il costo estremo per soddisfare lo standard, tuttavia, è una delle principali critiche all'approccio Zero-Defect. E se implementato in modo errato, questo può davvero essere vero. Nell'approccio Zero-Bug, Hatoum ha affrontato direttamente questo problema attraverso la riclassificazione dei bug in funzionalità e miglioramenti significativi, consentendo di controllare il costo attraverso gli standard di qualità del team.

Inizia oggi

Come utenti tecnologici e sviluppatori, puoi iniziare a esaminare tutti i problemi tecnici esistenti e classificarli utilizzando il sistema di cui sopra. Se pensi di avere centinaia di migliaia di problemi, questo potrebbe essere un buon momento per arretrarli e ricominciare da capo. Non preoccuparti, puoi sempre spostare i bug dagli archivi al dominio corrente in base alle tue esigenze.

Il team di sviluppo non deve necessariamente attendere il completamento dell'intero esercizio di classificazione prima di iniziare a eliminare i bug; possono iniziare non appena vengono classificati alcuni bug. Il team non deve iniziare a lavorare su nessun altro elemento nel backlog fino a quando tutti gli elementi non vengono "liberati dai bug" o riclassificati. È proprio questa regola che obbliga i product manager a dare la priorità al nuovo lavoro in modo corretto.

Riassumendo

Ogni bug segnalato in un progetto richiede tempo aggiuntivo per essere risolto. Il monitoraggio dei bug richiede quindi grandi capacità comunicative da parte delle persone che tracciano i bug e sensibilità da parte di coloro che li correggono. Con i suddetti hack di monitoraggio, il tuo team può cercare di essere più produttivo segnalando qualsiasi tipo di ostacolo tecnologico o di sicurezza.