[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"me":3,"catalog:tr:qa-test-automation\u002Fmq-permissions-lifecycle-system-interactions":4,"config":212},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":112,"samples":126},"qa-test-automation","QA \u002F Test Otomasyonu","","mq-permissions-lifecycle-system-interactions","Mq Permissions Lifecycle System Interactions","tr",75,2400,[14,15,16],"junior","mid","senior",[18,21,24,27,30,33,34,37,40,43,46,49,52,55,58,61,64,67,70,73,76,79,82,85,88,91,94,97,100,103,106,109],{"key":19,"name":20,"count":11},"mq-appium-driver-architecture","Mq Appium Driver Architecture",{"key":22,"name":23,"count":11},"mq-device-lab-emulator-parallelization","Mq Device Lab Emulator Parallelization",{"key":25,"name":26,"count":11},"mq-mobile-locators-sync-flakiness","Mq Mobile Locators Sync Flakiness",{"key":28,"name":29,"count":11},"mq-native-frameworks-espresso-xcuitest","Mq Native Frameworks Espresso Xcuitest",{"key":31,"name":32,"count":11},"mq-network-conditioning-offline-validation","Mq Network Conditioning Offline Validation",{"key":8,"name":9,"count":11},{"key":35,"name":36,"count":11},"pf-apm-profiling-bottleneck-correlation","Pf Apm Profiling Bottleneck Correlation",{"key":38,"name":39,"count":11},"pf-distributed-load-generation","Pf Distributed Load Generation",{"key":41,"name":42,"count":11},"pf-environment-fidelity-test-design","Pf Environment Fidelity Test Design",{"key":44,"name":45,"count":11},"pf-load-model-design","Pf Load Model Design",{"key":47,"name":48,"count":11},"pf-metrics-percentiles-analysis","Pf Metrics Percentiles Analysis",{"key":50,"name":51,"count":11},"pf-scripting-correlation-parameterization","Pf Scripting Correlation Parameterization",{"key":53,"name":54,"count":11},"qa-api-testing","Qa Api Testing",{"key":56,"name":57,"count":11},"qa-automation-fundamentals","Qa Automation Fundamentals",{"key":59,"name":60,"count":11},"qa-ci-cd-testing","Qa Ci Cd Testing",{"key":62,"name":63,"count":11},"qa-defect-management","Qa Defect Management",{"key":65,"name":66,"count":11},"qa-exploratory-manual-testing","Qa Exploratory Manual Testing",{"key":68,"name":69,"count":11},"qa-performance-testing","Qa Performance Testing",{"key":71,"name":72,"count":11},"qa-test-case-design","Qa Test Case Design",{"key":74,"name":75,"count":11},"qa-test-strategy","Qa Test Strategy",{"key":77,"name":78,"count":11},"sd-ci-test-infrastructure","Sd Ci Test Infrastructure",{"key":80,"name":81,"count":11},"sd-code-quality-test-code","Sd Code Quality Test Code",{"key":83,"name":84,"count":11},"sd-contract-testing","Sd Contract Testing",{"key":86,"name":87,"count":11},"sd-test-data-management","Sd Test Data Management",{"key":89,"name":90,"count":11},"sd-test-doubles-mocking","Sd Test Doubles Mocking",{"key":92,"name":93,"count":11},"sd-test-framework-design","Sd Test Framework Design",{"key":95,"name":96,"count":11},"ta-cross-browser-parallel-execution","Ta Cross Browser Parallel Execution",{"key":98,"name":99,"count":11},"ta-framework-architecture-patterns","Ta Framework Architecture Patterns",{"key":101,"name":102,"count":11},"ta-locators-selectors-strategy","Ta Locators Selectors Strategy",{"key":104,"name":105,"count":11},"ta-selenium-cypress-playwright-tradeoffs","Ta Selenium Cypress Playwright Tradeoffs",{"key":107,"name":108,"count":11},"ta-synchronization-flaky-tests","Ta Synchronization Flaky Tests",{"key":110,"name":111,"count":11},"ta-visual-regression-reporting","Ta Visual Regression Reporting",[113,117,120,123],{"key":114,"name":115,"count":116},"mobile-qa","Mobile QA",450,{"key":118,"name":119,"count":116},"performance-testing","Performance Testing",{"key":121,"name":122,"count":116},"sdet","SDET",{"key":124,"name":125,"count":116},"test-automation","Test Automation",[127,145,158,172,186,199],{"id":128,"topic":9,"difficulty":129,"body":130,"options":131,"correct_key":133,"explanation":144},"019ff83e-9303-7a2a-88f3-74b44e713d07",3,"Bir uygulama ilk kez kamera erişimi gibi bir izin istediğinde çıkan Android çalışma-zamanı izin diyaloğundaki butona Espresso neden doğrudan dokunamaz?",[132,135,138,141],{"key":133,"text":134},"a","Diyalog, test edilen uygulamanın kendi sürecinin dışındaki bir sistem süreci tarafından render edilir",{"key":136,"text":137},"b","Espresso hiçbir butona dokunma jesti simüle edemez, yalnızca metin girişi yapabilir",{"key":139,"text":140},"c","Espresso testleri uygulama zorla durdurulmuş halde çalışmalıdır, bu yüzden hiçbir diyalog görünmez",{"key":142,"text":143},"d","Espresso'nun herhangi bir diyaloğa tıklayabilmesi için cihazın root'lu olması gerekir","İzin diyaloğu sistem UI sürecine aittir (test edilen uygulamanın süreci değil); Espresso'nun senkronizasyon modeli yalnızca instrument edilen uygulamanın kendi sürecine erişir, bu yüzden diyaloğu göremez.",{"id":146,"topic":9,"difficulty":129,"body":147,"options":148,"correct_key":139,"explanation":157},"019ff83e-9304-79d2-9746-048a1532219a","UI Automator'ın (ve benzer şekilde XCUITest'in), Espresso'nun aksine Android çalışma-zamanı izin diyaloğuyla etkileşebilmesini sağlayan yetenek nedir?",[149,151,153,155],{"key":133,"text":150},"İzin diyaloğunu test edilen uygulamayla aynı süreç içinde çalıştırır",{"key":136,"text":152},"Test çalıştığı süre boyunca izin sistemini tamamen devre dışı bırakır",{"key":139,"text":154},"Süreç sınırlarını aşarak UI elemanlarını inceleyip onlarla etkileşebilir",{"key":142,"text":156},"Sistem diyaloğunu test framework'ünün enjekte ettiği sahte bir diyalogla değiştirir","UI Automator herhangi bir uygulamanın sürecine bağlı kalmadan çalışır ve cihazın tüm UI hiyerarşisini, izin diyaloğu gibi sistem sahipli pencereler dahil, gezebilir; Appium'un UiAutomator2 sürücüsünün bu diyalogları kapatabilmesinin nedeni budur.",{"id":159,"topic":9,"difficulty":160,"body":161,"options":162,"correct_key":139,"explanation":171},"019ff83e-930b-731d-bb1f-87f407363e0c",1,"`adb shell pm grant \u003Cpackage> \u003Cpermission>` komutu ne yapar?",[163,165,167,169],{"key":133,"text":164},"Belirtilen izni cihazda yeni bir sistem-seviyesi izin olarak kurar",{"key":136,"text":166},"Uygulamanın izin ayarları ekranını test yapan kişinin manuel onaylaması için açar",{"key":139,"text":168},"Belirtilen çalışma-zamanı iznini belirtilen uygulamaya doğrudan verir",{"key":142,"text":170},"Belirtilen uygulamanın şu an sahip olduğu tüm izinleri listeler","`pm grant`, paket yöneticisi üzerinden doğrudan bir paketin çalışma-zamanı iznini granted durumuna getirir; testler bu yüzden diyalog UI'ını hiç sürmeden izin durumunu önceden ayarlamak için bunu kullanır.",{"id":173,"topic":9,"difficulty":174,"body":175,"options":176,"correct_key":136,"explanation":185},"019ff83e-930b-7c1e-b9de-afcd754479b8",2,"Bir Android Appium oturumunda `appium:autoGrantPermissions` capability'si ne yapar?",[177,179,181,183],{"key":133,"text":178},"Test çalışırken ortaya çıkan her izin diyaloğunda otomatik olarak 'İzin Ver'e tıklar",{"key":136,"text":180},"Uygulama açılmadan önce, manifest'te tehlikeli olarak bildirilen izinleri önceden verir",{"key":139,"text":182},"Uygulamanın manifest'te bildirdiği izinleri devre dışı bırakarak hiçbir diyaloğun çıkmamasını sağlar",{"key":142,"text":184},"Appium oturumuna root erişimi vererek tüm izin kontrollerinin atlanmasını sağlar","`autoGrantPermissions`, uygulama açılmadan önce manifest'te bildirilen tehlikeli izinleri önceden verir (her biri için `pm grant` çalıştırmaya benzer); test sırasında çıkan bir diyaloğa tıklayarak çalışmaz.",{"id":187,"topic":9,"difficulty":160,"body":188,"options":189,"correct_key":133,"explanation":198},"019ff83e-930c-74e5-8bd6-7b37aef2617a","iOS'ta `xcrun simctl privacy grant \u003Cdevice> camera \u003Cbundle-id>` komutu ne yapar?",[190,192,194,196],{"key":133,"text":191},"Belirtilen uygulamanın kamera gizlilik yetkisini granted durumuna getirir",{"key":136,"text":193},"Belirtilen uygulamanın kullanması için simulator'a sanal bir kamera cihazı kurar",{"key":139,"text":195},"Bir video klip kaydedip belirtilen uygulamanın kamera girdisine besler",{"key":142,"text":197},"Belirtilen uygulamanın şimdiye kadar istediği gizlilik izinlerini listeler","`simctl privacy grant`, belirtilen bir simulator üzerinde bir uygulama için ilgili gizlilik servisinin yetki durumunu doğrudan ayarlar; bu, Android'de `pm grant`'in yaptığı izin durumu ön-ayarlamanın iOS tarafındaki karşılığıdır.",{"id":200,"topic":9,"difficulty":174,"body":201,"options":202,"correct_key":136,"explanation":211},"019ff83e-930d-73ca-9342-0027848492f8","Bir XCUITest'te, izin isteği gibi bir sistem uyarısını tetikleyebilecek bir eylemi gerçekleştirmeden önce `addUIInterruptionMonitor` handler'ı kaydetmenin amacı nedir?",[203,205,207,209],{"key":133,"text":204},"Testin geri kalanında hiçbir sistem uyarısının hiç gösterilmemesini sağlar",{"key":136,"text":206},"Test sırasında testi kesen bir sistem uyarısına testin yanıt verip onu kapatmasını sağlar",{"key":139,"text":208},"Sonradan manuel incelemek için her sistem uyarısının ekran görüntüsünü kaydeder",{"key":142,"text":210},"Test edilen uygulamayı, sistem uyarısı gösterecek kod yolunu atlamaya zorlar","`addUIInterruptionMonitor`, bir sistem uyarısı (izin isteği gibi) testi beklenmedik şekilde kestiğinde XCTest'in danışacağı bir handler kaydeder; handler uyarıyla etkileşip onu kapatır, böylece asıl test adımları devam edebilir.",{"fields":213,"seniorities":427,"interview_shapes":428,"locales":433,"oauth":435,"question_count":438,"coach_enabled":439,"jd_match_enabled":439},[214,239,259,275,299,312,331,350,372,381,396,418],{"key":215,"name_tr":216,"name_en":216,"sort":160,"specializations":217},"backend","Backend",[218,221,224,227,230,233,236],{"key":219,"name":220,"field":215},"general","Genel",{"key":222,"name":223,"field":215},"go","Go",{"key":225,"name":226,"field":215},"python","Python",{"key":228,"name":229,"field":215},"java","Java",{"key":231,"name":232,"field":215},"csharp","C#\u002F.NET",{"key":234,"name":235,"field":215},"nodejs","Node.js",{"key":237,"name":238,"field":215},"php","PHP",{"key":240,"name_tr":241,"name_en":241,"sort":174,"specializations":242},"frontend","Frontend",[243,244,247,250,253,256],{"key":219,"name":220,"field":240},{"key":245,"name":246,"field":240},"javascript","JavaScript",{"key":248,"name":249,"field":240},"typescript","TypeScript",{"key":251,"name":252,"field":240},"react","React",{"key":254,"name":255,"field":240},"vue","Vue",{"key":257,"name":258,"field":240},"angular","Angular",{"key":260,"name_tr":261,"name_en":261,"sort":129,"specializations":262},"fullstack","Fullstack",[263,264,265,266,267,268,269,270,271,272,273,274],{"key":219,"name":220,"field":260},{"key":222,"name":223,"field":215},{"key":225,"name":226,"field":215},{"key":228,"name":229,"field":215},{"key":231,"name":232,"field":215},{"key":234,"name":235,"field":215},{"key":237,"name":238,"field":215},{"key":245,"name":246,"field":240},{"key":248,"name":249,"field":240},{"key":251,"name":252,"field":240},{"key":254,"name":255,"field":240},{"key":257,"name":258,"field":240},{"key":276,"name_tr":277,"name_en":277,"sort":278,"specializations":279},"devops-cloud","DevOps \u002F Cloud",4,[280,281,284,287,290,293,296],{"key":219,"name":220,"field":276},{"key":282,"name":283,"field":276},"aws","AWS",{"key":285,"name":286,"field":276},"gcp","GCP",{"key":288,"name":289,"field":276},"azure","Azure",{"key":291,"name":292,"field":276},"kubernetes","Kubernetes",{"key":294,"name":295,"field":276},"terraform","Terraform",{"key":297,"name":298,"field":276},"linux","Linux",{"key":300,"name_tr":301,"name_en":301,"sort":302,"specializations":303},"ai-engineer","AI Engineer",5,[304,305,306,309],{"key":219,"name":220,"field":300},{"key":225,"name":226,"field":300},{"key":307,"name":308,"field":300},"llm-rag","LLM\u002FRAG",{"key":310,"name":311,"field":300},"mlops","MLOps",{"key":313,"name_tr":314,"name_en":315,"sort":316,"specializations":317},"database","Veritabanı","Database",6,[318,319,322,325,328],{"key":219,"name":220,"field":313},{"key":320,"name":321,"field":313},"postgresql","PostgreSQL",{"key":323,"name":324,"field":313},"mysql","MySQL",{"key":326,"name":327,"field":313},"mongodb","MongoDB",{"key":329,"name":330,"field":313},"redis","Redis",{"key":332,"name_tr":333,"name_en":334,"sort":335,"specializations":336},"mobile","Mobil","Mobile",7,[337,338,341,344,347],{"key":219,"name":220,"field":332},{"key":339,"name":340,"field":332},"ios-swift","iOS (Swift)",{"key":342,"name":343,"field":332},"android-kotlin","Android (Kotlin)",{"key":345,"name":346,"field":332},"flutter","Flutter",{"key":348,"name":349,"field":332},"react-native","React Native",{"key":351,"name_tr":352,"name_en":353,"sort":354,"specializations":355},"security","Güvenlik","Security",8,[356,357,360,363,366,369],{"key":219,"name":220,"field":351},{"key":358,"name":359,"field":351},"appsec","AppSec",{"key":361,"name":362,"field":351},"offensive-pentest","Offensive \u002F Pentest",{"key":364,"name":365,"field":351},"cloud-security","Cloud Security",{"key":367,"name":368,"field":351},"devsecops","DevSecOps",{"key":370,"name":371,"field":351},"blue-team-incident","Blue Team \u002F Incident",{"key":5,"name_tr":6,"name_en":373,"sort":374,"specializations":375},"QA \u002F Test Automation",9,[376,377,378,379,380],{"key":219,"name":220,"field":5},{"key":124,"name":125,"field":5},{"key":121,"name":122,"field":5},{"key":118,"name":119,"field":5},{"key":114,"name":115,"field":5},{"key":382,"name_tr":383,"name_en":383,"sort":384,"specializations":385},"data-engineer","Data Engineer",10,[386,387,390,393],{"key":219,"name":220,"field":382},{"key":388,"name":389,"field":382},"pipelines-etl","Pipelines \u002F ETL",{"key":391,"name":392,"field":382},"streaming","Streaming",{"key":394,"name":395,"field":382},"warehousing","Warehousing",{"key":397,"name_tr":398,"name_en":399,"sort":400,"specializations":401},"game-dev","Oyun Geliştirme","Game Development",11,[402,403,406,409,412,415],{"key":219,"name":220,"field":397},{"key":404,"name":405,"field":397},"unity-csharp","Unity (C#)",{"key":407,"name":408,"field":397},"unreal-cpp","Unreal (C++)",{"key":410,"name":411,"field":397},"gameplay","Gameplay",{"key":413,"name":414,"field":397},"graphics-rendering","Graphics \u002F Rendering",{"key":416,"name":417,"field":397},"multiplayer-netcode","Multiplayer \u002F Netcode",{"key":419,"name_tr":420,"name_en":420,"sort":421,"specializations":422},"ml-engineer","ML Engineer",12,[423,424],{"key":219,"name":220,"field":419},{"key":425,"name":426,"field":419},"classical-ml","Classical ML",[14,15,16],{"junior":429,"mid":431,"senior":432},{"questions":430,"median_sec":3},20,{"questions":430,"median_sec":3},{"questions":430,"median_sec":3},[10,434],"en",[436,437],"google","github",27600,true]