Torna al blog Connettività

Test di accettazione per il cambio di fornitore A2P SMS: come convalidare prima del passaggio

Una guida per concordare test riproducibili di connettività, risposte, callback e stati prima di migrare il traffico A2P. L’accettazione tecnica non equivale a confermare la ricezione dell’SMS sul terminale.

Un team tecnico esamina una checklist di test di accettazione per un’integrazione A2P SMS

Che cosa convalida un test di accettazione e che cosa esula dal suo ambito

Un test di accettazione verifica se un’integrazione e le relative operazioni si comportano secondo i requisiti concordati per uno specifico caso. Nel cambio di un fornitore A2P, può verificare che il sistema invii richieste, interpreti le risposte, elabori i callback e registri gli eventi necessari.

L’accettazione tecnica, da sola, non dimostra che l’SMS sia arrivato al terminale del destinatario e non garantisce che le prestazioni osservate rimangano invariate dopo il passaggio. Una risposta HTTP soddisfacente conferma una risposta dell’interfaccia, non la ricezione finale del messaggio. Analogamente, uno stato di consegna segnalato va considerato un’informazione del sistema che lo ha emesso, non una prova indipendente della ricezione sul dispositivo.

  • Definisci separatamente che cosa convalida l’interfaccia, che cosa comunica il fornitore e quali prove sono disponibili sulla consegna.
  • Documenta i limiti del test: ambiente, destinatari, mittenti, tipi di messaggio, periodo di osservazione e dipendenze esterne.
Che cosa convalida un test di accettazione e che cosa esula dal suo ambito

Definire ambito e responsabilità

Prima di eseguire i test, concorda che cosa viene integrato o migrato. Specifica l’interfaccia utilizzata — HTTP o SMPP —, i destinatari e i mittenti inclusi, i tipi di messaggi consentiti e il sistema responsabile di ogni fase. Per SMPP, la specifica SMPP v3.4 può essere un riferimento tecnico per concordare parametri e risposte; i dettagli specifici vanno verificati rispetto alla versione e al profilo di integrazione concordati.

Non dare per scontato che tutti i fornitori interpretino allo stesso modo ogni campo, stato o comportamento operativo. Prepara una matrice dei requisiti che indichi, per ogni caso, la richiesta prevista, la risposta da registrare, chi la produce e i criteri di esito positivo o negativo. I criteri e le condizioni per interrompere o annullare il cambio sono decisioni del progetto, non soglie universali.

  • Annota l’interfaccia, la versione o il profilo applicabile e la configurazione sottoposta a test.
  • Definisci i destinatari, i mittenti e le categorie di traffico inclusi; indica chiaramente le esclusioni.
  • Assegna le responsabilità al cliente, al fornitore e a ogni eventuale sistema intermedio.
  • Concorda in anticipo i criteri di approvazione, le anomalie bloccanti e le condizioni per sospendere o annullare il cambio.
Definire ambito e responsabilità

Preparare l’ambiente e i dati di test

Usa un ambiente e un traffico di test autorizzati, con un ambito concordato tra le parti. Se non è possibile separare completamente l’infrastruttura di produzione, documenta quali componenti sono condivisi e come viene limitato l’impatto. Non inviare messaggi a numeri o persone senza autorizzazione.

Includi solo i dati necessari per eseguire e diagnosticare ogni caso. Definisci chi può consultare i registri, come vengono protetti e per quanto tempo sono conservati, in base alle politiche e agli obblighi applicabili. Le fonti tecniche generali non stabiliscono una procedura universale per isolamento, consenso o conservazione: questi aspetti vanno verificati con le regole vigenti e i responsabili pertinenti.

  • Conferma l’autorizzazione, i destinatari di test e i mittenti prima di inviare traffico.
  • Se l’integrazione lo consente, usa identificatori di test distinguibili da quelli di produzione.
  • Evita di includere dati personali non necessari nel contenuto, nei registri o negli screenshot.
  • Verifica che il team sappia come interrompere l’esecuzione se il traffico esce dall’ambito concordato.

Creare casi di test positivi e negativi

Un test utile non si limita a inviare un messaggio valido. Deve verificare anche il comportamento dell’integrazione in presenza di input non corretti, risposte inattese o interruzioni. La semantica HTTP è definita dalla RFC 9110, ma il significato di una risposta per il flusso SMS dipende anche dal contratto e dalla progettazione dell’integrazione.

Per ogni caso, registra il risultato previsto e le evidenze che consentiranno il confronto. Non inventare codici di errore e non presumere che un comportamento sia comune a tutti i fornitori: verifica i valori e le regole applicabili nella documentazione tecnica concordata.

  • Caso valido: campi obbligatori presenti e valori nel formato concordato.
  • Caso non valido: omissione di un campo obbligatorio o formato non accettato, secondo il contratto dell’interfaccia.
  • Rifiuto: richiesta non accettata dal fornitore; verifica che il client conservi e classifichi correttamente la risposta.
  • Timeout o interruzione: verifica come viene registrata l’incertezza e quale azione successiva è autorizzata; evita ritentativi automatici che potrebbero duplicare i messaggi in assenza di una regola concordata.
  • Limite di traffico: prova solo i volumi e le condizioni autorizzati, entro i limiti definiti dal progetto.

Verificare identificatori, callback e tracciabilità

Verifica che ogni invio possa essere collegato alla relativa risposta e agli eventi successivi inclusi nell’integrazione. Concorda quale identificatore viene restituito o generato da ciascun sistema, in quale fase viene registrato e come viene associato ai callback. Non presumere che gli identificatori abbiano lo stesso formato o lo stesso ambito sulle diverse piattaforme.

Testa anche i callback effettivamente configurati: ricezione, autenticità secondo il meccanismo concordato, gestione dei duplicati e registrazione degli errori di elaborazione. I comportamenti attesi devono essere definiti dalle specifiche e dall’accordo d’integrazione; il solo nome dell’evento non consente di dedurre una regola universale.

  • Collega richiesta, risposta e callback usando gli identificatori disponibili e documentati.
  • Registra data e ora, ambiente, destinatario di test, esito e versione della configurazione necessaria per riprodurre il caso.
  • Verifica che un callback non venga associato a un altro invio e che gli eventi ripetuti siano gestiti secondo la regola concordata.
  • Conserva le evidenze tecniche con controlli adeguati di accesso e conservazione, evitando di esporre segreti o dati non necessari.

Interpretare con cautela stati e DLR

Includi nella matrice gli stati concordati per l’integrazione e il fornitore, ma non considerarne universali le etichette. Documenta chi origina ciascuno stato, che cosa significa in quel sistema e quali incertezze rimangono. Se un evento non arriva, arriva in ritardo o non corrisponde al risultato previsto, registralo come discrepanza da verificare, non come conclusione automatica sul terminale.

Un DLR o uno stato comunicato da un fornitore non equivale necessariamente a una verifica indipendente che il destinatario abbia ricevuto il messaggio sul proprio dispositivo. Il test deve distinguere la coerenza del rapporto sullo stato da qualsiasi prova aggiuntiva di ricezione, se disponibile e accessibile.

  • Confronta gli stati osservati con la definizione documentata per quella specifica integrazione.
  • Registra gli eventi mancanti, in ritardo, ripetuti o difficili da correlare.
  • Non trasformare uno stato segnalato in una garanzia di ricezione sul terminale.

Misurare disponibilità e latenza senza estrapolare

Se si devono valutare disponibilità, latenza o coerenza, concorda il periodo di osservazione, i punti di misurazione, il campione di test e il metodo di calcolo di ogni metrica. Distingui il tempo di risposta dell’interfaccia dai tempi degli stati successivi: misurano fasi diverse.

Non esistono valori universali di latenza, disponibilità, dimensione del campione o limite di traffico applicabili come criteri di accettazione a tutti i progetti. Un campione piccolo e limitato a determinati destinatari non consente neppure di generalizzare le prestazioni future. Definisci le soglie con le parti in base all’uso previsto e all’accordo applicabile, precisando che cosa resta escluso dalla misurazione.

  • Indica il punto iniziale e quello finale di ogni misurazione.
  • Registra il periodo, il numero e l’ambito dei test, senza presentare il campione come rappresentativo se non lo è.
  • Quando i dati lo consentono, separa i risultati per interfaccia, destinatario e tipo di evento.
  • Confronta i risultati solo con criteri approvati prima di osservarli.

Concludere l’accettazione con evidenze e una decisione riproducibile

Raccogli i risultati in un registro che un’altra persona possa esaminare e riprodurre. Per ogni caso, includi la configurazione pertinente, i dati di test non sensibili, il risultato previsto, quello osservato, il riferimento alle evidenze, il responsabile e l’eventuale anomalia associata. Tieni separate le osservazioni dalle interpretazioni.

La decisione finale deve indicare che cosa è stato approvato, che cosa resta subordinato a condizioni e chi l’ha autorizzata. Se un test fallisce o non può essere eseguito, documenta il limite e concorda il passaggio successivo prima del cambio. Definisci esplicitamente la procedura di sospensione o annullamento insieme ai responsabili: nessuna condizione tecnica universale può sostituire questa decisione.

  • Conserva la matrice dei casi e il registro dei risultati in una posizione ad accesso controllato.
  • Classifica le anomalie in base all’impatto concordato e assegna un responsabile e una data di verifica.
  • Documenta i limiti di copertura del test e le dipendenze non verificate.
  • Registra l’approvazione, le condizioni ancora aperte e la procedura concordata per interrompere o annullare il cambio.
FAQ

Domande frequenti

Una risposta HTTP soddisfacente conferma che l’SMS è stato consegnato?

No. Conferma una risposta soddisfacente dell’interfaccia secondo la semantica HTTP applicabile. Da sola non dimostra che il messaggio sia arrivato al terminale.

Un DLR conferma che il destinatario ha ricevuto il messaggio sul proprio dispositivo?

Non va dato per scontato. Un DLR è uno stato segnalato dal sistema che lo emette e non equivale necessariamente a una verifica indipendente della ricezione sul terminale.

Quali soglie di latenza o disponibilità devo usare per approvare il fornitore?

Non esistono valori universali adatti a tutti i casi. Definisci con le parti il periodo, i punti di misurazione, l’ambito e le soglie in base all’uso previsto e all’accordo applicabile.

Che cosa devo testare prima del cambio?

Come minimo, concorda casi per input validi e non validi, risposte, timeout, limiti autorizzati, correlazione degli identificatori, callback e stati inclusi nell’integrazione. Aggiungi i criteri di approvazione e le condizioni per sospendere o annullare il cambio.

I test di accettazione garantiscono le prestazioni dopo la migrazione?

No. Descrivono il comportamento osservato in un determinato ambiente, ambito e periodo. Non garantiscono risultati futuri né consentono di generalizzare oltre le evidenze raccolte.

Fonti consultate

  1. SMPP Protocol Specification v3.4SMPP Developers Forum
  2. HTTP Semantics (RFC 9110)IETF
  3. 3GPP specifications by series3GPP
  4. E.164: The international public telecommunication numbering planInternational Telecommunication Union
  5. GSMA networks resourcesGSMA