Testing Moderno su Mobile: Strumenti e strategie per evitare bug e rilasciare con fiducia- Napoli DevFest 2025
LudovicoBesana
0 views
43 slides
Oct 12, 2025
Slide 1 of 74
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
About This Presentation
Bug critici, test instabili e rilasci rischiosi sono sfide quotidiane nello sviluppo mobile. Il testing efficace è la chiave per garantire applicazioni affidabili e performanti. In questo talk esploreremo strumenti e strategie avanzate per scrivere test solidi, ridurre il numero di falsi positivi e...
Bug critici, test instabili e rilasci rischiosi sono sfide quotidiane nello sviluppo mobile. Il testing efficace è la chiave per garantire applicazioni affidabili e performanti. In questo talk esploreremo strumenti e strategie avanzate per scrivere test solidi, ridurre il numero di falsi positivi e negativi, integrare il testing nel ciclo di sviluppo e prevenire i bug prima che raggiungano gli utenti.
Size: 60.54 MB
Language: it
Added: Oct 12, 2025
Slides: 43 pages
Slide Content
Testing Moderno su Mobile:
Strumenti e strategie per evitare bug
e rilasciare con fiducia
@ludovicobesana
SheTech Ambassador
Grafana & BrowserStack Champion
Startups Co-Founder
Open Source Contributor
Alcune passioni: , ,
Chi sono?
Event Organizer:
Coding Bunker
https://www.meetup.com/it-IT/coding-bunker/
Ministry of Testing Milan
https://www.meetup.com/it-it/mot-milan/
@ludovicobesana
Event Organizer:
Community Day
http://techcommunityday.it/
Zig Day
https://zig.day/europe/milano/
@ludovicobesana
“6,6 miliardi di utenti smartphone
nel mondo.”
Praticamente un telefono per ogni persona sul pianeta.
@ludovicobesana
“Gli americani controllano il
telefono 344 volte al giorno. Una
volta ogni quattro minuti.”
Dietro ogni tocco, c’è codice, test e rilasci. In un mercato che vale oltre
600 miliardi di dollari l’anno. La posta in gioco è altissima.
@ludovicobesana
Quindi… cosa
può andare storto?
@ludovicobesana
Beh… quasi tutto.
@ludovicobesana
@ludovicobesana
@ludovicobesana
Tre per capire
il testing mobile
@ludovicobesana
@ludovicobesana
@ludovicobesana
@ludovicobesana
Dispositivi: il caos
versione Android o iOS cambia il gioco.
Quello che funziona perfettamente su un iPhone 15 può
esplodere su un Galaxy del 2018.
1.
Native
2.
Hybrid
3.
Web
4.
PWA
@ludovicobesana
Le App: 4 modi di costruirle
La Rete: l’imprevedibile
passaggi 4G → 3G, modalità aereo.
Facebook Lite, per esempio, è progettata per funzionare anche
con 2G. Questo è vero design per il mondo reale.
@ludovicobesana
La nostra app è davvero pronta
per vivere in una tasca?
@ludovicobesana
Scopriamo il
Testing Moderno
@ludovicobesana
Dall’impossibile al realistico:
la Regola dell’85%
@ludovicobesana
@ludovicobesana
Copertura Intelligente
Analizza i dati reali (Firebase, Analytics).
Focalizzati sui 3–4 modelli più usati e sulle feature core.
• Usa cloud farms (Firebase Test Lab, BrowserStack).
@ludovicobesana
Performance e sostenibilità
non prosciugare la batteria, non saturare la RAM, e non bloccare
il thread principale.
Essere ‘un buon cittadino’ nel device dell’utente.
@ludovicobesana
La mentalità del tester mobile
ovunque.
Testare mobile significa entrare nel mondo dell’utente, con tutte
le sue interruzioni.
@ludovicobesana
Testing per il mondo reale
cade, app che passa in background.
L’obiettivo è la resilienza. Non solo funzionalità.
@ludovicobesana
Esperienze
dal mondo reale
@ludovicobesana
@ludovicobesana
“La qualità non si aggiunge alla
fine. Si costruisce nel flusso. E si
automatizza nel punto giusto.”
@ludovicobesana
Scelta dei tool
@ludovicobesana
@ludovicobesana
@ludovicobesana
Perché Storybook? I
veloci
Stati e varianti riproducibili con controlli e mock dei dati
Documentazione viva dei componenti con esempi interattivi
Visual test e snapshot per prevenire regressioni UI
@ludovicobesana
Perché Storybook? II
Facile toggle app ↔ Storybook via env var in Expo
Perfetto per Shift-Left: gira su simulatore e in CI
@ludovicobesana
@ludovicobesana
@ludovicobesana
Perché Bruno?
tuo filesystem
Git-native → Le collection sono file .bru, versionabili e leggibili in
diff
Script & Test integrati → Assertions in JavaScript per validare
response e performance
Compatibile con OpenAPI & Postman → Import/export senza
lock-in
@ludovicobesana
@ludovicobesana
Piccolo consiglio:
meno tool,
meglio tool.
@ludovicobesana
Ambienti di test realistici
Dispositivi reali: necessari per gesture, performance e sensori
Imposta locale, lingua, rete lenta, dark mode, font grandi
Snapshot/reset per ambienti deterministici
@ludovicobesana
Dati di test e reset
Reset app/state tra casi (wipe + reinstall, sandbox account)
Mock API per percorsi rari; no mock per critical flows
Generatore utenti/sessioni in utils/
@ludovicobesana
Scrivere test solidi
Usa Accessibility IDs invece di XPath.
Evita : preferisci .
Mantieni i test indipendenti e idempotenti.
utils/ pages/
sleep() waitForElementVisible()
@ludovicobesana
Flaky test ≠ flaky process
Quarantena automatica dei test instabili
Issue auto-create → fix entro 72 h
Monitoring flakiness rate > 2 % → blocco merge
Notturni dedicati alla flakiness + stress integration
@ludovicobesana
CI/CD Quality Gates
Parallelizza i test per device/version
Genera HTML/XML reports + screenshot
Imposta un Quality Gate nel CI:
Blocca merge se test falliscono
Copertura < 80% → alert
@ludovicobesana
@ludovicobesana
Stress & Chaos Testing
Per scoprire crash e comportamenti imprevisti utilizzo:
Android: Monkey genera eventi casuali (tap, swipe, rotazioni) →
stress test realistici
iOS:
SwiftMonkey (Zalando)
xcmonkey (open source)
adb shell monkey -p your.package.name -v 500
@ludovicobesana
Oltre il funzionale
stable.
Accessibilità: test con axe-core, Accessibility Scanner,
TalkBack, VoiceOver.
• Security: MobSF, OWASP Mobile Top 10.
@ludovicobesana
Cosa succede se la
mia App non è accessibile?
@ludovicobesana
@ludovicobesana
Dal , il European Accessibility Act
diventa obbligatorio per tutti i nuovi prodotti e
servizi digitali nell’UE.
Le aziende già operative dovranno adeguarsi entro il 28 giugno 2030.
28 giugno 2025
@ludovicobesana
E se le performance
non dovessero essere ottimali?
@ludovicobesana
@ludovicobesana
Come inizio
da zero?
@ludovicobesana
@ludovicobesana
@ludovicobesana
Perché Maestro?
Tolleranza nativa a flakiness e delay
Test interpretati = feedback istantaneo
Cross-platform: Android, iOS, RN, Flutter, WebView
@ludovicobesana