Test Engineering Notes – Telegram
Test Engineering Notes
3.8K subscribers
177 photos
2 videos
641 links
Україномовний канал про технічні аспекти тестування, розподілені системи, блокчейн та кібербезпеку.

Консультації з автоматизації, менторинг, проведення співбесід - @al8xr
Download Telegram
🧪Про науковий метод й дослідницьке тестування

#testing

Побачив я якось пояснення наукового методу в книжці. Мені одразу спало на думку, що цей метод має багато спільного із тестуванням (особливо exploratory).

👉 Question. В тестуванні ми також вирішуємо ЩО САМЕ тестувати.
👉 Hypothesis. Ми формуємо гіпотези про поведінку продукту, які перевіряємо.
👉 Experiment and analyze data. Ми тестуємо та аналізуємо отримані результати.
👉 Refine. Ми робимо retesting, якщо треба перевірити нову гіпотезу чи білд.
👉 Peer-review. Ревʼю тестів, багів та код-ревʼю від колег.

Додаткова вимога, як до тестування так і до наукових дослідів - це відтворюваність результатів експерименту (тесту).

🚀То ж коли ми тестуємо, ми, як науковці, ставимо експерименти та доводимо правдивість (чи хибність) наших гіпотез.
18🔥10👍8
📚 Несподівана знахідка зі світу тестування

#testing #books

Не так давно я розповідав про навчання. Хоча зараз я не так тісно повʼязаний із тестуванням, мені завжди цікаво шукати цікаві теми та підходи у світі якості. То ж я читаю й проглядаю книжки з тестування.

Деякі книжки хороші для новачків. Деякі - безнадійно застарілі й містять мало нового. Наприклад, "Mobile Testing" Рекса Блека хоч й цінна його коментарями підходів та інструментів, але нічого кардинально нового не дає. Книга від Daniel Knott більш практична.

😱Але деякі книжки виявляються справжньою несподіванкою (в хорошому сенсі). Яскравий приклад - це "Foundations of Software Testing" від Aditya P. Mathur.

Наче книга - з основ тестування. Але глибина матеріалу мене приємно вразила. Теми й приклади книги більш хардкорні, ніж у відомій "Advanced Software Testing - Vol. 1" (не ту книгу назвали Advanced 😀).

🕶 Як дочитаю - з мене огляд!

P.S. Для тих, хто не любить читати, можна подивитись архів слайдів на основі книги. (Всього 722 слайди!)
❤‍🔥2411
The Problem with Time & Timezones

#engineering

Уявіть. Прилітає задача "напишіть фічу, яка дозволяє порахувати час між двома обраними датами". Але треба порахувати точно, до секунди.

Наче задача виглядає просто. Чи не так?

У цьому короткому відео дуже гарно пояснюють, чому програмувати (та й тестувати) задачі звʼязані із часом та часовими зонами - то вельми складна задача.
1👍19
🚀Що робити, коли ШІ хайп навкруги

#ai

Компанії масово впроваджують ШІ там де треба й не треба. Люди все більше використовують та пропагують vibe coding - як єдиний шлях розробки.

А потім відбуваються такі ситуації, як на картинці.

😱Що сталося?

ШІ агент Replit проігнорував усі промпти та ... видалив продакшен базу даних.
Більше того - ШІ збрехав, що не робив цього. Плюс - ШІ також сказав, що усі юніт тести зелені (збрехав вдруге).

Цікаво. а як часто тестувальники говорять менеджерам, що усі тести зелені перед релізом? 😀

🔮Що ж робити?

Користуватися будь-якими ШІ інструментами у форматі "VIBE BUT VERIFY". Та ніколи не давати доступів до продакшену!
Думаю, таких помилок буде ще багато - бо ШІ зараз використують у багатьох місцях.

🕶А можливо, треба ставати "AI Fixer" - тобто людиною, яка за багато грошей буде допомагати розгрібати весь той бедлам, що накоїв ШІ та люди без досвіду.

То ж професійний досвід все ще в ціні.
👍33🔥3
Forwarded from Testing Minutes (Oleksandr Romanov)
⚡️ Епізод 52: про Upwork та фриланс в QA разом із Інною Двойніковою

Чи чули ви про фриланс? Чи, можливо, думали спробувати? Чи справді фриланс - то про свободу та "вільне плавання" для спеціаліста? Якими повинні бути перші кроки на Upwork? Як шукати клієнтів та які спеціалісти зараз "в тренді"? Чи реально на фрилансі отримувати гідну компенсацію? Про все це, Артем та Олександр, будуть дізнаватись у Інни Двойнікової в новому епізоду подкасту!

Дивитись та слухати:
🔸 Youtube
🔹 Spotify
🔸 Apple

Ваша підтримка важлива!
Ми постійно розвиваємося і рухаємося вперед, але це неможливо без вашої підтримки. Тому будемо вдячні за лайки, коментарі та будь-яку іншу форму підтримки. Це допоможе нам просувати наші подкасти в рекомендаціях. Також ви можете підтримати нас донатом — це дійсно важливо для нас і є нашим рушієм.

Дякуємо вам!

Підтримати подкаст можна через: 🏦 База від Монобанку

#testingminutes | @a_grygorenko | Test Engineering Notes
👍142
Crawling a billion web pages in just over 24 hours, in 2025

#engineering

Цікава стаття про те, як розробник побудував crawler, що просканував мільярд сторінок трохи більше ніж за 24 години.

Вартість ресурсів - $462

Кластер складався із 12 i7i.4xlarge машин, кожна з 128 Gb RAM та 3750 Gb жорсткого диску. Пропускна здатність при цьому була 10 Gbps.
👍19❤‍🔥1
Види залежностей в розподілених системах

#distributedsystems

👉 Процесна залежність. Якщо процес P виконує операцію А, а потім - B, то операція B процесно залежить від А.

👉 Залежність сесій. Сессія, то є послідовність операцій, які виконується по порядку. Залежність в контексті сесії означає, що операція В залежить від операції А - коли операція А виконується строго перед операцією В.

👉 Залежність реального часу. Якщо операція А закінчується перед операцією В, то В залежить від А в реальному часі.

👉 Залежність читання - запис. Залежність такого роду виникає, коли операція А читає якусь версію v1 обʼєкту, а операція В записує наступну версію цього ж обʼєкта.

👉 Залежність запис - читання. Операція А записує версію обʼєкту, а операція В повинна успішно прочитати нову версію.

👉 Залежність запис-запис. Операція А записує свою версію обʼєкту, а операція В перезаписує обʼєкт.

🤷Чому це важливо? Знання залежностей допоможуть надалі розібратися із моделями узгодженості.
👍15🔥21
🤖20+ книг з автоматизації тестування 📖

#automation #books

Знайшов я тут декілька підбірок книжок з автоматизації тестування: один, два. Там є хороші книжки, є й не дуже. Деякі - вже застарілі або ж якісь невідомі.

То ж хочу поділитись списком хороших книжок з автоматизації, які я читав сам. Тут не буде книжок з Selenium, бо зазвичай я не включаю в топи книжки з конкретних інструментів (такі книги швидко втрачають актуальність).

🪄Що почитати з автоматизації тестування?

📚 Contract Testing in Action: With Pact, PactFlow, and GitHub Actions (2025)
📚 Software Testing with Generative AI (2024)
📚 Software Testing Strategies: A testing guide for the 2020s (2023)
📚 Automation Awesomeness: 260 actionable affirmations to improve your QA and automation testing skills (2023)
📚 Test Automation Engineering Handbook (2023)
📚 Effective Software Testing: A developer's guide (2022)
📚 Testing Web APIs (2022)
📚 Full Stack Testing: A Practical Guide for Delivering High Quality Software (2022)
📚 Test Automation Fundamentals (2022)
📚 Software Testing: A Craftsman’s Approach, Fifth Edition (2021)
📚 Team Guide to Software Testability (2021)
📚 Test Automation: A manager's guide (2021)
📚 Software Engineering at Google (2020)
📚 Complete Guide to Test Automation: Techniques, Practices, and Patterns for Building and Maintaining Effective Software Projects (2018)
📚 Testing Java Microservices: Using Arquillian, Hoverfly, AssertJ, JUnit, Selenium, and Mockito (2018)
📚 Developer Testing: Building Quality into Software (2016)
📚 The "A" Word. Under the Covers of Test Automation (2013)
📚 Experiences of Test Automation: Case Studies of Software Test Automation (2012)
📚 How Google Tests Software (2012)
📚 Implementing Automated Software Testing: How to Save Time and Lower Costs While Raising Quality (2009)
📚 xUnit Test Patterns: Refactoring Test Code (2007)
📚 Lessons Learned in Software Testing: A Context-Driven Approach (2001)

P.S. Чи цікаві вам будуть огляди на ці книжки? На які саме?
P.P.S. А які книжки з автоматизації тестування читали ви?
👍379🔥5👏2
Forwarded from Testing Minutes (Oleksandr Romanov)
⚡️ Епізод 53: Куди можна рости в тестуванні?

Куди можна рости в тестуванні? Це питання задає собі як починаючий інженер, так і досвідчений спеціаліст. Чи всім треба йти в автоматизацію? Чи лідерство - то єдиний можливий варіант розвитку? Разом із ведучими подкасту, Артемом та Олександром, ми будемо розбиратися які варіанти карʼєрного розвитку існують.

Дивитись та слухати:
🔸 Youtube
🔹 Spotify
🔸 Apple

Ваша підтримка важлива!
Ми постійно розвиваємося і рухаємося вперед, але це неможливо без вашої підтримки. Тому будемо вдячні за лайки, коментарі та будь-яку іншу форму підтримки. Це допоможе нам просувати наші подкасти в рекомендаціях. Також ви можете підтримати нас донатом — це дійсно важливо для нас і є нашим рушієм.

Дякуємо вам!

Підтримати подкаст можна через: 🏦 База від Монобанку

#testingminutes | @a_grygorenko | Test Engineering Notes
16
Доступність (в розподілених системах)

#distsys

Що таке доступність?

Доступність - це міра того, як надійно система відповідає на запити, коли потрібно (навіть за наявності помилок чи вузлів, що не відповідають)

Види доступності

👉 Повна доступність: кожен справний вузол може виконувати будь-яку операцію. Операції виконуються навіть тоді, коли інші вузли або мережа між ними виходять з ладу

👉Системи з доступною більшістю: якщо більшість невідмовних вузлів можуть спілкуватися один з одним, ці вузли можуть виконувати операції. Більшість може бути як 50% + 1 або 2/3 + 1 вузли

👉 Фіксована (sticky) доступність: якщо клієнт виконує операцію зі станом бази даних, який відображає всі попередні транзакції клієнта, він зрештою отримує відповідь – навіть за наявності невизначеної кількості збоїв вузлів або мережі

❗️Важливо!

Система може бути доступною, але це не означає, що вона буде відповідати найбільш актуальними даними (наявність узгодженості не гарантується)
👍132
👌Узгодженість (в розподілених системах)

#distsys

Що таке узгодженість?

Узгодженість - це коли кожен клієнт отримує від системи одні й ті самі (найбільш актуальні) дані, незалежно від того, з яким вузлом взаємодіє.

Види узгодженості

👉 Сильна узгодженість. Кожне читання видає останню версію запису.

👉 Кінцева узгодженість. Читання може видати не останню версію даних, але згодом усі дані синхронізуються.

👉 Узгодженість читання-запису. Клієнт, що записує, може одразу считати записані дані.

👉 Причинно-наслідкова узгодженість. Дані, що залежать один від одного повинні бути прочитані по порядку.

👉 Монотонна узгодженість. Коли клієнт оновив дані, він не отримає минулу версію даних.

❗️Важливо!

Для узгодженості потрібен час - щоб вузли обмінялись даними між собою. Тому система може бути недоступною, поки узгодженість не буде встановлена.
👍172
✂️Толерантність до розділення (в розподілених системах)

#distsys

Що таке толерантність до розділення?

Розподілені системи складаються з вузлів, що комунікують через мережу. Але мережа - не завжди стабільна. Звʼязок між вузлами може обірватися. Тоді система розпадається на дві або більше групи вузлів.

Толерантність до розділення - це властивість системи продовжити свою роботу навіть тоді, коли деякі частини системи тимчасово недоступні. Клієнт в такому випадку не знає, з якою частиною системи він працює.

Що робити, коли система розділена?

У випадку розділення, розподілена система має два варіанти:

👉Забезпечити доступність. Система відповідає без затримок, але дані можуть відрізнятись у кожній групі вузлів (тимчасово)

👉Забезпечити узгодженість. Система припиняє записи, поки всі вузли (або більшість) не матимуть однакових даних. Доступність буде обмежена в такому випадку.

❗️Тобто, у випадку розділення мережі вузлів система або повністю доступна або обмежено доступна (але гарантує коретність даних)
🔥13👍4
🚀СAP теорема

#distsys

Суть CAP - теореми полягає в тому, що в розподілених системах неможливо ОДНОЧАСНО забезпечити узгодженість (consistency), доступність (availability) та стійкість до розділення (partition tolerance)

Це означає, що під час розділенням мережі треба жертвувати однією з властивостей (тимчасово). Часто також використовують eventual consistency - тобто дані синхронізуються з часом.

Що ж робити при розділенні?

Ризик розділенням мережі завжди високий, тому інженерам треба обирати:

👉 CA (узгодженість та доступність) - рідко буває в реальних умовах. Як приклад - база даних на одному сервері, без кластеризації.

👉 CP (узгодженість та стійкість) - система відмовляє у відповідях поки дані не синхронізовані. Наприклад MongoDB, Redis, HBase

👉 AP (доступність та стійкість) - дані тимчасово відрізняються на різних вузлах, але система доступна. Наприклад Cassandra, DynamoDB, CouchDB

Ну то й що?

Знаючи теорему, можна розуміти, з яким типом системи ми працюємо та як це впливає на тестування.
👍126🔥1
Forwarded from Testing Minutes (Oleksandr Romanov)
⚡️ Епізод 54: Про дослідницьке тестування

Що таке дослідницьке тестування? Чи це просто випадкове клацання без цілі в надії знайти ті чи інші баги? Чим дослідницьке тестування відрізняється від звичного тестування за тест кейсами? Як визначають дослідницьке тестування різні спеціалісти? На всі ці питання будуть шукати відповідь ведучі подкасту - Артем та Олександр

Дивитись та слухати:
🔸 Youtube
🔹 Spotify
🔸 Apple

Ваша підтримка важлива!
Ми постійно розвиваємося і рухаємося вперед, але це неможливо без вашої підтримки. Тому будемо вдячні за лайки, коментарі та будь-яку іншу форму підтримки. Це допоможе нам просувати наші подкасти в рекомендаціях.

Дякуємо вам!

Також ви можете стати спонсором нашого подкасту на YouTube, це допоможе нам покращувати якість нашого контенту!

#testingminutes | @a_grygorenko | Test Engineering Notes
👍10❤‍🔥8
Три кроки для боротьби з рутиною в тестуванні, які допомогли мені

#testing #career

- "Нічого нового в тестуванні"
- "Все вже й так зрозуміло"
- "Таски всі однакові, доповіді всі однакові"
- "Тестування та АйТі перестало бути цікавим"
- "Booooring!"

Саме такі питання виникають в мене час від часу.

Що допомагає мені в такому випадку?

1️⃣ Розширьте коло інтересів: розробка, менеджмент (в тому числі й продуктовий), девопс, безпека, перфоманс, ШІ й інші технології. Знайдіть те, що зможе дати той самий "вогник цікавості" знову
2️⃣ Займіться хоббі (бажано не звʼязаному з АйТі). Погрузіться в нього з головою.
3️⃣ Візміть відпустку. Читайте й дивіться тільки контент не звʼязаний з роботою.

Я застосував усі три способи. То ж зараз маю трохи інший погляд на те, що мені цікаво в тестуванні. А також декілька інших інженерних (й не тільки) тем та хоббі.

А що допомагає Вам?
34
Тестування безпеки LLM систем

#ai #llm #security #testing

Багато хто користується LLM системами, такими як ChatGPT, Claude, Gemini та інші. Дехто - тестує інтеграцію таких систем з власними продуктами. А хтось навіть розробляє свої власні LLM системи для внутрішнього користування.

Але що там з безпекою LLM-ок? Виявляється, prompt injection атаки то не вигадка, а реальна загроза. Бо ШІ може погано розрізняти системні запити та користувацькі запити. В такому випадку зловмисник може відносно легко обійти авторизацію, закинути SQL інʼєкцію чи навіть виконати команди віддалено.

Деякі корисні ресурси з теми:
- Гайд по вразливостям від OWASP
- Обмеження в тестуванні LLM систем
- Як саме виконувати prompt injection

Тренуватись можна тут: Portswigger Web LLM attacks
24
Forwarded from Oleksandr Romanov
⚡️ Епізод 55: Про паттерни в автоматизації (й не тільки)

Перший автотест вже написаний та успішно запускається на CI. Але як писати код так, щоб він був зрозумілий, швидкий та розширюваний? Як для цього використовуються паттерни та інші абревіатури як DRY, SOLID та KISS? Допомагати розібратись в цьому ведучим подкасту, Артему та Олександру, буде гість - Костянтин Телтов.

Дивитись та слухати на Youtube ---> ТУТ

Ваша підтримка важлива!

Ми постійно розвиваємося і рухаємося вперед, але це неможливо без вашої підтримки. Тому будемо вдячні за лайки, коментарі та будь-яку іншу форму підтримки. Це допоможе нам просувати наші подкасти в рекомендаціях. Також ви можете стати спонсором нашого подкасту, це допоможе нам покращувати якість нашого контенту!

Дякуємо вам!

#testingminutes | @a_grygorenko | Test Engineering Notes
🔥184👍2
🥳 З Днем Тестувальника!

#testing

Сьогодні 9 вересня - то ж вітаю усіх тест інженерів із професійним святом. 

Хочеться побажати бути інженерами, а не просто тестерами. 

Тестер просто перевіряє софт по тест кейсам та репортить результат. "Немає білду - сидимо тихо."

Тест-інженер аналізує ризики, розуміє бізнес домен та проблеми. Інженер знає багато технік й інструментів й може їх застосовувати ефективно. Інженер може й хоче автоматизувати свою роботу. Інженер знає, що інформацію про якість треба доносити по-різному в залежності від співрозмовника.

Тестери (як і кодери) можуть бути легко замінені ШІ. Інженери ще мають час. А там - подивимось.
39🍾18
Forwarded from Testing Minutes (Ole Rom)
⚡️ Епізод 56: Про метрики в тестуванні

В одному з попередніх епізодів ми розбирались із шкідливими метриками. Але які метрики є корисними? Що треба трекати на проєкті? Як обрати найкращу метрику? В цьому епізоді подкасту, Артем та Олександр поринають у чарівний світ метрик в тестуванні.

Дивитись та слухати:
🔸 Youtube

Ваша підтримка важлива!

Ми постійно розвиваємося і рухаємося вперед, але це неможливо без вашої підтримки. Тому будемо вдячні за лайки, коментарі та будь-яку іншу форму підтримки. Це допоможе нам просувати наші подкасти в рекомендаціях. Також ви можете стати спонсором нашого подкасту на YouTube, це допоможе нам покращувати якість нашого контенту!

Дякуємо вам!

#testingminutes | @a_grygorenko | Test Engineering Notes
14🔥9🎉6
Programming Deflation

#engineering

Свіжа стаття від Кента Бека про те, як змінюється розробка в сучасному світі ШІ.

Багато цікавих питань:
- В епоху тотального ШІ нам потрібно буде менше чи більше розробників?
- Якщо написання програм стає все більш дешевим - чи не краще почекати ще пару років, коли написання програм буде зовсім безкоштовним?
- Як змінюється якість коду коли більшість його генерується ШІ?
- Чому дешевший код призводить до пришвидшення інновацій?

Головна думка:

В світі надзвичайно дешевого коду найбільш дефіцитним стає .. РОЗУМІННЯ, СУДЖЕННЯ. Здатність бачити як частини поєднуються разом. Знання, коли та що НЕ ТРЕБА створювати.

Ці навички можуть мати зрілі та досвідчені фахівці. А ось як здобути ці навички, коли ти джуніор та весь код за тебе пише ШІ - оце інше велике питання.
👍193
Forwarded from Testing Minutes (Oleksandr Romanov)
Media is too big
VIEW IN TELEGRAM
⚡️ Епізод 57: Роздуми про роботу в офісі або на ремоуті

Спочатку ми працювали в офісах. Потім прийшов ковід та віддалена робота. Тепер багато компаній повертає людей в офіси (чи хоча б на гібридний формат). Але в чому причина повернення? Що краще - працювати віддалено чи в офісі? В цьому будуть розбиратися ведучі подкасту - Артем та Олександр.

Дивитись та слухати:
🔸 Youtube

Ваша підтримка важлива!

Ми постійно розвиваємося і рухаємося вперед, але це неможливо без вашої підтримки. Тому будемо вдячні за лайки, коментарі та будь-яку іншу форму підтримки. Це допоможе нам просувати наші подкасти в рекомендаціях. Також ви можете стати спонсором нашого подкасту на YouTube, це допоможе нам покращувати якість нашого контенту!

Дякуємо вам!

#testingminutes | @a_grygorenko | Test Engineering Notes
17