Всім привіт. З вами Олександр Романов і Test Engineering Notes.
Липень вже майже завершений. На ринку праці зараз - тиша. Але поки є час, треба дізнаватись та вивчати нове.
Саме тому я прийшов до вас із новим дайджестом статей про тестування, розробку та інші технічні штуки.
TLDR, або Що у випуску
історія про розробника, що став тестувальником - та що з цього вийшло
огляд інструментів тестування в світі Web3
багато практичних кейсів роботи з Playwright - від візуальних тестів до оптимізації стабільності
тестування Kafka коннекторів та досвіду користувача
розповідь про підходи до балансування наванатаження та Gossip протокол у розподілених системах
шикарна історія про те, як Atlassian мав багу на продакшені та “лежав” майже два тижні
корисні поради для інженерів, що хочуть стати менторами
правда про те, чому ми все ж таки помиляємося з оцінками задач
приклад написання веб-сайту на технологіях кінця минулого сторіччя
навчальне відео про Playwright та запис подкасту про штучний інтелект у військовій справі
багато багато іншого ...
Тестування
I’m a quality engineer and I’m not sure how I feel about that - захоплююча історія від розробника, що зацікавився тестуванням, став тестувальником, а потім якось "розгубився"
A Tester's Guide To Navigating The Wild West Of Web3 Testing - поверхневий погляд на те, що таке Web3 та що там можна тестувати взагалі
Four Types of Shift Left Testing - а ви знали, що є більше одного виду shift-left тестування?
Signals Based Software Testing - ще один цікавий підхід до тестування. Трохи відрізняється саме від тестування в продакшені
Гарний цикл статей, присвячений тому, як підходити до тестування штучного інтелекту: part 1 та part 2
Практичні приклади
Для тих, кому цікаво, як організовано автоматизане тестування в Reddit - маю аж дві статті - про Android та IOS
Приклад побудови рішення з автоматизації UI тестів для IOS у компанії Leboncoin
А ви знали, що chaos тестування для бекенд сервісів можна зробити навіть за допомогою інструменту k6? Як - читайте далі
How To Implement Shift Left Testing Approach - про shift-left багато теорії. А шо там з реальною практикою?
Beyond Unit Testing: How Mutation Testing Helps to Improve Code Quality and Reliability - інтро стаття про мутаційне тестування - нащо воно треба, та які інструменти для цього є в арсеналі Java
JUnit 5 – When to use Internal MethodSource - нащо в заглиблюватись в MethodSource у тестах та як це виконати на JUnit 5
The Definitive Guide to API Test Automation With Playwright: Introduction - чи можна на Playwright писати API тести? Як почати?
How to upload multiple reports in a single folder using GitHub Actions - вкрай практична стаття про те, як швидко зібрати усі репорти з тестів та відправити їх куди треба
Testing Kafka Connectors - якщо у вас на проєкті є Kafka - ця стаття буде вам дуже корисною.
Testing The Customer Experience - як взагалі тестувати той самий "досвід користувача"?
Playwright stories: Visual comparisons with Dynamic data - чергова та вкрай практична стаття від Костянтина Телтова - цього разу про те, як робити візуальну валідацію з Playwright.
Comparing Automated Testing Tools: Cypress, Selenium, Playwright, and Puppeteer - якщо ви ще думаєте, яку бібліотеку брати для автоматизації - то ця стаття вам точно допоможе краще розібратися в усіх наявних опціях
Mastering the Art of Detecting and Handling Flaky Tests in Playwright - поради для тих, у кого все ж таки залишились нестабільні тести на Playwright
Інструменти
AirportGap - ще один сервіс, де ви можете потестувати API
Sniffnet - аналізатор мережевого трафіку, написаний на Rust
Meta developer tools: Working at scale - які інструменти для розробки та тестування використовують інженери в Meta?
The Git Merge Handbook – Definitive Guide to Merging in Git - для тих, хто ще не до кінця розібрався в тому, як виконується git merge
Розробка
XML is the future - цікавий екскурс у ті часи, коли говорили, що XML це наше “майбутнє”
The End of Programming - стаття про те, як ChatGPT вже змінює підходи до програмування
Self-healing code is the future of software development - що таке self-healing код та як це вплине на тестування у майбутньому?
Теорія
Hashing - якщо ви хотіли побачити приклади того, що таке хешування - то ця стаття точно стане у пригоді
What Happens When You Type a URL Into Your Browser? - величезна стаття, яку потрібно прочитати просто для того, щоб зрозуміти, як багато заховано під "простими" на перший погляд технологіями
Load Balancing: The Intuition Behind the Power of Two Random Choices - стаття про різні підходи до балансування навантаження та
Architecture Principles: An approach to effective decision making in software architecture
Gossip Protocol - як розподілені системи комунікують зміну стану між вузлами? Один з варіантів - це gossip protocol
How to prevent digital wallet fraud - стаття про те, які вразливості безпеки є у сучасних електроних гаманців в блокчейн світі
Якщо ви щось там читали та вчили про Machine Learning, але вам не вистачає візуалізації - у цих двох статтях крок за кроком пояснюється як все це працює - 1 та 2
Understanding DeepMind's Sorting Algorithm - лаконічне пояснення того, як працює алгоритм сортування в DeepMind. Хардкорно, але цікаво.
Text Editor Data Structures - уявімо, що завтра вам потрібно буде писати свій текстовий редактор "з нуля". У цій статті можна подивитись, як при цьому краще використовувати структури даних.
The Full Circle on Developer Productivity with Steve Yegge - велике інтерв'ю про те, що таке продуктивність розробника та як її забезпечувати. Фактично, робота SDET`а.
Практика
The Story of Atlassian's 13-Day Outage - історія про те, як одна бага в Atlassian спричинила downtime частини сервісів майже на два тижні!
All the Hard Stuff Nobody Talks About when Building Products with LLMs - за хайпом з ChatGPT мало хто розповідає про реальні проблеми та складнощі із використання таких систем
Improving Performance with HTTP Streaming - нащо придумали HTTP Streaming та як реально він може поліпшити перфоманс на фронтенді
Scaling for Success: The Load Balancing Journey of a Fictional Startup - гарна стаття, де поетапно можна прослідкувати різні підходи до балансування вхідного трафіку в залежності від етапу розвитку продукту у стартапі
How Gradle cut AWS storage costs by 75% using S3 - реальний кейс того, як можна зекономити дуже багато грошей на AWS
Як Netflix мігрував мігрував критичні сервіси в продакшені та як це тестувалося на великих масштабах трафіку - 1 та 2
Utilizing internal and external tracing of the Mina network to identify areas of code in need of optimization - хороша стаття про те, які метрики можна та потрібно збирати в блокчейн системах
How to create a personal website, but it’s 1999 - розважаюча стаття про те, як автор у сучасному світі намагається створити веб-сайт за допомогою існтрументів кінця минулого сторіччя. Та чи вийшло це у нього?
MongoDB vs. PostgreSQL vs. ScyllaDB: Tractian’s Experience - кейс порівняння різних баз даних на одному проекті
Менеджерське
Для тих, хто хотів трохи більше дізнатися про те, чим же все таки займаються VP of Engineering - цикл із двох статей - 1 та 2.
Being a good mentor – a developers guide - чи знаєте ви про те, як бути насправді корисним ментором? Та чи потрібен цей скіл для розробника?
Estimation Isn’t for Everyone - доволі провокативна стаття про те, чому ми не можемо нормально оцінювати задачі та що з цим можна робити
The false promise of the 10,000 hour rule - існує така думка, що коли ви практикуєтесь навичці 10000 годин - то ви автоматично стаєте у цьому експертом. Та чи так це насправді, в реальному житті?
FAANG Principal Engineer answers common career questions - чим займаються інженери на рівні Principal? Хто вони такі? Чи варто туди взагалі розвиватися?
Відео
Playwright Videos - величезна підбірка відео з бібліотеки Playwright
Podcasts #5 "Military Tech" - хороший випуск подкасту про штучний інтелект у військовій справі
Як завжди — більше цікавого про інженерію в тестуванні, блокчейн та розподілені системи читайте в моєму каналі.