Test Engineering Notes: Vol.5. Про тестування large-language моделей, ідеї тест-кейсів, баги в безпеці Microsoft й не тільки
Всім привіт. З вами Олександр Романов — автор каналу Test Engineering Notes та співавтор подкасту Testing Minutes.
Літо пролетіло дуже швидко. Попереду осінь та можливе пожвавлення на ринку праці. Щоб не опинитись за бортом компанії — треба вміти вправно та майстерно володіти вашим «веслом». (А також збирати докази того, що саме ваше весло приносить найбільше користі).
Крім того, підтримка та розвиток ваших скілів — це ваше надійне рятівне коло у бурхливому океані пошуку роботи.
TLDR, або Що у випуску
- Розбір деяких багів в безпеці (типу Heartbleed) та роздуми про те, чим можна було б їх знайти за допомогою модульних тестів.
- Поради для тих, хто в автоматизації хоче рости в T-Shape спеціаліста.
- Чудова візуалізація quality gates.
- Тестування LLM та розподілених систем.
- Інтерв’ю з Саймоном Стюартом про те, як Selenium використовують Meta та Google.
- Julie Evans ділиться думками про те, чому може бути корисним користуватись командною стрічкою.
- Детальний опис останнього злому Microsoft (та декілька інших багів в безпеці — нових та старих).
- Статті про те, коли варто змінювати роботу та як працювати (та менеджити) «складних» співробітників.
Тестування
- Цікава новина для тих, хто працює з 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 — дуже корисна та практична стаття про різні типи проблемних інженерів у команді та як правильно підходити до управління ними.
Немає коментарів
Додати коментар Підписатись на коментаріВідписатись від коментарів