[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"me":3,"catalog:tr:qa-test-automation\u002Fqa-automation-fundamentals":4,"config":126},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-automation-fundamentals","Qa Automation Fundamentals","tr",75,600,[14,15,16],"junior","mid","senior",[18,21,22,25,28,31,34,37],{"key":19,"name":20,"count":11},"qa-api-testing","Qa Api Testing",{"key":8,"name":9,"count":11},{"key":23,"name":24,"count":11},"qa-ci-cd-testing","Qa Ci Cd Testing",{"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-2394-7de7-972b-8886d06d3836",1,"Klasik test otomasyon piramidinde, en fazla test hangi katmanda olmalıdır?",[47,50,53,56],{"key":48,"text":49},"a","Unit testler — hızlı, ucuz ve hatayı kesin işaret eder",{"key":51,"text":52},"b","Uçtan uca UI testler; gerçek kullanıcı davranışını en iyi onlar yansıtır",{"key":54,"text":55},"c","Manuel keşifsel testler; insan muhakemesi otomatikleştirilemez",{"key":57,"text":58},"d","Entegrasyon testleri; test başına en fazla iş mantığını onlar kapsar","Piramit şekli maliyet ve hızı yansıtır: unit testler milisaniyeler içinde çalışır ve hatayı kesin olarak işaret eder, bu yüzden geniş taban onlardır. b ve d, piramidin tam olarak kaçındığı şeyi yapıp kapsamın büyük kısmını yavaş\u002Fpahalı katmanlara koyuyor. c ise piramidi katman oranı meselesi yerine otomasyona karşı bir argüman gibi yanlış okuyor.",{"id":61,"topic":9,"difficulty":62,"body":63,"options":64,"correct_key":51,"explanation":73},"019f68ba-2395-7636-8aa0-ce316e0eae31",2,"Bir test senaryosu, tek seferlik bir veri migrasyonunu doğrulamak için tam olarak bir kez çalıştırılacak ve bir daha hiç çalıştırılmayacak. Otomasyon ROI açısından en makul yaklaşım hangisidir?",[65,67,69,71],{"key":48,"text":66},"Tamamen otomatikleştir; otomasyon manuel teste her zaman üstündür",{"key":51,"text":68},"Manuel test et; tek çalıştırma bir script'in maliyetini geri ödemez",{"key":54,"text":70},"Sadece son assertion'ı otomatikleştir, gerisini elle yap",{"key":57,"text":72},"Doğrulamayı atla; tek seferlik migrasyonlar nadiren kontrol gerektirir","Otomasyon ROI'si, tekrarlanan çalıştırmaların baştaki maliyeti amorti etmesinden gelir; tam olarak bir kez çalışan bir senaryo bu maliyeti asla geri kazanamaz, bu yüzden manuel doğrulama akılcı seçimdir. a otomasyonu maliyetten bağımsız olarak evrensel şekilde üstün sayıyor. c ve d ise ya sorunu yarım çözüyor ya da riskli bir işlemin doğrulamasını tamamen atlıyor.",{"id":75,"topic":9,"difficulty":62,"body":76,"options":77,"correct_key":54,"explanation":86},"019f68ba-2395-7ef7-ba4d-13a5faeb5abb","Aşağıdaki senaryolardan hangisi otomatik test suite'ine en güçlü yatırım getirisini (ROI) sağlar?",[78,80,82,84],{"key":48,"text":79},"Neredeyse her sprint değişen bir ekranın UI düzen kontrolü",{"key":51,"text":81},"Tek seferlik bir ad-hoc rapor için yapılan manuel veri kontrolü",{"key":54,"text":83},"Checkout gibi stabil bir çekirdek akışın her release'de doğrulanması",{"key":57,"text":85},"Hâlâ aktif tasarım değişikliği geçiren yepyeni deneysel bir özellik","ROI, stabilite ve tekrar ile artar: stabil bir akışın her release'de test edilmesi, otomasyon maliyetini az yeniden-yazımla birçok çalıştırmaya yayar. a ve d hâlâ değişiyor, yani otomatik kontroller sürekli yeniden yazılmalı; b ise tek seferlik çalıştığı için maliyetin amorti edileceği bir tekrar yok.",{"id":88,"topic":9,"difficulty":44,"body":89,"options":90,"correct_key":57,"explanation":99},"019f68ba-2396-770e-b08c-910c533488cd","\"Flaky\" (kararsız) test nedir?",[91,93,95,97],{"key":48,"text":92},"Koddaki gerçek bir bug yüzünden her zaman başarısız olan test",{"key":51,"text":94},"CI pipeline'a dahil edilemeyecek kadar yavaş olan test",{"key":54,"text":96},"Kullanımdan kaldırılmış ama henüz silinmemiş test",{"key":57,"text":98},"Kod değişmediği halde bazen geçen bazen kalan test","Flaky, değişmeyen bir sistemde deterministik olmayan sonuç anlamına gelir ve suite'e güveni aşındırır. a, sürekli (deterministik) başarısız olan bir testi tanımlar; bu flaky değil gerçek bir bug'dır. b ve c, tutarsız sonuçla ilgisiz, farklı bakım sorunlarını anlatır.",{"id":101,"topic":9,"difficulty":62,"body":102,"options":103,"correct_key":48,"explanation":112},"019f68ba-2396-7dc3-9410-c61fcffd4247","Bir otomatik test, asenkron bir güncellemeyi tetikleyen bir butona tıklıyor, sonra sonucu hemen kontrol ediyor ve özellik doğru çalışsa da ara sıra başarısız oluyor. En olası kök neden nedir?",[104,106,108,110],{"key":48,"text":105},"Test, güncelleme bitmeden sonucu kontrol ediyor",{"key":51,"text":107},"Test ortamının veritabanı bozulmuş durumda",{"key":54,"text":109},"Buton elementinde bir erişilebilirlik etiketleme sorunu var",{"key":57,"text":111},"Test, uygulamanın eski bir build'ine karşı çalışıyor","Bir asenkron işlemi tetikledikten hemen sonra kontrol etmek, değişken tamamlanma süresine karşı yarışa girer; bu klasik bir zamanlama-kaynaklı flakiness kalıbıdır. b, c ve d, anlatılan ara sıra 'bazen geçme' kalıbı yerine tutarlı, tekrar edilebilir başarısızlıklara yol açardı.",{"id":114,"topic":9,"difficulty":62,"body":115,"options":116,"correct_key":51,"explanation":125},"019f68ba-2397-7697-a92a-0e95953e351c","İki test tek başına çalıştırıldığında güvenilir şekilde geçiyor, ama ikincisi birinciden hemen sonra çalıştırıldığında ara sıra başarısız oluyor; çünkü birinci test, ikincinin kontrol ettiği sayıyı değiştiren bir kayıt bırakıyor. Bu durumu en iyi ne açıklar?",[117,119,121,123],{"key":48,"text":118},"Asenkron çağrılar arasında bir zamanlama\u002Fyarış durumu",{"key":51,"text":120},"Birinci testten kalan state, ikincinin başlangıcını değiştiriyor",{"key":54,"text":122},"Runner ile sunucu arasında kararsız bir ağ bağlantısı",{"key":57,"text":124},"CI aracı testlerin çalışma sırasını rastgeleleştirdi","Bir testten kalan verinin diğer testin başlangıç koşullarını değiştirmesi, testler arası state sızıntısının tam tanımıdır. a ilgisiz, çünkü burada asenkron bir zamanlama yok; c'ye dair bir belirti yok; d ise gerçek başarısızlık mekanizması olan paylaşılan değişebilir state yerine sıranın rastgeleleştirildiğini anlatıyor.",{"fields":127,"seniorities":311,"interview_shapes":312,"locales":317,"oauth":319,"question_count":322,"coach_enabled":323,"jd_match_enabled":323},[128,153,173,190,214,227,246,265,287,292,298,305],{"key":129,"name_tr":130,"name_en":130,"sort":44,"specializations":131},"backend","Backend",[132,135,138,141,144,147,150],{"key":133,"name":134,"field":129},"general","Genel",{"key":136,"name":137,"field":129},"go","Go",{"key":139,"name":140,"field":129},"python","Python",{"key":142,"name":143,"field":129},"java","Java",{"key":145,"name":146,"field":129},"csharp","C#\u002F.NET",{"key":148,"name":149,"field":129},"nodejs","Node.js",{"key":151,"name":152,"field":129},"php","PHP",{"key":154,"name_tr":155,"name_en":155,"sort":62,"specializations":156},"frontend","Frontend",[157,158,161,164,167,170],{"key":133,"name":134,"field":154},{"key":159,"name":160,"field":154},"javascript","JavaScript",{"key":162,"name":163,"field":154},"typescript","TypeScript",{"key":165,"name":166,"field":154},"react","React",{"key":168,"name":169,"field":154},"vue","Vue",{"key":171,"name":172,"field":154},"angular","Angular",{"key":174,"name_tr":175,"name_en":175,"sort":176,"specializations":177},"fullstack","Fullstack",3,[178,179,180,181,182,183,184,185,186,187,188,189],{"key":133,"name":134,"field":174},{"key":136,"name":137,"field":129},{"key":139,"name":140,"field":129},{"key":142,"name":143,"field":129},{"key":145,"name":146,"field":129},{"key":148,"name":149,"field":129},{"key":151,"name":152,"field":129},{"key":159,"name":160,"field":154},{"key":162,"name":163,"field":154},{"key":165,"name":166,"field":154},{"key":168,"name":169,"field":154},{"key":171,"name":172,"field":154},{"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":133,"name":134,"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":133,"name":134,"field":215},{"key":139,"name":140,"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":133,"name":134,"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":133,"name":134,"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":133,"name":134,"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":133,"name":134,"field":5},{"key":293,"name_tr":294,"name_en":294,"sort":295,"specializations":296},"data-engineer","Data Engineer",10,[297],{"key":133,"name":134,"field":293},{"key":299,"name_tr":300,"name_en":301,"sort":302,"specializations":303},"game-dev","Oyun Geliştirme","Game Development",11,[304],{"key":133,"name":134,"field":299},{"key":306,"name_tr":307,"name_en":307,"sort":308,"specializations":309},"ml-engineer","ML Engineer",12,[310],{"key":133,"name":134,"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]