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

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

#testing #tools

Для тих, кому не вистачає інструментів для тестування або ж тим, хто завжди у пошуках чогось новенького - маю корисний ресурс.
На ньому зібрано доволі багато різних тулів, більшість з яких безкоштовні.
Але не даю гарантії, що усі вони корисні.
Обирайте та досліджуйте самі.
Усім гарного дня!
👍25🔥4
Автоматизація десктопу (або знову той JS!)

#testing #tools

Веб та АПІ автоматизують усі. А що там по десктоп автоматизації?
Сьогодні в одному подкасті почув про бібліотеку на JS - nut.js, що дозволяє управляти десктопом.
- Інтегрується з Jest.
- Є плагін з розпізнаванням картинок.

Думаю, досить цікавий проект. Але ЗНОВУ на JS!)
👍13🤔1
Які є інструменти для автоматизації в ...

#testing #python #java #tools

Доброго ранку.
Коли ми тільки знайомимось з автоматизацією, або ж переходимо з однієї мови програмування в іншу - постає багато питань.
- Яку бібліотеку для ассертів взяти в мові Х?
- Які є альтернативи бібліотеці репортів у мові У?
- Чи є BDD інструмент для мови …?
- Та інше …

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

Які списки використовую я сам:
- awesome-test-automation від atinfo. Є для багатьох мов програмування - у тому числі - Java, Python, JS.
- awesome-python-testing - лист інструментів для Python.
- java-testing-toolbox - набір прикладів з книги “30 Testing Tools & Libraries Every Java Developer Must Know”. (Знайшов цього тижня, але виглядає непогано для початківців).

Для інших технологій та мов програмування, можна пошукати списки awesome списки на GitHub.
👍314🔥2
Tools. Генерація даних в Java, питання по DevOps та Python завдає удару у відповідь

#tools

Цікаві інструменти та репозиторії для розробки та навчання новому

1. Бібліотеки генерації даних в Java: datafaker та instancio
2. Шикарна підбірка питань та відповідей для тих, хто вивчає DevOps
3. Pyscript - пишемо Python код прямо у HTML
👍131
Cheatsheet команд Linux

#linux #tools

Доброго ранку.
Знайшов для вас підбірку основних команд Linux. Можна проглянути та знайти ті, про які ви ще не чули.
А можна залишити в якості швидкого довідника.

Всім вдалого та продуктивного дня!
👍181
Нотатки з Git від Julie Evans

#tools #git

- git reset —hard HEAD~X - відкотитись на X коммітів назад
- git diff HEAD~Y - показати, що було змінено Y коммітів назад
- git rebase -i HEAD~X - "стиснути" X коммітів в один
- git commit —amend - додати зміни до останнього комміту
- git commit —amend-no-edit - додати зміни "без питань"

Коли закомітили не в ту гілку:

- git checkout correct_branch
- git cherry-pick COMMIT_ID
- git checkout wrong-branch
- git reset —head HEAD^

Коли закоммітили зайвий файл:

- git rm —cached FILENAME
- git commit —amend

Коли хочеться прибрати один комміт в минулому:

- знайдіть SHA комміту
- git revert SHA
- введіть нове ім'я та створіть комміт

Коли потрібна "машина часу":

- git reflog
- git reset —hard HEAD{2}
36👍8🔥3
Приховане перетворення даних в grpcui та k6

#testing #api #tools #python

Ситуація
Для одного з наших gRPC сервісів нам потрібно відправити hash у форматі HEX. Але коли я намагався відправити запит за допомогою grpcui або ж у скрипті навантаження k6 - сервер повертав помилку, що такий хеш не знайдений в нашій базі.

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

Рішення
Як виявилося - обидва інструменти очікують вхідні дані в base64. Потім вони декодують ці дані та надсилають результат на сервер.
В Python з base64 працювати дуже легко. То ж у нагоді стане наступний скрипт.

import base64


def from_b64_to_hex(input):
binary_data = base64.b64decode(input)
return binary_data.hex()


def from_hex_to_b64(input):
binary_data = bytes.fromhex(input)
return base64.b64encode(binary_data).decode()


base64_string = "LxTKPCw9jAv1U8Xm6lxjhtGlnoZzNPc6I="
hex_string = "2f14ca3c2c3d880653b15e6ea5c6386d1a59e867334f73a2"

assert hex_string == from_b64_to_hex(base64_string)
assert base64_string == from_hex_to_b64(hex_string)


І ще одне

Крім цього скрипта, можна скористатись також безкоштовним онлайн конвертером.
17👍4
Нотатки з Docker на кожен день

#testing #tools

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

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

// почистити кеш докера
docker kill $(docker ps -q)
docker rmi $(docker images -a --filter=dangling=true -q)
docker rm $(docker ps --filter=status=exited --filter=status=created -q)
docker rmi $(docker images -a -q)
docker volume rm $(docker volume ls)
docker system prune

// копіювати файл з локальної машини на контейнер
docker cp /path/to/local/file.txt my_container:/path/in/container/file.txt

// копіювати файл (або теку) з контейнеру на вашу локальну машину
docker cp my_container:/path/in/container/file.txt /path/to/local/file.txt

// запустити командну стрічку на контейнері
docker exec -it my_container bash

// подитивитись логи контейнеру
docker logs --follow container_name


Важливо.
Коли видаляєте контейнер, перевіряйте також, чи видалений відповідний volume. Бо ці штуки залишаються та займають зайве місце на диску. (В моєму випадку то були десятки та навіть сотні гігабайтів).

А які улюблені команди чи лайфхаки з Docker маєте ви?
23👍12🔥5
Про знання своїх інструментів

#interview #testing #tools

Багато хто зараз шукає роботу та проходить інтерв'ю. Задачки на LeetCode це звичайно круто, але не забувайте також про інструменти.
Бо кожен інструмент, який ви вказуєте в своєму CV - це привід задати Вам питання.

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

Крім того, треба завжди мати відповіді на питання:
- "а чому саме цей інструмент?"
- "які є альтернативи?"
- "чому альтернативи нам не підійшли?"

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

То ж ще раз - вивчайте свої інструменти. Знайте їх сильні та слабкі сторони.

Вдалого усім тестування!
👍234🔥4
Обережно з Napkin AI (й не тільки)

#tools #learning

Не так давно я поділився цікавим ресурсом для створення діаграм з тексту - Napkin AI. Цей сервіс дійсно корисний.

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

💡Для того, щоб глибше розібратись в концепції чи питанні, краще малювати ці діаграми (чи mind map) самостійно.

Чому?

Тому що НАВЧАННЯ відбувається саме тоді, коли ви самі ВІЗУАЛІЗУЄТЕ складні речі та ШУКАЄТЕ звʼязки між тим, що вже знаєте та новим матеріалом.

Додаткові сервіси, типу Napkin (або інших LLM) можуть “вкрасти” момент розуміння. Вам буде лише ЗДАВАТИСЬ, що ви зрозуміли. А коли потрібно буде переказати інформацію комусь іншому - ви знову будете повертатись до ваших нотаток, чи блогу (книжки).
👍24😁21
AI tools and how they kill learning

#ai #tools #learning

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

А як ви думаєте - чи легше стало дійсно навчитись новому з ШІ - чи складніше?
👍31