Quanto codice stai testando ? (5)

馃Л Dove eravamo rimasti Bentornati a questa nuova tappa del nostro viaggio nella misurazione della test coverage sui binari precompilati! Nel quarto capitolo abbiamo introdotto funkoverage, uno strumento nativo ad alte prestazioni basato su eBPF, che sfrutta uprobe_multi per catturare l鈥檌ngresso nelle funzioni in GNU/Linux con un overhead inferiore al 2%. Fino ad ora, le librerie statiche venivano scoperte all鈥檌nstallazione analizzando i binari con ldd (tramite le dipendenze DT_NEEDED). Tuttavia, c鈥檈ra un enorme elefante nella stanza: dlopen(). Alcuni dei software pi霉 complessi e modulari al mondo, come i web server con moduli dinamici, le applicazioni enterprise basate su plugin e i database multi-protocollo, caricano le proprie dipendenze a runtime, al volo. Poich茅 queste librerie non sono dichiarate nell鈥檋eader ELF DT_NEEDED, risultano invisibili a ldd durante l鈥檌nstallazione. Oggi diamo la caccia a questo fuggiasco tecnologico: scopriremo come lo abbiamo risolto con una strategia elegante ed estremamente scalabile, la strumentazione eBPF JIT event-driven, e la metteremo alla prova sul campo con binari di produzione reali e non modificati come Nginx e OpenSSL! ...

11 agosto 2026 路 Andrea Manzini

Quanto codice stai testando? (4)

馃Л Dove eravamo rimasti Benvenuti al nuovo capitolo della nostra serie dedicata alla misurazione della copertura dei test per i programmi binari! Nella parte 1 abbiamo utilizzato il flag -cover integrato in Go: pulito e preciso, ma funziona solo se si possiede il codice sorgente e lo si pu貌 ricompilare. Nella parte 2 abbiamo usato valgrind e gdb per tracciare gzip senza toccarne il sorgente. Nella parte 3 abbiamo esplorato Intel PIN, un vero e proprio framework di strumentazione binaria dinamica: potente, ma dotato di un SDK C++ proprietario da circa 100 MB e limitato a x86_64. ...

13 maggio 2026 路 Andrea Manzini

Dal mal di testa con QEMU alla modalit脿 Headless

馃樃 TL;DR Essendo pigro, ho creato uno strumento per eseguire immagini qcow2 a mia comodit脿. Ora supporta x86_64, aarch64, s390x e ppc64le. Sentitevi liberi di usarlo se lo trovate utile! 馃摉 La storia Se avete mai digitato qemu-system-x86_64 nel vostro terminale, conoscete bene la sensazione. Una paura strisciante. Un sudore freddo. Il mal di testa da QEMU. 脠 quella speciale emicrania riservata agli sviluppatori che sanno che passeranno i successivi dieci minuti a decifrare la cronologia della propria shell per ricordare quel flag magico per la rete. ...

28 settembre 2025 路 Andrea Manzini

Quanto codice stai testando? (1)

鈽傦笍 Introduzione Quando il vostro codice include una suite di unit test, la copertura del codice (code coverage) 猫 una metrica importante per misurare l鈥檈fficacia dei test ed 猫 piuttosto facile da ottenere; ci sono moltissimi strumenti in circolazione. Crediti immagine: Nataliya Vaitkevich D鈥檃ltra parte, spesso abbiamo anche bisogno di eseguire test di integrazione o E2E (end-to-end), poich茅 nei nostri flussi di QA eseguiamo principalmente applicazioni reali piuttosto che singole funzioni isolate. ...

23 febbraio 2025 路 Andrea Manzini

This site does not use cookies or collect any personal data. © 2026 Andrea Manzini.