[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"me":3,"catalog:en:qa-test-automation\u002Fsd-code-quality-test-code":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 Automation","","sd-code-quality-test-code","Sd Code Quality Test Code","en",75,1500,[14,15,16],"junior","mid","senior",[18,21,24,27,30,33,36,39,42,45,46,49,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":8,"name":9,"count":11},{"key":47,"name":48,"count":11},"sd-contract-testing","Sd Contract Testing",{"key":50,"name":51,"count":11},"sd-test-data-management","Sd Test Data Management",{"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":97,"explanation":102},"019fb4ec-2a2d-7eac-8dd6-aa665794ff4a",1,"In the DRY vs DAMP debate for test code, what does DAMP stand for?",[90,93,96,99],{"key":91,"text":92},"a","Don't Assert More than Planned",{"key":94,"text":95},"b","Data And Mock Pattern",{"key":97,"text":98},"c","Descriptive And Meaningful Phrases",{"key":100,"text":101},"d","Duplicate All Mocked Paths","DAMP stands for Descriptive And Meaningful Phrases. It argues that test code should favor clarity and self-containment over strict deduplication, even if that means some repetition.",{"id":104,"topic":9,"difficulty":87,"body":105,"options":106,"correct_key":94,"explanation":115},"019fb4ec-2a2e-79c7-a924-ffb064ff99af","Why do many testing experts argue that strict DRY (Don't Repeat Yourself) can hurt test code more than production code?",[107,109,111,113],{"key":91,"text":108},"Because DRY only applies to compiled languages and most test frameworks are interpreted",{"key":94,"text":110},"Extracting shared setup can hide the exact conditions of a failing test.",{"key":97,"text":112},"Because test runners execute duplicated code slower than deduplicated code",{"key":100,"text":114},"Because DRY requires test files to be merged into a single file per project","When common setup or logic is extracted into shared helpers, a reader debugging a failing test often has to jump across multiple files to reconstruct what the test actually does, which harms the test's role as clear, standalone documentation.",{"id":117,"topic":9,"difficulty":87,"body":118,"options":119,"correct_key":91,"explanation":128},"019fb4ec-2a32-769f-81de-cc1b0930d0ef","What is the \"Mystery Guest\" test smell?",[120,122,124,126],{"key":91,"text":121},"A test that depends on external data not visible in the test itself.",{"key":94,"text":123},"A test that randomly fails on CI but passes locally without any code change",{"key":97,"text":125},"A test written by a developer who no longer works on the team, with no documentation",{"key":100,"text":127},"A test that mocks a dependency it doesn't actually use","Mystery Guest occurs when a test relies on data or state defined outside the test body (e.g., in an external fixture file or a database seed), so the reader cannot tell what's being tested just by reading the test.",{"id":130,"topic":9,"difficulty":87,"body":131,"options":132,"correct_key":100,"explanation":141},"019fb4ec-2a33-70dc-8314-e6aaaae2db3a","What is the \"Eager Test\" smell?",[133,135,137,139],{"key":91,"text":134},"A test that runs before its dependencies are ready, causing intermittent failures",{"key":94,"text":136},"A test that is executed too frequently in the CI pipeline, slowing down builds",{"key":97,"text":138},"A test that has no assertions at all",{"key":100,"text":140},"A single test method that verifies several unrelated behaviors at once.","Eager Test packs multiple, loosely related checks into one test method. When it fails, the reader has to dig through several assertions to figure out which specific behavior broke.",{"id":143,"topic":9,"difficulty":144,"body":145,"options":146,"correct_key":94,"explanation":155},"019fb4ec-2a33-7dcb-ae43-f542ea2f13d9",2,"What is \"Assertion Roulette\"?",[147,149,151,153],{"key":91,"text":148},"Randomizing the order in which assertions run to catch order-dependent bugs",{"key":94,"text":150},"A test with many assertions but no messages or context distinguishing them.",{"key":97,"text":152},"A testing strategy where different team members are assigned assertions at random",{"key":100,"text":154},"A framework feature that automatically retries failed assertions a random number of times","Assertion Roulette describes a test containing several assertions with no descriptive failure messages. A failure report just says \"assertion failed at line X\" without context, forcing the reader to guess or debug to find the real cause.",{"id":157,"topic":9,"difficulty":87,"body":158,"options":159,"correct_key":91,"explanation":168},"019fb4ec-2a34-7638-a2cd-d3f6bb73826b","What does \"line coverage\" measure?",[160,162,164,166],{"key":91,"text":161},"The percentage of executable lines run at least once by the test suite.",{"key":94,"text":163},"The percentage of test cases that passed successfully",{"key":97,"text":165},"The percentage of all possible branch combinations that were exercised",{"key":100,"text":167},"The number of lines of test code compared to the number of lines of production code","Line coverage counts how many executable lines of production code were executed at least once during the test run, expressed as a percentage of all executable lines.",{"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":331,"name_en":6,"sort":332,"specializations":333},"QA \u002F Test Otomasyonu",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},[363,10],"tr",[365,366],"google","github",22650,true]