[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"me":3,"catalog:en: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 Automation","","ta-framework-architecture-patterns","Ta Framework Architecture Patterns","en",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,"In the Page Object Model (POM), what is the main responsibility of a page object class?",[69,72,75,78],{"key":70,"text":71},"a","Storing the CI pipeline configuration for the test run",{"key":73,"text":74},"b","Encapsulating a page's locators and interactions behind methods the tests call",{"key":76,"text":77},"c","Recording video artifacts of every test execution",{"key":79,"text":80},"d","Aggregating pass\u002Ffail counts and generating an HTML or JUnit-style report after the suite finishes","A page object wraps a page's locators and the actions you can perform on it (e.g. login(), search()) so tests call meaningful methods instead of touching selectors directly; that is exactly (b). CI config (a), video recording (c) and reporting (d) are unrelated concerns handled elsewhere in the framework.",{"id":83,"topic":9,"difficulty":66,"body":84,"options":85,"correct_key":70,"explanation":94},"019faeb4-4af1-7208-869f-fda6b9aca5ce","Why do teams introduce the Page Object Model instead of putting raw locators directly inside test methods?",[86,88,90,92],{"key":70,"text":87},"So that a UI change only requires updating the page object, not every test that uses that page",{"key":73,"text":89},"So that tests run in parallel automatically without any extra configuration",{"key":76,"text":91},"So that the browser starts faster during test execution",{"key":79,"text":93},"So that test data created during setup no longer needs to be cleaned up or reset between separate test runs","POM centralizes locators in one place; if the UI changes, only the page object needs updating instead of every test that touches that element, which is (a). Parallel execution (b), browser startup speed (c), and data cleanup (d) are separate concerns that POM does not address.",{"id":96,"topic":9,"difficulty":66,"body":97,"options":98,"correct_key":76,"explanation":107},"019faeb4-4af1-794c-9922-128ad227ebd4","In a Cypress `beforeEach` hook that runs before every test in a spec file, which of these is the most appropriate use?",[99,101,103,105],{"key":70,"text":100},"Asserting the final expected result of the last test in the file",{"key":73,"text":102},"Deleting the entire test file after the suite completes",{"key":76,"text":104},"Visiting the starting URL and logging in so every test begins from a known state",{"key":79,"text":106},"Printing the final line and branch code coverage percentage collected for the whole project","`beforeEach` runs before every test, so it is the right place for setup that every test needs, such as navigating to a URL and authenticating (c). Asserting a final result (a) belongs inside a test itself, deleting the spec file (b) makes no sense as setup, and coverage reporting (d) is a separate tooling concern, not a per-test hook responsibility.",{"id":109,"topic":9,"difficulty":110,"body":111,"options":112,"correct_key":79,"explanation":121},"019faeb4-4af2-7162-a061-c411bbcf9c08",2,"What problem does test data isolation try to prevent between automated tests?",[113,115,117,119],{"key":70,"text":114},"Tests taking an unreasonably long time to compile or transpile before execution even starts",{"key":73,"text":116},"The test runner failing to detect installed browsers",{"key":76,"text":118},"Screenshots not being saved on failure",{"key":79,"text":120},"One test's leftover data or state affecting the outcome of another test","Test data isolation ensures each test creates and cleans up its own data (or uses uniquely scoped data) so that one test's side effects cannot change another test's result, matching (d). Compile time (a), browser detection (b) and screenshot saving (c) are unrelated to data isolation.",{"id":123,"topic":9,"difficulty":110,"body":124,"options":125,"correct_key":70,"explanation":134},"019faeb4-4af2-7853-958b-d9e0301fb4a6","In Playwright's test framework, what is a \"fixture\" primarily used for?",[126,128,130,132],{"key":70,"text":127},"Providing a reusable, pre-configured object (like a page or authenticated context) that tests declare as a parameter",{"key":73,"text":129},"Compressing video recordings after a test run finishes",{"key":76,"text":131},"Converting test results into a JUnit XML file",{"key":79,"text":133},"Blocking outgoing network requests to third-party analytics and advertising domains during the test run","Playwright fixtures supply reusable setup — such as a `page` or a pre-authenticated `context` — that a test function receives as a parameter, matching (a). Video compression (b), JUnit conversion (c) and network blocking (d) may exist in a framework but are not what fixtures are for.",{"id":136,"topic":9,"difficulty":110,"body":137,"options":138,"correct_key":76,"explanation":147},"019faeb4-4af3-7009-81ff-7fbda972032f","A junior engineer writes a test that clicks a button using a locator copy-pasted directly into three different test files, instead of putting it in a page object. What is the main risk of this approach?",[139,141,143,145],{"key":70,"text":140},"The test will run measurably slower every time because the same locator string is being parsed and duplicated",{"key":73,"text":142},"The browser will fail to launch when the same locator string appears twice",{"key":76,"text":144},"If the button's selector changes, all three test files must be updated individually",{"key":79,"text":146},"Cypress will refuse to execute the test because of duplicate locator strings","Duplicating a raw locator across files means any future change to that selector has to be hunted down and fixed in every copy, which is exactly the maintenance risk (c) that page objects exist to remove. Locator duplication does not affect run speed (a), does not stop a browser launching (b), and Cypress does not reject duplicate strings (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":310,"name_en":6,"sort":311,"specializations":312},"QA \u002F Test Otomasyonu",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},[341,10],"tr",[343,344],"google","github",22200,true]