Test Engineering Notes: Volume 2. Про тренди автоматизації, моноліти та як працюють Slack та ChatGPT
Всім привіт. З вами Олександр Романов та Test Engineering Notes. Це черговий корисний випуск дайджесту цікавих статей про тестування, розробку та інші технічні штуки.
TLDR, або Що у випуску
- чи можна копіпастити код у тестах та чи працює дослідницьке тестування в Agile;
- тренди автоматизації в 2023 та підходи до тестування навантаження розподілених систем;
- чи потрібно переписувати усе за «папєрєдніками»?
- як працюють Slack, ChatGPT, алгоритми рекомендацій та пошуку аномалій;
- чи моноліт краще за мікросервіси та чи можна вже зараз створювати застосунки і тести зі специфікації з ChatGPT;
- а також купа інструментів, включно з новою тулою для тестування мобілок.

Тестування
- 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? — чому працювати з Oauth так важко.
- 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 — як правильно працювати з базою даних, коли дані в ній — зашифровані? Які варіанти та підходи існують для цього? Та як при цьому зберегти дані в безпеці?
Більше цікавого про інженерію в тестуванні, блокчейн та розподілені системи читайте в моєму каналі.
Немає коментарів
Додати коментар Підписатись на коментаріВідписатись від коментарів