[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"me":3,"catalog:tr:qa-test-automation\u002Fsd-test-data-management":4,"config":169},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":76,"samples":84},"qa-test-automation","QA \u002F Test Otomasyonu","","sd-test-data-management","Sd Test Data Management","tr",75,1500,[14,15,16],"junior","mid","senior",[18,21,24,27,30,33,36,39,42,45,48,51,52,55,58,61,64,67,70,73],{"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},"sd-ci-test-infrastructure","Sd Ci Test Infrastructure",{"key":46,"name":47,"count":11},"sd-code-quality-test-code","Sd Code Quality Test Code",{"key":49,"name":50,"count":11},"sd-contract-testing","Sd Contract Testing",{"key":8,"name":9,"count":11},{"key":53,"name":54,"count":11},"sd-test-doubles-mocking","Sd Test Doubles Mocking",{"key":56,"name":57,"count":11},"sd-test-framework-design","Sd Test Framework Design",{"key":59,"name":60,"count":11},"ta-cross-browser-parallel-execution","Ta Cross Browser Parallel Execution",{"key":62,"name":63,"count":11},"ta-framework-architecture-patterns","Ta Framework Architecture Patterns",{"key":65,"name":66,"count":11},"ta-locators-selectors-strategy","Ta Locators Selectors Strategy",{"key":68,"name":69,"count":11},"ta-selenium-cypress-playwright-tradeoffs","Ta Selenium Cypress Playwright Tradeoffs",{"key":71,"name":72,"count":11},"ta-synchronization-flaky-tests","Ta Synchronization Flaky Tests",{"key":74,"name":75,"count":11},"ta-visual-regression-reporting","Ta Visual Regression Reporting",[77,81],{"key":78,"name":79,"count":80},"sdet","SDET",450,{"key":82,"name":83,"count":80},"test-automation","Test Automation",[85,103,116,129,142,156],{"id":86,"topic":9,"difficulty":87,"body":88,"options":89,"correct_key":94,"explanation":102},"019fb4ec-2abc-72a5-877e-71b7cbd545b0",1,"Test otomasyonunda bir \"fixture\" en temelde ne için kullanılır?",[90,93,96,99],{"key":91,"text":92},"a","Test suite'ini tek bir çalıştırılabilir binary'ye derlemek için",{"key":94,"text":95},"b","Test çalışmadan önce bilinen bir test verisi ya da durumu kurmak için",{"key":97,"text":98},"c","Her testin ne kadar sürdüğünü ölçmek için",{"key":100,"text":101},"d","Nihai test raporunu HTML olarak biçimlendirmek için","Fixture, bir test çalışmadan önce ihtiyaç duyduğu bilinen veriyi ya da durumu (ör. bir kullanıcı kaydı, doldurulmuş bir veritabanı satırı) kurar — tam olarak (b). Derleme (a), süre ölçümü (c) ve rapor biçimlendirme (d) başka yerlerde ele alınan ilgisiz konulardır.",{"id":104,"topic":9,"difficulty":87,"body":105,"options":106,"correct_key":91,"explanation":115},"019fb4ec-2ac0-7a4b-97ad-5919a1440144","Test kodunda bir \"factory\"nin (test verisi fabrikasının) temel amacı nedir?",[107,109,111,113],{"key":91,"text":108},"Makul varsayılan değerlerle geçerli, kullanıma hazır test nesneleri üretmek için",{"key":94,"text":110},"Test sürecini üretim veritabanına bağlamak",{"key":97,"text":112},"Kararsız (flaky) bir testi geçene kadar otomatik olarak yeniden denemek",{"key":100,"text":114},"CI'a yüklenmeden önce test rapor dosyalarını sıkıştırmak","Factory, makul varsayılan değerlerle geçerli test nesneleri kurar ve test yalnızca kontrol ettiği alanları geçersiz kılar — bu (a). Üretime bağlanmak (b), yeniden deneme mantığı (c) ve rapor sıkıştırma (d) factory'nin işi değildir.",{"id":117,"topic":9,"difficulty":87,"body":118,"options":119,"correct_key":97,"explanation":128},"019fb4ec-2ac8-7b74-acca-176017ec34b5","\"Test verisi teardown'ı\" neyi ifade eder?",[120,122,124,126],{"key":91,"text":121},"Bir testin beklenen çıktısını kontrol eden assertion'ları yazmak",{"key":94,"text":123},"Bir UI testinin hangi tarayıcıda çalışacağını seçmek",{"key":97,"text":125},"Bir testin oluşturduğu veriyi sonrasında silmek ya da sıfırlamak",{"key":100,"text":127},"Testlerin hangi sırayla çalışacağını süresine göre seçmek","Teardown, bir test sırasında oluşturulan veriyi silen ya da sıfırlayan temizlik adımıdır; bu sayede kalıntı durum sonraki testleri etkilemez — (c) buna karşılık gelir. Assertion'lar (a), tarayıcı seçimi (b) ve test sıralaması (d) ayrı konulardır.",{"id":130,"topic":9,"difficulty":87,"body":131,"options":132,"correct_key":100,"explanation":141},"019fb4ec-2aca-7469-a9a6-e9e688f8721b","Çoğu otomatik testte tamamen rastgele veri yerine \"deterministik\" test verisi üretimi neden tercih edilir?",[133,135,137,139],{"key":91,"text":134},"Rastgele veri her zaman sabit veriden daha hızlı çalışır",{"key":94,"text":136},"Deterministik veri güvenlik için kendini otomatik olarak şifreler",{"key":97,"text":138},"Rastgele veri bir veritabanında saklanamaz",{"key":100,"text":140},"Testin sonucunu tekrarlanabilir kılar; böylece hatalar debug edilebilir","Deterministik veri her çalıştırmada aynı girdinin kullanılması demektir; bu yüzden başarısız bir test güvenilir biçimde tekrarlanır ve debug edilebilir — (d). Hız (a), kendini şifreleme (b) ve saklama kısıtı (c) determinizmle ilgili gerçek özellikler değildir.",{"id":143,"topic":9,"difficulty":144,"body":145,"options":146,"correct_key":100,"explanation":155},"019fb4ec-2acf-7453-bb9c-b3e061c5da90",2,"Bir test suite'i, birçok testin okuyup değiştirdiği tek bir paylaşılan \"admin\" kullanıcı satırına dayanıyor. Bu yaklaşımın temel riski nedir?",[147,149,151,153],{"key":91,"text":148},"Veritabanı disk alanını daha hızlı tüketir",{"key":94,"text":150},"Paylaşılan satırlar her zaman veritabanı foreign key kısıtlarını ihlal eder",{"key":97,"text":152},"Test edilen uygulama daha yavaş derlenir",{"key":100,"text":154},"Testler, paylaşılan satırın durumu üzerinden birbirine karışabilir","Birden fazla test aynı paylaşılan satırı okuyup yazınca, bir testin değişikliği başka bir testin bağımlı olduğu durumu bozar ve sıraya bağımlı, kararsız hatalara yol açar — bu (d). Disk kullanımı (a), derleme hızı (c) ve foreign key ihlali (b) paylaşımın doğasında olan riskler değildir.",{"id":157,"topic":9,"difficulty":144,"body":158,"options":159,"correct_key":91,"explanation":168},"019fb4ec-2ad0-726e-89b3-1837dbb5d008","Testler arasında tabloları truncate etmek yerine, her testin sonunda geri alınan (rollback edilen) bir veritabanı transaction'ı kullanmanın temel avantajı nedir?",[160,162,164,166],{"key":91,"text":161},"Genellikle daha hızlıdır çünkü temel verinin yeniden eklenmesini gerektirmez",{"key":94,"text":163},"Her testten sonra tablo şemasını kalıcı olarak siler",{"key":97,"text":165},"Assertion'lardan bağımsız olarak testin geçmesini garanti eder",{"key":100,"text":167},"Testte herhangi bir assertion yazma ihtiyacını ortadan kaldırır","Bir testi transaction içine alıp rollback etmek, sonraki test için tabloları truncate edip temel\u002Fseed veriyi yeniden ekleme yükünü ortadan kaldırır ve çoğu durumda belirgin biçimde daha hızlıdır — (a). Diğer seçenekler rollback stratejisinin yapmadığı şeyleri anlatır.",{"fields":170,"seniorities":356,"interview_shapes":357,"locales":362,"oauth":364,"question_count":367,"coach_enabled":368,"jd_match_enabled":368},[171,196,216,233,257,270,289,308,330,337,343,350],{"key":172,"name_tr":173,"name_en":173,"sort":87,"specializations":174},"backend","Backend",[175,178,181,184,187,190,193],{"key":176,"name":177,"field":172},"general","Genel",{"key":179,"name":180,"field":172},"go","Go",{"key":182,"name":183,"field":172},"python","Python",{"key":185,"name":186,"field":172},"java","Java",{"key":188,"name":189,"field":172},"csharp","C#\u002F.NET",{"key":191,"name":192,"field":172},"nodejs","Node.js",{"key":194,"name":195,"field":172},"php","PHP",{"key":197,"name_tr":198,"name_en":198,"sort":144,"specializations":199},"frontend","Frontend",[200,201,204,207,210,213],{"key":176,"name":177,"field":197},{"key":202,"name":203,"field":197},"javascript","JavaScript",{"key":205,"name":206,"field":197},"typescript","TypeScript",{"key":208,"name":209,"field":197},"react","React",{"key":211,"name":212,"field":197},"vue","Vue",{"key":214,"name":215,"field":197},"angular","Angular",{"key":217,"name_tr":218,"name_en":218,"sort":219,"specializations":220},"fullstack","Fullstack",3,[221,222,223,224,225,226,227,228,229,230,231,232],{"key":176,"name":177,"field":217},{"key":179,"name":180,"field":172},{"key":182,"name":183,"field":172},{"key":185,"name":186,"field":172},{"key":188,"name":189,"field":172},{"key":191,"name":192,"field":172},{"key":194,"name":195,"field":172},{"key":202,"name":203,"field":197},{"key":205,"name":206,"field":197},{"key":208,"name":209,"field":197},{"key":211,"name":212,"field":197},{"key":214,"name":215,"field":197},{"key":234,"name_tr":235,"name_en":235,"sort":236,"specializations":237},"devops-cloud","DevOps \u002F Cloud",4,[238,239,242,245,248,251,254],{"key":176,"name":177,"field":234},{"key":240,"name":241,"field":234},"aws","AWS",{"key":243,"name":244,"field":234},"gcp","GCP",{"key":246,"name":247,"field":234},"azure","Azure",{"key":249,"name":250,"field":234},"kubernetes","Kubernetes",{"key":252,"name":253,"field":234},"terraform","Terraform",{"key":255,"name":256,"field":234},"linux","Linux",{"key":258,"name_tr":259,"name_en":259,"sort":260,"specializations":261},"ai-engineer","AI Engineer",5,[262,263,264,267],{"key":176,"name":177,"field":258},{"key":182,"name":183,"field":258},{"key":265,"name":266,"field":258},"llm-rag","LLM\u002FRAG",{"key":268,"name":269,"field":258},"mlops","MLOps",{"key":271,"name_tr":272,"name_en":273,"sort":274,"specializations":275},"database","Veritabanı","Database",6,[276,277,280,283,286],{"key":176,"name":177,"field":271},{"key":278,"name":279,"field":271},"postgresql","PostgreSQL",{"key":281,"name":282,"field":271},"mysql","MySQL",{"key":284,"name":285,"field":271},"mongodb","MongoDB",{"key":287,"name":288,"field":271},"redis","Redis",{"key":290,"name_tr":291,"name_en":292,"sort":293,"specializations":294},"mobile","Mobil","Mobile",7,[295,296,299,302,305],{"key":176,"name":177,"field":290},{"key":297,"name":298,"field":290},"ios-swift","iOS (Swift)",{"key":300,"name":301,"field":290},"android-kotlin","Android (Kotlin)",{"key":303,"name":304,"field":290},"flutter","Flutter",{"key":306,"name":307,"field":290},"react-native","React Native",{"key":309,"name_tr":310,"name_en":311,"sort":312,"specializations":313},"security","Güvenlik","Security",8,[314,315,318,321,324,327],{"key":176,"name":177,"field":309},{"key":316,"name":317,"field":309},"appsec","AppSec",{"key":319,"name":320,"field":309},"offensive-pentest","Offensive \u002F Pentest",{"key":322,"name":323,"field":309},"cloud-security","Cloud Security",{"key":325,"name":326,"field":309},"devsecops","DevSecOps",{"key":328,"name":329,"field":309},"blue-team-incident","Blue Team \u002F Incident",{"key":5,"name_tr":6,"name_en":331,"sort":332,"specializations":333},"QA \u002F Test Automation",9,[334,335,336],{"key":176,"name":177,"field":5},{"key":82,"name":83,"field":5},{"key":78,"name":79,"field":5},{"key":338,"name_tr":339,"name_en":339,"sort":340,"specializations":341},"data-engineer","Data Engineer",10,[342],{"key":176,"name":177,"field":338},{"key":344,"name_tr":345,"name_en":346,"sort":347,"specializations":348},"game-dev","Oyun Geliştirme","Game Development",11,[349],{"key":176,"name":177,"field":344},{"key":351,"name_tr":352,"name_en":352,"sort":353,"specializations":354},"ml-engineer","ML Engineer",12,[355],{"key":176,"name":177,"field":351},[14,15,16],{"junior":358,"mid":360,"senior":361},{"questions":359,"median_sec":3},20,{"questions":359,"median_sec":3},{"questions":359,"median_sec":3},[10,363],"en",[365,366],"google","github",22650,true]