{"id":27222,"date":"2024-04-24T14:31:45","date_gmt":"2024-04-24T12:31:45","guid":{"rendered":"https:\/\/www.codemotion.com\/magazine\/?p=27222"},"modified":"2024-05-02T17:41:50","modified_gmt":"2024-05-02T15:41:50","slug":"test-driven-development-agile","status":"publish","type":"post","link":"https:\/\/www.codemotion.com\/magazine\/it\/devops-it\/test-driven-development-agile\/","title":{"rendered":"Test Driven Development: Il primo passo verso l&#8217;Eccellenza Tecnica"},"content":{"rendered":"\n<p>Se c&#8217;\u00e8 una cosa che Martin Fowler e Kent Beck hanno in comune, oltre alla loro indiscutibile genialit\u00e0 nel mondo della programmazione, \u00e8 la loro passione per un approccio rivoluzionario alla scrittura del codice: il <strong>Test-Driven Development<\/strong>, o TDD, \u00e8 sicuramente una delle pratiche che li accomuna e che entrambi hanno sempre sostenuto.<\/p>\n\n\n\n<p>Viviamo in un mondo dove i mostri sacri della programmazione ci sussurrano all&#8217;orecchio quelle che si sono dimostrate le migliori pratiche per sviluppare software durante gli anni, ed \u00e8 una fortuna incommensurabile. <\/p>\n\n\n\n<p>Come ho gi\u00e0 scritto in passato <a href=\"https:\/\/www.codemotion.com\/magazine\/it\/devops-it\/cloud-it\/programmazione-ad-oggetti-ci-sembra-cosi-complicata\/\" target=\"_blank\" aria-label=\" (opens in a new tab)\" rel=\"noreferrer noopener\" class=\"ek-link\">su questo blog<\/a>, non si pu\u00f2 essere agili senza eccellenza tecnica: per supportare i business nell&#8217;essere veloci a rispondere, dobbiamo noi per primi essere veloci a mandare codice in produzione. <\/p>\n\n\n\n<p>Tra le varie pratiche che abilitano l&#8217;eccellenza tecnica c&#8217;\u00e8 sicuramente il TDD, che ha un vantaggio rispetto alle altre: \u00e8 individuale, ovvero possiamo introdurla nel nostro lavoro senza che il resto del team debba allinearsi a noi o concordare &#8211; e questo la rende la pratica pi\u00f9 semplice da introdurre per migliorare il nostro lavoro quotidiano.<\/p>\n\n\n\n<p><strong>Cos\u2019\u00e8 il TDD<\/strong><\/p>\n\n\n\n<p>Il TDD \u00e8 una metodologia di sviluppo che si basa sul principio fondamentale di scrivere test prima di scrivere il codice di produzione, ma la defizione migliore ce la da Martin Fowler nel <a href=\"https:\/\/martinfowler.com\/bliki\/TestDrivenDevelopment.html\" target=\"_blank\" aria-label=\" (opens in a new tab)\" rel=\"noreferrer noopener\" class=\"ek-link\">suo articolo<\/a> sul tema:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>Test-Driven Development (TDD) is a technique for building software that guides software development by writing tests.<\/p>\n<cite>Martin Fowler<\/cite><\/blockquote>\n\n\n\n<p>Il TDD non ci chiede semplicemente di scrivere prima i test, anzi &#8211; quello \u00e8 solo un pezzo del puzzle. Lo scopo del TDD \u00e8 guidare le scelte che prendiamo nel software tramite la scrittura dei test, per ottenere l&#8217;obiettivo finale del TDD: &#8220;clean code that works&#8221;, ovvero &#8220;codice pulito che funziona&#8221;.<\/p>\n\n\n\n<p>Per ottenere questo obiettivo, il TDD ci suggerisce di seguire un ciclo di sviluppo semplice e chiaro, noto come &#8220;<strong>Red-Green-Refactor<\/strong>&#8220;: si inizia con la scrittura di un test che fallisce (rosso), seguito dall&#8217;implementazione del codice per far passare il test (verde), e infine dalla rifattorizzazione del codice per renderlo pi\u00f9 pulito e manutenibile (refactor).<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"619\" height=\"682\" src=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/04\/img1.png\" alt=\"TDD cycle, agile, best practice. Test driven development.\" class=\"wp-image-27294\" srcset=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/04\/img1.png 619w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/04\/img1-272x300.png 272w\" sizes=\"auto, (max-width: 619px) 100vw, 619px\" \/><\/figure>\n\n\n\n<p>Ma cosa vuol dire tutto ci\u00f2 nella pratica? Per prima cosa, vediamo pi\u00f9 nel dettaglio il ciclo di sviluppo <a href=\"https:\/\/tidyfirst.substack.com\/p\/canon-tdd\" target=\"_blank\" aria-label=\" (opens in a new tab)\" rel=\"noreferrer noopener\" class=\"ek-link\">TDD canonico<\/a> descritto da Kent Beck, con l&#8217;aggiunta di qualche pezzo fondamentale che troppo spesso ci si dimentica:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Scrivi una lista degli scenari di test che vuoi coprire per il nuovo comportamento da aggiungere al tuo software<\/li>\n\n\n\n<li>Prendi un elemento dalla lista e trasformalo in un test, che fallir\u00e0 perch\u00e8 quel comportamento ancora non esiste<\/li>\n\n\n\n<li>Cambia il codice di produzione per implementare quel comportamento, in modo che il nuovo test diventi verde (e i precedenti lo rimangano)\n<ul class=\"wp-block-list\">\n<li>Durante il processo potresti scoprire nuovi scenari di test che vuoi coprire: se succede, aggiungili alla lista del punto 1<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Migliora il tuo design facendo un p\u00f2 di refactoring, assicurandoti che i test rimangano verdi<\/li>\n\n\n\n<li>Ripeti dal punto 2 finch\u00e8 la lista non \u00e8 vuota<\/li>\n<\/ol>\n\n\n\n<p>Alcune riflessioni su questo processo:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>la lista di scenari di test serve a rendere esplicite due informazioni fondamentali:\n<ul class=\"wp-block-list\">\n<li>il comportamento atteso dal nostro software (quando i test sono versi, il comportamento \u00e8 stato ottenuto)<\/li>\n\n\n\n<li>il progresso del nostro lavoro (quando la lista \u00e8 vuota, abbiamo finito)<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>il processo guida le nostre scelte di design perch\u00e8 scriviamo il test prima del codice, quindi invocheremo classi e metodi che ancora non esistono, decidendone il nome e la struttura durante la scrittura dei test<\/li>\n<\/ul>\n\n\n\n<p>Infine, uno zoom ulteriore sul ciclo RED-GREEN-REFACTOR in relazione all&#8217;obiettivo del TDD, che abbiamo detto essere &#8220;codice pulito che funziona&#8221;: ottenere questo risultato in un unico flusso di scrittura di codice \u00e8 molto difficile; il ciclo TDD ci vuole portare a quest&#8217;obiettivo dividendolo in step pi\u00f9 piccoli, in modo che sia semplice:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>nello step rosso, scriviamo un codice che non funziona<\/li>\n\n\n\n<li>nello step verde, scriviamo un &#8220;codice che funziona&#8221;: non ci preoccupa il design, ci va bene anche una soluzione non bella purch\u00e8 funzioni, lo scopo \u00e8 rendere il test verde pi\u00f9 velocemente possibile perch\u00e8 il test verde ci da sicurezza psicologica e senso di progresso<\/li>\n\n\n\n<li>nello step di refactor, infine, ci occupiamo solo ed esclusivamente di rendere il nostro codice &#8220;pulito&#8221; andandone a migliorare e ripulire il design; nel farlo, i test devono rimanere verdi in modo da assicurarci che il codice continui a funzionare<\/li>\n<\/ul>\n\n\n\n<p>Grazie a questo approccio, otteniamo con molta meno fatica cognitiva l&#8217;agognato risultato di &#8220;codice pulito che funziona&#8221;. <\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"991\" height=\"737\" src=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/04\/img2.png\" alt=\"TDD cycle 2. best practice, agile, test driven development.\" class=\"wp-image-27295\" srcset=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/04\/img2.png 991w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/04\/img2-300x223.png 300w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/04\/img2-768x571.png 768w\" sizes=\"auto, (max-width: 991px) 100vw, 991px\" \/><\/figure>\n\n\n\n<p>Infine, \u00e8 importante riflettere sul fatto che un ciclo TDD dovrebbe ripetersi ogni x secondi, quindi meno di un minuto: se scrivere un test o implementare un test rosso ci occupano svariati minuti, dovremmo fare un passo indietro e scrivere un test diverso, pi\u00f9 piccolo, che ci permetta di fare progresso velocemente. <\/p>\n\n\n\n<p>Questo approccio risulta fondamentale sopratutto quando il problema che abbiamo davanti ci \u00e8 poco familiare e dobbiamo &#8220;scoprire&#8221; la soluzione, perch\u00e8 pi\u00f9 i nostri step sono piccoli pi\u00f9 il TDD ci guider\u00e0 verso una soluzione &#8211; al contrario, quando abbiamo gi\u00e0 chiara una implementazione che ci soddisfa, possiamo fare step un poco pi\u00f9 lunghi con sicurezza.<\/p>\n\n\n\n<p><strong>L&#8217;impatto del TDD nella mia carriera<\/strong><\/p>\n\n\n\n<p>Personalmente, il TDD ha avuto un impatto enorme sulla mia carriera di sviluppatore software. Innanzitutto, ha migliorato notevolmente la qualit\u00e0 del mio lavoro quotidiano. Scrivendo test prima di implementare il codice, sono in grado di identificare e correggere gli errori in modo tempestivo, riducendo cos\u00ec il rischio di bug e migliorando complessivamente l&#8217;affidabilit\u00e0 del mio software.<\/p>\n\n\n\n<p>Inoltre, il TDD ha anche migliorato la qualit\u00e0 dei miei test stessi. Essendo costretto a scrivere test che coprono tutti gli aspetti del mio codice, ho imparato a scrivere test pi\u00f9 robusti e significativi, garantendo una maggiore copertura dei casi edge e una maggiore sicurezza nei miei test.<\/p>\n\n\n\n<p>Uno degli aspetti pi\u00f9 importanti del TDD \u00e8 la facilit\u00e0 di cambiare e mantenere il codice. Poich\u00e9 il codice \u00e8 scritto per essere testabile fin dall&#8217;inizio, \u00e8 molto pi\u00f9 facile apportare modifiche e aggiornamenti in futuro senza temere di rompere il software esistente.<\/p>\n\n\n\n<p>Infine, il TDD ha portato maggiore sicurezza, produttivit\u00e0 ed efficacia nel mio lavoro. Con un set completo di test a supporto del mio codice, ho la tranquillit\u00e0 di sapere che il mio software funziona come previsto e posso concentrarmi su nuove funzionalit\u00e0 e miglioramenti senza preoccuparmi di regressioni o bug inaspettati.<\/p>\n\n\n\n<p>I due feedback fondamentali sul fatto che il TDD abbiamo rivoluzionato la mia carriera (in positivo) sono stati due:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>in primis, il tempo che investo sugli imprevisti come bug, defects e problemi in produzione legati a codice scritto da me si \u00e8 ridotto drasticamente, quasi a zero in alcuni casi: il codice che scrivo \u00e8 affidabile e fa quello che deve fare<\/li>\n\n\n\n<li>in secondo luogo, quando sono stato Tech Lead di un team e avevo quindi meno tempo da dedicare al codice, essere in grado di utilizzare il ciclo TDD, che ti permette di fare progresso anche solo in un minuto (perch\u00e8 un ciclo TDD deve durare idealmente pochi secondi), mi ha permesso di sfruttare al meglio tutti i momenti liberi che avevo per programmare, anche quando erano solo 10\/15 minuti<\/li>\n<\/ul>\n\n\n\n<p>Non posso che suggerire a tutti di avvicinarsi a questa pratica, perch\u00e8 ti permette di ottenere un risultato di qualit\u00e0 elevata nel codice con uno sforzo nettamente minore rispetto a quello necessario per ottenere lo stesso risultato senza TDD.<\/p>\n\n\n\n<p><strong>Come imparare il TDD<\/strong><\/p>\n\n\n\n<p>Se sei interessato a imparare il TDD, ci sono diverse risorse disponibili. Il migliore punto di partenza \u00e8 il libro di Kent Beck, &#8220;<em><a href=\"https:\/\/amzn.to\/49NfyxZ\" target=\"_blank\" aria-label=\" (opens in a new tab)\" rel=\"noreferrer noopener\" class=\"ek-link\">Test-Driven Development by Example<\/a><\/em>&#8220;, che offre una guida pratica e dettagliata alla pratica del TDD. Questo libro \u00e8 cos\u00ec ben scritto che \u00e8 utile persino rileggerlo di tanto in tanto anche per chi gi\u00e0 conosce la pratica, perch\u00e8 c&#8217;\u00e8 sempre qualcosa di nuovo da scoprire.<\/p>\n\n\n\n<p>Aggiungo per\u00f2 un secondo libro, quello che ha avuto maggiore impatto sulla mia carriera: &#8220;<em><a href=\"https:\/\/amzn.to\/3Ua1Rn4\" target=\"_blank\" aria-label=\" (opens in a new tab)\" rel=\"noreferrer noopener\" class=\"ek-link\">Agile Technical Practices Distilled<\/a><\/em>&#8220;, un libro che fornisce una panoramica approfondita delle pratiche tecniche agili, inclusa una sezione dedicata al TDD ad inizio libro davvero efficace e ben scritta. \u00c8 un libro scritto con l&#8217;intento di insegnare, e ottiene a pieno il suo scopo.<\/p>\n\n\n\n<p>Oltre alla lettura, \u00e8 importante praticare il TDD attraverso esercizi pratici, noti come &#8220;katas&#8221;. I katas sono esercizi di programmazione che ti sfidano a risolvere problemi specifici utilizzando il TDD. Praticare regolarmente i katas ti aiuter\u00e0 a sviluppare e rafforzare le tue abilit\u00e0 di TDD nel tempo. Comincia da kata semplici, come i classici FizzBuzz e Leap Year, in modo da poterti concentrare sulla pratica specifica, e poi alza il livello a mano a mano che diventi confidente.<\/p>\n\n\n\n<p>Ti suggerisco anche i video di Emily Bache, una technical coach focalizzata sulle pratiche agili che fa video che servono proprio a fare learning su questi temi: in <a href=\"https:\/\/www.youtube.com\/watch?v=lIRF8MgyXho\" target=\"_blank\" aria-label=\" (opens in a new tab)\" rel=\"noreferrer noopener\" class=\"ek-link\">questo video<\/a>, ad esempio, Emily svolge il kata &#8220;12 days of XMas&#8221; in TDD, passo dopo passo, spiegando la pratica in modo eccezionale.<\/p>\n\n\n\n<p>In conclusione, il TDD \u00e8 una pratica potente che pu\u00f2 portare enormi benefici alla tua carriera di sviluppatore software. Imparare il TDD richiede impegno e pratica costante, ma i risultati ne valgono sicuramente la pena. Inizia oggi stesso il tuo viaggio nel mondo del Test-Driven Development e scopri il potenziale che questa pratica ha da offrire.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p>Se questo articolo ti \u00e8 piaciuto, sappi che \u00e8 parte di una serie mensile a tema Agile, il che significa che puoi&nbsp;<a href=\"https:\/\/www.codemotion.com\/magazine\/it\/\" target=\"_blank\" aria-label=\" (opens in a new tab)\" rel=\"noreferrer noopener\" class=\"ek-link\">recuperare i precedenti<\/a>&nbsp;e che ne arriveranno altri nei prossimi mesi! In pi\u00f9, se ti piace il mio stile, dai un occhiata a Learn Agile Practices, il mio ecosistema di contenuti online nei quali parlo di pratiche e metodologie Agile come TDD, CI, CD e molto altro a tema programmazione.<\/p>\n\n\n\n<p>Scopri tutto su&nbsp;<a href=\"https:\/\/www.learnagilepractices.com\/\" target=\"_blank\" rel=\"noreferrer noopener\" class=\"ek-link\">learnagilepractices.com<\/a>&nbsp;e seguimi su&nbsp;<a href=\"https:\/\/www.linkedin.com\/in\/daniele-scillia\/\" target=\"_blank\" rel=\"noreferrer noopener\" class=\"ek-link\">LinkedIn<\/a>!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Se c&#8217;\u00e8 una cosa che Martin Fowler e Kent Beck hanno in comune, oltre alla loro indiscutibile genialit\u00e0 nel mondo della programmazione, \u00e8 la loro passione per un approccio rivoluzionario alla scrittura del codice: il Test-Driven Development, o TDD, \u00e8 sicuramente una delle pratiche che li accomuna e che entrambi hanno sempre sostenuto. Viviamo in&#8230; <a class=\"more-link\" href=\"https:\/\/www.codemotion.com\/magazine\/it\/devops-it\/test-driven-development-agile\/\">Read more<\/a><\/p>\n","protected":false},"author":194,"featured_media":27298,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_editorskit_title_hidden":false,"_editorskit_reading_time":0,"_editorskit_is_block_options_detached":false,"_editorskit_block_options_position":"{}","_uag_custom_page_level_css":"","_genesis_hide_title":false,"_genesis_hide_breadcrumbs":false,"_genesis_hide_singular_image":false,"_genesis_hide_footer_widgets":false,"_genesis_custom_body_class":"","_genesis_custom_post_class":"","_genesis_layout":"","footnotes":""},"categories":[10287],"tags":[12048],"collections":[11708],"class_list":{"0":"post-27222","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-devops-it","8":"tag-test-driven-development","9":"collections-dalla-community","10":"entry"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.9 (Yoast SEO v26.9) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Cos&#039;\u00e8 il Test Driven Development - Codemotion Magazine<\/title>\n<meta name=\"description\" content=\"In questo articolo, l&#039;autore riflette sull&#039;importanza del TDD (Test Driven Development) come best practice. Leggi per scoprire di pi\u00f9!\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.codemotion.com\/magazine\/it\/devops-it\/test-driven-development-agile\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Test Driven Development: Il primo passo verso l&#039;Eccellenza Tecnica\" \/>\n<meta property=\"og:description\" content=\"In questo articolo, l&#039;autore riflette sull&#039;importanza del TDD (Test Driven Development) come best practice. Leggi per scoprire di pi\u00f9!\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.codemotion.com\/magazine\/it\/devops-it\/test-driven-development-agile\/\" \/>\n<meta property=\"og:site_name\" content=\"Codemotion Magazine\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/Codemotion.Italy\/\" \/>\n<meta property=\"article:published_time\" content=\"2024-04-24T12:31:45+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-05-02T15:41:50+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/04\/DALL\u00b7E-2024-04-24-14.30.53-A-minimalistic-drawing-style-cover-design-for-a-tech-magazine-focusing-on-the-theme-of-Test-Driven-Development-without-any-text.-The-image-should-b.webp\" \/>\n\t<meta property=\"og:image:width\" content=\"1792\" \/>\n\t<meta property=\"og:image:height\" content=\"1024\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/webp\" \/>\n<meta name=\"author\" content=\"danthedev\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@danielescillia\" \/>\n<meta name=\"twitter:site\" content=\"@CodemotionIT\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"danthedev\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"8 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/it\/devops-it\/test-driven-development-agile\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/it\/devops-it\/test-driven-development-agile\/\"},\"author\":{\"name\":\"danthedev\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/ad992babe79ce1c495801784b71eedda\"},\"headline\":\"Test Driven Development: Il primo passo verso l&#8217;Eccellenza Tecnica\",\"datePublished\":\"2024-04-24T12:31:45+00:00\",\"dateModified\":\"2024-05-02T15:41:50+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/it\/devops-it\/test-driven-development-agile\/\"},\"wordCount\":1587,\"publisher\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/it\/devops-it\/test-driven-development-agile\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/04\/DALL\u00b7E-2024-04-24-14.30.53-A-minimalistic-drawing-style-cover-design-for-a-tech-magazine-focusing-on-the-theme-of-Test-Driven-Development-without-any-text.-The-image-should-b.webp\",\"keywords\":[\"Test Driven Development\"],\"articleSection\":[\"DevOps\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/it\/devops-it\/test-driven-development-agile\/\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/it\/devops-it\/test-driven-development-agile\/\",\"name\":\"Cos'\u00e8 il Test Driven Development - Codemotion Magazine\",\"isPartOf\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/it\/devops-it\/test-driven-development-agile\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/it\/devops-it\/test-driven-development-agile\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/04\/DALL\u00b7E-2024-04-24-14.30.53-A-minimalistic-drawing-style-cover-design-for-a-tech-magazine-focusing-on-the-theme-of-Test-Driven-Development-without-any-text.-The-image-should-b.webp\",\"datePublished\":\"2024-04-24T12:31:45+00:00\",\"dateModified\":\"2024-05-02T15:41:50+00:00\",\"description\":\"In questo articolo, l'autore riflette sull'importanza del TDD (Test Driven Development) come best practice. Leggi per scoprire di pi\u00f9!\",\"breadcrumb\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/it\/devops-it\/test-driven-development-agile\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.codemotion.com\/magazine\/it\/devops-it\/test-driven-development-agile\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/it\/devops-it\/test-driven-development-agile\/#primaryimage\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/04\/DALL\u00b7E-2024-04-24-14.30.53-A-minimalistic-drawing-style-cover-design-for-a-tech-magazine-focusing-on-the-theme-of-Test-Driven-Development-without-any-text.-The-image-should-b.webp\",\"contentUrl\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/04\/DALL\u00b7E-2024-04-24-14.30.53-A-minimalistic-drawing-style-cover-design-for-a-tech-magazine-focusing-on-the-theme-of-Test-Driven-Development-without-any-text.-The-image-should-b.webp\",\"width\":1792,\"height\":1024,\"caption\":\"Test Driven Development. Agile. best practices.\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/it\/devops-it\/test-driven-development-agile\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.codemotion.com\/magazine\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"DevOps\",\"item\":\"https:\/\/www.codemotion.com\/magazine\/it\/devops-it\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Test Driven Development: Il primo passo verso l&#8217;Eccellenza Tecnica\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#website\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/\",\"name\":\"Codemotion Magazine\",\"description\":\"We code the future. Together\",\"publisher\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.codemotion.com\/magazine\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#organization\",\"name\":\"Codemotion\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/codemotionlogo.png\",\"contentUrl\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/codemotionlogo.png\",\"width\":225,\"height\":225,\"caption\":\"Codemotion\"},\"image\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/Codemotion.Italy\/\",\"https:\/\/x.com\/CodemotionIT\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/ad992babe79ce1c495801784b71eedda\",\"name\":\"danthedev\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2023\/10\/profile-pic-150x150.png\",\"contentUrl\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2023\/10\/profile-pic-150x150.png\",\"caption\":\"danthedev\"},\"description\":\"XP Advocate, Agile practices and methodologies enthusiast, driven from his passion for Software Development. I am deeply passionate about Extreme Programming and Agile methodologies and practices, believing that they allow software development teams to be more effective and aim for technical excellence. I enjoy investing time to stay updated on new technologies and methodologies and improve my skills: I consider continuous improvement extremely important and I approach it through books, courses, conferences, meetups, and continuous training; my ideal company promotes and encourages this approach.\",\"sameAs\":[\"https:\/\/danthedev.carrd.co\/\",\"https:\/\/www.linkedin.com\/in\/daniele-scillia\/\",\"https:\/\/x.com\/danielescillia\",\"https:\/\/www.youtube.com\/channel\/UCow5aybmZhzR7HbPf8JmcmA\"],\"url\":\"https:\/\/www.codemotion.com\/magazine\/author\/danthedev\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Cos'\u00e8 il Test Driven Development - Codemotion Magazine","description":"In questo articolo, l'autore riflette sull'importanza del TDD (Test Driven Development) come best practice. Leggi per scoprire di pi\u00f9!","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.codemotion.com\/magazine\/it\/devops-it\/test-driven-development-agile\/","og_locale":"en_US","og_type":"article","og_title":"Test Driven Development: Il primo passo verso l'Eccellenza Tecnica","og_description":"In questo articolo, l'autore riflette sull'importanza del TDD (Test Driven Development) come best practice. Leggi per scoprire di pi\u00f9!","og_url":"https:\/\/www.codemotion.com\/magazine\/it\/devops-it\/test-driven-development-agile\/","og_site_name":"Codemotion Magazine","article_publisher":"https:\/\/www.facebook.com\/Codemotion.Italy\/","article_published_time":"2024-04-24T12:31:45+00:00","article_modified_time":"2024-05-02T15:41:50+00:00","og_image":[{"width":1792,"height":1024,"url":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/04\/DALL\u00b7E-2024-04-24-14.30.53-A-minimalistic-drawing-style-cover-design-for-a-tech-magazine-focusing-on-the-theme-of-Test-Driven-Development-without-any-text.-The-image-should-b.webp","type":"image\/webp"}],"author":"danthedev","twitter_card":"summary_large_image","twitter_creator":"@danielescillia","twitter_site":"@CodemotionIT","twitter_misc":{"Written by":"danthedev","Est. reading time":"8 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.codemotion.com\/magazine\/it\/devops-it\/test-driven-development-agile\/#article","isPartOf":{"@id":"https:\/\/www.codemotion.com\/magazine\/it\/devops-it\/test-driven-development-agile\/"},"author":{"name":"danthedev","@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/ad992babe79ce1c495801784b71eedda"},"headline":"Test Driven Development: Il primo passo verso l&#8217;Eccellenza Tecnica","datePublished":"2024-04-24T12:31:45+00:00","dateModified":"2024-05-02T15:41:50+00:00","mainEntityOfPage":{"@id":"https:\/\/www.codemotion.com\/magazine\/it\/devops-it\/test-driven-development-agile\/"},"wordCount":1587,"publisher":{"@id":"https:\/\/www.codemotion.com\/magazine\/#organization"},"image":{"@id":"https:\/\/www.codemotion.com\/magazine\/it\/devops-it\/test-driven-development-agile\/#primaryimage"},"thumbnailUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/04\/DALL\u00b7E-2024-04-24-14.30.53-A-minimalistic-drawing-style-cover-design-for-a-tech-magazine-focusing-on-the-theme-of-Test-Driven-Development-without-any-text.-The-image-should-b.webp","keywords":["Test Driven Development"],"articleSection":["DevOps"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.codemotion.com\/magazine\/it\/devops-it\/test-driven-development-agile\/","url":"https:\/\/www.codemotion.com\/magazine\/it\/devops-it\/test-driven-development-agile\/","name":"Cos'\u00e8 il Test Driven Development - Codemotion Magazine","isPartOf":{"@id":"https:\/\/www.codemotion.com\/magazine\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.codemotion.com\/magazine\/it\/devops-it\/test-driven-development-agile\/#primaryimage"},"image":{"@id":"https:\/\/www.codemotion.com\/magazine\/it\/devops-it\/test-driven-development-agile\/#primaryimage"},"thumbnailUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/04\/DALL\u00b7E-2024-04-24-14.30.53-A-minimalistic-drawing-style-cover-design-for-a-tech-magazine-focusing-on-the-theme-of-Test-Driven-Development-without-any-text.-The-image-should-b.webp","datePublished":"2024-04-24T12:31:45+00:00","dateModified":"2024-05-02T15:41:50+00:00","description":"In questo articolo, l'autore riflette sull'importanza del TDD (Test Driven Development) come best practice. Leggi per scoprire di pi\u00f9!","breadcrumb":{"@id":"https:\/\/www.codemotion.com\/magazine\/it\/devops-it\/test-driven-development-agile\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.codemotion.com\/magazine\/it\/devops-it\/test-driven-development-agile\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.codemotion.com\/magazine\/it\/devops-it\/test-driven-development-agile\/#primaryimage","url":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/04\/DALL\u00b7E-2024-04-24-14.30.53-A-minimalistic-drawing-style-cover-design-for-a-tech-magazine-focusing-on-the-theme-of-Test-Driven-Development-without-any-text.-The-image-should-b.webp","contentUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/04\/DALL\u00b7E-2024-04-24-14.30.53-A-minimalistic-drawing-style-cover-design-for-a-tech-magazine-focusing-on-the-theme-of-Test-Driven-Development-without-any-text.-The-image-should-b.webp","width":1792,"height":1024,"caption":"Test Driven Development. Agile. best practices."},{"@type":"BreadcrumbList","@id":"https:\/\/www.codemotion.com\/magazine\/it\/devops-it\/test-driven-development-agile\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.codemotion.com\/magazine\/"},{"@type":"ListItem","position":2,"name":"DevOps","item":"https:\/\/www.codemotion.com\/magazine\/it\/devops-it\/"},{"@type":"ListItem","position":3,"name":"Test Driven Development: Il primo passo verso l&#8217;Eccellenza Tecnica"}]},{"@type":"WebSite","@id":"https:\/\/www.codemotion.com\/magazine\/#website","url":"https:\/\/www.codemotion.com\/magazine\/","name":"Codemotion Magazine","description":"We code the future. Together","publisher":{"@id":"https:\/\/www.codemotion.com\/magazine\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.codemotion.com\/magazine\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.codemotion.com\/magazine\/#organization","name":"Codemotion","url":"https:\/\/www.codemotion.com\/magazine\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/logo\/image\/","url":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/codemotionlogo.png","contentUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/codemotionlogo.png","width":225,"height":225,"caption":"Codemotion"},"image":{"@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/Codemotion.Italy\/","https:\/\/x.com\/CodemotionIT"]},{"@type":"Person","@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/ad992babe79ce1c495801784b71eedda","name":"danthedev","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/image\/","url":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2023\/10\/profile-pic-150x150.png","contentUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2023\/10\/profile-pic-150x150.png","caption":"danthedev"},"description":"XP Advocate, Agile practices and methodologies enthusiast, driven from his passion for Software Development. I am deeply passionate about Extreme Programming and Agile methodologies and practices, believing that they allow software development teams to be more effective and aim for technical excellence. I enjoy investing time to stay updated on new technologies and methodologies and improve my skills: I consider continuous improvement extremely important and I approach it through books, courses, conferences, meetups, and continuous training; my ideal company promotes and encourages this approach.","sameAs":["https:\/\/danthedev.carrd.co\/","https:\/\/www.linkedin.com\/in\/daniele-scillia\/","https:\/\/x.com\/danielescillia","https:\/\/www.youtube.com\/channel\/UCow5aybmZhzR7HbPf8JmcmA"],"url":"https:\/\/www.codemotion.com\/magazine\/author\/danthedev\/"}]}},"featured_image_src":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/04\/DALL\u00b7E-2024-04-24-14.30.53-A-minimalistic-drawing-style-cover-design-for-a-tech-magazine-focusing-on-the-theme-of-Test-Driven-Development-without-any-text.-The-image-should-b-600x400.webp","featured_image_src_square":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/04\/DALL\u00b7E-2024-04-24-14.30.53-A-minimalistic-drawing-style-cover-design-for-a-tech-magazine-focusing-on-the-theme-of-Test-Driven-Development-without-any-text.-The-image-should-b-600x600.webp","author_info":{"display_name":"danthedev","author_link":"https:\/\/www.codemotion.com\/magazine\/author\/danthedev\/"},"uagb_featured_image_src":{"full":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/04\/DALL\u00b7E-2024-04-24-14.30.53-A-minimalistic-drawing-style-cover-design-for-a-tech-magazine-focusing-on-the-theme-of-Test-Driven-Development-without-any-text.-The-image-should-b.webp",1792,1024,false],"thumbnail":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/04\/DALL\u00b7E-2024-04-24-14.30.53-A-minimalistic-drawing-style-cover-design-for-a-tech-magazine-focusing-on-the-theme-of-Test-Driven-Development-without-any-text.-The-image-should-b-150x150.webp",150,150,true],"medium":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/04\/DALL\u00b7E-2024-04-24-14.30.53-A-minimalistic-drawing-style-cover-design-for-a-tech-magazine-focusing-on-the-theme-of-Test-Driven-Development-without-any-text.-The-image-should-b-300x171.webp",300,171,true],"medium_large":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/04\/DALL\u00b7E-2024-04-24-14.30.53-A-minimalistic-drawing-style-cover-design-for-a-tech-magazine-focusing-on-the-theme-of-Test-Driven-Development-without-any-text.-The-image-should-b-768x439.webp",768,439,true],"large":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/04\/DALL\u00b7E-2024-04-24-14.30.53-A-minimalistic-drawing-style-cover-design-for-a-tech-magazine-focusing-on-the-theme-of-Test-Driven-Development-without-any-text.-The-image-should-b-1024x585.webp",1024,585,true],"1536x1536":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/04\/DALL\u00b7E-2024-04-24-14.30.53-A-minimalistic-drawing-style-cover-design-for-a-tech-magazine-focusing-on-the-theme-of-Test-Driven-Development-without-any-text.-The-image-should-b-1536x878.webp",1536,878,true],"2048x2048":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/04\/DALL\u00b7E-2024-04-24-14.30.53-A-minimalistic-drawing-style-cover-design-for-a-tech-magazine-focusing-on-the-theme-of-Test-Driven-Development-without-any-text.-The-image-should-b.webp",1792,1024,false],"small-home-featured":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/04\/DALL\u00b7E-2024-04-24-14.30.53-A-minimalistic-drawing-style-cover-design-for-a-tech-magazine-focusing-on-the-theme-of-Test-Driven-Development-without-any-text.-The-image-should-b-100x100.webp",100,100,true],"sidebar-featured":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/04\/DALL\u00b7E-2024-04-24-14.30.53-A-minimalistic-drawing-style-cover-design-for-a-tech-magazine-focusing-on-the-theme-of-Test-Driven-Development-without-any-text.-The-image-should-b-180x128.webp",180,128,true],"genesis-singular-images":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/04\/DALL\u00b7E-2024-04-24-14.30.53-A-minimalistic-drawing-style-cover-design-for-a-tech-magazine-focusing-on-the-theme-of-Test-Driven-Development-without-any-text.-The-image-should-b-896x504.webp",896,504,true],"archive-featured":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/04\/DALL\u00b7E-2024-04-24-14.30.53-A-minimalistic-drawing-style-cover-design-for-a-tech-magazine-focusing-on-the-theme-of-Test-Driven-Development-without-any-text.-The-image-should-b-400x225.webp",400,225,true],"gb-block-post-grid-landscape":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/04\/DALL\u00b7E-2024-04-24-14.30.53-A-minimalistic-drawing-style-cover-design-for-a-tech-magazine-focusing-on-the-theme-of-Test-Driven-Development-without-any-text.-The-image-should-b-600x400.webp",600,400,true],"gb-block-post-grid-square":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/04\/DALL\u00b7E-2024-04-24-14.30.53-A-minimalistic-drawing-style-cover-design-for-a-tech-magazine-focusing-on-the-theme-of-Test-Driven-Development-without-any-text.-The-image-should-b-600x600.webp",600,600,true]},"uagb_author_info":{"display_name":"danthedev","author_link":"https:\/\/www.codemotion.com\/magazine\/author\/danthedev\/"},"uagb_comment_info":0,"uagb_excerpt":"Se c&#8217;\u00e8 una cosa che Martin Fowler e Kent Beck hanno in comune, oltre alla loro indiscutibile genialit\u00e0 nel mondo della programmazione, \u00e8 la loro passione per un approccio rivoluzionario alla scrittura del codice: il Test-Driven Development, o TDD, \u00e8 sicuramente una delle pratiche che li accomuna e che entrambi hanno sempre sostenuto. Viviamo in&#8230;&hellip;","lang":"it","_links":{"self":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts\/27222","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/users\/194"}],"replies":[{"embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/comments?post=27222"}],"version-history":[{"count":3,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts\/27222\/revisions"}],"predecessor-version":[{"id":27502,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts\/27222\/revisions\/27502"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/media\/27298"}],"wp:attachment":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/media?parent=27222"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/categories?post=27222"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/tags?post=27222"},{"taxonomy":"collections","embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/collections?post=27222"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}