[{"data":1,"prerenderedAt":486},["Reactive",2],{"global":3,"blok-/kompetencer/kvalitetssikring-og-test/":440,"story:/kompetencer/kvalitetssikring-og-test/":464},{"story":4,"cv":437,"rels":438,"links":439},{"name":5,"created_at":6,"published_at":7,"updated_at":8,"id":9,"uuid":10,"content":11,"slug":51,"full_slug":51,"sort_by_date":430,"position":431,"tag_list":432,"is_startpage":29,"parent_id":430,"meta_data":430,"group_id":433,"first_published_at":434,"release_id":430,"lang":435,"path":430,"alternates":436,"default_full_slug":430,"translated_slugs":430},"Site settings","2023-02-07T07:13:48.809Z","2026-05-05T14:13:07.584Z","2026-05-05T14:13:07.603Z",258215571,"1fff830c-f3f1-49a9-84f3-94bfd7097497",{"zip":12,"_uid":13,"city":14,"email":15,"phone":16,"Header":17,"popups":18,"address":44,"favicon":45,"siteUrl":49,"siteName":50,"component":51,"redirects":52,"logoFooter":171,"logoHeader":174,"navigation":177,"navigationCta":226,"socialMediaLinks":234,"departmentsNavigation":256,"footerNavigation1Items":328,"footerNavigation1Title":364,"footerNavigation2Items":365,"footerNavigation2Title":394,"footerNavigation3Items":395,"footerNavigation3Title":429},"7100","505975f0-8676-4e20-86ef-d9d3a51f31ae","Vejle","info@uptimedevelopment.dk","+45 70 20 69 59",[],[19],{"Text":20,"_uid":21,"Image":22,"Title":30,"component":31,"SendMessageText":32,"delay_in_seconds":33,"ContactButtonText":34,"FormBackgroundColor":35,"contact_button_link":36,"initial_button_text":42,"ContactBackgroundColor":43},"Ring på 70 20 69 59 eller udfyld kontaktinformationer her.","1245454c-96c2-4dff-a565-e58677753fa1",{"id":23,"alt":24,"name":25,"focus":25,"title":25,"source":25,"filename":26,"copyright":25,"fieldtype":27,"meta_data":28,"is_external_url":29},20856972,"dan-olesen","","https://a.storyblok.com/f/195037/1667x1667/180b821d9c/dan-olesen.jpg","asset",{"alt":24,"title":25,"source":25,"copyright":25},false,"Har du brug for hjælp til et udviklingsprojekt?","ContactPopUp","Kontakt mig","2","Kontakt","#F4F4F4",{"id":37,"url":25,"anchor":38,"linktype":39,"fieldtype":40,"cached_url":41},"4ff97ed1-78a2-4bd1-b221-b514f8b82c95","contact","story","multilink","kontakt","Kontakt os →","#DA001B","Innovations Allé 7",{"id":46,"alt":25,"name":25,"focus":25,"title":25,"source":25,"filename":47,"copyright":25,"fieldtype":27,"meta_data":48,"is_external_url":29},10316658,"https://a.storyblok.com/f/195037/150x150/4b272b1db6/favicon.png",{},"https://www.uptimedevelopment.dk","Uptime Development A/S","global",{"tbody":53,"thead":162,"fieldtype":170},[54,65,74,83,92,101,110,117,126,135,144,153],{"_uid":55,"body":56,"component":64},"c92e0f8c-ccfa-4b4a-aef4-ecfeea166abd",[57,61],{"_uid":58,"value":59,"component":60},"9f3d71af-a1ab-42cb-8bbe-b6b246e8bd15","/5-node-web-frameworks-du-skal-holde-oeje-med","_table_col",{"_uid":62,"value":63,"component":60},"505d5dc4-c959-43ce-a11a-f7dc7492de9a","/blog/5-node-web-frameworks-du-skal-holde-oeje-med","_table_row",{"_uid":66,"body":67,"component":64},"202ba5f7-7db3-4a2f-8894-111eafd5ee97",[68,71],{"_uid":69,"value":70,"component":60},"e4e8322c-5f5f-4da8-8f8a-157a84b19d27","/bliv-klogere-paa-scrum",{"_uid":72,"value":73,"component":60},"4660cd33-0b25-480c-aca7-e5037051309c","/blog/bliv-klogere-paa-scrum",{"_uid":75,"body":76,"component":64},"4de12db7-6edd-46d7-be71-64d28ae44035",[77,80],{"_uid":78,"value":79,"component":60},"1496bafd-202a-4af6-b6ef-317a8d487c47","/react-og-asp-net-core-er-fundamentet-i-nyt-socialt-medie-til-musikbranchen",{"_uid":81,"value":82,"component":60},"62863bdd-2fe9-4f03-aee3-0ff5e0625d09","/blog/react-og-asp-net-core-er-fundamentet-i-nyt-socialt-medie-til-musikbranchen",{"_uid":84,"body":85,"component":64},"bf41c033-b58f-4070-8f2b-cd7778d64c98",[86,89],{"_uid":87,"value":88,"component":60},"e384c282-dcdc-44e8-afad-0b666e5dabe1","/react-og-node-tager-foerertroejen-i-international-undersoegelse",{"_uid":90,"value":91,"component":60},"506f6532-1d78-40ca-977b-d3b93035d7e8","/blog/react-og-node-tager-foerertroejen-i-international-undersoegelse",{"_uid":93,"body":94,"component":64},"7cd64b27-b865-40f7-845b-da43b8a139d2",[95,98],{"_uid":96,"value":97,"component":60},"88c04135-2ff1-4bee-8838-812e757ef1fe","/saadan-bruger-du-dit-it-budget-smartest",{"_uid":99,"value":100,"component":60},"a48d1db0-66b4-40b8-b870-a82cbdf47598","/blog/saadan-bruger-du-dit-it-budget-smartest",{"_uid":102,"body":103,"component":64},"044027f2-d5f6-4c23-a09b-4cc455771919",[104,107],{"_uid":105,"value":106,"component":60},"62655203-33e9-4d60-a72e-afa45e77e65e","/stor-undersoegelse-nye-spillere-stikker-hovedet-frem-i-javascript-verdenen",{"_uid":108,"value":109,"component":60},"e8c77406-3f5b-4bbf-8bc4-c5535d274e7e","/blog/stor-undersoegelse-nye-spillere-stikker-hovedet-frem-i-javascript-verdenen",{"_uid":111,"body":112,"component":64},"c721f17d-bf34-49d9-b2a8-939763f73bc9",[113,115],{"_uid":114,"value":97,"component":60},"2367fa98-6859-4b02-a8a3-625b732bbf20",{"_uid":116,"value":100,"component":60},"15648518-7732-4a0d-ae37-691583d3a7e8",{"_uid":118,"body":119,"component":64},"059aa2e9-f281-4d83-a3a5-df6805928abe",[120,123],{"_uid":121,"value":122,"component":60},"4c0e463e-92d3-4ed9-8fe2-beff572dcd43","/medarbejderstories/*",{"_uid":124,"value":125,"component":60},"0632bede-a443-445d-9d79-367922fd1487","/medarbejderhistorier/*",{"_uid":127,"body":128,"component":64},"28dac8de-7285-4983-8419-e2fb013e492d",[129,132],{"_uid":130,"value":131,"component":60},"c367c8f3-1475-4222-b727-395382a3c7d7","/reference/aubo-production\n",{"_uid":133,"value":134,"component":60},"c29ce268-7cd5-4f59-aaee-2b49b224bb7e","/reference/aubo",{"_uid":136,"body":137,"component":64},"761b6c9c-7094-4233-b2c3-cfbaaa1d6fb6",[138,141],{"_uid":139,"value":140,"component":60},"ce1b7aa4-578f-4727-99cb-89103109dcfc","/kompetencer/webudvikling/storyblok-udvikling-uptime-development-a-s",{"_uid":142,"value":143,"component":60},"dcfb210b-241e-4759-8f6e-6badcdc5fede","/kompetencer/webudvikling/storyblok-udvikling/",{"_uid":145,"body":146,"component":64},"e3790927-d7f4-4580-bfe7-1f3e860e6f09",[147,150],{"_uid":148,"value":149,"component":60},"087c8f63-ca41-40f0-8eab-3c24a7c32be1","/kompetencer/webudvikling/statamic-udvikling-uptime-development-a-s",{"_uid":151,"value":152,"component":60},"a6e04551-4242-4b3c-8351-2d33cf7b5478","/kompetencer/webudvikling/statamic-udvikling/",{"_uid":154,"body":155,"component":64},"6036c6fb-da83-4ee7-9036-d4b7b8217445",[156,159],{"_uid":157,"value":158,"component":60},"89cfd0a4-712b-466b-a2ea-4b634b19f38d","/kompetencer/webudvikling/angular-uptime-development-a-s",{"_uid":160,"value":161,"component":60},"d440684d-1348-409b-9932-62b5ecb50bab","/kompetencer/webudvikling/angular-udvikling/",[163,167],{"_uid":164,"value":165,"component":166},"b11d708a-a114-493c-aa81-3d2924f7da6c","From","_table_head",{"_uid":168,"value":169,"component":166},"1b97c57f-81ff-4d37-997d-52ba62d31346","To","table",{"id":172,"alt":25,"name":25,"focus":25,"title":25,"filename":173,"copyright":25,"fieldtype":27,"is_external_url":29},7117671,"https://a.storyblok.com/f/195037/x/33240b4ce2/uptime-logo-white.svg",{"id":175,"alt":25,"name":25,"focus":25,"title":25,"filename":176,"copyright":25,"fieldtype":27,"is_external_url":29},7117602,"https://a.storyblok.com/f/195037/x/914b4393c3/uptime-logo.svg",[178,186,192,198,204,210,216,222],{"Page":179,"_uid":182,"Title":183,"component":184,"SubNavigationItems":185},{"id":180,"url":25,"linktype":39,"fieldtype":40,"cached_url":181},"4603843a-bc48-4f87-a65b-dca5a7f0ddca","saadan-arbejder-vi","db7b83c9-a943-46d1-b9b7-8cee9eac6a5a","Sådan arbejder vi","BlockNavigationItem",[],{"Page":187,"_uid":190,"Title":191,"component":184},{"id":188,"url":25,"linktype":39,"fieldtype":40,"cached_url":189},"e63056b2-cadd-427b-9088-6b960adcdf71","kompetencer","7fc4feed-51be-4472-9f20-e93bdc9b1df4","Ydelser",{"Page":193,"_uid":196,"Title":197,"component":184},{"id":194,"url":25,"linktype":39,"fieldtype":40,"cached_url":195},"269ceb67-9543-4318-b65a-4bba788d8a12","referencer","57d60acc-cdb3-4755-98b5-532d3df98cd3","Cases",{"Page":199,"_uid":202,"Title":203,"component":184},{"id":200,"url":25,"linktype":39,"fieldtype":40,"cached_url":201},"7f3f0d5b-f9df-4a44-a3c0-44db30130deb","karriere","e8c0946f-837c-4889-a37d-7e0b1451eab9","Karriere",{"Page":205,"_uid":208,"Title":209,"component":184},{"id":206,"url":25,"linktype":39,"fieldtype":40,"cached_url":207},"e5c914f8-1576-467b-85b9-a9c7ad2b2179","om-os","730ba654-4727-46a6-8001-e48cdb7d6a27","Om os",{"Page":211,"_uid":214,"Title":215,"component":184},{"id":212,"url":25,"linktype":39,"fieldtype":40,"cached_url":213},"0089734a-6d00-4a89-ad6a-adb7f249bf26","brancher/","db7ddf68-d5f3-4f01-b831-38fc8b0f7c86","Brancher",{"Page":217,"_uid":220,"Title":221,"component":184},{"id":218,"url":25,"linktype":39,"fieldtype":40,"cached_url":219},"6293995f-67ea-4935-b00d-d6b10596af3d","blog/","f198c788-9583-4395-9cec-35a920bc2b20","Artikler",{"Page":223,"_uid":224,"Title":225,"component":184},{"id":37,"url":25,"linktype":39,"fieldtype":40,"cached_url":41},"6d562fa7-9764-4c1d-8999-0af9d3d7917b","Kontakt os",[227],{"Page":228,"_uid":231,"Title":232,"hidden":29,"component":184,"SubNavigationItems":233},{"id":229,"url":25,"linktype":39,"fieldtype":40,"cached_url":230},"0229cd75-c37e-4a91-9560-4b82349491e3","kontakt-teknisk-sparring","977f0c7f-5abd-40a2-b9da-a6d72127eee2","Book teknisk sparring",[],[235,247],{"_uid":236,"link":237,"Asset":240,"maxWidth":245,"component":246,"imageSize":25,"maxHeight":245},"b3cdc7fd-ca29-49f1-8acc-1685d05d79ca",{"id":25,"url":238,"linktype":239,"fieldtype":40,"cached_url":238},"https://www.facebook.com/uptimedevelopmentdk","url",{"id":241,"alt":242,"name":25,"focus":25,"title":25,"source":25,"filename":243,"copyright":25,"fieldtype":27,"meta_data":244,"is_external_url":29},11203649,"Facebook SoMe ikon","https://a.storyblok.com/f/195037/768x768/9354be154c/facebook-logo.png",{},"32","BlockImage",{"_uid":248,"link":249,"Asset":251,"maxWidth":245,"component":246,"imageSize":25,"maxHeight":245},"61696a88-1dac-473b-9440-acc6e0212805",{"id":25,"url":250,"linktype":239,"fieldtype":40,"cached_url":250},"https://www.linkedin.com/company/uptime-development/",{"id":252,"alt":253,"name":25,"focus":25,"title":25,"source":25,"filename":254,"copyright":25,"fieldtype":27,"meta_data":255,"is_external_url":29},11203650,"LinkedIn SoMe ikon","https://a.storyblok.com/f/195037/640x640/e8f936cc4f/linkedin-logo.png",{},{"tbody":257,"thead":318,"fieldtype":170},[258,270,282,294,306],{"_uid":259,"body":260,"component":64},"85922153-cdda-4388-8701-12db416076db",[261,264,267],{"_uid":262,"value":263,"component":60},"558d6047-1c7a-4de1-8821-566fb69a5be5","Danmark",{"_uid":265,"value":266,"component":60},"2430cfc3-688d-4620-85e0-26e92d311221","dk",{"_uid":268,"value":269,"component":60},"baccd3ac-f5cc-4b08-8882-1c1b0293e5ef","/",{"_uid":271,"body":272,"component":64},"76842066-ff5f-4ab3-b31c-f8bbedbdbcec",[273,276,279],{"_uid":274,"value":275,"component":60},"de00b93e-a532-4fce-924e-216e9f9375a9","Estland",{"_uid":277,"value":278,"component":60},"71d47cad-2ff0-443a-b055-f610d6ba13a7","ee",{"_uid":280,"value":281,"component":60},"1fa86fbd-6d93-44fe-90bf-08407bbaa6bb","https://uptime.ee/",{"_uid":283,"body":284,"component":64},"159ec48f-a015-4a88-963b-6014e151b1f8",[285,288,291],{"_uid":286,"value":287,"component":60},"364f3eed-53ed-434a-ae4a-848e8fc1e160","Norge",{"_uid":289,"value":290,"component":60},"f596476e-b013-4573-81a7-92acfae94a78","no",{"_uid":292,"value":293,"component":60},"ff7c0ae4-ccfa-4189-9caf-3a6873edb06a","https://uptimeconsulting.no/",{"_uid":295,"body":296,"component":64},"14bb9056-2451-4699-aed4-c95d8e5c1bda",[297,300,303],{"_uid":298,"value":299,"component":60},"3fedefa7-2620-42ce-afc2-fd9804a66037","Polen",{"_uid":301,"value":302,"component":60},"1572da6c-45ef-43cb-b24d-7eecd428041d","pl",{"_uid":304,"value":305,"component":60},"ff58fec4-f6f5-443a-9540-c069a085163e","https://www.uptime.eu/contact/",{"_uid":307,"body":308,"component":64},"1b772d37-47ab-448c-b84f-ab711921f593",[309,312,315],{"_uid":310,"value":311,"component":60},"38cf0e30-3cb4-4d84-9407-9ab206dad496","Schweiz",{"_uid":313,"value":314,"component":60},"989f321a-6c87-4739-91c4-e4068cce4ca7","ch",{"_uid":316,"value":317,"component":60},"2757315c-f21c-48a6-850b-3ae096ade15b","https://uptime.swiss/",[319,322,325],{"_uid":320,"value":321,"component":166},"aa4c1941-ee16-4dbe-8574-39185cca54f7","Navn",{"_uid":323,"value":324,"component":166},"f62c0bf1-738b-4f15-9961-317c58196f24","Landekode",{"_uid":326,"value":327,"component":166},"55b0e09b-428c-4b7f-a4cb-439d6564a8a7","URL",[329,336,343,350,357],{"Page":330,"_uid":333,"Title":334,"component":184,"SubNavigationItems":335},{"id":331,"url":25,"linktype":39,"fieldtype":40,"cached_url":332},"b49e0691-5fbe-4486-86bd-6ef6d3028374","kompetencer/app-udvikling/","36981831-3ff2-4a2a-a8bb-81046de11517","App udvikling",[],{"Page":337,"_uid":340,"Title":341,"component":184,"SubNavigationItems":342},{"id":338,"url":25,"linktype":39,"fieldtype":40,"cached_url":339},"1099935e-614b-4892-b08b-f83a01c3de2e","kompetencer/softwareintegration","9049940a-7bf4-493f-9ff0-25cad876d914","Software integration",[],{"Page":344,"_uid":347,"Title":348,"component":184,"SubNavigationItems":349},{"id":345,"url":25,"linktype":39,"fieldtype":40,"cached_url":346},"84882505-8312-4d6a-9a49-f3d175e9c1dc","kompetencer/webudvikling/","dfd91dca-8d29-4be0-b3ad-7c06fde2ccd2","Webudvikling",[],{"Page":351,"_uid":354,"Title":355,"component":184,"SubNavigationItems":356},{"id":352,"url":25,"linktype":39,"fieldtype":40,"cached_url":353},"1d81ee31-5b13-44b8-99a4-42380b5d8f2f","kompetencer/programmering/","c4769577-4c02-4650-9f21-40949765ee88","Programmering",[],{"Page":358,"_uid":361,"Title":362,"component":184,"SubNavigationItems":363},{"id":359,"url":25,"linktype":39,"fieldtype":40,"cached_url":360},"67360096-cd53-4d07-926f-bf4ff64d751e","kompetencer/it-udvikling","e1be4934-0370-43a2-86d9-fa0c92e73ade","IT udvikling",[],"Kompetencer",[366,371,375,379,384,388],{"Page":367,"_uid":369,"Title":275,"component":184,"SubNavigationItems":370},{"id":25,"url":368,"linktype":239,"fieldtype":40,"cached_url":368},"https://www.uptime.ee/","fbc0cbbe-6b90-4783-9e84-5de43cb588a8",[],{"Page":372,"_uid":373,"Title":287,"component":184,"SubNavigationItems":374},{"id":25,"url":293,"linktype":239,"fieldtype":40,"cached_url":293},"736cc7d8-f6f4-4e7a-9083-ca6c6d5e7f73",[],{"Page":376,"_uid":377,"Title":299,"component":184,"SubNavigationItems":378},{"id":25,"url":305,"linktype":239,"fieldtype":40,"cached_url":305},"ca6a8287-4dfa-497e-8277-03421745a9e4",[],{"Page":380,"_uid":382,"Title":263,"component":184,"SubNavigationItems":383},{"id":25,"url":381,"linktype":239,"fieldtype":40,"cached_url":381},"https://www.uptimedevelopment.dk/","f3027c1d-72ff-4bd5-af05-8321b421d21c",[],{"Page":385,"_uid":386,"Title":311,"component":184,"SubNavigationItems":387},{"id":25,"url":317,"linktype":239,"fieldtype":40,"cached_url":317},"b39aaa49-a7fd-46df-8196-dc48f3e678d8",[],{"Page":389,"_uid":391,"Title":392,"component":184,"SubNavigationItems":393},{"id":25,"url":390,"linktype":239,"fieldtype":40,"cached_url":390},"https://uptime.ee","c4551692-9846-4f9e-a7da-acb980b8e09b","Spanien",[],"Kontorer",[396,400,404,408,415,422],{"Page":397,"_uid":398,"Title":209,"component":184,"SubNavigationItems":399},{"id":206,"url":25,"linktype":39,"fieldtype":40,"cached_url":207},"8081492e-32ad-4542-8618-32af1e2c60f2",[],{"Page":401,"_uid":402,"Title":203,"component":184,"SubNavigationItems":403},{"id":200,"url":25,"linktype":39,"fieldtype":40,"cached_url":201},"88b8096f-5f6a-4110-a4eb-7d7040e728dc",[],{"Page":405,"_uid":406,"Title":34,"component":184,"SubNavigationItems":407},{"id":37,"url":25,"linktype":39,"fieldtype":40,"cached_url":41},"4a05dc72-f8ea-45ac-90e9-ad655af09a47",[],{"Page":409,"_uid":412,"Title":413,"component":184,"SubNavigationItems":414},{"id":25,"url":410,"target":411,"linktype":27,"fieldtype":40,"cached_url":410},"https://a.storyblok.com/f/195037/x/82776e3a7a/uptime-leveringsbetingelser-2023.pdf","_blank","1fe2dd54-6178-4af7-a1e8-412de06356af","Leveringsbetingelser",[],{"Page":416,"_uid":419,"Title":420,"component":184,"SubNavigationItems":421},{"id":417,"url":25,"linktype":39,"fieldtype":40,"cached_url":418},"610b4b5f-d838-489b-866e-2d197a997335","cookie-policy","329dbf5c-076b-407e-a7f4-623405f9507e","Privatlivs- & Cookiepolitik",[],{"Page":423,"_uid":426,"Title":427,"component":184,"SubNavigationItems":428},{"id":424,"url":25,"linktype":39,"fieldtype":40,"cached_url":425},"ca01e7ae-d95f-4d27-b6d1-181c32833d46","ski-leverandor","022b37e6-f46c-4191-9606-7d27a76ea669","SKI Leverandør",[],"Information ",null,110,[],"5b70cd24-4539-4bea-bba4-84fad44f9486","2023-02-07T08:01:17.912Z","default",[],1777990388,[],[],{"_uid":441,"body":442,"noindex":29,"component":462,"shortDescription":463},"kvalitetssikring-og-test-root",[443,447,450,453,456,459],{"_uid":444,"EmbedCode":445,"component":446},"kvalitetssikring-og-test-s0","\u003Csection class=\"up-page-header\">\n  \u003Cdiv class=\"up-container\">\n    \u003Cdiv class=\"up-breadcrumb\">\n      \u003Ca href=\"/kompetencer/\">Ydelser\u003C/a>\n      \u003Cspan>›\u003C/span>\n      \u003Cspan>Kvalitetssikring & test\u003C/span>\n    \u003C/div>\n    \u003Cspan class=\"up-eyebrow\">\u003Cspan class=\"up-dot\">\u003C/span> Kvalitet i hver linje\u003C/span>\n    \u003Ch1>Test og kvalitetssikring\u003Cbr>\u003Cem>— fra første sprint\u003C/em>\u003C/h1>\n    \u003Cp class=\"up-lead\">Bugs fundet i produktion koster 10x mere at rette end bugs fundet under udvikling. Vi bygger kvalitet ind fra starten — ikke som et lag der tilføjes til sidst.\u003C/p>\n    \u003Cnav class=\"up-subnav\">\n      \u003Ca href=\"/kompetencer/\" class=\"up-subbtn\">← Alle ydelser\u003C/a>\n      \u003Ca href=\"/kompetencer/devops/\" class=\"up-subbtn\">DevOps\u003C/a>\n      \u003Ca href=\"/kompetencer/backend/\" class=\"up-subbtn\">Backend\u003C/a>\n      \u003Ca href=\"/kompetencer/system-risk-og-sikkerhed/\" class=\"up-subbtn\">Sikkerhed\u003C/a>\n    \u003C/nav>\n  \u003C/div>\n\u003C/section>","BlockEmbedCode",{"_uid":448,"EmbedCode":449,"component":446},"kvalitetssikring-og-test-s1","\u003Csection class=\"up-section\">\n  \u003Cdiv class=\"up-container\">\n    \u003Cdiv class=\"up-prose up-reveal\" style=\"max-width:860px\">\n      \u003Cspan class=\"up-tag\">Vores tilgang\u003C/span>\n      \u003Ch2>Kvalitet er ikke en fase — det er en tankegang\u003C/h2>\n      \u003Cp>Hos os ejer alle udviklere kvaliteten. Test er ikke noget vi laver til sidst for at tjekke om tingene virker — det er en del af hvert eneste feature fra dag ét. Det betyder at fejl opdages tidligt, koden er lettere at vedligeholde og I kan release med tillid.\u003C/p>\n      \u003Cp>QA er ikke en afdeling. Det er en del af kulturen og udviklingsprocessen. En developer der skriver tests mens de koder finder fejl i deres egne antagelser. En developer der sender kode til review opdager blinde vinkler. Et automatiseret pipeline der kører tests på hvert PR fanger regressions inden de rammer brugerne.\u003C/p>\n      \u003Cp>Resultatet er software der ikke bare virker ved levering, men som forbliver stabilt og pålideligt, når forretningen vokser og kravene ændrer sig.\u003C/p>\n    \u003C/div>\n  \u003C/div>\n\u003C/section>",{"_uid":451,"EmbedCode":452,"component":446},"kvalitetssikring-og-test-s2","\u003Csection class=\"up-section up-alt\">\n  \u003Cdiv class=\"up-container\">\n    \u003Cdiv class=\"up-section-header up-reveal\">\n      \u003Cspan class=\"up-tag\">Test-typer\u003C/span>\n      \u003Ch2>Hvad vi tester og hvordan\u003C/h2>\n    \u003C/div>\n    \u003Cdiv class=\"up-cards up-reveal\">\n      \u003Cdiv class=\"up-card\">\n        \u003Cdiv class=\"up-card-icon\">\n          \u003Csvg width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\u003Cpolyline points=\"9 11 12 14 22 4\"/>\u003Cpath d=\"M21 12v7a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11\"/>\u003C/svg>\n        \u003C/div>\n        \u003Ch3>Unit tests\u003C/h3>\n        \u003Cp>Automatiserede tests af isolerede funktioner og komponenter. Hurtige, reproducerbare og giver et sikkert net til refaktorering. Vi sigter efter høj coverage på forretningslogik.\u003C/p>\n      \u003C/div>\n      \u003Cdiv class=\"up-card\">\n        \u003Cdiv class=\"up-card-icon\">\n          \u003Csvg width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\u003Cpath d=\"M18 20V10\"/>\u003Cpath d=\"M12 20V4\"/>\u003Cpath d=\"M6 20v-6\"/>\u003C/svg>\n        \u003C/div>\n        \u003Ch3>Integrationstest\u003C/h3>\n        \u003Cp>Tests der verificerer at komponenter arbejder korrekt sammen — API'er, databaser og tredjepartsservices. Vi tester rigtigt, ikke mock-baseret, så vi opdager de fejl der opstår i det virkelige setup.\u003C/p>\n      \u003C/div>\n      \u003Cdiv class=\"up-card\">\n        \u003Cdiv class=\"up-card-icon\">\n          \u003Csvg width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\u003Ccircle cx=\"12\" cy=\"12\" r=\"10\"/>\u003Cline x1=\"2\" y1=\"12\" x2=\"22\" y2=\"12\"/>\u003Cpath d=\"M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z\"/>\u003C/svg>\n        \u003C/div>\n        \u003Ch3>End-to-end tests\u003C/h3>\n        \u003Cp>Automatiserede tests af kritiske brugerflows i rigtige browsere med Playwright eller Cypress. Login, betaling, checkout — de flows der aldrig må fejle, testes automatisk på hvert deploy.\u003C/p>\n      \u003C/div>\n      \u003Cdiv class=\"up-card\">\n        \u003Cdiv class=\"up-card-icon\">\n          \u003Csvg width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\u003Cpolyline points=\"22 12 18 12 15 21 9 3 6 12 2 12\"/>\u003C/svg>\n        \u003C/div>\n        \u003Ch3>Performance & load tests\u003C/h3>\n        \u003Cp>Vi load-tester inden go-live, så vi ved hvad systemet kan klare. k6, JMeter og Artillery til at simulere realistisk trafik og identificere flaskehalse inden brugerne finder dem.\u003C/p>\n      \u003C/div>\n      \u003Cdiv class=\"up-card\">\n        \u003Cdiv class=\"up-card-icon\">\n          \u003Csvg width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\u003Cpath d=\"M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2\"/>\u003Ccircle cx=\"9\" cy=\"7\" r=\"4\"/>\u003Cpath d=\"M23 21v-2a4 4 0 0 0-3-3.87\"/>\u003C/svg>\n        \u003C/div>\n        \u003Ch3>Code review\u003C/h3>\n        \u003Cp>Systematiske reviews på alle pull requests. Ikke kun for at finde bugs — men for at sikre at koden er forståelig, vedligeholdbar og følger teamets arkitekturmønstre.\u003C/p>\n      \u003C/div>\n      \u003Cdiv class=\"up-card\">\n        \u003Cdiv class=\"up-card-icon\">\n          \u003Csvg width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\u003Crect x=\"5\" y=\"2\" width=\"14\" height=\"20\" rx=\"2\"/>\u003Cline x1=\"12\" y1=\"18\" x2=\"12.01\" y2=\"18\"/>\u003C/svg>\n        \u003C/div>\n        \u003Ch3>Manuel QA & device test\u003C/h3>\n        \u003Cp>Kritiske flows testes på rigtige enheder og browsere. Automatisering fanger mange fejl — men ikke alle. Manuelle tests finder de edge cases og UX-problemer der kun ses med menneskelige øjne.\u003C/p>\n      \u003C/div>\n    \u003C/div>\n  \u003C/div>\n\u003C/section>",{"_uid":454,"EmbedCode":455,"component":446},"kvalitetssikring-og-test-s3","\u003Csection class=\"up-section\">\n  \u003Cdiv class=\"up-container\">\n    \u003Cdiv class=\"up-section-header up-reveal\">\n      \u003Cspan class=\"up-tag\">Kvalitet i processen\u003C/span>\n      \u003Ch2>Hvornår tester vi?\u003C/h2>\n    \u003C/div>\n    \u003Cdiv class=\"up-why up-reveal\">\n      \u003Cdiv class=\"up-wcard\">\n        \u003Cdiv class=\"up-num\">01\u003C/div>\n        \u003Ch3>Under udvikling\u003C/h3>\n        \u003Cp>Unit tests skrives sideløbende med koden. Statisk analyse, type-checking og linting kører lokalt og i CI. Peer review på alle PRs som standard.\u003C/p>\n      \u003C/div>\n      \u003Cdiv class=\"up-wcard\">\n        \u003Cdiv class=\"up-num\">02\u003C/div>\n        \u003Ch3>I CI/CD-pipeline\u003C/h3>\n        \u003Cp>Alle tests kører automatisk på hvert PR og hvert merge til main. Et failing test blokerer deployment. Ingen kode når produktion uden at passere pipelinen.\u003C/p>\n      \u003C/div>\n      \u003Cdiv class=\"up-wcard\">\n        \u003Cdiv class=\"up-num\">03\u003C/div>\n        \u003Ch3>Inden go-live\u003C/h3>\n        \u003Cp>Fuld E2E-gennemgang, load test og manuel QA på staging-miljø. Vi tester på de browsere og enheder der svarer til jeres brugerprofil — ikke kun Chrome på MacBook.\u003C/p>\n      \u003C/div>\n    \u003C/div>\n  \u003C/div>\n\u003C/section>",{"_uid":457,"EmbedCode":458,"component":446},"kvalitetssikring-og-test-s4","\u003Csection class=\"up-section up-alt\">\n  \u003Cdiv class=\"up-container\">\n    \u003Cdiv style=\"max-width:860px\">\n      \u003Cdiv class=\"up-section-header up-reveal\">\n        \u003Cspan class=\"up-tag\">Ofte stillede spørgsmål\u003C/span>\n        \u003Ch2>Spørgsmål om QA & test\u003C/h2>\n      \u003C/div>\n      \u003Cdiv class=\"up-faq up-reveal\">\n        \u003Cdiv class=\"up-faq-item\">\n          \u003Cbutton class=\"up-faq-q\" onclick=\"window.toggleFaq(this)\">\n            Vi har ikke tests i dag — hvordan starter vi?\n            \u003Csvg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\u003Cpolyline points=\"6 9 12 15 18 9\"/>\u003C/svg>\n          \u003C/button>\n          \u003Cdiv class=\"up-faq-a\">\n            \u003Cp>Vi starter med at kortlægge de kritiske flows og risikofyldte dele af systemet. Det er som regel bedre at have gode tests på 20% af kodebasen end dårlige tests på 100%. Vi hjælper med at etablere en testkultur og -infrastruktur, og tilføjer tests gradvist der, hvor gevinsten er størst.\u003C/p>\n          \u003C/div>\n        \u003C/div>\n        \u003Cdiv class=\"up-faq-item\">\n          \u003Cbutton class=\"up-faq-q\" onclick=\"window.toggleFaq(this)\">\n            Hvor høj test-coverage skal man have?\n            \u003Csvg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\u003Cpolyline points=\"6 9 12 15 18 9\"/>\u003C/svg>\n          \u003C/button>\n          \u003Cdiv class=\"up-faq-a\">\n            \u003Cp>Coverage-procenten er et dårligt mål i sig selv. 100% coverage kan give falsk tryghed hvis tests ikke tester de vigtige cases. Vi fokuserer på meningsfuld coverage af forretningslogik, kritiske flows og de dele af kodebasen der ændres hyppigt — ikke på et vilkårligt tal.\u003C/p>\n          \u003C/div>\n        \u003C/div>\n        \u003Cdiv class=\"up-faq-item\">\n          \u003Cbutton class=\"up-faq-q\" onclick=\"window.toggleFaq(this)\">\n            Bremser tests ikke udviklingstempo?\n            \u003Csvg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\u003Cpolyline points=\"6 9 12 15 18 9\"/>\u003C/svg>\n          \u003C/button>\n          \u003Cdiv class=\"up-faq-a\">\n            \u003Cp>Kortfristet: lidt. Langsigtet: nej — det er det modsatte. Et system med god testdækning er langt hurtigere at ændre i, fordi du ved med det samme om en ændring bryder noget. Uden tests bruges tid på manuel verifikation, regression-debugging og fejlretning i produktion — det er langt dyrere end at skrive tests undervejs.\u003C/p>\n          \u003C/div>\n        \u003C/div>\n      \u003C/div>\n    \u003C/div>\n  \u003C/div>\n\u003C/section>",{"_uid":460,"EmbedCode":461,"component":446},"kvalitetssikring-og-test-s5","\u003Csection class=\"up-section\">\n  \u003Cdiv class=\"up-container\">\n    \u003Cdiv class=\"up-cta-banner up-reveal\">\n      \u003Cdiv>\n        \u003Ch3>Vil I release med mere tillid?\u003C/h3>\n        \u003Cp>Book et møde og beskriv jeres nuværende testsituation. Vi laver en konkret plan for, hvordan I kommer fra manuelt kaos til automatiseret tillid.\u003C/p>\n      \u003C/div>\n      \u003Cdiv style=\"display:flex;flex-direction:column;gap:12px;align-items:flex-start\">\n        \u003Ca href=\"/kontakt/\" class=\"up-btn up-btn-primary\">Book et møde\u003C/a>\n        \u003Ca href=\"/kompetencer/devops/\" class=\"up-btn up-btn-ghost\">DevOps\u003C/a>\n      \u003C/div>\n    \u003C/div>\n  \u003C/div>\n\u003C/section>","page","Bugs fundet i produktion koster 10x mere end bugs fundet under udvikling. Vi bygger kvalitet ind fra starten med unit tests, E2E, code review og automatiserede pipelines.",{"name":465,"created_at":466,"published_at":467,"updated_at":468,"id":469,"uuid":470,"content":471,"slug":479,"full_slug":480,"sort_by_date":430,"position":481,"tag_list":482,"is_startpage":29,"parent_id":483,"meta_data":430,"group_id":484,"first_published_at":467,"release_id":430,"lang":435,"path":430,"alternates":485,"default_full_slug":430,"translated_slugs":430},"Kvalitetssikring & test | QA fra første sprint","2026-05-05T13:45:49.274Z","2026-05-05T13:45:49.317Z","2026-05-05T13:45:49.332Z",173257315467671,"fb2c9e69-dd52-415f-b1bd-8e4da214b6dc",{"_uid":441,"body":472,"noindex":29,"component":462,"shortDescription":463},[473,474,475,476,477,478],{"_uid":444,"EmbedCode":445,"component":446},{"_uid":448,"EmbedCode":449,"component":446},{"_uid":451,"EmbedCode":452,"component":446},{"_uid":454,"EmbedCode":455,"component":446},{"_uid":457,"EmbedCode":458,"component":446},{"_uid":460,"EmbedCode":461,"component":446},"kvalitetssikring-og-test","kompetencer/kvalitetssikring-og-test",-60,[],349815716,"d12bdae2-bfc3-4149-ae67-8a69861e0606",[],1777990692133]