Test Engineering Notes: Volume 2
Test Engineering Notes
Тестування
- Introduction to Shift Left Testing - останнім часом "шифтувати вліво" стало модним. Тому для тих, кому цікаво - ця стаття допоможе розібратися з цим підходом
- Exploratory Testing: Why Is It Not Ideal for Agile Projects?- виявляється не всі типи тестування однаково успішно працюють в Agile. А я думав, що дослідницьке тестування можна застововувати скрізь...
- My five favorite testing questions - хороші рекомендації автора про те, які цікаві питання можна задавати тестувальнику на співбесідах - замість тестування ручки чи м'ячиків в автобусі
- Serverless testing is not complicated. It just requires some effort - у цій статті ви знайдете не тільки базові поняття serverless, а також - які тести можна для таких рішень писати (із прикладами!)
- Frontend vs. backend: How to plan your performance testing strategy - що навантажувати краще - фронтенд чи бекенд?
- Usability Testing - стаття для тих, хто хоче отримати декілька базових понять з usability тестування
- WHICH WEB TESTING TOOL SHOULD I USE? - легко та доступно автор розповідає про найбільші сучасні бібліотеки для UI автоматизації - Selenium Webdriver, Plawright та Cypress. Є навіть порівняльна таблиця.
- Load test types - мабуть найбільш проста та доступна стаття про різні типи тестів навантаження. Воно й не дивно - інженери з k6 знаються на цьому питанні.
- A QA’s Guide To Database Testing in 2023 - інтро стаття про те, що таке тестування баз даних. Небагато нового, але може стати відправною точкою у вашому подальшому "гуглінні" чи "чатджптінні"
- Why duplication is more acceptable in tests - а ви в курсі, що copy-paste у тестах - то не так погано?
Інструменти
- tldr - більш доступний для розуміння варіант консольної команди man
- Gut - дуже дивна обгортка для Git. Але може комусь буде зручною
- chai-a11y-axe - невеличке розширення для chai, що дозволить писати accessibility тести на JS
- Buzzer - An eBPF Fuzzer toolchain - eBPF фаззер від Google написаний на Go
- Maestro – The New Kid On The Mobile Automation Block - новий інструмент автоматизації UI тестів для мобільних застосунків
- phoenix - цікава тула для перевірки якості даних та їх observability в Machine Learning моделях
- perf8 - альфа версія інструменту для перфоманс тестування коду на Python
- atheris - нативний фаззер на мові Python
- Hands-On Introduction to the Java Testing Ecosystem - репозиторій з прикладами застосування різних інструментів тестування в Java
Для SDET`ів

- Latest Automation Testing Trends to look out for in 2023 - одна стаття, що дозволить зрозуміти тренди в тестуванні та визначити - чи ваші навички та знання актуальні чи саме час їх оновити
- Sensenmann: Code Deletion at Scale - свіженька стаття у блозі Google розповість про створення інструменту, який шукає "мертвий" код та автоматично видаляє його.
- Load Testing for High-Load Distributed Systems - вкрай практична стаття про те, як інженери шукали спосіб тестування навантаження бекенду на мікросервісах та й написали свою власне рішення.
- Playwright Crash Course with PyTest - 25-хвилинне відео, що швидко познайомить вас із тим, як писати UI тести з Playwright на Python
- How to create E2E tests in Node.js with no frameworks - пишемо тести на Node.js та запускаємо їх на нативном тест ранері
- A Complete Guide To pytest API Testing - одна стаття для розуміння "золотого стандарту" API тестування на Python: pytest + requests
- How I used Pytest to write QA tests that securely bypass 2FA - практичний кейс автоматизації застосунку з двох-факторною авторизацією
- How do I mock HTTP network traffic for a specific response via in Playwright? - чи можливо замокати відповідь від стороннього сервісу у тестах на Playwright?
- How to Improve Integration Tests with AI in Next.js with Playwright & Applitools - ще один приклад тестів на JS
- How Selenium Works: 1, 2, 3, 4, 5, 6, 7 - серія статей, що допоможе трохи глибше взнати, як працює Selenium під капотом
- A Comprehensive Guide to Mocking in Software Testing: Best Practices and Frameworks - маленька стаття про те, як писати моки в Python з прикладами тестів для застосунку на Django
- Making Sense of Performance Testing Results - хороша стаття про те, як аналізувати оті графіки результатів тестів навантаження
- Write tests to fail - коротка (до 20 хвилин) доповідь від інженерки з Apple про її підходи до написання юніт тестів.
Розробка та технології

- Monoliths are not dinosaurs - виявляється, що мікросервіси не є найкращим рішенням для кожної задачі - а створювати моноліти в 2023 році - не соромно
- Why is OAuth still hard in 2023? - чому працювати з Oath так важко
- The End of Front-End Development - стаття про майбутнє, що спочатку збентежить, а потім заспокоїть фронтенд розробників
- What Being a Staff Developer Means at Shopify - хто такі ці Staff інженери (на прикладі компанії Shopify)
- Avoiding the Rewrite Trap - чому ми любимо переписувати проєкти з нуля та чому це робити не слід (гайд для менеджерів)
- The Software Architecture Canvas - зручна схема для початку роботи над архітектурою системи
- CLI tricks every developer should know - набір невеличких трюків з командною стрічкою, що стане у нагоді кожного дня
Як це працює
- Real-time Messaging - як працює Slack з точки зору архітектури та технологій
- How ChatGPT works: a deep dive - багато хто вже використовує ChatGPT у роботі. Але як це працює?
- Real World Recommendation System – Part 1 - стаття дуже докладно розповість про те, як працюють сучасні системи рекомендації
- Building a large scale unsupervised model anomaly detection system — Part 1 - ще одна стаття про те, як працюють оті AI алгоритми. Цього разу - на прикладі системи пошуку аномалій
Теорія
- Big O Notation: A Simple Explanation With Examples - мабуть, найкраща ілюстрована стаття про аналіз складності алгоритмів
- Designing for Failure in Software Development and Testing - підбірка декількох відомих паттернів, що застосовуються в середніх та великих системах. Авжеж, частково ці паттерни вже навіть реалізовані в деяких фреймворках, але знати їх не буде зайвим
- A brief history of high availability - що таке висока доступність (в даному випадку - саме розподілених баз даних) та які її види існують
- Grokking Scalability in System Design: How I Learned the Techniques, Principles, and Best Practices - розповідь про види та базові поняття масштабування систем
- Java Performance Tuning - що та головне як можна аналізувати та покращувати в перфомансі Java програм
- Encryption for developers: intro, symmetric and asymmetric encryption - шифрування та які бувають його види. Коротко, стисло - але з прикладами коду та картинками
- Understanding Database Types - які бувають бази даних (із порівнянням)
Практичні кейси
- Scaling up the Prime Video audio/video monitoring service and reducing costs by 90% - ця стаття останнім часом спричинила "бум" в IT спільноті. Бо тут інженери з Amazon раптом переписали компонент з мікросервісів на моноліт та зменшили витрати на 90%!
- An example of LLM prompting for programming - крута стаття про те, як вже зараз можна підготувати специфікацію для простого застосунку, віддати її ChatGPT - та отримати код та тести!
- Measuring Performance for iOS Apps at Uber Scale - практичний кейс як в Uber підходили до вимірювання швидкості роботи IOS застосунку
- How we built the Tinder API Gateway - розповідь про те, як Tinder оптимізував свій API gateway
- Secure Search Over Encrypted Data - як правильно працювати з базою даних, коли дані в ній - зашифровані? Які варіанти та підходи існують для цього? Та як при цьому зберегти дані в безпеці?
- Як вчитися в 13,7 раза швидше з AI, Bloom’s та Zettelkasten. Мій досвід і рекомендації - цікава стаття про підходи до зберігання нотаток та навчання в цілому