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

Консультації з автоматизації, менторинг, проведення співбесід - @al8xr
Download Telegram
This is how you make a $100 billion AI worm

#security #ai

Всім привіт.

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

Як? За допомогою ... Штучного Інтелекту!

Але ж ШІ має блок на "шкідливі" відповіді? Це можна обійти, шляхом тренування моделі.
Але ж треба знайти вразливості системи? Так, ШІ сканує бази даних усіх останніх вразливостей автоматично.
Але ж системі треба знайти як використати ту чи іншу вразливість? Так, але її можна натренувати на купі вже готових гайдів.

Тобто ШІ вже зараз дозволяє навіть людям з мінімальними технічними навичками створювати доволі серйозні загрози.

Дуже раджу до перегляду.
P.S. ось тут можна почитати, якщо нема часу на відео.
🔥19👍42
There is no single winner: Selenium AND Playwright

#testing #automation

Сьогодні говоримо про UI тести.

Marcus Merrell порівнює можливості Selenium та Playwright.

А ще - автор росказує в чому, на його думку, є реальна проблема масової міграції проектів на стильний й модний Playwright.
21👍5🔥1😁1
X як сервіс ... В чому різниця?

#howitworks

Знайшов хорошу візуалізацію різних хмарних продуктів категорії "as a service".

Той випадок, коли картинка замінює купу слів. Але якщо треба більше пояснень - ось тут можна почитати.
👍25❤‍🔥3
Please open Telegram to view this post
VIEW IN TELEGRAM
1
Vibe coding ... ти не пройдеш!

#python #bugs

🗺 Ситуація

Ви тест інженер та працюєте в команді з розробниками.
До команди приєднується новий девелопер. Він ... дуже полюбляє vibe coding, але не любить vibe debugging.

Через деякий час, ви бачите від нього PR на задачу обробки дорослих юзерів та фільтрації тих, у кого є валідна електрона адреса.


def process_user_data(users, min_age=18):
results = []
for user in users:
name = user['name']
age = user['age']
email = user['email']
if age >= min_age:
if '@' in email:
user['status'] = 'processed'
results.append(user)

average_age = sum(user['age'] for user in results) / len(results)
print(f"Average age of processed users: {average_age}")

return results


Питання: чи все ок з цим кодом? Відповіді пишемо в коментарях.
😁10🥴81
🔖 Software Testing and Quality Report - 4th Edition

#testing

Тут Test Rail випустив чергове дослідження щодо поточного стану та трендів розвитку тестування. В опитуванні прийняли участь 2500+ спеціалістів, більшість з яких - саме тест інженери. Респонденти були з різних компаній за масштабом та процесами.

Головні інсайти:

👉 Метрики. Найбільше трекають test pass / fail rate (70%) та кількість багів у продакшені (60%). Але більш складні метрики мало використовуються
👉 35% команд зосереджені на збільшенні тестового покриття та автоматизації. Лише 20% працюють над зменшенням багів на проді (Автоматизація, тільки автоматизація!)
👉 33% страждають від надмірної складності UI тестів та рішень з автоматизації
👉 Чим більше у команд автоматизації та інтеграції в CICD процеси, тим швидше релізні цикли та ... менше дефектів опиняється на стороні клієнта. (Хм, неочікувано ...)
👉 Багато команд все ще мають обмежені бюджети на QA, а разом із тим - відсутність часу на тестування
👉 Незважаючи на малі бюджети, менеджери скаржаться на те, що QA мають недостатню експертизу в автоматизації, AI, CI/CD. (Тобто вимоги підвищуються, а зп знижується)
👉 Більшість команд користується стандартами ISO 9001 (27%) та ISO / IEC 27001 (18%)
👉 Selenium (39%) все ще розповсюджений серед тестерів. Playwright - на другому місці (19%), Cypress - на третьому (16%) (А як же Playwright is the king?)
👉 Jenkins в топі серед CI/CD інструментів - 45%
👉 41% респондентів запускає до 100 автотестів на день. 33% оперує вже більшими обʼємами (до 1000 тестів)
👉 Найчастіші проблеми з автотестами - нестабільність тестів через часті зміни в UI, погані тестові дані, відсутність знань та вмінь в інженерів (Може краще рухатись на нижчі, більш стабільні рівні?)
👉 Більшість інженерів користується Chat GPT / Github Copilot. Але 36% людей все ще не бачать, як ШІ може допомогти їм у роботі
👉 Проблеми із застосуванням інструментів ШІ: безпека даних, відсутність експертизи в команді та складність інтеграції
👉 Розвиток ШІ в тестуванні незмінний: люди все ще думають, що ШІ чарівним чином буде фіксити автотести та писати код за них. (Та чи так це насправді?)
🔥22👍63😁1
Rust - це не завжди швидко й ефективно

#rust #blockchain

Виявилося, що обробка транзакцій в блокчейні Solana була не те, щоб дуже ефективною. Приніс вам історію про те, як можна зменшити використання оперативної памʼяті з 2.6 Gb до 124 Mb.

В багатопотоковому світ структури типу Cow (Clone on Write) чи Arc не завжди підходять.

Є ще Bytes crate - який дозволяє ефективно клонувати не сам масив, а лишень покажчик (pointer) на нього.
13🤯4
Вплив Chat GPT на критичне мислення

#ai

Вчені з MIT провели дослідження того, як ШІ (Chat GPT) може вплинути на мислення й навчання людей. А саме - написання ессе.
В досліді взяли участь 54 людини у віці від 18 до 39 років.

Людей поділили на три групи:
- ті, що писали ессе за допомогою Chat GPT
- ті, що користувалися Google пошуком
- ті, що не користувались нічим

Які результати?

- Вчені зробили ЕЕГ активності мозку та виявили, що користувачі Chat GPT показали найнижчий результат на нейронному, лінгвістичному й поведінковому рівнях.
- Мало того, з часом, ці користувачі ставали все лінивіші - й все більше банально копіювали результат ШІ без будь-якої перевірки.
- Група, що користувалася ШІ, написала дуже схожі ессе, яким бракувало оригінальних думок.
- Група, яка не користувалась ніякими додатковими інструментами - показала найвищі результати, кращі ідеї, залученість та допитливість
- Група, яка користувалася Google, також показала непогану активність мозку та залученість

Люди, які користувались Chat GPT потім не змогли переписати свої ессе "з голови", без ШІ. А ось ті, які писали самі, змогли написати ессе за допомогою ШІ навіть краще.

Висновки

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

Дякую Артему за цю статтю.
❤‍🔥25👍174
🔮10 ресурсів щоб тренувати знання SQL

#sql

Вчити чи не вчити SQL (та наскільки глибоко) - холіварне питання. 😱 Але якщо все-таки треба опанувати цю навичку - краще робити це цікаво.

Пропоную декілька цікавих ресурсів:

👉 SQL Noir - можна стати детективом та розслідувати справи за допомогою SQL (всього 6)
👉 SQL Murder Mystery - дослідіть базу даних та знайдіть того, хто скоїв вбивство (більш складна)
👉 SQL PD - станьте співробітником департаменту поліції та застосуйте свої знання SQL
👉 SQL Island - хороший ресурс для новачків
👉 SQL Zoo - доволі відомий сайт для тренування базових навичок
👉 HackerRank SQL - крім задачок на алгоритми, на сайті є задачі на бази даних
👉 SQL Game by DataLemur - "Гра в кальмара", але з SQL
👉 SQL Interview Questions - найбільш реалістичні питання, які можуть бути на співбесідах
👉 Advent of SQL - відкривайте нові задачі кожного дня, як адвент календар
👉 SQL (Leetcode) - підбірка питань з SQL (для більш підготовлених)

⚡️А які ресурси для тренування знаєте ви?
👍364
☀️ Літній анонс, бо немає сечі терпіти ці пекельні борошна з естімейтами!

У липні збираю нову групу на дводенний інтенсив - "Естімація задач по тестуванню"

📅 Дати: 12 та 19 липня
💡 Формат: Онлайн (2 заняття по 2-3 години)
🏷 Вартість: 2500 грн

📝 Що в середині?
Насичені 2 вебінари великою кількістю інформації про те, що таке естімейт, чому естімейти не працюють, та що спільного між Story Points та Оцінкою в годинах, якщо ви це робите під час planning poker.

🙋 Для кого буде корисний інтенсив?
👉 Якщо ти хоч раз давав естімейт, який "трохи не вгадав" – цей інтенсив для тебе.
👉 Якщо хочеш чітко аргументувати свої оцінки перед командою та менеджерами – приходь.
👉 Якщо твій естімейт постійно змінюється через "а ще ось це додайте" – будемо розбирати, як уникати таких ситуацій.

Що буде?
🔹 Техніки та інструменти для кращої оцінки;
🔹 Як аргументувати естімейти перед командою та менеджментом;
🔹 Типові помилки та як їх уникати;
🔹 Практика на реальних прикладах;
🔹 Домашня робота;
🔹 Купа корисних додаткових матеріалів.

💬 «Інтенсив навчив мене точніше робити оцінки й нормально ставитись до помилок у них!» (Маргарита)

📢 Кількість місць обмежена, реєструйтесь:
https://secure.wayforpay.com/payment/se9786bd1dd94

Запитання можна писати мені сюди 👉 @artem_grygorenko
3👍2
Найшвидший спосіб знайти голосні в реченні

#python

Задача: написати функцію, яку перевіряє чи є голосні в рядку.


def has_vowels(s: str) -> bool:
...


Можна це зробити багатьма способами.

Спосіб 1


def loop_in(s):
for c in s:
if c in "aeiouAEIOU":
return True
return False


Спосіб 2


def set_intersection(s):
return set(s) & set("aeiouAEIOU")


Спосіб 3


def map_lambda(s):
return any(map(lambda x: x in "aeiouAEIOU", s))


Але виявляється, що найшвидший спосіб це - регулярні вирази!


import re
def regex(s):
return bool(re.search(r'[aeiouAEIOU]', s))


Чому? Бо механізм регулярних виразів в Python дуже оптимізований. Більше можна почитати в оригінальній статті.
👍23❤‍🔥51
🚀Хто такі Expert Generalists та чому варто ставити такими?

#engineering #career

Як завжди, Мартін Фаулер задає тренди (як було з мікросервісами) та пише цікаві речі. В свіжій статті він пише про те, куди буде розвиватися інженерна індустрія.

🕶Хто такі Експерти Універсали?

Колись було правильно розвиватись виключно в одній спеціалізації та домені. Потім - виникли T-shape спеціалісти, які знали одну річ глибоко, а інші - поверхнево.

Фаулер говорить про те, що сучасний розвиток ШІ та технологій в цілому надто швидкий, що обмежувати свою спеціалізацію. То ж потрібно ставати експертами універсалами.

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

💫Характеристики експертів-універсалів

👉 ФУНДАМЕНТАЛЬНІ ЗНАННЯ. Самі ці знання допомагають швидше переходити між доменами, швидше розбиратись в технологіях. Самі ці знання старішають повільніше.

👉 Допитливість. Базова реакція на новий інструмент та технологію в такого інженера - розібратися ЯК ВОНО ПРАЦЮЄ та як цим користуватись ефективно.

👉 Вміння працювати в команді. Вміння вчитися в інших експертів; задавати правильні питання; не боятися визнати, що ти чогось не знаєш

👉 Скромність. Вміння прийняти той факт, що кожен новий домен має відмінності та свої "цікавинки". Та те, що контекст має значення.

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

👉 Вміння дивитись за межі своєї спеціалізації. Працювати над різними задачами, а не тільки тестування, чи бекенд, чи фронтенд.

💼 Для менеджерів

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

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

🪄Висновок

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

Але думка в цілому мені подобається. Вона до того ж переклікається з підходом Modern Testing від Alan Page.

А що думаєте ви? Чи варто ставати експертом - універсалом? Чи, може, треба розслабитись - бо нас усіх захопить ШІ?
👍22💋21
🎱Швидкість навчання vs. Новизна інформації

#learning

Розгляньмо графік. Червоним кольором показано швидкість навчання, а синім - кількість нової для нас інформації.

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

З часом ми набираємось досвіду- то ж швидкість навчання тепер зростає. Разом із тим зменшується фільтр нової інформації. Ми відкриваємо курс чи книгу й розуміємо, що на 300 сторінок маємо тільки 10-20 сторінок з дійсно свіжою або цікавою для нас інформацією. Решту - можна спокійно пропустити.

🪄Абсолютно нормально вчитися повільніше на початку. Та ще більше нормально - читати й вчити тільки те, що для вас нове.Й пропускати решту. Бо це - про ефективність та розумне використання часу.

P.S. А ще з досвідом треба більше часу витрачати на пошук звʼязків між тим, що ти вже знаєш та дрібками нового.
👏22👍107🥰1
Важлива навичка при використанні ШІ

#ai #books

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

Виявляється, навичка не така вже й нова. Письменники-фантасти задавалися цим питанням ще ... 69 років тому назад! Наведу приклад - оповідання "Дотепник", Айзек Азімов, 1956 рік.

Для контексту: в далекому майбутньому винайшли Мультивак - такий собі суперкомпʼютер з ШІ. Він, звичайно, продукував результат на перфокартах - то ж для розшифрування результатів потрібні були аналітики. Але окремо стояли Гроссмейстери - люди, які могли ставити правильні запитання цьому ШІ. Таких людей було дуже й дуже мало.

Ось цитата з твору:

"На зорі історії Мультиваку з'ясувалося, що найвідповідальніша ділянка – це постановка питань. Мультивак вирішує проблеми для людства, він може вирішити всі проблеми, якщо... якщо йому ставлять осмислені питання. Але в міру накопичення знань, що відбувалося все інтенсивніше, ставити осмислені питання ставало дедалі важчим.

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


Як думаєте, чи зріс попит на вміння ставити питання з появою усіх цих Chat GPT / Claude / etc ?
👍34
🚀Важливість технічного знання системи для тест інженера

Я вважаю, що сучасний тест інженер повинен мати гарні технічні знання системи.

Що таке технічне знання системи? Це архітектура, технології та інтеграції системи. Це не про написання коду, як такого.

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

Перевірка: якщо ви можете намалювати архітектурну діаграму вашої системи на листку паперу - це вже дуже круто!


Чому треба це все знати? Як ж тестер (автоматизатор), в мене інші задачі!
Знання внутрішньої роботи дозволить вам:
- розуміти на якому рівні (UI, API) писати ті чи інші тести
- писати більш стабільні тести
- писати більше реалістичні тести, які перевіряють те, що треба
👍242💯1
Augmented Coding: Beyond the Vibes

#ai #engineering

Kent Beck написав статтю про свій досвід використання AI агентів для написання коду. Якщо більш точно, то він вирішив написати свою версію B+ Tree на Rust 🦀 та на Python🐍. Й порівняти їх потім з нативними реалізаціями.

Цікаві результати:

👉 Kent називає свій відхід augmented (змінений) coding на противагу відомому vibe coding. В чому різниця? З vibe кодінгом розробнику важливий тільки результат, а не код. То ж такий розробник просто кидає помилки знову в LLM й сподівається на коректні фікси. З augmented coding розробнику важливий результат та код як такий (його якість, покриття, читабельність). То ж він постійно контролює процес написання коду.

👉 LLM спочатку заплуталася та не змогла реалізувати алгоритм на Rust. Чому? Бо мова програмування непроста та компілятор вельми прискіпливий. Тоді Kent зробив наступне - він виконав задачу на Python, а потім ... попросив LLM транслювати код з Python в Rust. Тоді LLM справився із задачею краще.

👉 LLM також зміг згенерувати порівняльні тести для написаного коду та нативної структури даних.

Висновок. Програмування з LLM - все ще програмування. Навички та знання все ще мають цінність. Особливо, коли ви працюєте з нетривіальними проєктами чи мовами програмування.
👍24🍓1
Practical advice for engineers in these troubled times

#engineering #career

Невеликий пост з порадами про те, як виживати інженерам в сучасному світі.

1. "Забий на роботу, туси на мітингах, качай тільки софт-скілли, харди нікому не потрібні!". Так працювало в 2010х. Але зараз таких людей звільняють дуже швидко

2. Краще працювати над тими компонентами та продуктами, що реально приносять компанії гроші

3. Вчіть фундаментальну базу - вона залишиться з вами надовше. Бо компанії можуть змінити правила найму дуже швидко. Наприклад - перейти від задачок на LeetCode до розглядання ваших власних проєктів чи open-source активності

4. Концентруйтеся на корисній роботі та зробіть її видимою для команди, для менеджера, для компанії
👏13👍52
Forwarded from Testing Minutes (Oleksandr Romanov)
⚡️ Епізод 51: Що таке тестування?

Вже 50 випусків ми говоримо про тестування, в тому чи іншому вигляді. Але що таке тестування? Чи дійсно тестування це тільки перевірка софту за тест кейсами? Чи це щось ... більше? Як визначають тестування різні організації та люди? Саме на ці питання будуть шукати відповіді ведучі подкасту - Артем та Олександр.

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

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

Дякуємо вам!

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

#testingminutes | @a_grygorenko | Test Engineering Notes
👍117
The most mysterious bug I solved at work

#bug

Пропоную до вашої уваги історію про вельми цікавий баг. Історію в своєму блозі розповів Cadence Ember.

Про систему

Одного разу Cadence працював кимось між розробником, тестувальником та сапортом. Продукт, над яким він працював був типу Patient Management Software. В цьому софті лікар міг створити електронне направлення до іншого лікаря. Частину даних про паціента отримували зі сторонніх систем - то ж лікарю треба було тільки заповнити декілька полів у формі, згенерувати у форматах HL7, XML чи PDF та відправити.

Про баг

Раз на два - чотири тижні, система кидала помилку на етапі відправки електронного відправлення:

Illegal Character entity: expansion character (code 0x2) not a valid XML character

Зазвичай, фіксити таку помилку можна було SQL скриптом, що видаляв "\u0002" із бази даних. Але Cadence вирішив знайти першопричину проблеми.

У пошуках відповідей

Що значить символ 0х2? Як ви знаєте, кожна літера тексту представлена числом у компʼютері. Числа нижче 31 використовуються для невидимих "керуючих символів". Керуючі символи були важливі в часи телетайпів - коли символи передавались одним потоком й треба було розрізняти розмітку тексту. Символ 0х2 - це початок тексту, а 0х3 - кінець тексту.

Провівши свої дослідження ще більше, Cadence зрозумів, що символ 0х2 чомусь виникає в кінці першого рядка тексту:


development. Physically, his well-
being is healthy, so likely needs


Тобто дефіс чомусь перетворюється на символ 0х2!

В чому була проблема

Виявляється, браузери та програми працюють з PDF текстами по різному. Автор спробував працювати з PDF з текстом з дефісами в Google Chrome, Mozilla Firefox, Microsoft Edge та Acrobat Reader.

Й саме браузер Edge перетворював дефіс на символ 0х2 ... коли скопіювати текст з PDF файлу відкритого в браузері в систему створення лікарських направлень.

Як пофіксили? Помилку виправили на стороні продукту самого розробника - шляхом автоматичної заміни символу 0х2 на дефіс.
👍23🤯5🔥1
Testability and Cost of Change

#testability #bugs

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

Все починається аж в 1976 році в журналі IEEE, коли Barry Boehm вперше задав питання про важливість фіксу помилок. Свою думку він згодом закріпив у книзі "Software Engineering Economics" (1981).

Цікаве питання: якщо з часом виправляти помилки стає дорожче, то й відповідно робити зміни у функціоналі стає так само складно й дорого? Як думаєте?
👍131🤔1
🧪Про науковий метод й дослідницьке тестування

#testing

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

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

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

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