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

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

#testing

Цими вихідними натрапив на цікаву статтю. В ній розробник розповідає, як вони покращили якість на проєкті.

🦶Покроковий алгоритм дій:

1. Звільніть усіх тестувальників!
2. Розкажіть розробникам, що вони тепер відповідальні за якість
3. Розробник, що робить код ревʼю - тестує фічу
4. Розробник, що зробив задачу - додає до пулл реквесту докази того, що фіча працює (скріншоти, відео, запити)
5. Проводьте нерегулярні bug bash активності - де тестувати будуть усі, включно з дизайнерами, менеджерами та аналітиками (бо знайти хорошого тестувальника складно)

Більше про результати можна почитати в статті.

Як думаєте, чи успішний був такий підхід?
👍10🤔9😁5🌚4🔥3👎21
Швидко малюємо діаграми в Excalidraw

#visual

Іноді простого опису текстом недостатньо, щоб зрозуміти якийсь процес чи структуру. Тоді на допомогу можуть прийти діаграми.

Краще, звичайно, малювати їх вручну самостійно. Але можна користуватись й інструментами - наприклад Obsidian Canvas, Miro, Excalidraw.

Якщо треба швидко зробити візуалізацію, то в Excalidraw є функція "Text to diagram".

Наприклад ось, що він зробив на такий текст:

  
Digital Signature Scheme

Two phases: sign and verify. 

At sign phase, Alice calculates hash (256 bit) from the document she wants to send Bob. Then Alice encrypts the hash with her secret key. 

At verify phase, Bob decrypts hash with Alice's public key, calculates hash from the document and then compare his hash and Alice's hash. If same - document is verified.
👍242🔥1
📝Кількість багів - як метрика якості 🐞

#testing #metrics

Коли стає питання, як виміряти ефективність тестувальників, перша думка, що виникає в голові менеджера - це кількість багів!

Але сама по собі, кількість багів це, скоріш, шкідлива метрика.

Чому шкідлива?

Оцінювати ефективність роботи по кількості багів - це як оцінювати розробника по кількості строк коду чи книжку по кількості сторінок

Кількість багів може бути різною, бо все залежить від специфіки продукту, процесів, людей

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

Що робити замість трекінгу кількості?

Збирайте та аналізуйте defect leakage - кількість багів, що "просочилася" на продакшн та була знайдена користувачами. На кожен з таких багів треба зрозуміти його причини та як команді не пропускати подібні баги у майбутньому.
24👍17💯3❤‍🔥2
89 сторінок типових софтверних помилок від Cem Kaner

#testing

Робота тестувальника - досліджувати програми з метою пошуку різного роду невідповідностей: вимогам, стандартам чи то здоровому глузду.

Дефекти можуть бути різними:
- помилки в коді (ліміти значень, обробка помилок, розрахунки)
- помилки в логіці та роботі з даними
- помилки "хардової" частини, що впливають на софт
- помилки в UI/UX
- багато інших.

Для тих, хто хоче подивитись на види помилок трохи глибше - я знайшов величезну (майже на 90 сторінок) добірку від Cem Kaner.

Навіть просте читання цього матеріалу може підкинути вам багато ідей про те, де ще можна тестувати та шукати ці дефекти у вас в софті
👍283❤‍🔥3
Як це працює: Shazam

#howitworks

Колись давно, дізнатись назву пісні чи виконавця, які ви десь почули було вкрай складно. Можна було записати фрагмент на диктофон, запитати в друзів чи чекати, коли той кліп покажуть десь на М1 чи Enter Music 👨‍🦳 А потім - зʼявився Shazam та дав нам можливість взнати мелодію за якісь лічені секунди.

Але що то за магія? Як працює? Сьогодні я поділюся статтею, яка пояснює алгоритми та технології під капотом Shazam. (Без хешування не обійшлося!)

TL;DR - Коли додаємо нову пісню в бібліотеку

1. Калькулюємо спектрограму пісні
2. Дістаємо граничні значення зі спектрограми
3. Обчислюємо хеші з цих значень
4. Зберігаємо колекцію хешів як унікальний "відбиток" пісні

TL;DR - Коли шукаємо пісню

1. Обчислюємо "відбиток" аудіо фрагменту
2. Знаходимо хеш значення, що відповідають цьому відбитку
3. Для кожного потенційного збігу в пісні треба обчислити час відстеження, потім згрупувати це у формі гістограми
4. Повернути пісню, що найбільше подібна до фрагменту

Більш докладно можна почитати в статті. (Описаний алгоритм був на початку розвитку продукту. Який там він зараз, поки не знайшов. Напевне щось там з AI)

Але найбільш цікавими залишаються питання - як це все тестувати? Яким би був Ваш підхід?
👍435
🧪Курс Automation Testing: від ручного тестування до автоматизації з Олексієм Вовком – можливість підняти свою кар’єру тестувальника на новий рівень та опанувати навички створення надійних автоматизованих тестів.

🔸Старт:
24 жовтня
🔸Тривалість:
16 занять
🔸
Програма та реєстрація

Старт вже через 2 дні і залишилось ще декілька місць на курсі, тому це твій останній шанс приєднатись до курсу зі знижкою -40% (від вартості Standard).


Чому варто взяти участь:

🔸Тренер –
Олексій Вовк, Senior Test Automation Engineer, автор статей у медіа, практикуючий спеціаліст Sigma Software з понад 7-річним досвідом в автоматизації тестування
🔸
Практичне застосування знань на реальних проєктах
🔸
Опанування новітніх технологій та практик
🔸
Робота з ШІ – дізнайся, як ШІ може покращити роботу тестувальника-автоматизатора, та створи модуль для тестового фреймворку за допомогою ChatGPT

🔗Дивись вступну лекцію, дізнавайся більше та реєструйся
ТУТ
👍101🤨1
I am tired of AI

#testing #ai

Bas Dijkstra у своєму блозі вирішив поділитись думками щодо AI.

TL;DR

- зараз неймовірне засилля AI де треба й де не треба
- AI інструменти з тестування можуть допомогти отримати результати швидше. Але чи кращі такі результати - то вже інше, велике питання
- Люди користуються AI навіть для написання текстів (наприклад для CFP на конференціях) про AI. Ці тексти зазвичай просто однакові! Вони не показують справжню людину.

Що я думаю про AI

Від себе можу додати, що частково я згоден з автором.

Цими вихідними був на черговій конференції тестувальників - та бачив там 60-70% однакових доповідей з AI в темі. До того - на інших конференціях ситуація не краще.

- Хтось продає "чарівні срібні кулі", які допоможуть тестувати за наносекунди.
- Хтось в мільйонний раз намагається розповісти базу з AI за 30 хвилин для непідготовленої аудиторії, якій це абсолютно не цікаво.
- Хтось годину показує як користуватись chat GPT (хоча там запити також дуже прості)

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

Нові технології та їх розвиток - це дуже круто. Але нам, як інженерам, треба не ганятись за хайпом, а розбиратись як воно працює та як це може потенційно вийти з ладу (як то все тестувати).
31👍3💯2
Як це працює: злам віддаленого доступу до Kia

#howitworks #security

Тестування непотрібне! Тим паче якесь там тестування безпеки!
А в результаті маємо можливість за лічені хвилини віддалено відкрити будь-який новий автомобіль Kia.

TL;DR - Як зламали?

Для того, шоб відкрити авто, на сервер надсилається POST запит з sessionId та VIN кодом машини. VIN отримати нескладно. А от як отримати sessionId?

1. Реєструємося як дилер та отримуємо sessionId
2. Шукаємо авто в базі по VIN коду
3. Модифікуємо доступ до авто для дилера
4. Додаємо мейл зловмисника для авто по VIN коду
5. Можемо відправляти запит на відкриття авто

Більше про вразливість у статті.

P.S. Вразливість вже закрили, тому й виклали цей приклад у вільний доступ
👍26😁3
Automation Challenge

#automation

Ви хочете повноцінний проєкт з автоматизації у своєму портфоліо? Але не знаєте з чого почати?

Я знайшов цікавезний БЕЗПЛАТНИЙ варіант від Bas Dijkstra, як здобути ті важливі практичні навички з автоматизації тестування.

Йдемо на https://github.com/basdijkstra/a-test-automation-project, обираємо ту мову програмування, яка вам цікава - та виконуємо проєкт крок за кроком.
👍37🔥138
🤔Пародокс Тога (Або парадокс складності)

#theory

Сьогодні вівторок, а значить саме час ... поговорити про парадокси. (Жартую, немає ніякої привʼязки до дня тижня)

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

👉 Приклади

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

2. Спрощення задач також призводить до виникнення нових обовʼязків (та потреб). Ось, наприклад, додали нову HR систему, яка зробила перфоманс менеджмент та різні базові штуки майже автоматичними. Але тепер у HR зʼявилось багато вільного часу та нових обовʼязків - розвиток співробітників чи їх залучення. А це призведе до збільшених потреб до софту.

3. Соціальні мережі принесли нам можливості швидкої комунікації та обміну фото. Але чим далі, тим вони стають все складнішими та багатофункціональними. Тут тобі стрімінг, AR / VR, вбудовані маркетплейси (згадується нещодавний приклад Monobank).

4. Те ж саме з автоматизацією. Як тільки ви автоматизуєте базові тести, зʼявляться ще більше запитів на автоматизацію: а ось тут репорт, а ось тут CI, а тут ще 3-party перевірки треба, а потім мобілки, десктоп та якийсь IoT з блокчейном...

🤷‍♂️Ну то й що?

Парадокс Тога пояснює важливу річ - вимоги ЗАВЖДИ будуть змінюватись, уточнюватись та роширюватись. Користувачі завжди будуть хотіти все нових й нових функцій.
Це треба прийняти й будувати системи, які легко змінювати та розширювати.
30👍11❤‍🔥3
🔮The Future of Jobs Report 2023

#career #testing

Поки курси QA все ще росказують, що тестування це "швидко, легко та для будь-кого!", ситуація у світі вкрай протилежна.

Згідно з репортом Світового Економічного Форуму, робочі місця для тестувальників скоротяться на 15% до 2027 року. Разом із тим, інші інженерні направлення (software engineering, big data, AI, devops, blockchain) очікують ріст в 20 - 30 %.

Додатково, DORA report говорить про те, що високо-продуктивні команди мають метрику change lead time (час від коміту до деплою) на рівні менше одного дня. Маючи деплойменти кожного дня - їх просто нереально кожного разу тестувати руками.

🤷‍♂️То що це означає? Тестувальник перетвориться в девелопера?

Якщо коротко, то так, частково.

Від тестувальника будуть очікувати більшого. Це вже видно по вимогам до кандидатів. Зараз треба не просто знати теорію тестування та підходи. Зараз потрібно знати дуже багато речей, суміжних із розробкою.

В деяких командах тестувальники вже мають тайтл - software engineer in test. Тобто по факту - це розробник, що спеціалізується на тестуванні. Наступний крок - коли таких людей просто зроблять software engineer. Просто задачі будуть різними. Хтось займається продуктовою розробкою, хтось - platform engineering, а хтось - інструментами та процесами якості.

‼️Що робити?

☑️поглиблювати технічні навички
☑️дивитись на якість та процеси більш цілісно
☑️вивчати інструменти розробки
☑️вчитись ефективно комунікувати результати та плани
☑️шукати ніші, суміжні із тестуванням (або ж той інжинірінг, який вам більше подобається)

Світ змінюється. То ж треба адаптуватись.
1👍38😢131
📝Про зберігання статей "на потім"

#reading

Я багато читаю. Як для щомісячного дайджесту статей, так і загалом по роботі.

Все й одразу прочитати не вийде. Особливо, коли статті чималенькі за розміром.
Тому треба тримати фокус. Єдине, що працює в такому випадку - це користуватись "Read It Later" функціями чи додатками. Про їх приховану силу писав якось Tiago Forte у своєму блозі.

В минулому я користувався Pocket. Але з часом він став дуже повільним. До того ж - список статей для читань у ньому відрізнявся від того, що був у закладках в браузері.

Потім якийсь час я користувався вбудованою функцією Reading List від Google Chrome. Для початку вона досить непогана (Подібна функція є й в Safari). Але не вистачає папок, тегів та організації посилань.

Згодом я знайшов непоганий варіант - Omnivore. Він навіть міг сінхронізуватись із Obsidian. Але в цьому місяці цей додаток нажаль закривається. Тож треба шукати щось інше.

Які є варіанти?

👉 Instapaper
👉 Readwise
👉 Raindrop

Поки що я зупинився на Raindrop. Безкоштовної версії мені поки вистачає.

🤓З цікавих функцій Raindrop:

- Raindrop працює напряму з вашими закладками в браузері (По факту це "прокачаний" менеджер закладок)
- папки та теги для посилань
- можливість зберегти декілька відкритих вкладок одночасно
- читання статті прямо в мобільному застосунку
- пошук по закладкам прямо з пошукової стрічки
- якась сінхронізація із Obsidian (але самопальна)

Сподіваюся, що Raindrop допоможе мені навести лад із закладками у Chrome та нарешті їх читати.

Можливо, вам підійде більше Readwise - якщо ви хочете не тільки зберігати статті, але ще й читати та робити нотатки (highlights). Я роблю нотатки одразу в Obsidian.

А чим користуєтесь ви?
👍31
🤷Як ви вчитесь?

#question #learning

Поки я готуюся до своєї доповіді наступного тижня, в мене виникло декілька питань до читачів каналу.

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

І головне - навіщо ви вчитесь?

Було б дуже цікаво почути ваші думки та відповіді.
👍146
Ідеї для тестування

#testing

Якщо вам не вистачає ідей, щоб ще потестувати у вашому продукті - маю цікавий документ, де автор пропонує аж 37 ідей (джерел) для тестування.
1👍36❤‍🔥3
World Quality Report 2024-25

#testing #quality

Тут вийшов Quality report за 2024-2025 рік, де можна побачити тренди в тестуванні.

Можна звичайно почитати його самостійно - там 54 сторінки невеликим шрифтом. Але я допоможу.

Коротко про основне

👉 В світі продовжують вживати терміни типу Quality Engineering - як наступний етап розвитку тестування
👉 Gen AI використовують більше для репортів, аналізу дефектів та генерації тестів
👉 Quality інженери розвиваються в SDET а потім - (дуже дивно) в full-stack test engineers. Хто це такі, ці фул стеки - загадка! Напевне ті, що можуть усе, плюс ще перфоманс та безпеку.
👉 Топові навички це AI/ML, cloud, data anlytics, BDD / TDD (ААА!), CICD
👉 Багато хто відмовляється від концепції testing center of excellence
👉 Навички розробки менш потрібні, ніж навички Gen AI
👉 29% компаній роблять хоч щось корисне з тим AI в тестуванні. Ще 25% копають в цьому напрямку
👉 Більшість людей використовує для тестування синтетичні дані або дані згенеровані бібліотеками
👉 50% компаній фінансового сектору переводять команди з Індії до Латинської Америки

Ось куди рухається світове тестування.
🤔349👍2🎉2
⚡️ Олександр Романов: Stop Studying, Start Learning - або як вчитись краще

📝 Про що
Чи бувало у вас так, що ви прослухали лекцію чи вебінар - та не памʼятаєте про що він був вже через декілька днів? Або коли ви намагаєтесь згадати якусь просту команду в Git, не можете та й одразу йдете гуглити? Або коли ви читаєте статтю чи книгу та розумієте, що цю інформацію ви вже давно знаєте?

Питання не в тому щоб закинути якомога більше знань у голову. Питання в тому, щоб дійсно НАВЧИТИСЬ. Так, щоб знання залишались з вами на довгий час та допомагали в роботі.

Можна вчитися ефективно. А можна - швидко й шкідливо. Як вчитись краще для вас?
Про все це я буду розповідати у своїй доповіді.

🎙 Олександр про себе
Мене звати Олександр Романов. В ІТ я з 2011 року. За цей час писав на Java, C#, Scala, Python; автоматизував web, mobile, API, мікросервиси, блокчейн.

Автор каналу Test Engineering Notes та дайджестів на DOU, ведучий подкасту Testing Minutes.

Де знайти Олександра?
Linktree

📆 Середа, 13 Листопада о 19:00 за Києвом
🧑‍🏫 Формат заходу: лекція

Як доєднатись?
🎟 Купити квиток: 300₴ (200 гривень з кожного купленого квитка йде на ЗСУ!)
💬 Долучитись до спільноти (учасникам спільноти заходи безкоштовні)
🔥12🥱32
✒️ Моя перша стаття для Ministry of Testing

#testing

Є такий ресурс й комʼюніті під назвою Ministry of Testing. Вони проводять конференції, мітапи та усілякі заходи для тест інженерів (як для UK / US, так і по всьому світу).

Вчора вийшла моя перша стаття для них - Software testing careers: Many paths to success

В ній я розповідаю про можливі карʼєрні шляхи для тестувальників.

Запрошую почитати та подискутувати 😜
👍5710🔥9
Досить вже писати так багато!

#testing #writing

Я працюю в remote компанії. Хоча синхронної комунікації (мітингів) вистачає, але в більшості випадків ми спілкуємось асинхронно. Тобто у форматі повідомлень в месенджер, документів, репортів.

Що я можу порадити

Коли ви пишете повідомлення чи питання, краще зупинитись на хвилинку та подумати, як донести ці дрібки важливої інформації так, щоб людина ШВИДКО зрозуміла контекст та змогла вам допомогти.

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

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

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

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

То ж пишіть коротко, але змістовно. Користуйтеся діаграмами там, де потрібно. Менеджери та колеги будуть вам вдячні.
👍32🔥73
⚡️ 23 листопада розпочнеться практичний тренінг від Олександри Ковальової — Test Design Techniques: Black Box Testing — повне занурення у практику та джерело інсайтів для роботи на проєктах.

Цей тренінг точно буде корисний і цікавий тим, хто:

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

⚫️Як це буде:

Розклад: 23 листопада, 30 листопада, 7 грудня (10:00-15:00) — 3 заняття щосуботи протягом 3 тижнів.
Формат: прямі трансляції з можливістю переглянути відео.

🦄 Деталі та реєстрація: https://bit.ly/3ZbcxWh
👍7
🛝Простий спосіб покращити ваші слайди

#speaking

Час від часу я виступаю на конференціях чи проводжу вебінари. Або ж - ділюся знаннями з командою.

В будь-якому випадку мені потрібно робити слайди. На роботі я користуюся Google Slides.

Для конференцій останні років пʼять я користуюся сервісом beautiful.ai. Безкоштовної версії мені вистачає. Слайди в ньому робити дуже просто й швидко. Але часом мені не вистачає вбудованих засобів для схем та діаграм.

Минулого тижня я знайшов napkin.ai. Це черговий ШІ, куди ж без цього! Тут ви можете дати йому текст слайдів й отримати ... згенеровану схему чи діаграму з тексту!

Виглядає дещо магічно. Але думаю це те, що я буду використовувати й надалі. А тому - ділюся знахідкою із вами!

Картинку для цього посту було згенеровано також в napkin.
👍23🔥71
🥳 Ювілей каналу та зламані індекси

#anniversary #databases #bug

Вчора каналу Test Engineering Notes виповнилося 3 роки! Стартуючи канал, я й не думав, що буду писати так довго 😄. А ще - я навіть не сподівався, що канал виросте аж до 3500+ підписників! 🎉

Дякую вам усім за те, що продовжуєте читати! А я буду продовжувати ділитись з вами технічними та складними штуками зі світу тестування й інженерії.

То ж, не буде гаяти час - перейдемо до справи!

💼 Справа про зламані індекси в базі

Сьогодні я хочу поділитися з вами цікавим матеріалом - "When Postgres Indexing Went Wrong”. Ця стаття розповідає, як оптимізація перфомансу може піти не так, як планувалося. (Як часто й буває).

Була в одній компанії Postgres база даних, величенька за розмірами (десь мільярди рядків). Щоб зробити запити більш швидкими, розробники створювали індекси. Але просто індекси, а в паралелі - за допомогою CREATE INDEX CONCURRENTLY. Перфоманс запитів покращився, можна святкувати!!!

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

🔍 Що ж сталося?

- паралельна індексація проходить в два етапи: спочатку створюється індекс на основі снапшоту стану бази, а потім Postgres обробляє всі зміни, які пропустив.
- паралельна індексація - асинхронна та …. може ТИХО ВПАСТИ й залишити по собі зламаний індекс!
- у випадку компанії проблема була гіршою - бо дані були розділені між багатьма розділами (partitions)

❗️Як цього уникнути?

- користуйтеся флагом CONCURRENTLY, коли створюєте індекси в продакшені
- моніторьте індекси та перевіряйте їх вручну (за допомогою EXPLAIN ANALYZE)

Памʼятаймо: чим більше ми знаємо про системи та як вони можуть впасти - тим краще ми зможемо запобігти помилкам.
👍27🔥124🌚2