Nel processo di sviluppo di un progetto IT la fase di software testing automatizzata è fondamentale per garantire la qualità del codice tramite la reiterazione di operazioni, difficilmente gestibili manualmente.
Per rendere l’attività di controllo della qualità del software sempre più efficace, abbiamo adottato una serie di strumenti orientati all’automazione del test. Ecco quali soluzioni abbiamo implementato.
A cosa serve il software testing?
Come per qualsiasi prodotto che si vuole distribuire sul mercato, anche il software necessita di una fase di collaudo, in cui vengono individuate e risolte le carenze e le incompletezze del codice con l’obiettivo di:
- garantire l’affidabilità, la correttezza e la completezza del software;
- verificare il rispetto dei requisiti funzionali richiesti;
- testare il livello di usabilità per gli utilizzatori.
Il collaudo del software può avvenire sia a livello back-end che front-end: nel primo caso il controllo viene eseguito sul database e sull’Application User Interface (AUI), mentre nel secondo caso il test è svolto sull’interfaccia utente (UI).
Tra le varie tipologie di attività di testing del software distinguiamo due principali approcci:
- l’analisi statica del codice sorgente, che consente di fare software testing valutando il codice o un suo componente nella sua forma, struttura e nella sua relativa documentazione;
- l’analisi dinamica del sistema, in cui il processo di valutazione del software si basa sull’esecuzione sistematica di tutte le funzionalità dell’applicativo.
Scopri i vantaggi di un'Architettura IT con le API
Analisi statica del software, i vantaggi degli strumenti automatici
L’analisi statica costituisce un punto chiave nel processo di sviluppo software, garantendo la sicurezza e la qualità del codice e identificando bug classici attraverso l’analisi della sintassi e dello stile.
Per esempio, nel caso di utilizzo di Merge Request (strumento che facilita la collaborazione nello sviluppo di un software) che non rispettino i canoni stabiliti, l’analisi statica non prende nemmeno in considerazione il codice proposto dal submitter, demandando a quest’ultimo la responsabilità di accertarsi che i requisiti vengano rispettati.
Ciò consente di concentrarsi maggiormente sull’identificazione di bug legati alle business logic o a eventuali problemi di architettura che possano inficiare sulla manutenibilità, la scalabilità, l’usabilità e la sicurezza del software.
Per ottimizzare il processo di analisi statica nei nostri progetti abbiamo adottato strumenti automatici di analisi statica che consentono di:
- rendere più efficiente la gestione della sintassi, dello stile e per l’identificazione di bug classici;
- evitare di accumulare il cosiddetto “Technical Debt”, che si presenta rimandando la risoluzione di problemi a lavorazioni successive;
- facilitare l’attività del revisore attraverso automatismi che trasformano una issue JIRA (software per il monitoraggio di ticket e progetti) in un link alla pagina delle issue o che allegano degli screenshot che aiutino a capire l’entità della modifica.
Analisi dinamica del software con Appium
Nel caso di collaudo del codice a livello di interfaccia utente, entra in gioco il cosiddetto functional testing, in cui il processo di valutazione del software si basa sull’esecuzione sistematica di tutte le funzionalità dell’applicativo, motivo per cui viene definito anche analisi dinamica.
Ogni modifica del codice che va a comporre un applicativo software deve essere verificata internamente prima che generi problemi all’utente. Occorre infatti testare se il componente si adatta ancora perfettamente all’intero ingranaggio ed evidenziare eventuali problemi nascosti.
Eseguire tutti i test a mano dopo ogni aggiornamento, oltre a comportare uno spreco di tempo e denaro, potrebbe facilmente risultare un processo incompleto e non esaustivo. Viceversa, alcuni sistemi di testing automatici, come ad esempio Appium, riescono ad interfacciarsi con l’applicativo in collaudo e a operare in modo simile a un utente reale: definendo tutte le regole da seguire e le azioni da eseguire, questo tool può navigare tramite l’applicazione e testare la maggior parte delle funzionalità in modo automatico.
Nei progetti mobile, inoltre, senza modifiche rilevanti Appium è uno strumento operativo sia in ambito iOS che Android, utilizzabile anche da sviluppatori al di fuori del gruppo mobile.
Con l’aumentare delle complessità dei progetti IT, implementare una strategia di automazione delle attività di testing del software è una scelta obbligata. Il collaudo del codice senza l’adozione di strumenti automatici è un’attività laboriosa, costosa e rischiosa per la qualità del software. L’utilizzo di strumenti di software testing automatici consente invece di eseguire test complessi velocemente ad ogni rilascio di una nuova versione del software, riducendo la possibilità di errore e dedicando le risorse umane ad attività di maggior valore.