{"id":551,"date":"2022-01-26T01:34:13","date_gmt":"2022-01-26T01:34:13","guid":{"rendered":"https:\/\/www.cybermedian.com\/pl\/?p=551"},"modified":"2025-02-17T11:39:57","modified_gmt":"2025-02-17T03:39:57","slug":"test-drive-development-approach-for-agile-software-development","status":"publish","type":"post","link":"https:\/\/www.cybermedian.com\/pl\/test-drive-development-approach-for-agile-software-development\/","title":{"rendered":"Podej\u015bcie do rozwoju opartego na testach w zwinnej produkcji oprogramowania"},"content":{"rendered":"<section class=\"section section--body section--first\">\n<div class=\"section-content\">\n<div class=\"section-inner sectionLayout--insetColumn\">\n<p class=\"graf graf--p graf-after--h3\" id=\"dc2b\">Teraz ludzie cz\u0119sto m\u00f3wi\u0105 o zwinnej produkcji.<\/p>\n<h4 class=\"graf graf--h4 graf-after--p\" id=\"5f54\">Czym jest zwinny rozw\u00f3j?<\/h4>\n<p class=\"graf graf--p graf-after--h4\" id=\"0a1d\"><a class=\"markup--anchor markup--p-anchor\" data-href=\"https:\/\/www.visual-paradigm.com\/scrum\/what-is-agile-software-development\/\" href=\"https:\/\/www.visual-paradigm.com\/scrum\/what-is-agile-software-development\/\" rel=\"noopener\" target=\"_blank\">Zwinny rozw\u00f3j<\/a> jest zdolno\u015bci\u0105 do rozwoju oprogramowania, kt\u00f3ra odpowiada na szybko zmieniaj\u0105ce si\u0119 potrzeby. Ich konkretne nazwy, koncepcje, procesy i terminologia r\u00f3\u017cni\u0105 si\u0119. W por\u00f3wnaniu do \u201e<a class=\"markup--anchor markup--p-anchor\" data-href=\"https:\/\/www.visual-paradigm.com\/scrum\/classical-vs-agile-project-management\/\" href=\"https:\/\/www.visual-paradigm.com\/scrum\/classical-vs-agile-project-management\/\" rel=\"noopener\" target=\"_blank\">niezwinny<\/a>,\u201d k\u0142ad\u0105 nacisk na blisk\u0105 wsp\u00f3\u0142prac\u0119 mi\u0119dzy zespo\u0142ami programist\u00f3w a ekspertami biznesowymi, komunikacj\u0119 twarz\u0105 w twarz (uznawan\u0105 za bardziej efektywn\u0105 ni\u017c dokumentacja pisemna) oraz cz\u0119ste dostarczanie nowych wersji oprogramowania, ma\u0142ych i <a class=\"markup--anchor markup--p-anchor\" data-href=\"https:\/\/www.visual-paradigm.com\/scrum\/what-is-self-organizing-team-in-scrum\/\" href=\"https:\/\/www.visual-paradigm.com\/scrum\/what-is-self-organizing-team-in-scrum\/\" rel=\"noopener\" target=\"_blank\">zespo\u0142y samoorganizuj\u0105ce si\u0119<\/a> do pisania ma\u0142ych i warto\u015bciowych funkcji oraz podej\u015b\u0107 do organizacji zespo\u0142u, kt\u00f3re dostosowuj\u0105 si\u0119 do zmieniaj\u0105cych si\u0119 potrzeb, z wi\u0119kszym naciskiem na rol\u0119 ludzi w rozwoju oprogramowania.<\/p>\n<p class=\"graf graf--p graf-after--p\" id=\"4bb3\">Jednak istnieje kilka podobnych wersji metod rozwoju zwinnego TDD, takich jak TDD: BDD, DDD i ATDD. Pozw\u00f3l, \u017ce kr\u00f3tko przedstawi\u0119 te metody, zanim szczeg\u00f3\u0142owo om\u00f3wi\u0119 TDD:<\/p>\n<p class=\"graf graf--p graf-after--p\" id=\"47db\"><strong class=\"markup--strong markup--p-strong\">TDD: Rozw\u00f3j oparty na testach<\/strong><\/p>\n<p class=\"graf graf--p graf-after--p\" id=\"f69c\"><a class=\"markup--anchor markup--p-anchor\" data-href=\"https:\/\/en.wikipedia.org\/wiki\/Test-driven_development\" href=\"https:\/\/en.wikipedia.org\/wiki\/Test-driven_development\" rel=\"noopener\" target=\"_blank\">Rozw\u00f3j oparty na testach<\/a> (TDD) to proces rozwoju oprogramowania, kt\u00f3ry polega na przekszta\u0142caniu wymaga\u0144 oprogramowania w przypadki testowe przed ca\u0142kowitym opracowaniem oprogramowania oraz \u015bledzeniu ca\u0142ego rozwoju oprogramowania poprzez wielokrotne testowanie oprogramowania dla wszystkich przypadk\u00f3w testowych. To jest przeciwie\u0144stwo rozwijania oprogramowania najpierw, a nast\u0119pnie tworzenia przypadk\u00f3w testowych. Niekt\u00f3re popularne modele bardzo dobrze wspieraj\u0105 TDD, takie jak MVC i <a class=\"markup--anchor markup--p-anchor\" data-href=\"https:\/\/www.visual-paradigm.com\/scrum\/sprint-increment-potential-shippable-mvp-mmp\/\" href=\"https:\/\/www.visual-paradigm.com\/scrum\/sprint-increment-potential-shippable-mvp-mmp\/\" rel=\"noopener\" target=\"_blank\">MVP<\/a>.<\/p>\n<figure class=\"graf graf--figure graf-after--p\" id=\"dcf6\"><img class=\"graf-image\" data-height=\"324\" data-image-id=\"0*HRQPwcxAH9H50f92.png\" data-is-featured=\"true\" data-width=\"688\" decoding=\"async\" src=\"https:\/\/www.cybermedian.com\/pl\/wp-content\/uploads\/sites\/16\/2022\/01\/0HRQPwcxAH9H50f92.png\"\/><\/figure>\n<p class=\"graf graf--p graf-after--figure\" id=\"72f0\"><strong class=\"markup--strong markup--p-strong\">BDD: Rozw\u00f3j oparty na zachowaniu (Behavior Driven Development)<\/strong><\/p>\n<p class=\"graf graf--p graf-after--p\" id=\"7b2f\">Rozw\u00f3j oparty na zachowaniu (BDD) to r\u00f3wnie\u017c zwinny proces rozwoju oprogramowania. Zach\u0119ca do wsp\u00f3\u0142pracy mi\u0119dzy programistami, testerami zapewnienia jako\u015bci i przedstawicielami klient\u00f3w w projektach oprogramowania. Zach\u0119ca zespo\u0142y do korzystania z rozm\u00f3w i konkretnych przyk\u0142ad\u00f3w, aby sformalizowa\u0107 wsp\u00f3lne zrozumienie, jak aplikacja powinna dzia\u0142a\u0107. Pochodzi z rozwoju opartego na testach (TDD).<\/p>\n<figure class=\"graf graf--figure graf-after--p\" id=\"e548\"><img class=\"graf-image\" data-height=\"636\" data-image-id=\"0*zO1WEVhZ9N6NwbMQ.jpg\" data-width=\"999\" decoding=\"async\" src=\"https:\/\/www.cybermedian.com\/pl\/wp-content\/uploads\/sites\/16\/2022\/01\/0zO1WEVhZ9N6NwbMQ.jpg\"\/><\/figure>\n<p class=\"graf graf--p graf-after--figure\" id=\"2b50\"><strong class=\"markup--strong markup--p-strong\">ATDD: Rozw\u00f3j oparty na testach akceptacyjnych<\/strong><\/p>\n<p class=\"graf graf--p graf-after--p\" id=\"f095\">Aby promowa\u0107 realizacj\u0119 funkcjonalnego kodu poprzez przypadki testowe jednostkowe, zesp\u00f3\u0142 musi zdefiniowa\u0107 oczekiwane standardy jako\u015bci i zasady akceptacji oraz promowa\u0107 praktyk\u0119 TDD programist\u00f3w i wydajno\u015b\u0107 tester\u00f3w poprzez jasny i sp\u00f3jny plan test\u00f3w akceptacyjnych (w tym seri\u0119 scenariuszy testowych). Dla programist\u00f3w k\u0142adzie nacisk na to, jak wdro\u017cy\u0107 system i jak go testowa\u0107.<\/p>\n<figure class=\"graf graf--figure graf-after--p\" id=\"cd9b\"><img class=\"graf-image\" data-height=\"437\" data-image-id=\"0*oQj5-PBOOnzEvxCt.png\" data-width=\"514\" decoding=\"async\" src=\"https:\/\/www.cybermedian.com\/pl\/wp-content\/uploads\/sites\/16\/2022\/01\/0oQj5-PBOOnzEvxCt.png\"\/><\/figure>\n<p class=\"graf graf--p graf-after--figure\" id=\"e411\"><strong class=\"markup--strong markup--p-strong\">DDD: Projektowanie oparte na domenie<\/strong><\/p>\n<p class=\"graf graf--p graf-after--p\" id=\"344a\">DDD odnosi si\u0119 do projektowania opartego na domenie, tj. rozwoju opartego na domenie. DDD jest w rzeczywisto\u015bci zbudowane na tym fundamencie, poniewa\u017c koncentruje si\u0119 na projektowaniu warstwy us\u0142ug, skupia si\u0119 na wdro\u017ceniu biznesowym, \u0142\u0105czy analityk\u0119 i projektowanie oraz nie utrzymuje tego w podzielonym stanie, aby poprawnie i kompleksowo wdro\u017cy\u0107 potrzeby klient\u00f3w i zbudowa\u0107 model skalowalno\u015bci biznesu.<\/p>\n<figure class=\"graf graf--figure graf-after--p\" id=\"1c94\"><img class=\"graf-image\" data-height=\"409\" data-image-id=\"0*imvHvnYVv9W6vjHO.png\" data-width=\"581\" decoding=\"async\" src=\"https:\/\/www.cybermedian.com\/pl\/wp-content\/uploads\/sites\/16\/2022\/01\/0imvHvnYVv9W6vjHO.png\"\/><\/figure>\n<h3 class=\"graf graf--h3 graf-after--figure\" id=\"3579\">Plan wdro\u017cenia TDD<\/h3>\n<blockquote class=\"graf graf--blockquote graf-after--h3\" id=\"adc2\">\n<p><em class=\"markup--em markup--blockquote-em\">Poprzez testowanie promujemy ca\u0142y rozw\u00f3j, ale rozw\u00f3j oparty na testach to nie tylko prosta praca testowa, ale proces kwantyfikacji analizy wymaga\u0144, projektowania i kontroli jako\u015bci.<\/em><\/p>\n<\/blockquote>\n<p class=\"graf graf--p graf-after--blockquote\" id=\"5c0c\"><strong class=\"markup--strong markup--p-strong\">Zasady rozwoju<\/strong><\/p>\n<blockquote class=\"graf graf--blockquote graf-after--p\" id=\"5b58\">\n<p><em class=\"markup--em markup--blockquote-em\">Najpierw napisz kod testowy, a nast\u0119pnie napisz kod funkcji.<\/em><\/p>\n<\/blockquote>\n<ol class=\"postList\">\n<li class=\"graf graf--li graf-after--blockquote\" id=\"0b64\">Napisz kod testowy zgodnie z dokumentem wymaga\u0144, a nie w celu zrealizowania funkcji;<\/li>\n<li class=\"graf graf--li graf-after--li\" id=\"0d1a\">Nie chciej by\u0107 gruby jednym k\u0119sem. Podczas testowania du\u017cych blok\u00f3w funkcjonalnych, najpierw powiniene\u015b podzieli\u0107 je na mniejsze bloki funkcjonalne do testowania;<\/li>\n<li class=\"graf graf--li graf-after--li\" id=\"854c\">Pami\u0119taj, aby nie pisa\u0107 kodu w celu uko\u0144czenia funkcji, u\u017cyj najprostszego mo\u017cliwego kodu do wdro\u017cenia funkcji;<\/li>\n<li class=\"graf graf--li graf-after--li\" id=\"72d3\">Je\u015bli wymagania mog\u0105 by\u0107 testowane, napisz kod testowy i zrezygnuj z tych, kt\u00f3re nie mog\u0105 by\u0107 testowane lub uwa\u017casz, \u017ce nie musz\u0105 by\u0107 testowane;<\/li>\n<li class=\"graf graf--li graf-after--li\" id=\"5fa6\">Przed zmian\u0105\/dodaniem jakiegokolwiek kodu funkcji, musisz najpierw pomy\u015ble\u0107, czy chcesz zmieni\u0107\/doda\u0107 przypadki testowe;<\/li>\n<li class=\"graf graf--li graf-after--li\" id=\"275b\">Kod funkcji\/testu, nierozs\u0105dna struktura, zduplikowany kod itp., refaktoryzuj na czas po przej\u015bciu testu.<\/li>\n<\/ol>\n<p class=\"graf graf--p graf-after--li\" id=\"1652\"><strong class=\"markup--strong markup--p-strong\">Proces rozwoju TDD<\/strong><\/p>\n<ol class=\"postList\">\n<li class=\"graf graf--li graf-after--p\" id=\"6793\">Analizuj i okre\u015bl docelowy scenariusz testowy;<\/li>\n<li class=\"graf graf--li graf-after--li\" id=\"0547\">Dodaj test jednostkowy, aby zweryfikowa\u0107 wej\u015bcie i wyj\u015bcie scenariusza testowego;<\/li>\n<li class=\"graf graf--li graf-after--li\" id=\"ea67\">Uruchom test i uzyskaj wynik nieudanego testu;<\/li>\n<li class=\"graf graf--li graf-after--li\" id=\"450b\">Napisz najprostszy kod funkcji, aby przej\u015b\u0107 test;<\/li>\n<li class=\"graf graf--li graf-after--li\" id=\"fbf6\">Uruchom test ponownie i zobacz, \u017ce test przeszed\u0142;<\/li>\n<li class=\"graf graf--li graf-after--li\" id=\"879b\">Przeprowad\u017a refaktoryzacj\u0119 kodu, w tym kodu funkcjonalnego i kodu testu jednostkowego;<\/li>\n<li class=\"graf graf--li graf-after--li\" id=\"29fc\">Powtarzaj powy\u017csze kroki, a\u017c rozw\u00f3j zostanie zako\u0144czony.<\/li>\n<\/ol>\n<p class=\"graf graf--p graf-after--li\" id=\"51d8\"><strong class=\"markup--strong markup--p-strong\">Korzy\u015bci z TDD<\/strong><\/p>\n<ol class=\"postList\">\n<li class=\"graf graf--li graf-after--p\" id=\"8d57\"><strong class=\"markup--strong markup--li-strong\">Zmniejsz obci\u0105\u017cenie programist\u00f3w<\/strong>. Dzi\u0119ki jasnemu procesowi skupmy si\u0119 tylko na jednym punkcie na raz, a obci\u0105\u017cenie my\u015blenia jest mniejsze.<\/li>\n<li class=\"graf graf--li graf-after--li\" id=\"ce12\"><strong class=\"markup--strong markup--li-strong\">Sie\u0107 ochronna<\/strong>. Pe\u0142ne testowanie jednostkowe zapewnia sie\u0107 ochronn\u0105 dla kodu produktu, co u\u0142atwia dostosowanie si\u0119 do zmian w wymaganiach lub popraw\u0119 projektu kodu. Wi\u0119c je\u015bli wymagania twojego projektu s\u0105 stabilne, zrealizowane za jednym razem i nie ma p\u00f3\u017aniejszych zmian, korzy\u015bci z TDD s\u0105 mniejsze.<\/li>\n<li class=\"graf graf--li graf-after--li\" id=\"fc52\"><strong class=\"markup--strong markup--li-strong\">Wyja\u015bnij wymagania z wyprzedzeniem<\/strong>. Pisanie test\u00f3w najpierw mo\u017ce pom\u00f3c nam pomy\u015ble\u0107 o wymaganiach i wyja\u015bni\u0107 szczeg\u00f3\u0142y wymaga\u0144 z wyprzedzeniem, zamiast odkrywa\u0107 niejasne wymagania dopiero w po\u0142owie kodu.<\/li>\n<li class=\"graf graf--li graf-after--li graf--trailing\" id=\"3c5e\"><strong class=\"markup--strong markup--li-strong\">Szybka informacja zwrotna<\/strong>. Wiele os\u00f3b m\u00f3wi, \u017ce podczas TDD moja obj\u0119to\u015b\u0107 kodu wzrasta, wi\u0119c wydajno\u015b\u0107 rozwoju maleje. Jednak je\u015bli nie masz test\u00f3w jednostkowych, musisz testowa\u0107 je r\u0119cznie, sp\u0119dzasz du\u017co czasu na przygotowywaniu danych, uruchamianiu aplikacji, modyfikowaniu interfejs\u00f3w itp., a informacja zwrotna jest wolna. Dok\u0142adniej m\u00f3wi\u0105c, szybka informacja zwrotna to korzy\u015b\u0107 z testowania jednostkowego.<\/li>\n<\/ol>\n<\/div>\n<\/div>\n<\/section>\n<section class=\"section section--body section--last\">\n<div class=\"section-divider\">\n<hr class=\"section-divider\"\/>\n<\/div>\n<div class=\"section-content\">\n<div class=\"section-inner sectionLayout--insetColumn\">\n<h4 class=\"graf graf--h4 graf--leading\" id=\"44d1\">Zasady Agile i Scrum<\/h4>\n<ul class=\"postList\">\n<li class=\"graf graf--li graf-after--h4\" id=\"c313\"><a class=\"markup--anchor markup--li-anchor\" data-href=\"https:\/\/www.visual-paradigm.com\/scrum\/agile-manifesto-and-agile-principles\/\" href=\"https:\/\/www.visual-paradigm.com\/scrum\/agile-manifesto-and-agile-principles\/\" rel=\"noopener\" target=\"_blank\">Manifest Zwinny i Dwana\u015bcie Zasad<\/a><\/li>\n<li class=\"graf graf--li graf-after--li\" id=\"613e\"><a class=\"markup--anchor markup--li-anchor\" data-href=\"https:\/\/www.visual-paradigm.com\/scrum\/10-basic-scrum-rules\/\" href=\"https:\/\/www.visual-paradigm.com\/scrum\/10-basic-scrum-rules\/\" rel=\"noopener\" target=\"_blank\">10 Najcz\u0119\u015bciej Wspominanych Podstawowych Zasad w Scrum<\/a><\/li>\n<li class=\"graf graf--li graf-after--li\" id=\"8952\"><a class=\"markup--anchor markup--li-anchor\" data-href=\"https:\/\/www.visual-paradigm.com\/scrum\/how-scrum-team-works\/\" href=\"https:\/\/www.visual-paradigm.com\/scrum\/how-scrum-team-works\/\" rel=\"noopener\" target=\"_blank\">Jak Dzia\u0142a Zesp\u00f3\u0142 Scrum?\u200a\u2014\u200aKr\u00f3tki Przewodnik<\/a><\/li>\n<\/ul>\n<h4 class=\"graf graf--h4 graf-after--li\" id=\"863c\">Scrum w Du\u017cej Skali<\/h4>\n<ul class=\"postList\">\n<li class=\"graf graf--li graf-after--h4\" id=\"39b8\"><a class=\"markup--anchor markup--li-anchor\" data-href=\"https:\/\/www.visual-paradigm.com\/scrum\/scaling-agile-frameworks-comparison\/\" href=\"https:\/\/www.visual-paradigm.com\/scrum\/scaling-agile-frameworks-comparison\/\" rel=\"noopener\" target=\"_blank\">Por\u00f3wnanie Ram Agile w Skali<\/a><\/li>\n<li class=\"graf graf--li graf-after--li\" id=\"49ce\"><a class=\"markup--anchor markup--li-anchor\" data-href=\"https:\/\/www.visual-paradigm.com\/scrum\/10-principles-of-less-framework\/\" href=\"https:\/\/www.visual-paradigm.com\/scrum\/10-principles-of-less-framework\/\" rel=\"noopener\" target=\"_blank\">Jakie s\u0105 10 Zasad Ramy LeSS?<\/a><\/li>\n<li class=\"graf graf--li graf-after--li\" id=\"1ef2\"><a class=\"markup--anchor markup--li-anchor\" data-href=\"https:\/\/www.visual-paradigm.com\/scrum\/how-to-manage-multi-scrum-teams-with-less-framework\/\" href=\"https:\/\/www.visual-paradigm.com\/scrum\/how-to-manage-multi-scrum-teams-with-less-framework\/\" rel=\"noopener\" target=\"_blank\">Jak Zarz\u0105dza\u0107 Wieloma Zespo\u0142ami Scrum przy U\u017cyciu Ramy LeSS?<\/a><\/li>\n<li class=\"graf graf--li graf-after--li graf--trailing\" id=\"22bd\"><a class=\"markup--anchor markup--li-anchor\" data-href=\"https:\/\/www.visual-paradigm.com\/scrum\/top-10-less-framework-resources\/\" href=\"https:\/\/www.visual-paradigm.com\/scrum\/top-10-less-framework-resources\/\" rel=\"noopener\" target=\"_blank\">Top 10 Zasob\u00f3w Ramy Scrum w Du\u017cej Skali<\/a><\/li>\n<\/ul>\n<\/div>\n<\/div>\n<\/section>\n","protected":false},"excerpt":{"rendered":"<p>Test Driven Development\u00a0(TDD) is a software development process, which relies on transforming software requirements into test cases before software is fully developed, and tracking all software development by repeatedly testing software for all test cases. This is the opposite of developing software first and then creating test cases. Some popular models support TDD very well, such as MVC and\u00a0MVP.<\/p>\n","protected":false},"author":1,"featured_media":1308,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_yoast_wpseo_title":"","_yoast_wpseo_metadesc":"","footnotes":""},"categories":[2],"tags":[52,63,62,53],"class_list":["post-551","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-agile-project-management","tag-cn-done","tag-es-done","tag-ja-done","tag-tw-done"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.7 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Podej\u015bcie do rozwoju opartego na testach w zwinnej produkcji oprogramowania - Cybermediana<\/title>\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.cybermedian.com\/pl\/test-drive-development-approach-for-agile-software-development\/\" \/>\n<meta property=\"og:locale\" content=\"pl_PL\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Podej\u015bcie do rozwoju opartego na testach w zwinnej produkcji oprogramowania - Cybermediana\" \/>\n<meta property=\"og:description\" content=\"Test Driven Development\u00a0(TDD) is a software development process, which relies on transforming software requirements into test cases before software is fully developed, and tracking all software development by repeatedly testing software for all test cases. This is the opposite of developing software first and then creating test cases. Some popular models support TDD very well, such as MVC and\u00a0MVP.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.cybermedian.com\/pl\/test-drive-development-approach-for-agile-software-development\/\" \/>\n<meta property=\"og:site_name\" content=\"Cybermediana\" \/>\n<meta property=\"article:published_time\" content=\"2022-01-26T01:34:13+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-02-17T03:39:57+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.cybermedian.com\/pl\/wp-content\/uploads\/sites\/16\/2022\/01\/0_gN5wLj3vntxPR-gh.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1024\" \/>\n\t<meta property=\"og:image:height\" content=\"680\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"vpadmin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@vpadmin\" \/>\n<meta name=\"twitter:label1\" content=\"Napisane przez\" \/>\n\t<meta name=\"twitter:data1\" content=\"vpadmin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Szacowany czas czytania\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minuty\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.cybermedian.com\/pl\/test-drive-development-approach-for-agile-software-development\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.cybermedian.com\/pl\/test-drive-development-approach-for-agile-software-development\/\"},\"author\":{\"name\":\"vpadmin\",\"@id\":\"https:\/\/www.cybermedian.com\/pl\/#\/schema\/person\/0122cdf8fc3b73482dd8a30c8500f75a\"},\"headline\":\"Podej\u015bcie do rozwoju opartego na testach w zwinnej produkcji oprogramowania\",\"datePublished\":\"2022-01-26T01:34:13+00:00\",\"dateModified\":\"2025-02-17T03:39:57+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.cybermedian.com\/pl\/test-drive-development-approach-for-agile-software-development\/\"},\"wordCount\":910,\"commentCount\":0,\"image\":{\"@id\":\"https:\/\/www.cybermedian.com\/pl\/test-drive-development-approach-for-agile-software-development\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.cybermedian.com\/pl\/wp-content\/uploads\/sites\/16\/2022\/01\/0_gN5wLj3vntxPR-gh.png\",\"keywords\":[\"cn-done\",\"es-done\",\"ja-done\",\"tw-done\"],\"articleSection\":[\"Agile Project Management\"],\"inLanguage\":\"pl-PL\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.cybermedian.com\/pl\/test-drive-development-approach-for-agile-software-development\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.cybermedian.com\/pl\/test-drive-development-approach-for-agile-software-development\/\",\"url\":\"https:\/\/www.cybermedian.com\/pl\/test-drive-development-approach-for-agile-software-development\/\",\"name\":\"Podej\u015bcie do rozwoju opartego na testach w zwinnej produkcji oprogramowania - Cybermediana\",\"isPartOf\":{\"@id\":\"https:\/\/www.cybermedian.com\/pl\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.cybermedian.com\/pl\/test-drive-development-approach-for-agile-software-development\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.cybermedian.com\/pl\/test-drive-development-approach-for-agile-software-development\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.cybermedian.com\/pl\/wp-content\/uploads\/sites\/16\/2022\/01\/0_gN5wLj3vntxPR-gh.png\",\"datePublished\":\"2022-01-26T01:34:13+00:00\",\"dateModified\":\"2025-02-17T03:39:57+00:00\",\"author\":{\"@id\":\"https:\/\/www.cybermedian.com\/pl\/#\/schema\/person\/0122cdf8fc3b73482dd8a30c8500f75a\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.cybermedian.com\/pl\/test-drive-development-approach-for-agile-software-development\/#breadcrumb\"},\"inLanguage\":\"pl-PL\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.cybermedian.com\/pl\/test-drive-development-approach-for-agile-software-development\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"https:\/\/www.cybermedian.com\/pl\/test-drive-development-approach-for-agile-software-development\/#primaryimage\",\"url\":\"https:\/\/www.cybermedian.com\/pl\/wp-content\/uploads\/sites\/16\/2022\/01\/0_gN5wLj3vntxPR-gh.png\",\"contentUrl\":\"https:\/\/www.cybermedian.com\/pl\/wp-content\/uploads\/sites\/16\/2022\/01\/0_gN5wLj3vntxPR-gh.png\",\"width\":1024,\"height\":680,\"caption\":\"TDD development\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.cybermedian.com\/pl\/test-drive-development-approach-for-agile-software-development\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.cybermedian.com\/pl\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Podej\u015bcie do rozwoju opartego na testach w zwinnej produkcji oprogramowania\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.cybermedian.com\/pl\/#website\",\"url\":\"https:\/\/www.cybermedian.com\/pl\/\",\"name\":\"Cybermediana\",\"description\":\"Uczenie si\u0119 jednej nowej rzeczy ka\u017cdego dnia\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.cybermedian.com\/pl\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pl-PL\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.cybermedian.com\/pl\/#\/schema\/person\/0122cdf8fc3b73482dd8a30c8500f75a\",\"name\":\"vpadmin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"https:\/\/www.cybermedian.com\/pl\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/3914788226b9b0af628488720662164f4641c6125d0bd38d90ae34f01c8c4ea3?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/3914788226b9b0af628488720662164f4641c6125d0bd38d90ae34f01c8c4ea3?s=96&d=mm&r=g\",\"caption\":\"vpadmin\"},\"sameAs\":[\"https:\/\/x.com\/vpadmin\"],\"url\":\"https:\/\/www.cybermedian.com\/pl\/author\/vpadmin\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Podej\u015bcie do rozwoju opartego na testach w zwinnej produkcji oprogramowania - Cybermediana","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.cybermedian.com\/pl\/test-drive-development-approach-for-agile-software-development\/","og_locale":"pl_PL","og_type":"article","og_title":"Podej\u015bcie do rozwoju opartego na testach w zwinnej produkcji oprogramowania - Cybermediana","og_description":"Test Driven Development\u00a0(TDD) is a software development process, which relies on transforming software requirements into test cases before software is fully developed, and tracking all software development by repeatedly testing software for all test cases. This is the opposite of developing software first and then creating test cases. Some popular models support TDD very well, such as MVC and\u00a0MVP.","og_url":"https:\/\/www.cybermedian.com\/pl\/test-drive-development-approach-for-agile-software-development\/","og_site_name":"Cybermediana","article_published_time":"2022-01-26T01:34:13+00:00","article_modified_time":"2025-02-17T03:39:57+00:00","og_image":[{"width":1024,"height":680,"url":"https:\/\/www.cybermedian.com\/pl\/wp-content\/uploads\/sites\/16\/2022\/01\/0_gN5wLj3vntxPR-gh.png","type":"image\/png"}],"author":"vpadmin","twitter_card":"summary_large_image","twitter_creator":"@vpadmin","twitter_misc":{"Napisane przez":"vpadmin","Szacowany czas czytania":"4 minuty"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.cybermedian.com\/pl\/test-drive-development-approach-for-agile-software-development\/#article","isPartOf":{"@id":"https:\/\/www.cybermedian.com\/pl\/test-drive-development-approach-for-agile-software-development\/"},"author":{"name":"vpadmin","@id":"https:\/\/www.cybermedian.com\/pl\/#\/schema\/person\/0122cdf8fc3b73482dd8a30c8500f75a"},"headline":"Podej\u015bcie do rozwoju opartego na testach w zwinnej produkcji oprogramowania","datePublished":"2022-01-26T01:34:13+00:00","dateModified":"2025-02-17T03:39:57+00:00","mainEntityOfPage":{"@id":"https:\/\/www.cybermedian.com\/pl\/test-drive-development-approach-for-agile-software-development\/"},"wordCount":910,"commentCount":0,"image":{"@id":"https:\/\/www.cybermedian.com\/pl\/test-drive-development-approach-for-agile-software-development\/#primaryimage"},"thumbnailUrl":"https:\/\/www.cybermedian.com\/pl\/wp-content\/uploads\/sites\/16\/2022\/01\/0_gN5wLj3vntxPR-gh.png","keywords":["cn-done","es-done","ja-done","tw-done"],"articleSection":["Agile Project Management"],"inLanguage":"pl-PL","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.cybermedian.com\/pl\/test-drive-development-approach-for-agile-software-development\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.cybermedian.com\/pl\/test-drive-development-approach-for-agile-software-development\/","url":"https:\/\/www.cybermedian.com\/pl\/test-drive-development-approach-for-agile-software-development\/","name":"Podej\u015bcie do rozwoju opartego na testach w zwinnej produkcji oprogramowania - Cybermediana","isPartOf":{"@id":"https:\/\/www.cybermedian.com\/pl\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.cybermedian.com\/pl\/test-drive-development-approach-for-agile-software-development\/#primaryimage"},"image":{"@id":"https:\/\/www.cybermedian.com\/pl\/test-drive-development-approach-for-agile-software-development\/#primaryimage"},"thumbnailUrl":"https:\/\/www.cybermedian.com\/pl\/wp-content\/uploads\/sites\/16\/2022\/01\/0_gN5wLj3vntxPR-gh.png","datePublished":"2022-01-26T01:34:13+00:00","dateModified":"2025-02-17T03:39:57+00:00","author":{"@id":"https:\/\/www.cybermedian.com\/pl\/#\/schema\/person\/0122cdf8fc3b73482dd8a30c8500f75a"},"breadcrumb":{"@id":"https:\/\/www.cybermedian.com\/pl\/test-drive-development-approach-for-agile-software-development\/#breadcrumb"},"inLanguage":"pl-PL","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.cybermedian.com\/pl\/test-drive-development-approach-for-agile-software-development\/"]}]},{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/www.cybermedian.com\/pl\/test-drive-development-approach-for-agile-software-development\/#primaryimage","url":"https:\/\/www.cybermedian.com\/pl\/wp-content\/uploads\/sites\/16\/2022\/01\/0_gN5wLj3vntxPR-gh.png","contentUrl":"https:\/\/www.cybermedian.com\/pl\/wp-content\/uploads\/sites\/16\/2022\/01\/0_gN5wLj3vntxPR-gh.png","width":1024,"height":680,"caption":"TDD development"},{"@type":"BreadcrumbList","@id":"https:\/\/www.cybermedian.com\/pl\/test-drive-development-approach-for-agile-software-development\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.cybermedian.com\/pl\/"},{"@type":"ListItem","position":2,"name":"Podej\u015bcie do rozwoju opartego na testach w zwinnej produkcji oprogramowania"}]},{"@type":"WebSite","@id":"https:\/\/www.cybermedian.com\/pl\/#website","url":"https:\/\/www.cybermedian.com\/pl\/","name":"Cybermediana","description":"Uczenie si\u0119 jednej nowej rzeczy ka\u017cdego dnia","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.cybermedian.com\/pl\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pl-PL"},{"@type":"Person","@id":"https:\/\/www.cybermedian.com\/pl\/#\/schema\/person\/0122cdf8fc3b73482dd8a30c8500f75a","name":"vpadmin","image":{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/www.cybermedian.com\/pl\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/3914788226b9b0af628488720662164f4641c6125d0bd38d90ae34f01c8c4ea3?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/3914788226b9b0af628488720662164f4641c6125d0bd38d90ae34f01c8c4ea3?s=96&d=mm&r=g","caption":"vpadmin"},"sameAs":["https:\/\/x.com\/vpadmin"],"url":"https:\/\/www.cybermedian.com\/pl\/author\/vpadmin\/"}]}},"_links":{"self":[{"href":"https:\/\/www.cybermedian.com\/pl\/wp-json\/wp\/v2\/posts\/551","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.cybermedian.com\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.cybermedian.com\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.cybermedian.com\/pl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.cybermedian.com\/pl\/wp-json\/wp\/v2\/comments?post=551"}],"version-history":[{"count":4,"href":"https:\/\/www.cybermedian.com\/pl\/wp-json\/wp\/v2\/posts\/551\/revisions"}],"predecessor-version":[{"id":10016,"href":"https:\/\/www.cybermedian.com\/pl\/wp-json\/wp\/v2\/posts\/551\/revisions\/10016"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.cybermedian.com\/pl\/wp-json\/wp\/v2\/media\/1308"}],"wp:attachment":[{"href":"https:\/\/www.cybermedian.com\/pl\/wp-json\/wp\/v2\/media?parent=551"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.cybermedian.com\/pl\/wp-json\/wp\/v2\/categories?post=551"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.cybermedian.com\/pl\/wp-json\/wp\/v2\/tags?post=551"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}