Torna al blog Qualità e affidabilità

Come creare una matrice di test A2P SMS per destinazione, operatore, mittente e tipo di messaggio

Una guida operativa per progettare test A2P SMS ripetibili, registrare evidenze tecniche e confrontare le rotte senza confondere i DLR con la ricezione osservata sul terminale.

Matrice operativa di test A2P SMS con destinazioni, reti, mittenti e risultati di consegna

Perché un test isolato non convalida una rotta SMS

Un SMS inviato a un solo numero, su una sola rete e in un'unica fascia oraria descrive soltanto quel caso specifico. Non dimostra che la stessa rotta manterrà un comportamento comparabile con altri Paesi, reti di abbonamento, tipi di mittente, codifiche, lunghezze o contenuti legittimi.

Una matrice di test A2P SMS trasforma una verifica occasionale in un programma di valutazione ripetibile. Il suo obiettivo non è promettere la consegna né sostituire il monitoraggio in produzione: serve a generare evidenze comparabili per decidere quali rotte meritano maggiore osservazione, quali scenari richiedono indagini e in quali condizioni una rotta può essere valutata prima di ricevere altro traffico.

La disciplina principale consiste nel non estrapolare oltre il campione. Un risultato favorevole in una destinazione non convalida un intero Paese; un risultato favorevole su una rete non convalida necessariamente un'altra rete; e un DLR favorevole non prova da solo che una persona abbia visto il messaggio nell'interfaccia del proprio telefono.

  • Tratta ogni combinazione di variabili come una cella di test indipendente.
  • Mantieni una versione identificabile della matrice e di ogni caso eseguito.
  • Confronta solo celle equivalenti oppure documenta con precisione quale variabile è cambiata.
  • Separa i fatti osservati dalle dichiarazioni contrattuali, tecniche o commerciali di terze parti.
Perché un test isolato non convalida una rotta SMS

A cosa deve rispondere la matrice prima di spostare traffico in produzione

Prima di aumentare il traffico, la matrice deve rispondere a domande operative concrete. Quali combinazioni di destinazione, rete, mittente e contenuto sono state testate? Quali risultati sono stati osservati? Quante osservazioni comparabili esistono? Quali stati sono arrivati, in quale sequenza e con quale ritardo? Vi sono state differenze tra l'accettazione iniziale, i callback o i DLR e la ricezione osservata su un terminale di test?

Non tutte le decisioni richiedono lo stesso livello di evidenza. Una rotta in fase esplorativa può richiedere test controllati e revisione manuale. Una rotta che riceverà traffico sensibile, come OTP o notifiche transazionali, richiede una copertura dei casi più vicina al suo utilizzo reale, con limiti interni di rischio definiti dal team responsabile.

La matrice deve inoltre rendere visibili le aree non testate. L'assenza di un risultato non deve trasformarsi in un'inferenza positiva. Contrassegna le celle senza campione come non valutate, non come corrette.

  • Copertura: quali destinazioni, reti e scenari sono realmente rappresentati.
  • Ripetibilità: se lo stesso caso può essere eseguito e confrontato nuovamente.
  • Evidenza: cosa è avvenuto sulla piattaforma, cosa ha riportato il fornitore e cosa è stato osservato in modo indipendente.
  • Incertezza: cosa non può essere concluso a causa della dimensione del campione, dell'assenza di un terminale di test o della variazione delle condizioni.
  • Decisione: ampliare, mantenere sotto osservazione, sospendere o investigare.
A cosa deve rispondere la matrice prima di spostare traffico in produzione

Dimensioni fondamentali di una matrice di test A2P SMS

La progettazione inizia definendo le dimensioni che possono alterare il risultato. Normalizza il numero di destinazione in formato internazionale e conserva il Paese come campo esplicito. La Raccomandazione ITU-T E.164 è il riferimento appropriato per rappresentare la dimensione internazionale della numerazione.

Non dedurre l'operatore attuale soltanto dall'intervallo numerico. La portabilità mobile consente di mantenere l'MSISDN quando si cambia rete di abbonamento. È quindi opportuno distinguere l'operatore dedotto dall'intervallo, quando disponibile, dall'operatore o dalla rete di abbonamento osservati o confermati tramite una procedura autorizzata.

Registra il mittente esattamente come è stato sottoposto. Il tipo di mittente può essere alfanumerico, numerico o un altro formato consentito dal contesto tecnico e normativo applicabile. Non presumere che il comportamento di un mittente sia identico a quello di un altro, anche nella stessa destinazione.

  • Paese e destinazione in formato internazionale.
  • Rete mobile o rete di abbonamento, con la fonte dell'attribuzione.
  • Tipo di numerazione e stato noto di portabilità, se applicabile.
  • Rotta, connessione o configurazione oggetto della valutazione.
  • Mittente sottoposto e relativo formato.
  • Tipo di messaggio: OTP, transazionale o marketing autorizzato.
  • Codifica, alfabeto, lunghezza e concatenazione.
  • Finestra oraria e data di esecuzione.

Separa OTP, messaggi transazionali e marketing autorizzato

OTP, messaggi transazionali e marketing autorizzato non devono essere mescolati nella stessa conclusione operativa. Sebbene tutti utilizzino gli SMS, solitamente rispondono a diverse aspettative di contenuto, tempestività e tracciabilità. Un test deve rappresentare il caso d'uso legittimo che si intende valutare, senza riutilizzare indiscriminatamente lo stesso testo per tutti gli scenari.

Per gli OTP, utilizza testi di test inequivocabili, senza dati personali e senza codici che concedano accesso reale. Registra il momento dell'invio e l'osservazione sul terminale quando disponi di un dispositivo di test controllato. Per i messaggi transazionali, utilizza una notifica fittizia e chiaramente identificata come test. Per il marketing, limita le prove a numeri autorizzati e a contenuti conformi agli obblighi applicabili.

Questa separazione riduce le interpretazioni errate. Un risultato tecnico relativo a un breve messaggio di test non dimostra necessariamente il comportamento di un messaggio concatenato, con caratteri non GSM o con un mittente diverso.

  • OTP: testo di test breve, senza credenziali né accesso reale.
  • Transazionale: evento fittizio, identificabile e senza informazioni sensibili.
  • Marketing autorizzato: solo destinatari di test autorizzati e contenuto conforme.
  • Non combinare risultati tra categorie senza indicare che il caso d'uso è cambiato.

Seleziona i numeri di test in modo responsabile

Mantieni un inventario controllato di numeri di test con autorizzazione documentata a ricevere messaggi. Ogni numero deve avere un identificatore interno, Paese, formato internazionale, fonte dell'attribuzione della rete e, quando possibile, informazioni sulla possibilità di osservare la ricezione su un terminale controllato.

Non esporre numeri completi in report distribuiti ampiamente se non è necessario. Utilizza un identificatore interno o una versione mascherata nelle dashboard e riserva i dati operativi completi ai controlli di accesso appropriati.

Rivedi periodicamente l'inventario. Un numero può cambiare stato, dispositivo o rete di abbonamento. Se un risultato dipende da una condizione che non può più essere verificata, contrassegna quella cella come in attesa di aggiornamento.

  • Identificatore interno del numero di test.
  • Destinazione normalizzata e Paese.
  • Rete attribuita e metodo o data di attribuzione.
  • Stato dell'autorizzazione ai test.
  • Disponibilità di un terminale controllato per l'osservazione indipendente.
  • Data dell'ultima convalida dell'inventario.

Progetta casi che modificano una variabile alla volta

Un caso base permette di rilevare differenze senza confondere le cause. Definisci un messaggio di test legittimo, riconoscibile e privo di informazioni sensibili. Crea poi variazioni controllate: modifica la codifica, la lunghezza, il mittente o un elemento del contenuto, mantenendo costanti tutte le altre variabili.

La codifica deve essere una dimensione esplicita. La specifica 3GPP TS 23.038 contempla, tra le altre opzioni, l'alfabeto GSM a 7 bit, dati a 8 bit e UCS2 a 16 bit. Stabilisce inoltre che, con l'alfabeto GSM a 7 bit, un messaggio può contenere fino a 160 caratteri. La lunghezza, i caratteri utilizzati e la concatenazione possono modificare il trattamento tecnico del messaggio.

Includi casi a singola parte e casi concatenati quando sono rilevanti per il traffico previsto. Registra la configurazione richiesta e il risultato osservato; non dedurre la codifica finale dal testo visibile sul telefono.

  • Caso base: testo breve, identificabile e senza caratteri ambigui.
  • Variazione della codifica: testa il set di caratteri rilevante per il tuo traffico.
  • Variazione della lunghezza: una parte e, quando necessario, messaggio concatenato.
  • Variazione del mittente: valuta ogni mittente che verrà utilizzato.
  • Variazione del contenuto: modifica solo l'elemento che desideri investigare.
  • Finestra oraria: ripeti in fasce definite senza modificare altre condizioni.

Cosa misurare in ogni invio

La registrazione di ogni invio deve consentire di ricostruire l'intera sequenza. Conserva il momento della sottoposizione, il risultato dell'accettazione, gli identificatori di correlazione restituiti dall'interfaccia, tutti gli eventi di callback o DLR e qualsiasi osservazione indipendente sul terminale.

Gli identificatori sono essenziali. La specifica 3GPP TS 23.040 definisce elementi quali TP-Message-Reference e SMS-STATUS-REPORT, oltre a timestamp e stati associati. In un'integrazione HTTP o SMPP, l'identificatore esposto da ciascun sistema può essere diverso; documenta come viene correlato un identificatore cliente con l'identificatore del fornitore, il callback e l'osservazione di test.

Registra gli stati temporanei e gli errori, non solo un risultato finale semplificato. Il flusso SMS può prevedere indisponibilità temporanea, tentativi ripetuti o risultati successivi. Eliminare questi eventi intermedi impedisce di comprendere se una differenza dipenda dall'accettazione, dalla consegna, dalla notifica o dal ritardo nella reportistica.

  • Identificatore interno di esecuzione e versione del caso.
  • Timestamp della sottoposizione e risultato dell'accettazione.
  • Identificatori di correlazione disponibili.
  • Rotta o configurazione valutata.
  • Destinazione e mittente come sono stati sottoposti.
  • Codifica, lunghezza e numero previsto di parti.
  • Eventi DLR o callback: stato grezzo, ora di ricezione e payload conservato.
  • Osservazione del terminale: sì, no o non disponibile; ora e metodo di osservazione.

Un DLR inviato non equivale alla ricezione osservata sul terminale

Un DLR è un'evidenza tecnica preziosa, ma deve essere interpretato al livello corretto. TS 23.040 distingue SMS-SUBMIT, SMS-DELIVER, SMS-DELIVER-REPORT e SMS-STATUS-REPORT. Questi meccanismi descrivono eventi, conferme e risultati di trasferimento; non definiscono un evento di lettura da parte della persona destinataria.

Classifica le evidenze per evitare affermazioni eccessive. L'accettazione conferma che un'interfaccia ha accettato l'invio secondo le proprie condizioni. Un callback o DLR conferma che è stato ricevuto un report con uno stato e un orario. L'osservazione indipendente su un terminale controllato conferma che il messaggio è stato visto su quel dispositivo e in quel momento, se la correlazione con l'invio è solida. Nessun livello dimostra da solo consenso, identità, titolarità del numero o lettura da parte di un utente finale.

Quando non esiste un'osservazione sul terminale, riporta il risultato come stato segnalato, non come ricezione verificata. Quando esiste, conserva il metodo di verifica e l'identificatore che collega l'osservazione all'invio specifico.

  • Livello 1: accettazione dell'invio da parte dell'interfaccia.
  • Livello 2: DLR o callback ricevuto e conservato.
  • Livello 3: ricezione osservata su un terminale di test controllato.
  • Non equiparare la ricezione osservata alla lettura umana, al consenso o all'identità.
  • Non presentare un DLR come garanzia universale di consegna.
FAQ

Domande frequenti

Quanti invii richiede una matrice di test A2P SMS?

Non esiste un numero universale che renda conclusivo un campione. Definiscilo in base al rischio operativo, alle destinazioni, alle reti, al tipo di messaggio e alla variabilità che devi osservare. L'importante è conservare la dimensione del campione per cella e non confrontare come equivalenti celle con copertura o condizioni differenti.

Un DLR con stato consegnato prova che l'SMS è arrivato sul telefono?

Non da solo. Un DLR è un report tecnico di stato e deve essere conservato come evidenza di quel livello. La ricezione osservata su un terminale di test controllato è un'evidenza distinta. Nessuna delle due prova da sola che una persona abbia letto il messaggio.

HLR Lookup deve essere incluso nella matrice?

Può essere registrato come fonte di contesto quando il suo utilizzo è autorizzato, ma non deve essere trattato come prova di consenso, identità, titolarità del numero, rotta reale o consegna. La portabilità mobile può separare l'intervallo numerico dalla rete di abbonamento attuale.

Perché è necessario testare caratteri e messaggi lunghi?

Perché la codifica e l'alfabeto sono variabili tecniche esplicite. TS 23.038 contempla GSM a 7 bit, dati a 8 bit e UCS2 a 16 bit, e la lunghezza può richiedere concatenazione. Un risultato con un testo breve non convalida automaticamente un altro contenuto o una lunghezza diversa.

Fonti consultate

  1. ITU-T Recommendation E.164 — The international public telecommunication numbering planInternational Telecommunication Union
  2. 3GPP TS 23.040 / ETSI TS 123 040 V16.0.0 — Technical realization of the Short Message Service (SMS)ETSI / 3GPP
  3. 3GPP TS 23.038 / ETSI TS 123 038 V16.0.0 — Alphabets and language-specific informationETSI / 3GPP
  4. 3GPP TS 23.066 / ETSI TS 123 066 V16.0.0 — Support of Mobile Number Portability (MNP); Technical realization; Stage 2ETSI / 3GPP
  5. 3GPP specification portal — TS 23.040, Technical realization of the Short Message Service (SMS)3GPP
  6. 3GPP specification portal — SMS specifications including TS 23.038, TS 23.039 and TS 23.0403GPP