WEB 3.0: які особливості тестування?
Було б цікаво почитати саме про тестування продукту в WEB 3.0. Які особливості? На що звернути увагу?...
Було б цікаво почитати саме про тестування продукту в WEB 3.0. Які особливості? На що звернути увагу?...
Тестую блокчейн вже третій рік. Тому додам декілька речей.
В мануальному тестуванні — decentralized application — тобто ті, що працюють під капотом з блокчейном — тестувати треба тими же підходами, що й звичайні. Єдиний виняток — якщо ви тестуєте саме блокчейн сам по собі (але такої роботи набагато менше. Це як тестувати операційні системи).
Автоматизація більшості web3 проєктів зводиться на 80% до автоматизації звичайних веб чи мобайл застосунків. Різниця полягає в особливостях домену та деяких додаткових інструментах — наприклад підтвердження транзакцій в гаманці (Metamask).
Бібліотеки для автоматизації, які працюють з гаманацями — dappwright, dAppeteer, synpress.
Можна подивитись доповідь — E2E Tests for Web3 Applications
Додаткова складність додається, якщо ваші девелопери пишуть та працюють зі смарт-контрактами. В таком випадку розробники повинні тестувати контракти самі. Плюс треба дивитись уважно в сторону перевірки захищеності такого коду.
Я збираю усю наявну інформацію з тестування в світі блокчейну в окрему репу - можете почитати.
В цілому про тестування блокчейну можна подивитись цю доповідь.
Якщо будуть більш конкретні питання — пишіть мені, допоможу.
Взагалі супер! Я вважаю це корисним та цікавим для усіх тестувальників, щоб володіти актуальними, трендовими знаннями. Бажаємо ми того чи ні, але блокчейн все більше проникає в наше життя.
Блокчейн — це просто технологія. Десь вона є, десь вона може бути зайвою. Розбиратись в ній треба або якщо цікаво, або ж якщо треба для роботи. Бо тема не проста.
Перевіряти блокчейн, це як перевіряти що AWS робить **свою** роботу — не треба цього робити.
Ваші задачі:
— перевірити що юзер не має доступу туди, куди він не має мати доступу без гаманцю (те ж що й auth в web2);
— перевірити що юзер може підключити кожен гаманець який ви підтримуєте (звучить банально, але зазвичай всі на це забивають хєр, бо гаманці це 3rd-party);
— перевірити що ваш проект працює нормально не в mobile safari, а саме в браузері гаманця, бо на мобілках гаманці тільки через внутрішній браузер працюють;
— перевірити що ваш проект нормально оброблює помилки від гаманця, такі як «юзер відмовився підтверджувати транзацію», або wallet internal errors, або blockchain-related errors які висирає все той же гаманець;
— перевірити що retry механізм для транзакцій (якщо він є) працює нормально;
— перевірити що priotrity fees (якщо вони додані) працюють нормально коли блокчейн має завелику завантаженість (congestion);
— в ідеалі перевірити що запити до блокчейну реалізовані нормально (то вже більш технічне питання), бо багато хто замість одного запиту з ефективними фільтрами може робити купу запитів. Думаю розумієте чому це є проблемою;
— якщо наявно, перевірити що механізм переключення між RPC працює нормально, бо досить часто RPC лагають та відпадають, і круто мати автоматичне переключення;
— треба навчитись розуміти які саме програми виконує ваш смарт-контракт, щоб перевірити не просто що транзакція проходить, але що й списується правильна кількість fees. Не сказав би що це прям щось технічно важке, просто потребує внутрішньої документації, або спілкування з девелоперами;
— ну і далі я впевнений що ще є купа domain-specific деталей, бо у когось dex/cex, у когось defi, у когось метаверс, у когось ще щось...
Може ще щось є, але я не QA, тож не підкажу. В залежності від блокчейну там є досить багато специфічних деталей реалізації цього блокчейну, тож в ідеалі почитайте про це, щоб розуміти чому виникають ті чи інші проблеми.
Але як вже й сказали, на 99% все те ж саме що й у web2.
Там особливості є у тестуванні смарт контрактів, але це більш рівень юніт тестів.
А так самі продукти нічим не відрізняються із точки зору мануального тестування.
Ну хіба що можеш почитати загалом основи блокчейну. Ще навчись користуватись etherscan — розуміти транзакції, івенти і т/д
Вас звичайна автоматизація тестування сучасного веба цікавить, правильно я розумію?
Я Manual QA, але з планом пепеходу в Avtomation. На даний час цікаво дізнатися про особливості ручного тестування продуктів на Web 3.0. Можливо практикуючі тестувальники підкажуть на що звертати увагу, що використовувати Tools.
Почнемо з того, що ніякого Web 3.0 не існує. Тому варто одразу перейти до автоматизації...
Тут все буде упиратися в технічні знання:
1) Мова програмування. Знаєте JavaScript чи Python. Ні — можна вчити перший.
2) Інтрумент для браузерного тестування. Можна вибрати Selenium, Cypress (тільки JS) або Playwright. Від найстабільнішого до найпрогресивнішого.
3) Далі пускалка для тестів. Для джаваскріпта може бути Jest, для пітона — pytest.
4) Далі треба налаштувати середовище для тестування. Туторіали для кожного з інструментів легко гугляться.
5) Пишите тести на будь-яку веб-сторінку, граєтесь з API вибраного інструменту.
6) Потім треба розібратися з контейнерами і Docker-ом. Потрібно вміти написати простенький Dockerfile.
7) Тести загортаються в контейнер. І потім з допомогою docker compose робиться середовище для їх запуску подібне до того, яке може у вас бути в CI pipeline.
Якщо виберете Selenium обов’яково прочитайте про Selenium Grid
— www.selenium.dev/documentation/grid
— github.com/...eleniumHQ/docker-selenium
Дуже дякую за корисну інформацію і напрямок руху. Оскільки вивчав Phyton та дивився Selenium, то так і зроблю. Але є але) Може я неточно виразився, кажу як є: випав шанс попрацювати в секторі Crypto currency. Проект використовуе крипто гаманці, як для авторизації так і для сплати послуг. Саме тому і зацікавився цим, комерційного досвіду тестування в кріпто не було. Лише у якості user’а. Які перевірки прваодити на блокчейні?
Ну тут я вам не сильно допоможу.
Підозрюю, що тестування там не сильно відрізняється від інших способів аутентикації та платежів. Вам дадуть якийсь демо акаунт, на якому можна робити фейкові транзакції, от і все.
Для ручного тестування DevTools з розширеннями має з головою вистачати.
Для тестування Web API я особисто використовую Insomnia. Це платна тулза, але має бути фрішна версія.
П.С.: Я розробник, не тестувальник. Тому чекаю на появу QA в цій темі для підтвердження або спростування того, що я написав.
Если мы говорим о тестировании Web API — то стандарт индустрии ща Postman. Можно ещё SoapUI глянуть.
Если хотим тестить кодом, а не тулзами — requests для Python, RestAssured для Java
Ще забув про тестування безпеки.
Я особисто користувався Burp-ом. Але знову ж це платний засіб.
Є відкриті інструменти для аналізу програм і сайтів:
owasp.org/...pplication_Security_Tools
17 коментарів
Додати коментар Підписатись на коментаріВідписатись від коментарів