[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"me":3,"catalog:tr: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 Otomasyonu","","sd-code-quality-test-code","Sd Code Quality Test Code","tr",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,"Test kodunda DRY vs DAMP tartışmasında DAMP neyin kısaltmasıdır?",[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, Descriptive And Meaningful Phrases anlamına gelir. Test kodunun, katı bir tekrar-önleme yerine anlaşılırlığı ve kendi içinde bütünlüğü önceliklendirmesi gerektiğini savunur; bu bazı tekrarları kabul etmek anlamına gelse bile.",{"id":104,"topic":9,"difficulty":87,"body":105,"options":106,"correct_key":94,"explanation":115},"019fb4ec-2a2e-79c7-a924-ffb064ff99af","Birçok test uzmanı, katı DRY (Don't Repeat Yourself) ilkesinin test kodunda production koduna göre daha zararlı olabileceğini neden savunur?",[107,109,111,113],{"key":91,"text":108},"Çünkü DRY sadece derlenen dillerde geçerlidir ve çoğu test framework'ü yorumlanır dillerdedir",{"key":94,"text":110},"Ortak kurulumun çıkarılması, başarısız bir testin tam koşullarını gizleyebilir.",{"key":97,"text":112},"Çünkü test runner'lar tekrarlanan kodu, tekrarsız koda göre daha yavaş çalıştırır",{"key":100,"text":114},"Çünkü DRY, bir projedeki tüm test dosyalarının tek dosyada birleştirilmesini gerektirir","Ortak kurulum veya mantık paylaşılan yardımcı fonksiyonlara çıkarıldığında, başarısız bir testi debug eden bir okuyucu testin gerçekte ne yaptığını anlamak için birden fazla dosyaya bakmak zorunda kalır; bu da testin açık ve bağımsız bir dokümantasyon olma rolüne zarar verir.",{"id":117,"topic":9,"difficulty":87,"body":118,"options":119,"correct_key":91,"explanation":128},"019fb4ec-2a32-769f-81de-cc1b0930d0ef","\"Mystery Guest\" test kokusu (test smell) nedir?",[120,122,124,126],{"key":91,"text":121},"Testin kendisinde görünmeyen harici bir veriye bağımlı olan bir test.",{"key":94,"text":123},"CI'da rastgele başarısız olan ama lokal'de hiçbir kod değişikliği olmadan geçen bir test",{"key":97,"text":125},"Artık takımda çalışmayan bir geliştirici tarafından yazılmış, dokümantasyonu olmayan bir test",{"key":100,"text":127},"Aslında kullanmadığı bir bağımlılığı mock'layan bir test","Mystery Guest, bir testin test gövdesinin dışında tanımlanmış veri veya duruma (örneğin harici bir fixture dosyası veya veritabanı seed'i) bağımlı olması durumunda ortaya çıkar; bu yüzden okuyucu sadece testi okuyarak neyin test edildiğini anlayamaz.",{"id":130,"topic":9,"difficulty":87,"body":131,"options":132,"correct_key":100,"explanation":141},"019fb4ec-2a33-70dc-8314-e6aaaae2db3a","\"Eager Test\" kokusu nedir?",[133,135,137,139],{"key":91,"text":134},"Bağımlılıkları hazır olmadan çalışan ve aralıklı başarısızlıklara yol açan bir test",{"key":94,"text":136},"CI pipeline'ında çok sık çalıştırılan ve build'leri yavaşlatan bir test",{"key":97,"text":138},"Hiç assertion içermeyen bir test",{"key":100,"text":140},"Birden fazla ilgisiz davranışı tek bir test metodunda birden doğrulayan bir test.","Eager Test, birbiriyle gevşek ilişkili birden çok kontrolü tek bir test metoduna sıkıştırır. Test başarısız olduğunda okuyucu, tam olarak hangi davranışın bozulduğunu anlamak için birçok assertion'ı incelemek zorunda kalır.",{"id":143,"topic":9,"difficulty":144,"body":145,"options":146,"correct_key":94,"explanation":155},"019fb4ec-2a33-7dcb-ae43-f542ea2f13d9",2,"\"Assertion Roulette\" nedir?",[147,149,151,153],{"key":91,"text":148},"Sıraya bağlı bug'ları yakalamak için assertion'ların çalışma sırasını rastgeleleştirmek",{"key":94,"text":150},"Birçok assertion içeren ama bunları birbirinden ayıran mesaj veya bağlam bulunmayan bir test.",{"key":97,"text":152},"Farklı takım üyelerine assertion'ların rastgele atandığı bir test stratejisi",{"key":100,"text":154},"Başarısız assertion'ları rastgele sayıda otomatik olarak yeniden deneyen bir framework özelliği","Assertion Roulette, açıklayıcı başarısızlık mesajı olmayan birden fazla assertion içeren bir testi tanımlar. Başarısızlık raporu sadece \"X satırında assertion başarısız\" der, bağlam vermez; bu da okuyucuyu gerçek nedeni bulmak için tahmin yürütmeye ya da debug yapmaya zorlar.",{"id":157,"topic":9,"difficulty":87,"body":158,"options":159,"correct_key":91,"explanation":168},"019fb4ec-2a34-7638-a2cd-d3f6bb73826b","\"Line coverage\" (satır kapsamı) neyi ölçer?",[160,162,164,166],{"key":91,"text":161},"Test suite tarafından en az bir kez çalıştırılan satırların yüzdesini.",{"key":94,"text":163},"Başarıyla geçen test case'lerin yüzdesini",{"key":97,"text":165},"Çalıştırılan tüm olası dal (branch) kombinasyonlarının yüzdesini",{"key":100,"text":167},"Production kod satır sayısına kıyasla test kod satır sayısını","Line coverage, test çalışması sırasında en az bir kez çalıştırılan çalıştırılabilir production kodu satırlarının sayısını, tüm çalıştırılabilir satırların yüzdesi olarak ifade eder.",{"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]