TGViewer
Test Engineering Notes Test Engineering Notes @testengineering · 4.01K subscribers
Post #799 2.5K
🤔 Чому тестувальнику не варто плутати причинність та кореляцію

#testing #criticalthinking

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

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

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

😱 Окей, цікаво - але нащо це в тестуванні?

Часто ми можемо зустріти таку помилку (у себе чи в команді): “Ми зробили деплой версії 1.0.1 на продакшн, система зламалася — значить, причина у версії 1.0.1!”. В цьому прикладі можна побачити кореляцію між двома подіями (деплоєм та поламаною системою), але не обовʼязково причинність.

Чому? Бо ми працюємо зі складними системами з великою кількістю компонентів. Компоненти працюють одночасно; між компонентами існують явні та неявні залежності.

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

Ще цікавіше стає, коли в цей коктейль додається дрібка упередженості. Завдяки упередженості вибору, ми можемо обрати найпростіше пояснення причинності. Або ж - вірити тому, що, очікуємо побачити (на основі минулого досвіду).

🤯 Як дослідити причинність виникнення помилок (багів)

👉 Намагайтеся відділити спостереження від пояснення. Замість швидкого рішення “Деплой спричинив збій” можна сформулювати події по-іншому: “Помилка сталася після деплою”.

👉 Задайте собі та команді просте питання: “А що ще змінилося в процесі деплою?”. Можливо, стався сплеск навантаження, або хтось змінив базу.

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

👉 Протестуйте гіпотези про причинність подій. Чи можете ви відтворити помилку, задеплоївши ту саму версію знову? Чи зникне помилка, якщо ви повернетеся до попередньої версії? Чи можливо ізолювати проблему?

При роботі з причинністю та кореляцією треба памʼятати, що остання може бути лише підказкою, а не прямим доказом. Помилка може бути спричинена одночасною взаємодією багатьох компонентів. Деякі з цих компонентів можуть не мати логів і метрик, що це підтверджують. (Якщо цих логів немає - треба задуматися над тим, щоб їх додати.)

Інколи, інтуїція тестувальника спрацьовує й причина помилки дійсно є першим, що прийшло в голову. Але зазвичай, ситуації більш складні та нетривіальні.

Досліджуйте баги, шукайте докази причин і наслідків. Слова архітекторів та девелоперів про “тут так точно не може бути” - це не доказ.
  • ❤ 17
  • 👍 5
  • 🔥 3
More from @testengineering
  1. Oct 5, 2026Ministry of Testing - англомовні івенти на всі смаки #testing #ai Всім привіт. Хочу розпов…
  2. Sep 30, 2026Скіл, щоб прибрати зайве #ai Цікавий скіл, щоб не продиратись через купу згенерованого тек…
  3. Sep 29, 2026Що таке агент? #ai Зрозумій, на небесах в тестуванні тільки й говорять, що про море агенті…
  4. Sep 28, 2026Navigating the AI Shift #testing@testengineering #ai@testengineering Трохи старе, але не м…
  5. Sep 25, 2026Сувора QA Конференція - AI в тестуванні Вже наступного тижня пройде найцікавіша онлайн-кон…
  6. Sep 25, 2026👨‍💻Can This Vibe Coder Beat a Senior Developer? #ai Сьогодні пʼятниця, то ж пропоную щос…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →