[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"me":3,"catalog:tr:qa-test-automation\u002Fqa-ci-cd-testing":4,"config":127},null,{"field_key":5,"field_name":6,"seniority":7,"topic_key":8,"topic_name":9,"spec_key":7,"spec_name":7,"locale":10,"cell_total":11,"field_total":12,"seniorities":13,"topics":17,"specs":40,"samples":41},"qa-test-automation","QA \u002F Test Otomasyonu","","qa-ci-cd-testing","Qa Ci Cd Testing","tr",75,600,[14,15,16],"junior","mid","senior",[18,21,24,25,28,31,34,37],{"key":19,"name":20,"count":11},"qa-api-testing","Qa Api Testing",{"key":22,"name":23,"count":11},"qa-automation-fundamentals","Qa Automation Fundamentals",{"key":8,"name":9,"count":11},{"key":26,"name":27,"count":11},"qa-defect-management","Qa Defect Management",{"key":29,"name":30,"count":11},"qa-exploratory-manual-testing","Qa Exploratory Manual Testing",{"key":32,"name":33,"count":11},"qa-performance-testing","Qa Performance Testing",{"key":35,"name":36,"count":11},"qa-test-case-design","Qa Test Case Design",{"key":38,"name":39,"count":11},"qa-test-strategy","Qa Test Strategy",[],[42,60,74,87,100,113],{"id":43,"topic":9,"difficulty":44,"body":45,"options":46,"correct_key":48,"explanation":59},"019f68ba-23a5-77f3-a7c2-21b39801a65d",1,"CI\u002FCD pipeline'ında otomatik testlerin bir \"gate\" (kapı) olarak davranması ne anlama gelir?",[47,50,53,56],{"key":48,"text":49},"a","Başarısız zorunlu bir test, kodun bir sonraki aşamaya geçmesini engeller",{"key":51,"text":52},"b","Testler yalnızca yazılım kullanıcılara zaten yayınlandıktan sonra çalıştırılır",{"key":54,"text":55},"c","Pipeline devam edebilmesi için her testin bir insan tarafından manuel olarak tekrar çalıştırılması gerekir",{"key":57,"text":58},"d","Test sonuçları ileride okunmak üzere kaydedilir ama pipeline sonucunu hiçbir zaman etkilemez","Test gate demek, gerekli testler başarısız olduğunda pipeline'ın durması (merge'ü, deploy'u, promosyonu engellemesi) için yapılandırılmış olması demektir; böylece test edilmemiş veya bozuk kod sessizce ilerleyemez.",{"id":61,"topic":9,"difficulty":62,"body":63,"options":64,"correct_key":51,"explanation":73},"019f68ba-23a5-7ea2-8c81-b01fbd86b2c7",2,"Bir test pipeline'ında \"hızlı geri-bildirim döngüsü\" ilkesinin (en ucuz ve en hızlı testleri önce çalıştırmanın) temel gerekçesi nedir?",[65,67,69,71],{"key":48,"text":66},"Ucuz testler pahalı testlerden daha doğrudur, bu yüzden erken sonuçlar daha güvenilirdir",{"key":51,"text":68},"Bariz bir hata, uzun bir paket bitmeden dakikalar içinde raporlanır",{"key":54,"text":70},"Ucuz testleri önce çalıştırmak, yazılması gereken toplam test sayısını azaltır",{"key":57,"text":72},"Pahalı testler her zaman ucuz testlerin geçmesine bağımlıdır, bu yüzden sıra aslında önemli değildir","Testleri en ucuz\u002Fen hızlıdan en pahalıya doğru sıralamak, bariz bir bozulmanın uzun süren bir paket bitmeden dakikalar içinde raporlanması anlamına gelir; bu da geliştiricinin bir şeyin bozuk olduğunu öğrenmesi için beklediği süreyi kısaltır.",{"id":75,"topic":9,"difficulty":62,"body":76,"options":77,"correct_key":54,"explanation":86},"019f68ba-23a6-7701-97b9-c1eeaa9a56e9","Bir pipeline şu anda yavaş uçtan uca (end-to-end) UI testlerini, hızlı unit testlerinden ÖNCE çalıştırıyor. Bu sıralamanın temel dezavantajı nedir?",[78,80,82,84],{"key":48,"text":79},"Unit testler, UI testlerinden önce değil sonra çalıştıkları için güvenilmez hale gelir",{"key":51,"text":81},"Unit testler zaten geçmediği sürece uçtan uca testler hiç otomatikleştirilemez",{"key":54,"text":83},"Önemsiz bir hata, ancak çok daha uzun süren UI paketi bittikten sonra raporlanır",{"key":57,"text":85},"Pipeline'da yazılabilecek toplam test sayısı bu sıralama tarafından sınırlanır","Ucuz, hızlı testler en sona konursa, önemsiz bir hata bile ancak pahalı paket tamamlandıktan sonra raporlanır; bu geri bildirimi geciktirir ve yavaş paketin harcadığı zaman ile kaynağı, hızlı bir testin zaten reddedeceği kod üzerinde boşa harcanmış olur.",{"id":88,"topic":9,"difficulty":44,"body":89,"options":90,"correct_key":57,"explanation":99},"019f68ba-23a7-75e3-a18b-ba47524599a6","Bir pipeline içinde test tiplerini sıralamak için yaygın olarak önerilen aşamalandırma stratejisi nedir?",[91,93,95,97],{"key":48,"text":92},"Hız veya bağımlılık fark etmeksizin tüm test tiplerini tek bir birleşik aşamada aynı anda çalıştırmak",{"key":51,"text":94},"Önce uçtan uca testleri çalıştırmak, böylece unit ve entegrasyon testleri yalnızca bütün sistem zaten çalışıyorken çalışsın",{"key":54,"text":96},"Hiçbir tip tutarlı biçimde pipeline'ı engellemesin diye test tipi sırasını her çalıştırmada rastgele değiştirmek",{"key":57,"text":98},"Önce unit testleri, sonra entegrasyon testlerini, sonra daha geniş uçtan uca testleri çalıştırmak — en küçük kapsam önce","Testleri en dar ve en ucuzdan (unit) en geniş ve en pahalıya (uçtan uca\u002FUI) doğru aşamalandırmak test piramidini yansıtır ve hataların onları yakalayabilecek en ucuz aşamada ortaya çıkmasını sağlar.",{"id":101,"topic":9,"difficulty":62,"body":102,"options":103,"correct_key":48,"explanation":112},"019f68ba-23a7-7c56-9a19-41f20be45111","Bir pipeline yapılandırması, her aşamanın yalnızca bir önceki aşama başarılı olduğunda başladığı üç sıralı aşama tanımlar: `unit-tests`, `integration-tests`, `e2e-tests`. `unit-tests` başarısız olursa ne olur?",[104,106,108,110],{"key":48,"text":105},"`integration-tests` ve `e2e-tests` hiç çalışmaz",{"key":51,"text":107},"Pipeline yalnızca nihai birleşik sonucu raporladığı için üç aşama yine de paralel çalışır",{"key":54,"text":109},"Yalnızca `e2e-tests` atlanır, ama `integration-tests` unit testlere bağımlı olmadığı için yine de çalışır",{"key":57,"text":111},"Pipeline `unit-tests`i geçene kadar otomatik olarak döngüde tekrar dener, sonra devam eder","Aşamalar başarıya bağlı olarak sıkı biçimde sıralıysa, başarısız olan `unit-tests` aşaması, sonraki aşamaların başlama koşulu bir öncekinin başarısı olduğu için pipeline'ı sonraki aşamalar başlamadan durdurur.",{"id":114,"topic":9,"difficulty":115,"body":116,"options":117,"correct_key":51,"explanation":126},"019f68ba-23a8-7378-bb11-5cf24cd828f6",3,"Bir test paketi paylaşılan bir veritabanına karşı çalışıyor. İki pipeline çalıştırması aynı anda yürütülüyor ve ikisi de aynı sabit ID ile bir kayıt ekliyor; bu da gerçek bir hatayla ilgisi olmayan bir duplicate-key hatasıyla bir çalıştırmanın başarısız olmasına neden oluyor. Bu neyin örneğidir?",[118,120,122,124],{"key":48,"text":119},"Yalnızca test çalıştırıcısı ile veritabanı arasındaki ağ gecikmesinden kaynaklanan flaky bir test",{"key":51,"text":121},"Bir test ortamı izolasyon sorunu: eşzamanlı çalıştırmalar durumu paylaşıyor ve birbirini kirletiyor",{"key":54,"text":123},"Tam olarak yapması gerekeni yapan, doğru çalışan bir test gate'i",{"key":57,"text":125},"Ortamla ilgisi olmayan, tek bir test sürecinin içindeki bir test paralelleştirme sorunu","Bu başarısızlığın test edilen kodla hiçbir ilgisi yok; iki çalıştırmanın izolasyon olmadan aynı veritabanını\u002Fdurumu paylaşmasından kaynaklanıyor. Bu, tek bir çalıştırma içindeki zamanlamadan kaynaklanan flakiness'ten farklı, klasik bir test ortamı izolasyonu ve temizlik sorunudur.",{"fields":128,"seniorities":311,"interview_shapes":312,"locales":317,"oauth":319,"question_count":322,"coach_enabled":323,"jd_match_enabled":323},[129,154,174,190,214,227,246,265,287,292,298,305],{"key":130,"name_tr":131,"name_en":131,"sort":44,"specializations":132},"backend","Backend",[133,136,139,142,145,148,151],{"key":134,"name":135,"field":130},"general","Genel",{"key":137,"name":138,"field":130},"go","Go",{"key":140,"name":141,"field":130},"python","Python",{"key":143,"name":144,"field":130},"java","Java",{"key":146,"name":147,"field":130},"csharp","C#\u002F.NET",{"key":149,"name":150,"field":130},"nodejs","Node.js",{"key":152,"name":153,"field":130},"php","PHP",{"key":155,"name_tr":156,"name_en":156,"sort":62,"specializations":157},"frontend","Frontend",[158,159,162,165,168,171],{"key":134,"name":135,"field":155},{"key":160,"name":161,"field":155},"javascript","JavaScript",{"key":163,"name":164,"field":155},"typescript","TypeScript",{"key":166,"name":167,"field":155},"react","React",{"key":169,"name":170,"field":155},"vue","Vue",{"key":172,"name":173,"field":155},"angular","Angular",{"key":175,"name_tr":176,"name_en":176,"sort":115,"specializations":177},"fullstack","Fullstack",[178,179,180,181,182,183,184,185,186,187,188,189],{"key":134,"name":135,"field":175},{"key":137,"name":138,"field":130},{"key":140,"name":141,"field":130},{"key":143,"name":144,"field":130},{"key":146,"name":147,"field":130},{"key":149,"name":150,"field":130},{"key":152,"name":153,"field":130},{"key":160,"name":161,"field":155},{"key":163,"name":164,"field":155},{"key":166,"name":167,"field":155},{"key":169,"name":170,"field":155},{"key":172,"name":173,"field":155},{"key":191,"name_tr":192,"name_en":192,"sort":193,"specializations":194},"devops-cloud","DevOps \u002F Cloud",4,[195,196,199,202,205,208,211],{"key":134,"name":135,"field":191},{"key":197,"name":198,"field":191},"aws","AWS",{"key":200,"name":201,"field":191},"gcp","GCP",{"key":203,"name":204,"field":191},"azure","Azure",{"key":206,"name":207,"field":191},"kubernetes","Kubernetes",{"key":209,"name":210,"field":191},"terraform","Terraform",{"key":212,"name":213,"field":191},"linux","Linux",{"key":215,"name_tr":216,"name_en":216,"sort":217,"specializations":218},"ai-engineer","AI Engineer",5,[219,220,221,224],{"key":134,"name":135,"field":215},{"key":140,"name":141,"field":215},{"key":222,"name":223,"field":215},"llm-rag","LLM\u002FRAG",{"key":225,"name":226,"field":215},"mlops","MLOps",{"key":228,"name_tr":229,"name_en":230,"sort":231,"specializations":232},"database","Veritabanı","Database",6,[233,234,237,240,243],{"key":134,"name":135,"field":228},{"key":235,"name":236,"field":228},"postgresql","PostgreSQL",{"key":238,"name":239,"field":228},"mysql","MySQL",{"key":241,"name":242,"field":228},"mongodb","MongoDB",{"key":244,"name":245,"field":228},"redis","Redis",{"key":247,"name_tr":248,"name_en":249,"sort":250,"specializations":251},"mobile","Mobil","Mobile",7,[252,253,256,259,262],{"key":134,"name":135,"field":247},{"key":254,"name":255,"field":247},"ios-swift","iOS (Swift)",{"key":257,"name":258,"field":247},"android-kotlin","Android (Kotlin)",{"key":260,"name":261,"field":247},"flutter","Flutter",{"key":263,"name":264,"field":247},"react-native","React Native",{"key":266,"name_tr":267,"name_en":268,"sort":269,"specializations":270},"security","Güvenlik","Security",8,[271,272,275,278,281,284],{"key":134,"name":135,"field":266},{"key":273,"name":274,"field":266},"appsec","AppSec",{"key":276,"name":277,"field":266},"offensive-pentest","Offensive \u002F Pentest",{"key":279,"name":280,"field":266},"cloud-security","Cloud Security",{"key":282,"name":283,"field":266},"devsecops","DevSecOps",{"key":285,"name":286,"field":266},"blue-team-incident","Blue Team \u002F Incident",{"key":5,"name_tr":6,"name_en":288,"sort":289,"specializations":290},"QA \u002F Test Automation",9,[291],{"key":134,"name":135,"field":5},{"key":293,"name_tr":294,"name_en":294,"sort":295,"specializations":296},"data-engineer","Data Engineer",10,[297],{"key":134,"name":135,"field":293},{"key":299,"name_tr":300,"name_en":301,"sort":302,"specializations":303},"game-dev","Oyun Geliştirme","Game Development",11,[304],{"key":134,"name":135,"field":299},{"key":306,"name_tr":307,"name_en":307,"sort":308,"specializations":309},"ml-engineer","ML Engineer",12,[310],{"key":134,"name":135,"field":306},[14,15,16],{"junior":313,"mid":315,"senior":316},{"questions":314,"median_sec":3},20,{"questions":314,"median_sec":3},{"questions":314,"median_sec":3},[10,318],"en",[320,321],"google","github",21750,true]