[{"data":1,"prerenderedAt":941},["ShallowReactive",2],{"/blog/the-gitlab-guide-to-modern-software-testing":3,"navigation-en-us":156,"banner-en-us":584,"footer-en-us":594,"blog-post-authors-en-us-Valerie Silverthorne":837,"blog-related-posts-en-us-the-gitlab-guide-to-modern-software-testing":852,"blog-promotions-en-us":877,"next-steps-en-us":931},{"id":4,"title":5,"authors":6,"body":8,"category":134,"date":135,"description":136,"extension":137,"externalUrl":138,"faq":138,"featured":139,"heroImage":140,"meta":141,"navigation":142,"path":143,"seo":144,"slug":148,"stem":149,"tags":150,"template":154,"updatedDate":138,"__hash__":155},"blogPosts/en-us/blog/the-gitlab-guide-to-modern-software-testing.md","The GitLab guide to modern software testing",[7],"Valerie Silverthorne",{"type":9,"value":10,"toc":124},"minimark",[11,21,24,29,37,41,49,53,61,65,82,86,99,117,121],[12,13,14,15,20],"p",{},"What's the trickiest part of DevOps? It's software testing, hands down. Year after year, respondents to our ",[16,17,19],"a",{"href":18},"/resources/developer-survey/","annual DevSecOps surveys"," have called out testing as the most likely reason for release delays. And that's not all they said: \"Testing takes too long,\" \"There are too many tests,\" \"We need to do more testing,\" “We need more automated testing but don't have time,\" \"Testing happens too late,\" etc.",[12,22,23],{},"Clearly something this fraught needs all the help, so here is our best advice to get testing \"just right\" in any modern DevOps practice.",[25,26,28],"h2",{"id":27},"use-the-right-metrics","Use the right metrics",[12,30,31,32,36],{},"All of the testing in the world doesn't matter if a DevOps team is measuring the wrong things. At GitLab, we use industry-standard metrics, but we look at them a bit differently. When it comes to S1 and S2 bugs we don’t count the time to close but rather the age of the bugs that remain open. Our reasoning? We want to look forward, but we also don't want to ",[16,33,35],{"href":34},"/blog/gitlab-top-devops-tooling-metrics-and-targets/","incentivize closing only newer bugs",". So it's important to make sure DevOps teams are looking at the right metrics and with shared goals in mind.",[25,38,40],{"id":39},"forget-flaky","Forget flaky",[12,42,43,44,48],{},"Tests are noisy, and they can be flaky, setting off alarms and disrupting developer flow, often for no reason. That's at the heart of developer frustration with testing, and one of the biggest problems DevOps teams need to solve. GitLab's Vice President of Quality Mek Stittri suggests re-thinking how automated tests are created. Tests need to be validating the right things, but that must include looking at how all of the code components work together and not just at pieces of code. Finally, it doesn't hurt to ",[16,45,47],{"href":46},"/blog/software-test-at-gitlab/","develop a manual testing mindset",".",[25,50,52],{"id":51},"make-it-modern","Make it modern",[12,54,55,56,60],{},"In fact, a manual testing mindset, where test designers create tests that actually mimic what real users do, is a key underpinning of modern software testing in DevOps. Testers need to consider getting certified, embracing new technologies like AI, and, perhaps most importantly, be ",[16,57,59],{"href":58},"/blog/how-to-leverage-modern-software-testing-skills-in-devops/","evangelists for quality"," on a DevOps team.",[25,62,64],{"id":63},"make-automation-work-harder","Make automation work harder",[12,66,67,68,72,73,77,78,48],{},"Software testing may be the most annoying DevOps step, but there's no doubt that automating the process makes everything work more smoothly. Teams with test automation ",[16,69,71],{"href":70},"/blog/want-faster-releases-your-answer-lies-in-automated-software-testing/","have fewer complaints about release delays",". And teams that have taken it up a notch and added AI/ML into their test automation process are even more upbeat about testing. After all, bots ",[16,74,76],{"href":75},"/blog/the-software-testing-life-cycle-in-2021-a-more-upbeat-outlook/","don't need to take a lunch break or a vacation",". Finally, if automation is well thought out, QA and developers can ",[16,79,81],{"href":80},"/blog/what-blocks-faster-code-release/","actually work together to get code out the door",[25,83,85],{"id":84},"test-for-everything","Test for everything",[12,87,88,89,93,94,98],{},"For all the developer finger-pointing around software testing, it's also clear from our surveys that ",[90,91,92],"em",{},"more"," testing – of everything – has to happen. When considering how to modernize a software testing strategy, don't forget that \"nice to haves\" like ",[16,95,97],{"href":96},"/blog/introducing-accessibility-testing-in-gitlab/","accessibility testing"," aren't actually optional but critical for success.",[12,100,101,102,106,107,111,112,116],{},"And also don't overlook the potential of newer test techniques like ",[16,103,105],{"href":104},"/blog/why-continuous-fuzzing/","fuzzing",", which can work with ",[16,108,110],{"href":109},"/blog/how-to-fuzz-go/","Go",", ",[16,113,115],{"href":114},"/blog/how-to-fuzz-rust-code/","Rust",", and other languages, and take testing into places other methodologies cannot.",[25,118,120],{"id":119},"the-bottom-line","The bottom line",[12,122,123],{},"Testing doesn't have to be the enemy of speedy releases or the object of so much frustration. Start fresh with a modern software testing approach and and make it easy for teams to get the most out of QA.",{"title":125,"searchDepth":126,"depth":126,"links":127},"",2,[128,129,130,131,132,133],{"id":27,"depth":126,"text":28},{"id":39,"depth":126,"text":40},{"id":51,"depth":126,"text":52},{"id":63,"depth":126,"text":64},{"id":84,"depth":126,"text":85},{"id":119,"depth":126,"text":120},"devsecops","2022-08-18","If test is your DevOps team's Public Enemy No. 1, it's time to rethink your strategy. Here's what you need to know about modern software testing.","md",null,false,"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749668307/Blog/Hero%20Images/test-automation-devops.jpg",{},true,"/en-us/blog/the-gitlab-guide-to-modern-software-testing",{"title":5,"description":136,"ogTitle":5,"ogDescription":136,"noIndex":139,"ogImage":140,"ogUrl":145,"ogSiteName":146,"ogType":147,"canonicalUrls":145},"https://about.gitlab.com/blog/the-gitlab-guide-to-modern-software-testing","https://about.gitlab.com","article","the-gitlab-guide-to-modern-software-testing","en-us/blog/the-gitlab-guide-to-modern-software-testing",[151,152,153],"testing","DevOps","performance","BlogPost","PdJEwlRsXaFGTpoLJMXLzrYkt6QTp2SbrdAnkaYf3m4",{"logo":157,"freeTrial":162,"sales":167,"login":172,"items":177,"search":504,"minimal":535,"duo":554,"switchNav":563,"pricingDeployment":574},{"config":158},{"href":159,"dataGaName":160,"dataGaLocation":161},"/","gitlab logo","header",{"text":163,"config":164},"Get free trial",{"href":165,"dataGaName":166,"dataGaLocation":161},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com&glm_content=default-saas-trial/","free trial",{"text":168,"config":169},"Request a demo",{"href":170,"dataGaName":171,"dataGaLocation":161},"/sales/?contact-topic=request-demo","sales",{"text":173,"config":174},"Sign in",{"href":175,"dataGaName":176,"dataGaLocation":161},"https://gitlab.com/users/sign_in/","sign in",[178,207,307,312,426,482],{"text":179,"config":180,"menu":182},"Platform",{"dataNavLevelOne":181},"platform",{"type":183,"columns":184},"cards",[185,191,199],{"title":179,"description":186,"link":187},"The intelligent orchestration platform for DevSecOps",{"text":188,"config":189},"Explore our Platform",{"href":190,"dataGaName":181,"dataGaLocation":161},"/platform/",{"title":192,"description":193,"link":194},"GitLab Duo Agent Platform","Agentic AI for the entire software lifecycle",{"text":195,"config":196},"Meet GitLab Duo",{"href":197,"dataGaName":198,"dataGaLocation":161},"/gitlab-duo-agent-platform/","gitlab duo agent platform",{"title":200,"description":201,"link":202},"Why GitLab","See the top reasons enterprises choose GitLab",{"text":203,"config":204},"Learn more",{"href":205,"dataGaName":206,"dataGaLocation":161},"/why-gitlab/","why gitlab",{"text":208,"left":142,"config":209,"menu":211},"Product",{"dataNavLevelOne":210},"solutions",{"type":212,"link":213,"columns":217,"feature":286},"lists",{"text":214,"config":215},"View all Solutions",{"href":216,"dataGaName":210,"dataGaLocation":161},"/solutions/",[218,242,265],{"title":219,"description":220,"link":221,"items":226},"Automation","CI/CD and automation to accelerate deployment",{"config":222},{"icon":223,"href":224,"dataGaName":225,"dataGaLocation":161},"AutomatedCodeAlt","/solutions/delivery-automation/","automated software delivery",[227,231,234,238],{"text":228,"config":229},"CI/CD",{"href":230,"dataGaLocation":161,"dataGaName":228},"/solutions/continuous-integration/",{"text":192,"config":232},{"href":197,"dataGaLocation":161,"dataGaName":233},"gitlab duo agent platform - product menu",{"text":235,"config":236},"Source Code Management",{"href":237,"dataGaLocation":161,"dataGaName":235},"/solutions/source-code-management/",{"text":239,"config":240},"Automated Software Delivery",{"href":224,"dataGaLocation":161,"dataGaName":241},"Automated software delivery",{"title":243,"description":244,"link":245,"items":250},"Security","Deliver code faster without compromising security",{"config":246},{"href":247,"dataGaName":248,"dataGaLocation":161,"icon":249},"/solutions/application-security-testing/","security and compliance","ShieldCheckLight",[251,255,260],{"text":252,"config":253},"Application Security Testing",{"href":247,"dataGaName":254,"dataGaLocation":161},"Application security testing",{"text":256,"config":257},"Software Supply Chain Security",{"href":258,"dataGaLocation":161,"dataGaName":259},"/solutions/supply-chain/","Software supply chain security",{"text":261,"config":262},"Software Compliance",{"href":263,"dataGaName":264,"dataGaLocation":161},"/solutions/software-compliance/","software compliance",{"title":266,"link":267,"items":272},"Measurement",{"config":268},{"icon":269,"href":270,"dataGaName":271,"dataGaLocation":161},"DigitalTransformation","/solutions/visibility-measurement/","visibility and measurement",[273,277,281],{"text":274,"config":275},"Visibility & Measurement",{"href":270,"dataGaLocation":161,"dataGaName":276},"Visibility and Measurement",{"text":278,"config":279},"Value Stream Management",{"href":280,"dataGaLocation":161,"dataGaName":278},"/solutions/value-stream-management/",{"text":282,"config":283},"Analytics & Insights",{"href":284,"dataGaLocation":161,"dataGaName":285},"/solutions/analytics-and-insights/","Analytics and insights",{"title":287,"type":212,"items":288},"GitLab for",[289,295,301],{"text":290,"config":291},"Enterprise",{"icon":292,"href":293,"dataGaLocation":161,"dataGaName":294},"Building","/enterprise/","enterprise",{"text":296,"config":297},"Small Business",{"icon":298,"href":299,"dataGaLocation":161,"dataGaName":300},"Work","/small-business/","small business",{"text":302,"config":303},"Public Sector",{"icon":304,"href":305,"dataGaLocation":161,"dataGaName":306},"Organization","/solutions/public-sector/","public sector",{"text":308,"config":309},"Pricing",{"href":310,"dataGaName":311,"dataGaLocation":161,"dataNavLevelOne":311},"/pricing/","pricing",{"text":313,"config":314,"menu":316},"Resources",{"dataNavLevelOne":315},"resources",{"type":212,"link":317,"columns":321,"feature":415},{"text":318,"config":319},"View all resources",{"href":320,"dataGaName":315,"dataGaLocation":161},"/resources/",[322,355,382],{"title":323,"items":324},"Getting started",[325,330,335,340,345,350],{"text":326,"config":327},"Install",{"href":328,"dataGaName":329,"dataGaLocation":161},"/install/","install",{"text":331,"config":332},"Quick start guides",{"href":333,"dataGaName":334,"dataGaLocation":161},"/get-started/","quick setup checklists",{"text":336,"config":337},"Learn",{"href":338,"dataGaLocation":161,"dataGaName":339},"https://university.gitlab.com/","learn",{"text":341,"config":342},"Product documentation",{"href":343,"dataGaName":344,"dataGaLocation":161},"https://docs.gitlab.com/","product documentation",{"text":346,"config":347},"Best practice videos",{"href":348,"dataGaName":349,"dataGaLocation":161},"/getting-started-videos/","best practice videos",{"text":351,"config":352},"Integrations",{"href":353,"dataGaName":354,"dataGaLocation":161},"/integrations/","integrations",{"title":356,"items":357},"Discover",[358,363,368,373,377],{"text":359,"config":360},"Customer success stories",{"href":361,"dataGaName":362,"dataGaLocation":161},"/customers/","customer success stories",{"text":364,"config":365},"Blog",{"href":366,"dataGaName":367,"dataGaLocation":161},"/blog/","blog",{"text":369,"config":370},"Demo Hub",{"href":371,"dataGaName":372,"dataGaLocation":161},"/demo-hub/","demo hub",{"text":374,"config":375},"The Source",{"href":376,"dataGaName":367,"dataGaLocation":161},"/the-source/",{"text":378,"config":379},"Remote",{"href":380,"dataGaName":381,"dataGaLocation":161},"https://handbook.gitlab.com/handbook/company/culture/all-remote/","remote",{"title":383,"items":384},"Connect",[385,390,395,400,405,410],{"text":386,"config":387},"GitLab Services",{"href":388,"dataGaName":389,"dataGaLocation":161},"/services/","services",{"text":391,"config":392},"Contribute",{"href":393,"dataGaName":394,"dataGaLocation":161},"https://contributors.gitlab.com","contribute",{"text":396,"config":397},"Community",{"href":398,"dataGaName":399,"dataGaLocation":161},"/community/","community",{"text":401,"config":402},"Forum",{"href":403,"dataGaName":404,"dataGaLocation":161},"https://forum.gitlab.com/","forum",{"text":406,"config":407},"Events",{"href":408,"dataGaName":409,"dataGaLocation":161},"/events/","events",{"text":411,"config":412},"Partners",{"href":413,"dataGaName":414,"dataGaLocation":161},"/partners/","partners",{"config":416,"title":419,"text":420,"link":421},{"background":417,"textColor":418},"url('https://res.cloudinary.com/about-gitlab-com/image/upload/v1777322348/qpq8yrgn8knii57omj0c.png')","#000","What’s new in GitLab","Stay updated with our latest features and improvements.",{"text":422,"config":423},"Read the latest",{"href":424,"dataGaName":425,"dataGaLocation":161},"/whats-new/","whats new",{"text":427,"config":428,"menu":430},"Company",{"dataNavLevelOne":429},"company",{"type":212,"columns":431},[432],{"items":433},[434,439,445,447,452,457,462,467,472,477],{"text":435,"config":436},"About",{"href":437,"dataGaName":438,"dataGaLocation":161},"/company/","about",{"text":440,"config":441,"footerGa":444},"Jobs",{"href":442,"dataGaName":443,"dataGaLocation":161},"/jobs/","jobs",{"dataGaName":443},{"text":406,"config":446},{"href":408,"dataGaName":409,"dataGaLocation":161},{"text":448,"config":449},"Leadership",{"href":450,"dataGaName":451,"dataGaLocation":161},"/company/team/e-group/","leadership",{"text":453,"config":454},"Handbook",{"href":455,"dataGaName":456,"dataGaLocation":161},"https://handbook.gitlab.com/","handbook",{"text":458,"config":459},"Investor relations",{"href":460,"dataGaName":461,"dataGaLocation":161},"https://ir.gitlab.com/overview/default.aspx","investor relations",{"text":463,"config":464},"Trust Center",{"href":465,"dataGaName":466,"dataGaLocation":161},"/security/","trust center",{"text":468,"config":469},"AI Transparency Center",{"href":470,"dataGaName":471,"dataGaLocation":161},"/ai-transparency-center/","ai transparency center",{"text":473,"config":474},"Newsletter",{"href":475,"dataGaName":476,"dataGaLocation":161},"/company/contact/#contact-forms","newsletter",{"text":478,"config":479},"Press",{"href":480,"dataGaName":481,"dataGaLocation":161},"/press/","press",{"text":483,"config":484,"menu":485},"Contact us",{"dataNavLevelOne":429},{"type":212,"columns":486},[487],{"items":488},[489,494,499],{"text":490,"config":491},"Talk to sales",{"href":492,"dataGaName":493,"dataGaLocation":161},"/sales/","talk to sales",{"text":495,"config":496},"Support portal",{"href":497,"dataGaName":498,"dataGaLocation":161},"https://support.gitlab.com/hc/en-us","support portal",{"text":500,"config":501},"Customer portal",{"href":502,"dataGaName":503,"dataGaLocation":161},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":505,"login":506,"suggestions":513},"Close",{"text":507,"link":508},"To search repositories and projects, login to",{"text":509,"config":510},"gitlab.com",{"href":175,"dataGaName":511,"dataGaLocation":512},"search login","search",{"text":514,"default":515},"Suggestions",[516,518,522,524,528,532],{"text":192,"config":517},{"href":197,"dataGaName":192,"dataGaLocation":512},{"text":519,"config":520},"Code Suggestions (AI)",{"href":521,"dataGaName":519,"dataGaLocation":512},"/solutions/code-suggestions/",{"text":228,"config":523},{"href":230,"dataGaName":228,"dataGaLocation":512},{"text":525,"config":526},"GitLab on AWS",{"href":527,"dataGaName":525,"dataGaLocation":512},"/partners/technology-partners/aws/",{"text":529,"config":530},"GitLab on Google Cloud",{"href":531,"dataGaName":529,"dataGaLocation":512},"/partners/technology-partners/google-cloud-platform/",{"text":533,"config":534},"Why GitLab?",{"href":205,"dataGaName":533,"dataGaLocation":512},{"freeTrial":536,"mobileIcon":541,"desktopIcon":546,"secondaryButton":549},{"text":537,"config":538},"Start free trial",{"href":539,"dataGaName":166,"dataGaLocation":540},"https://gitlab.com/-/trials/new/","nav",{"altText":542,"config":543},"Gitlab Icon",{"src":544,"dataGaName":545,"dataGaLocation":540},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":542,"config":547},{"src":548,"dataGaName":545,"dataGaLocation":540},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"text":550,"config":551},"Get Started",{"href":552,"dataGaName":553,"dataGaLocation":540},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/get-started/","get started",{"freeTrial":555,"mobileIcon":559,"desktopIcon":561},{"text":556,"config":557},"Learn more about GitLab Duo",{"href":197,"dataGaName":558,"dataGaLocation":540},"gitlab duo",{"altText":542,"config":560},{"src":544,"dataGaName":545,"dataGaLocation":540},{"altText":542,"config":562},{"src":548,"dataGaName":545,"dataGaLocation":540},{"button":564,"mobileIcon":569,"desktopIcon":571},{"text":565,"config":566},"/switch",{"href":567,"dataGaName":568,"dataGaLocation":540},"#contact","switch",{"altText":542,"config":570},{"src":544,"dataGaName":545,"dataGaLocation":540},{"altText":542,"config":572},{"src":573,"dataGaName":545,"dataGaLocation":540},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1773335277/ohhpiuoxoldryzrnhfrh.png",{"freeTrial":575,"mobileIcon":580,"desktopIcon":582},{"text":576,"config":577},"Back to pricing",{"href":310,"dataGaName":578,"dataGaLocation":540,"icon":579},"back to pricing","GoBack",{"altText":542,"config":581},{"src":544,"dataGaName":545,"dataGaLocation":540},{"altText":542,"config":583},{"src":548,"dataGaName":545,"dataGaLocation":540},{"title":585,"titleMobile":586,"button":587,"config":592},"Duo Agent Platform delivers 400% ROI, per new Forrester Consulting study.","400% ROI: Forrester TEI for GitLab Duo",{"text":203,"config":588},{"href":589,"dataGaName":590,"dataGaLocation":591},"https://about.gitlab.com/blog/gitlab-duo-agent-platform-delivers-400-percent-roi/","forrester-tei-dap-banner","global-banner",{"layout":593,"disabled":139},"release",{"data":595},{"text":596,"source":597,"edit":603,"contribute":608,"config":613,"items":618,"minimal":826},"Git is a trademark of Software Freedom Conservancy and our use of 'GitLab' is under license",{"text":598,"config":599},"View page source",{"href":600,"dataGaName":601,"dataGaLocation":602},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":604,"config":605},"Edit this page",{"href":606,"dataGaName":607,"dataGaLocation":602},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":609,"config":610},"Please contribute",{"href":611,"dataGaName":612,"dataGaLocation":602},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":614,"facebook":615,"youtube":616,"linkedin":617},"https://twitter.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[619,666,718,762,794],{"title":308,"links":620,"subMenu":635},[621,625,630],{"text":622,"config":623},"View plans",{"href":310,"dataGaName":624,"dataGaLocation":602},"view plans",{"text":626,"config":627},"Why Premium?",{"href":628,"dataGaName":629,"dataGaLocation":602},"/pricing/premium/","why premium",{"text":631,"config":632},"Why Ultimate?",{"href":633,"dataGaName":634,"dataGaLocation":602},"/pricing/ultimate/","why ultimate",[636],{"title":637,"links":638},"Contact Us",[639,642,644,646,651,656,661],{"text":640,"config":641},"Contact sales",{"href":492,"dataGaName":171,"dataGaLocation":602},{"text":495,"config":643},{"href":497,"dataGaName":498,"dataGaLocation":602},{"text":500,"config":645},{"href":502,"dataGaName":503,"dataGaLocation":602},{"text":647,"config":648},"Status",{"href":649,"dataGaName":650,"dataGaLocation":602},"https://status.gitlab.com/","status",{"text":652,"config":653},"Terms of use",{"href":654,"dataGaName":655,"dataGaLocation":602},"/terms/","terms of use",{"text":657,"config":658},"Privacy statement",{"href":659,"dataGaName":660,"dataGaLocation":602},"/privacy/","privacy statement",{"text":662,"config":663},"Cookie preferences",{"dataGaName":664,"dataGaLocation":602,"id":665,"isOneTrustButton":142},"cookie preferences","ot-sdk-btn",{"title":208,"links":667,"subMenu":676},[668,672],{"text":669,"config":670},"DevSecOps platform",{"href":190,"dataGaName":671,"dataGaLocation":602},"devsecops platform",{"text":673,"config":674},"AI-Assisted Development",{"href":197,"dataGaName":675,"dataGaLocation":602},"ai-assisted development",[677],{"title":678,"links":679},"Topics",[680,685,690,694,699,703,708,713],{"text":681,"config":682},"CICD",{"href":683,"dataGaName":684,"dataGaLocation":602},"/topics/ci-cd/","cicd",{"text":686,"config":687},"GitOps",{"href":688,"dataGaName":689,"dataGaLocation":602},"/topics/gitops/","gitops",{"text":152,"config":691},{"href":692,"dataGaName":693,"dataGaLocation":602},"/topics/devops/","devops",{"text":695,"config":696},"Version Control",{"href":697,"dataGaName":698,"dataGaLocation":602},"/topics/version-control/","version control",{"text":700,"config":701},"DevSecOps",{"href":702,"dataGaName":134,"dataGaLocation":602},"/topics/devsecops/",{"text":704,"config":705},"Cloud Native",{"href":706,"dataGaName":707,"dataGaLocation":602},"/topics/cloud-native/","cloud native",{"text":709,"config":710},"AI for Coding",{"href":711,"dataGaName":712,"dataGaLocation":602},"/topics/devops/ai-for-coding/","ai for coding",{"text":714,"config":715},"Agentic AI",{"href":716,"dataGaName":717,"dataGaLocation":602},"/topics/agentic-ai/","agentic ai",{"title":719,"links":720},"Solutions",[721,723,725,730,734,737,741,744,746,749,752,757],{"text":252,"config":722},{"href":247,"dataGaName":252,"dataGaLocation":602},{"text":241,"config":724},{"href":224,"dataGaName":225,"dataGaLocation":602},{"text":726,"config":727},"Agile development",{"href":728,"dataGaName":729,"dataGaLocation":602},"/solutions/agile-delivery/","agile delivery",{"text":731,"config":732},"SCM",{"href":237,"dataGaName":733,"dataGaLocation":602},"source code management",{"text":681,"config":735},{"href":230,"dataGaName":736,"dataGaLocation":602},"continuous integration & delivery",{"text":738,"config":739},"Value stream management",{"href":280,"dataGaName":740,"dataGaLocation":602},"value stream management",{"text":686,"config":742},{"href":743,"dataGaName":689,"dataGaLocation":602},"/solutions/gitops/",{"text":290,"config":745},{"href":293,"dataGaName":294,"dataGaLocation":602},{"text":747,"config":748},"Small business",{"href":299,"dataGaName":300,"dataGaLocation":602},{"text":750,"config":751},"Public sector",{"href":305,"dataGaName":306,"dataGaLocation":602},{"text":753,"config":754},"Education",{"href":755,"dataGaName":756,"dataGaLocation":602},"/solutions/education/","education",{"text":758,"config":759},"Financial services",{"href":760,"dataGaName":761,"dataGaLocation":602},"/solutions/finance/","financial services",{"title":313,"links":763},[764,766,768,770,773,775,778,780,782,784,786,788,790,792],{"text":326,"config":765},{"href":328,"dataGaName":329,"dataGaLocation":602},{"text":331,"config":767},{"href":333,"dataGaName":334,"dataGaLocation":602},{"text":336,"config":769},{"href":338,"dataGaName":339,"dataGaLocation":602},{"text":341,"config":771},{"href":343,"dataGaName":772,"dataGaLocation":602},"docs",{"text":364,"config":774},{"href":366,"dataGaName":367,"dataGaLocation":602},{"text":776,"config":777},"What's new",{"href":424,"dataGaName":425,"dataGaLocation":602},{"text":359,"config":779},{"href":361,"dataGaName":362,"dataGaLocation":602},{"text":378,"config":781},{"href":380,"dataGaName":381,"dataGaLocation":602},{"text":386,"config":783},{"href":388,"dataGaName":389,"dataGaLocation":602},{"text":391,"config":785},{"href":393,"dataGaName":394,"dataGaLocation":602},{"text":396,"config":787},{"href":398,"dataGaName":399,"dataGaLocation":602},{"text":401,"config":789},{"href":403,"dataGaName":404,"dataGaLocation":602},{"text":406,"config":791},{"href":408,"dataGaName":409,"dataGaLocation":602},{"text":411,"config":793},{"href":413,"dataGaName":414,"dataGaLocation":602},{"title":427,"links":795},[796,798,800,802,804,806,810,815,817,819,821],{"text":435,"config":797},{"href":437,"dataGaName":429,"dataGaLocation":602},{"text":440,"config":799},{"href":442,"dataGaName":443,"dataGaLocation":602},{"text":448,"config":801},{"href":450,"dataGaName":451,"dataGaLocation":602},{"text":453,"config":803},{"href":455,"dataGaName":456,"dataGaLocation":602},{"text":458,"config":805},{"href":460,"dataGaName":461,"dataGaLocation":602},{"text":807,"config":808},"Sustainability",{"href":809,"dataGaName":807,"dataGaLocation":602},"/sustainability/",{"text":811,"config":812},"Diversity, inclusion and belonging (DIB)",{"href":813,"dataGaName":814,"dataGaLocation":602},"/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":463,"config":816},{"href":465,"dataGaName":466,"dataGaLocation":602},{"text":473,"config":818},{"href":475,"dataGaName":476,"dataGaLocation":602},{"text":478,"config":820},{"href":480,"dataGaName":481,"dataGaLocation":602},{"text":822,"config":823},"Modern Slavery Transparency Statement",{"href":824,"dataGaName":825,"dataGaLocation":602},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"items":827},[828,831,834],{"text":829,"config":830},"Terms",{"href":654,"dataGaName":655,"dataGaLocation":602},{"text":832,"config":833},"Cookies",{"dataGaName":664,"dataGaLocation":602,"id":665,"isOneTrustButton":142},{"text":835,"config":836},"Privacy",{"href":659,"dataGaName":660,"dataGaLocation":602},[838],{"id":839,"title":7,"body":138,"config":840,"content":842,"description":138,"extension":846,"meta":847,"navigation":142,"path":848,"seo":849,"stem":850,"__hash__":851},"blogAuthors/en-us/blog/authors/valerie-silverthorne.yml",{"template":841},"BlogAuthor",{"name":7,"config":843},{"headshot":844,"ctfId":845},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749659488/Blog/Author%20Headshots/gitlab-logo-extra-whitespace.png","vsilverthorne","yml",{},"/en-us/blog/authors/valerie-silverthorne",{},"en-us/blog/authors/valerie-silverthorne","r2glbOZCR5HOKEwYKJRy7sOVW6u0oTjxVRg28ZvHJ-I",[853,861,869],{"title":854,"description":855,"heroImage":856,"category":134,"date":857,"authors":858,"slug":860,"externalUrl":138},"Consolidate your GitLab stack with Gitaly on Kubernetes","Discover how to install Gitaly on Kubernetes, which is now generally available.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1756500636/wmey6kqzzuhirk88w2de.png","2026-05-07",[859],"Olivier Campeau","gitaly-on-kubernetes-generally-available",{"title":862,"description":863,"heroImage":864,"category":134,"date":865,"authors":866,"slug":868,"externalUrl":138},"Teaching software development the easy way using GitLab","Learn how University of Washington lecturer Stephen G. Dame uses GitLab for Education to manage student assignments, distribute course materials, and provide inline code feedback at scale.\n","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749659537/Blog/Hero%20Images/display-article-image-0679-1800x945-fy26.png","2026-04-29",[867],"Rod Burns","teaching-software-development-the-easy-way-using-gitlab",{"title":870,"description":871,"heroImage":872,"category":134,"date":873,"authors":874,"slug":876,"externalUrl":138},"AI is reshaping DevSecOps: Attend GitLab Transcend to see what’s next","AI-generated code is 34% of development work. Discover how to balance productivity gains with quality, reliability, and security.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1767982271/e9ogyosmuummq7j65zqg.png","2026-01-08",[875],"Manav Khurana","ai-is-reshaping-devsecops-attend-gitlab-transcend-to-see-whats-next",{"promotions":878},[879,893,905,917],{"id":880,"categories":881,"header":883,"text":884,"button":885,"image":890},"ai-modernization",[882],"ai","Is AI achieving its promise at scale?","Quiz will take 5 minutes or less",{"text":886,"config":887},"Get your AI maturity score",{"href":888,"dataGaName":889,"dataGaLocation":367},"/assessments/ai-modernization-assessment/","modernization assessment",{"config":891},{"src":892},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/qix0m7kwnd8x2fh1zq49.png",{"id":894,"categories":895,"header":897,"text":884,"button":898,"image":902},"devops-modernization",[896,134],"product","Are you just managing tools or shipping innovation?",{"text":899,"config":900},"Get your DevOps maturity score",{"href":901,"dataGaName":889,"dataGaLocation":367},"/assessments/devops-modernization-assessment/",{"config":903},{"src":904},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138785/eg818fmakweyuznttgid.png",{"id":906,"categories":907,"header":909,"text":884,"button":910,"image":914},"security-modernization",[908],"security","Are you trading speed for security?",{"text":911,"config":912},"Get your security maturity score",{"href":913,"dataGaName":889,"dataGaLocation":367},"/assessments/security-modernization-assessment/",{"config":915},{"src":916},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/p4pbqd9nnjejg5ds6mdk.png",{"id":918,"paths":919,"header":922,"text":923,"button":924,"image":929},"github-azure-migration",[920,921],"migration-from-azure-devops-to-gitlab","integrating-azure-devops-scm-and-gitlab","Is your team ready for GitHub's Azure move?","GitHub is already rebuilding around Azure. Find out what it means for you.",{"text":925,"config":926},"See how GitLab compares to GitHub",{"href":927,"dataGaName":928,"dataGaLocation":367},"/compare/gitlab-vs-github/github-azure-migration/","github azure migration",{"config":930},{"src":904},{"header":932,"blurb":933,"button":934,"secondaryButton":939},"Start building faster today","See what your team can do with the intelligent orchestration platform for DevSecOps.\n",{"text":935,"config":936},"Get your free trial",{"href":937,"dataGaName":166,"dataGaLocation":938},"https://gitlab.com/-/trial_registrations/new?glm_content=default-saas-trial&glm_source=about.gitlab.com/","feature",{"text":640,"config":940},{"href":492,"dataGaName":171,"dataGaLocation":938},1786803755429]