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

Консультації з автоматизації, менторинг, тестові співбесіди - @al8xr
Download Telegram
Blockchain for Test Engineers: Merkle Trees

#testing #blockchain

Переклав та трохи доробив свою статтю про дерева Меркла.
👍4
Запис доповіді - "What does it mean to test a blockchain?"

#video #blockchain #testing

Минулого місяця, я брав участь у Quality Management Week від Soft Serve.

На цій конференції я коротко розповів про те, що ж таке блокчейн, що там можна тестувати та що почитати, щоб почати розбиратися у цій сфері.

Слайди доповіді (з купою корисних посилань) можна подивитися тут.
👍17🔥3
Blockchain 101 - A Visual Demo

#blockchain #engineering

Доброго ранку, тест інженери

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

А точніше:
- що таке хеш на прикладі SHA256
- що таке блок та як з блоків формується блокчейн
- як це виглядає в розподіленому середовищі

А для тих, хто хотів би дізнатися, що таке публічні та приватні ключі - існує ще друга частина цього відео.
👍15
Hardcore у п'ятницю: Перша ремарка про перфоманс блокчейн систем

#testing #performance #blockchain

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

Блокчейн систему (як дуже спеціалізований вид розподілених систем) не можна тестувати та вимірювати звичайними метриками та засобами до яких ми звикли. Тобто не буде дуже правильно ставити питання “скільки TPS (transaction per second) може витримати система?” (а люди все ще запитують)

Чому? Бо блокчейн веде себе зовсім по-іншому. В звичайній системі (наприклад у веб додатку) більшість запитів повинні отримати відповідь через деякий час. Чим більше запитів від користувачів, тим більше ресурсів бекенду задіяні в обробці цих засобів.
Для того, щоб обробляти більше запитів - ми просто додаємо більше “машин” для обробки. (Наприклад автоматично через auto-scaling).

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

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

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

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

Один з варіантів оцінки швидкості - це наскільки швидко буде транзакція оброблена, включена в блок та стане стабільною. Тобто block propagation time.

Попереду в мене ще багато відкриттів. Продовжую дослідження.
👍21
Інтерв'ю для Web3 Test Series

#testing #blockchain

Нещодавно я дав коротеньке інтерв'ю для Web3Tests ком'юніті про те, що таке тестування у світі блокчейну та Web3, а також - що там по інструментам в наявності.
👍181🔥1
Читаємо - "Mastering Blockchain"

#books #blockchain #review

Сьогодні я хочу поділитися оглядом книжки про блокчейн, яку я читав доволі довго. Бо книга велика та містить дуже багато корисної інформації.

Фактично, можна прочитати одну книгу - та отримати увесь набір необхідних базових знань з блокчейну.
👍13
Оновлення Awesome Blockchain Testing
#testing #blockchain

Зробив оновлення для мого списку цікавих ресурсів з тестування блокчейну, смартконтрактів та web3 додатків
Можна знайти що почитати, подивитись та поклацати з тестування та безпеки блокчейнів.
👍12🔥5
Запис - Що таке блокчейн та як його тестувати?

#testing #blockchain

В цю п'ятницю хочу поділитись записом мого минулорічного виступу на QA Party Hard у Львові.
Про блокчейн, що воно таке, як його тестувати та чи потрібно воно вам взагалі.
17🔥5
Тестування блокчейну - що почитати?

#testing #blockchain

Вчора я провів лекцію з тестування блокчейну для Суворого QA Community.
Крім покрокових пояснень що таке блокчейн "під капотом", я також поділився списком того, що можна почитати теми тестування.
Поділюся цим списком тут.

Від мене
- Blockchain for Test Engineers - цикл статей, де я розбираю складові частини блокчейну з точки зору тестувальника.
- Awesome Blockchain Testing - величезна підбірка статей, відео та дослідницьких робіт з тестування блокчейнів.

Книжки
- Блокчейн і децентралізовані системи - єдиний україномовний підручник для ВУЗу з теми блокчейну.
- Mastering Blockchain - одна книжка, щоб покрити практично все, що пов'язане з темою. Четверте видання - найповніше.
- Mastering Ethereum: Building Smart Contracts and DApps - книжка, якщо ви конкретно хочете розібратися в Ethereum.

Курси
- "Solidity Smart Contracts" - безкоштовний україномовний курс з розробки смарт-контрактів на Solidity (Ethereum). Він непростий, попереджаю.
- Спеціалізація Блокчейн на Coursera - непогана підбірка курсів для початків.
- Спеціалізація "Децентралізовані фінанси" - інтро курси з прикладного застосування блокчейну. А саме - для побудови фінансових застосунків.

Приємного читання!
👍2512
Оновлення в Awesome Blockchain Testing

#blockchain #testing

❗️Для тих, хто ще не чув - я дуже люблю розбиратись в тестуванні складних речей. Насамперед - блокчейну. Як тільки я стартував роботу в цій сфері - я створив окремий репозиторій та ділюся там посиланнями, відео, постами та інструментами зі світу блокчейну тестування.

🔄Сьогодні я додав ще трохи матеріалів, оновив структуру, видалив трохи застарілого контенту.

А далі буду більше розповідати про цей чарівний світ блокчейнів ще більше. Чому? Бо він цікавий, складний та постійно розвивається.
25🔥8❤‍🔥2
Partner Chains Development Lifecycle: Our CI Evolution

#testing #automation #blockchain

Колеги з команди поділились історією розвитку нашого CI.

Наша система залежить від довжини епохи основного блокчейну. На різних енвайроментах вона різна - від 24 годин до 5 днів!

Спочатку в нас була кастомна модифікація блокчейну з довжиною епохи в 2 години.

На наступному етапі ми працювали із Cardano Preview, де епоха становить 24 години. Підтримувати CI стало набагато простіше, але тестувати - ніт. Будь-які модифікації в нашій системі можна побачити ... через 48 годин. Більшість автотестів була - "почни тест, перевір що результати два дві тому були коректні, зроби нові зміни, зафіксуй їх в тестовій базі даних". Це ... працювало, але дуже довго.


Як покращення, ми взяли тестову версію головного блокчейну (як тільки-но зʼявилась), закинули усі компоненти в Docker та запускаємо їх docker-compose. Тепер результати автотестів не треба чекати 48 годин - а тільки 15 хвилин. Це суттєво краще та зручніше.
👍91
Rust - це не завжди швидко й ефективно

#rust #blockchain

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

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

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