Всім привіт. З вами Олександр Романов - автор каналу Test Engineering Notes та подкасту Testing Minutes.
Літо пролетіло дуже швидко. Попереду осінь та можливе пожвавлення на ринку праці. Щоб не опинитись за бортом компанії - треба вміти вправно та майстерно володіти вашим “веслом”. (Та збирати докази того, що саме ваше весло приносить найбільше користі). Крім того, підтримка та розвиток ваших скілів - це ваше надійне рятівне коло у бурхливому океані пошуку роботи.
Тестування
Цікава новина для тих, хто працює з end-to-end Web UI тестами: Microsoft почав бета тестування хмарної платформи для запуску тестів на Playwright.
Теорія
Велика стаття про деякі з останніх багів в безпеці та чи можна було їх уникнути якщо у вас є достатньо розвинута культура тестування.
The Very Idea of Test Cases - дуже формальна та теоретична розповідь про те, що таке тест кейси з математичної та інженерної точки зору.
Mastering T-Shaped Skills - багато хто говорить, що треба розвиватись у “різні боки” та бути T-Shape спеціалістом. В цій статті автор пояснює, що це значить в контексті автоматизації.
Test design techniques - якщо ви забули, які техніки тест дизайну існують, можна трохи освіжити свої знання.
Demystifying Unit and Integration Tests: Understanding Their Significance and Differences - чергова стаття, яка намагається пояснити різницю між модульними та інтеграційними тестами. А ви розумієте цю різницю?
WHY IS BDD CONFUSED WITH TESTING? - здається питання з BDD вже вирішено. Але ж ні. Час від часу треба нагадувати людям, що цей підхід працює на усюди, завжди та для всіх. А навпаки.
Quality gates and Test orchestration strategy in one slide - якщо ви ще не до кінця зрозуміли де та коли запускати ваші (та й не тільки ваші) тести - у цій статті ви знайдете чудову візуалізацію пайплайнів та різних тестів. Для тих, хто ще не розуміє слова пайплайни - ласкаво прошу почитати окрему статтю.
Contract Testing: Navigating Through Common Pitfalls - декілька корисних думок щодо того, які підводні камені вас чекають з контрактними тестами.
Практика
Testing Language Models (and Prompts) Like We Test Software - велика та змістовна стаття про те, як жеж тестувати оці модні LLM системи типу ChatGPT. А деякі люди ще й застосовують інші цікаві підходи до такого тестування.
Deterministic Simulation: A New Era of Distributed System Testing - тестувати розподілені системи важко. Але й тут технології не сидять на місці - постійно створюються нові інструменти та підходи.
API Testing 101: A Beginner's Guide to Testing Nodejs APIs with Jest and Supertest - швидко інтро в API тести для новачків у JS та Jest.
Test Flakiness – Methods for identifying and dealing with flaky tests - розповідь про те, як Spotify бореться з нестабільними тестами
Winning With Imposter Syndrome: A Community Effort - цікавий опис того, як різні люди та компанії допомагають тестувальникам пороботи синдром самозванця.
How Google and Facebook Test Code | Simon Stewart - інтерв’ю з розробником Selenium про те, як тестують у великих FAANG компаніях.
Інструменти
React testing libraries: A comprehensive comparison - задаєтесь питанням, яку бібліотеку для тестування аппки на React обрати? Тоді рекомендую почитати цю статтю.
Effortless Performance Testing with k6: A Comprehensive Guide - практичний гайд про те, що таке той k6 та як почати з ним працювати.
Utility to mock REST endpoints in real-time - черговий інструмент для створення моків - MiMock
Cypress panic (if there even is one) - стаття, що змусить усіх адептів Cypress заспокоїтись. Бо цей інструмент не “вмирає”, а навпаки - більше й більше розвивається.
Інженерія
Теорія
A jargon-free explanation of how AI large language models work - перед тим, як тестувати ChatGPT непогано б зрозуміти, як такі системи працюють.
Багато хто з нас працює з протоколом HTTP (так чи інакше). Але чи в курсі ви - які зміни несе HTTP/3? Якщо ні, то маю для вас дуже глибоке пояснення змін у протоколі - у першій, другій та третій частинах.
Challenging algorithms and data structures every programmer should try - вивчили усі алгоритми? Нема нічого дійсно складного та цікавого? У цій статті наводяться декілька прикладів нетривіальних алгоритмів.
An introduction to graph theory - а тим, хто копає в сторону теорії графів - маю навіть вичерпну книжку з цієї теми.
Коли ми стикаємося з проблемами в системах, доволі часто нам спадає думка - а може варто переписати усю систему замість того, щоб намагатись “їсти кактус”? Декілька інженерів мають поради щодо таких ситуацій: порада перша та друга.
What we talk about when we talk about System Design - набір порад для тих, хто зайнятий системним дизайном.
Практика
Readability: Google's Temple to Engineering Excellence - нащо в Google є окремі люди, що перевіряють пулл реквести на readability? Чи є в цьому сенс? Та чому це важливо?
What helps people get comfortable on the command line? - багато хто вважає, що користуватись командною стрічкою - то занадто складно. Але в цій статті Julie Evans розповідає, чому працювати з терміналом може бути корисно та круто. Як приклад - командна стрічка може обробляти дані у 235 разів швидше, ніж Hadoop кластер. Як тобі таке, Ілон?
Building and operating a pretty big storage system called S3 - завжди цікаво почитати про еволюцію великих розподілених систем - як-от розподілене сховище даних Amazon S3.
Інструменти
Top 6 tools for text-based UML sequence diagrams - архітекторське (й не тільки!). Набір інструментів, щоб малювати UML діаграми.
Кібербезпека
Compromised Microsoft Key: More Impactful Than We Thought - ретельний огляд останнього злому Microsoft - коли китайські хакери отримали паролі від поштових аккаунтів менеджерів.
Encryption-breaking, password-leaking bug in many AMD CPUs could take months to fix - тут в кінці липня знайшли багу в AMD процессорах.
The Bangladesh Bank Heist: A Lesson in Cybersecurity - приклад того, як банківську систему, навіть дуже захищену, можна зламати та “майже вкрасти” мільярд доларів.
Перфоманс
Наскільки швидко працює ваш код? Чи можна зробити його ще трохи швидшим? У цій серії статей ви познайомитесь з оптимізацією кешу, викликів фунцій та навіть бранчів у коді.
Менеджмент, лідерство та софт скіли
How platform teams get stuff done - як завжди у блозі Мартіна Фаулера - базована стаття із купою практичних прикладів. Цього разу розмова йде про те, хто такі платформені команди та як правильно організувати їх взаємодію з іншими департаментами.
What Being a Staff Developer Means at Shopify - основні речі, які робить Staff розробник (на прикладі компанії Shopify)
Should I change job? Earn, learn or quit. - коли вам дійсно треба звільнятись та шукати нову роботу? Ця стаття (дуже коротка) допоможе знайти відповідь на таке важливе питання.
When your coworker does great work, tell their manager - чи знаєте ви, як правильно хвалити своїх колег?
Remote work requires communicating more, less frequently - чим відрізняються комунікації в офісі та на повному ремоуті.
Agile performance reviews and compensation - стаття про те, як непросто переглядати зарплати в командах.
Managing difficult software engineers - дуже корисна та практична стаття про різні типи проблемних інженерів у команді та як правильно підходити до їх управління.