[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"me":3,"catalog:tr:qa-test-automation\u002Fta-framework-architecture-patterns":4,"config":148},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":58,"samples":63},"qa-test-automation","QA \u002F Test Otomasyonu","","ta-framework-architecture-patterns","Ta Framework Architecture Patterns","tr",75,1050,[14,15,16],"junior","mid","senior",[18,21,24,27,30,33,36,39,42,45,46,49,52,55],{"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":25,"name":26,"count":11},"qa-ci-cd-testing","Qa Ci Cd Testing",{"key":28,"name":29,"count":11},"qa-defect-management","Qa Defect Management",{"key":31,"name":32,"count":11},"qa-exploratory-manual-testing","Qa Exploratory Manual Testing",{"key":34,"name":35,"count":11},"qa-performance-testing","Qa Performance Testing",{"key":37,"name":38,"count":11},"qa-test-case-design","Qa Test Case Design",{"key":40,"name":41,"count":11},"qa-test-strategy","Qa Test Strategy",{"key":43,"name":44,"count":11},"ta-cross-browser-parallel-execution","Ta Cross Browser Parallel Execution",{"key":8,"name":9,"count":11},{"key":47,"name":48,"count":11},"ta-locators-selectors-strategy","Ta Locators Selectors Strategy",{"key":50,"name":51,"count":11},"ta-selenium-cypress-playwright-tradeoffs","Ta Selenium Cypress Playwright Tradeoffs",{"key":53,"name":54,"count":11},"ta-synchronization-flaky-tests","Ta Synchronization Flaky Tests",{"key":56,"name":57,"count":11},"ta-visual-regression-reporting","Ta Visual Regression Reporting",[59],{"key":60,"name":61,"count":62},"test-automation","Test Automation",450,[64,82,95,108,122,135],{"id":65,"topic":9,"difficulty":66,"body":67,"options":68,"correct_key":73,"explanation":81},"019faeb4-4af0-766e-99f6-75d9b9e2744c",1,"Page Object Model (POM) yaklaşımında bir page object sınıfının ana sorumluluğu nedir?",[69,72,75,78],{"key":70,"text":71},"a","Test çalıştırmasının CI pipeline konfigürasyonunu saklamak",{"key":73,"text":74},"b","Bir sayfanın locator'larını ve etkileşimlerini metodların arkasına kapsülleyip testlere sunmak",{"key":76,"text":77},"c","Her test çalıştırmasının video kaydını tutmak",{"key":79,"text":80},"d","Suite bittikten sonra geçen\u002Fkalan sayısını toplayıp bir HTML ya da JUnit tarzı rapor üretmek","Page object, bir sayfanın locator'larını ve o sayfada yapılabilecek eylemleri (ör. login(), search()) sarmalar; testler doğrudan seçicilere dokunmak yerine anlamlı metodları çağırır — tam olarak (b). CI konfigürasyonu (a), video kaydı (c) ve raporlama (d) framework'ün başka yerlerinde ele alınan ilgisiz konulardır.",{"id":83,"topic":9,"difficulty":66,"body":84,"options":85,"correct_key":70,"explanation":94},"019faeb4-4af1-7208-869f-fda6b9aca5ce","Takımlar, ham locator'ları doğrudan test metodlarının içine yazmak yerine neden Page Object Model'i kullanır?",[86,88,90,92],{"key":70,"text":87},"Bir UI değişikliği sadece page object'in güncellenmesini gerektirsin, o sayfayı kullanan her testin değil",{"key":73,"text":89},"Testler ekstra bir konfigürasyon olmadan otomatik olarak paralel çalışsın",{"key":76,"text":91},"Test çalıştırması sırasında tarayıcı daha hızlı açılsın",{"key":79,"text":93},"Kurulum sırasında oluşturulan test verisinin ayrı çalıştırmalar arasında temizlenmesine ya da sıfırlanmasına artık gerek kalmasın","POM, locator'ları tek bir yerde merkezileştirir; UI değişirse sadece page object güncellenir, o elemana dokunan her test değil — bu (a). Paralel çalıştırma (b), tarayıcı açılış hızı (c) ve veri temizliği (d) POM'un ele almadığı ayrı konulardır.",{"id":96,"topic":9,"difficulty":66,"body":97,"options":98,"correct_key":76,"explanation":107},"019faeb4-4af1-794c-9922-128ad227ebd4","Bir spec dosyasındaki her testten önce çalışan Cypress `beforeEach` hook'unda aşağıdakilerden hangisi en uygun kullanımdır?",[99,101,103,105],{"key":70,"text":100},"Dosyadaki son testin beklenen nihai sonucunu assert etmek",{"key":73,"text":102},"Suite tamamlandıktan sonra tüm test dosyasını silmek",{"key":76,"text":104},"Başlangıç URL'ini ziyaret edip login olmak, böylece her test bilinen bir durumdan başlasın",{"key":79,"text":106},"Tüm proje için toplanan satır ve dal (branch) kod kapsama (coverage) yüzdesini yazdırmak","`beforeEach` her testten önce çalışır, dolayısıyla her testin ihtiyaç duyduğu kurulum (bir URL'e gidip login olmak gibi) için doğru yerdir (c). Nihai sonucu assert etmek (a) bir testin içine ait, spec dosyasını silmek (b) kurulum olarak anlamsız, coverage raporlama (d) ise per-test hook'un değil ayrı bir aracın sorumluluğudur.",{"id":109,"topic":9,"difficulty":110,"body":111,"options":112,"correct_key":79,"explanation":121},"019faeb4-4af2-7162-a061-c411bbcf9c08",2,"Test veri izolasyonu, otomatik testler arasında hangi sorunu önlemeye çalışır?",[113,115,117,119],{"key":70,"text":114},"Testlerin çalıştırma daha başlamadan önce derlenmesinin ya da transpile edilmesinin makul olmayan şekilde uzun sürmesi",{"key":73,"text":116},"Test runner'ın kurulu tarayıcıları tespit edememesi",{"key":76,"text":118},"Hata durumunda ekran görüntülerinin kaydedilmemesi",{"key":79,"text":120},"Bir testin geride bıraktığı verinin ya da durumun başka bir testin sonucunu etkilemesi","Test veri izolasyonu, her testin kendi verisini oluşturup temizlemesini (ya da benzersiz kapsamlı veri kullanmasını) sağlar; böylece bir testin yan etkileri başka bir testin sonucunu değiştiremez — bu (d). Derleme süresi (a), tarayıcı tespiti (b) ve ekran görüntüsü kaydı (c) veri izolasyonuyla ilgisizdir.",{"id":123,"topic":9,"difficulty":110,"body":124,"options":125,"correct_key":70,"explanation":134},"019faeb4-4af2-7853-958b-d9e0301fb4a6","Playwright'ın test framework'ünde bir \"fixture\" temel olarak ne için kullanılır?",[126,128,130,132],{"key":70,"text":127},"Testlerin parametre olarak bildirdiği, yeniden kullanılabilir, önceden yapılandırılmış bir nesne (ör. page ya da authenticated context) sağlamak için",{"key":73,"text":129},"Test çalıştırması bittikten sonra video kayıtlarını sıkıştırmak için",{"key":76,"text":131},"Test sonuçlarını bir JUnit XML dosyasına dönüştürmek için",{"key":79,"text":133},"Test çalıştırması sırasında üçüncü taraf analytics ve reklam domainlerine giden çıkış network isteklerini engellemek için","Playwright fixture'ları, bir test fonksiyonunun parametre olarak aldığı yeniden kullanılabilir kurulumu (ör. bir `page` ya da önceden authenticate edilmiş bir `context`) sağlar — bu (a). Video sıkıştırma (b), JUnit dönüşümü (c) ve network engelleme (d) bir framework'te bulunabilir ama fixture'ların amacı bu değildir.",{"id":136,"topic":9,"difficulty":110,"body":137,"options":138,"correct_key":76,"explanation":147},"019faeb4-4af3-7009-81ff-7fbda972032f","Junior bir mühendis, bir butona tıklayan testte locator'ı page object'e koymak yerine üç farklı test dosyasına doğrudan kopyala-yapıştır yapıyor. Bu yaklaşımın temel riski nedir?",[139,141,143,145],{"key":70,"text":140},"Aynı locator string'i her seferinde ayrıştırılıp tekrarlandığı için test ölçülebilir şekilde daha yavaş çalışacaktır",{"key":73,"text":142},"Aynı locator string'i iki kez göründüğünde tarayıcı açılamayacaktır",{"key":76,"text":144},"Butonun seçicisi değişirse, üç test dosyasının da tek tek güncellenmesi gerekecektir",{"key":79,"text":146},"Cypress, tekrarlanan locator string'leri yüzünden testi çalıştırmayı reddedecektir","Ham bir locator'ı dosyalar arasında tekrarlamak, o seçicide ileride yapılacak herhangi bir değişikliğin her kopyada ayrı ayrı bulunup düzeltilmesi gerektiği anlamına gelir; page object'lerin var olma amacı tam olarak bu bakım riskini (c) ortadan kaldırmaktır. Locator tekrarı çalışma hızını etkilemez (a), tarayıcı açılışını durdurmaz (b), Cypress tekrarlanan string'leri reddetmez (d).",{"fields":149,"seniorities":334,"interview_shapes":335,"locales":340,"oauth":342,"question_count":345,"coach_enabled":346,"jd_match_enabled":346},[150,175,195,212,236,249,268,287,309,315,321,328],{"key":151,"name_tr":152,"name_en":152,"sort":66,"specializations":153},"backend","Backend",[154,157,160,163,166,169,172],{"key":155,"name":156,"field":151},"general","Genel",{"key":158,"name":159,"field":151},"go","Go",{"key":161,"name":162,"field":151},"python","Python",{"key":164,"name":165,"field":151},"java","Java",{"key":167,"name":168,"field":151},"csharp","C#\u002F.NET",{"key":170,"name":171,"field":151},"nodejs","Node.js",{"key":173,"name":174,"field":151},"php","PHP",{"key":176,"name_tr":177,"name_en":177,"sort":110,"specializations":178},"frontend","Frontend",[179,180,183,186,189,192],{"key":155,"name":156,"field":176},{"key":181,"name":182,"field":176},"javascript","JavaScript",{"key":184,"name":185,"field":176},"typescript","TypeScript",{"key":187,"name":188,"field":176},"react","React",{"key":190,"name":191,"field":176},"vue","Vue",{"key":193,"name":194,"field":176},"angular","Angular",{"key":196,"name_tr":197,"name_en":197,"sort":198,"specializations":199},"fullstack","Fullstack",3,[200,201,202,203,204,205,206,207,208,209,210,211],{"key":155,"name":156,"field":196},{"key":158,"name":159,"field":151},{"key":161,"name":162,"field":151},{"key":164,"name":165,"field":151},{"key":167,"name":168,"field":151},{"key":170,"name":171,"field":151},{"key":173,"name":174,"field":151},{"key":181,"name":182,"field":176},{"key":184,"name":185,"field":176},{"key":187,"name":188,"field":176},{"key":190,"name":191,"field":176},{"key":193,"name":194,"field":176},{"key":213,"name_tr":214,"name_en":214,"sort":215,"specializations":216},"devops-cloud","DevOps \u002F Cloud",4,[217,218,221,224,227,230,233],{"key":155,"name":156,"field":213},{"key":219,"name":220,"field":213},"aws","AWS",{"key":222,"name":223,"field":213},"gcp","GCP",{"key":225,"name":226,"field":213},"azure","Azure",{"key":228,"name":229,"field":213},"kubernetes","Kubernetes",{"key":231,"name":232,"field":213},"terraform","Terraform",{"key":234,"name":235,"field":213},"linux","Linux",{"key":237,"name_tr":238,"name_en":238,"sort":239,"specializations":240},"ai-engineer","AI Engineer",5,[241,242,243,246],{"key":155,"name":156,"field":237},{"key":161,"name":162,"field":237},{"key":244,"name":245,"field":237},"llm-rag","LLM\u002FRAG",{"key":247,"name":248,"field":237},"mlops","MLOps",{"key":250,"name_tr":251,"name_en":252,"sort":253,"specializations":254},"database","Veritabanı","Database",6,[255,256,259,262,265],{"key":155,"name":156,"field":250},{"key":257,"name":258,"field":250},"postgresql","PostgreSQL",{"key":260,"name":261,"field":250},"mysql","MySQL",{"key":263,"name":264,"field":250},"mongodb","MongoDB",{"key":266,"name":267,"field":250},"redis","Redis",{"key":269,"name_tr":270,"name_en":271,"sort":272,"specializations":273},"mobile","Mobil","Mobile",7,[274,275,278,281,284],{"key":155,"name":156,"field":269},{"key":276,"name":277,"field":269},"ios-swift","iOS (Swift)",{"key":279,"name":280,"field":269},"android-kotlin","Android (Kotlin)",{"key":282,"name":283,"field":269},"flutter","Flutter",{"key":285,"name":286,"field":269},"react-native","React Native",{"key":288,"name_tr":289,"name_en":290,"sort":291,"specializations":292},"security","Güvenlik","Security",8,[293,294,297,300,303,306],{"key":155,"name":156,"field":288},{"key":295,"name":296,"field":288},"appsec","AppSec",{"key":298,"name":299,"field":288},"offensive-pentest","Offensive \u002F Pentest",{"key":301,"name":302,"field":288},"cloud-security","Cloud Security",{"key":304,"name":305,"field":288},"devsecops","DevSecOps",{"key":307,"name":308,"field":288},"blue-team-incident","Blue Team \u002F Incident",{"key":5,"name_tr":6,"name_en":310,"sort":311,"specializations":312},"QA \u002F Test Automation",9,[313,314],{"key":155,"name":156,"field":5},{"key":60,"name":61,"field":5},{"key":316,"name_tr":317,"name_en":317,"sort":318,"specializations":319},"data-engineer","Data Engineer",10,[320],{"key":155,"name":156,"field":316},{"key":322,"name_tr":323,"name_en":324,"sort":325,"specializations":326},"game-dev","Oyun Geliştirme","Game Development",11,[327],{"key":155,"name":156,"field":322},{"key":329,"name_tr":330,"name_en":330,"sort":331,"specializations":332},"ml-engineer","ML Engineer",12,[333],{"key":155,"name":156,"field":329},[14,15,16],{"junior":336,"mid":338,"senior":339},{"questions":337,"median_sec":3},20,{"questions":337,"median_sec":3},{"questions":337,"median_sec":3},[10,341],"en",[343,344],"google","github",22200,true]