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

Консультації з автоматизації, менторинг, проведення співбесід - @al8xr
Download Telegram
А тим часом нас вже більше 3000 людей в цьому каналі! Дякую, що підписуєтесь та читаєте! Про що б ще цікаво було б почути на каналі?
🎉3914❤‍🔥4👍1
Про навчання 1: Пам'ять комп'ютера vs пам'ять людини

#learning #tips

Минулого тижня відбулася конференція "QA - Magic Meetup 5.0". Одна з доповідей була від Аміни Олійник - про те, як краще вчитися.

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

Пам'ять комп'ютера

Як працює пам'ять в комп'ютері? Ми записали якусь інформацію (послідовність бітів). А потім, коли вона знадобилася - знайшли та зчитали її.

Пару важливих моментів про дані на комп'ютері:
- Читання інформації - не змінює її.
- Нема різниці скільки пройшло часу між записом та зчитуванням.

Пам'ять людини

Людьска пам'ять працює в режимі "read-and-update". Коли ми дістаємо шось з нашої пам'яті - ми покращуємо знання, але можемо їх також змінити. Це називається - реконсолідацією. Тож чим більше ми згадуємо інформацію - тим краще ми її пам'ятаємо.

Інший цікавий концепт - це spreading activation.

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

Spreading activation погано впливає саме на пам'ять, але позитивно - на вміння вирішувати задачі.

Через spreading activation інформація, яку ми згадуємо, може змішуватись з іншими ланцюжками - та ставати неточною або хибною.

Але з іншого боку - саме таке змішування і є джерелом креативності та натхнення. Тому ми можемо прийти до рішення через декілька годин після роботи - під час зовсім іншої активності.
31👍9🔥3
"Software Testing Strategies: A testing guide for the 2020s"

#books #review

Написав невеличке рев'ю на книжку про тестові стратегії. Книга не стільки про саме стратегії. А про тестування взагалі: як краще тестувати, як обрати фічі для тестування. Та найголовніше - як говорити про тестування з різними людьми в компанії.

Книжка свіжа та варта Вашої уваги.
27👍9❤‍🔥1
Про навчання 2: Види пам’яті та навчання

#learning #tips

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

Два види пам'яті

Пам’ять людини можна поділити на дві: довгострокова та робоча.
Довгострокова пам’ять - це та, в якій інформація зберігається постійно. Її об’єм умовно нескінченний. (Наче HDD чи SSD).
Робоча пам’ять - це та, яку ми використовуємо для того, щоб розв’язувати нагальні питання. Вона невелика за розміром (по аналогії з CPU регістрами).

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

Шматки інформації та когнітивне навантаження

Люди навчаються подрібнюючі інформацію на невеликі шматочки. Розбиття на частинки допомагає накопичувати їх в пам’яті та розглядати як єдине ціле.

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

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

Зовнішнє навантаження - це вся та додаткова контекстна інформація, що потрібна для вирішення питання, але не є частиною самої задачі.

Формат подачі інформації дуже впливає на когнітивне зовнішнє навантаження. Наприклад - ви можете отримати опис задачі чи схему у вигляді тексту. А можете - у формі схеми чи малюнку з позначеннями. (Приклад - у першому коменті) Краще - коли ці форми - поєднуються.

Як це все пов’язано?

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

Як? Просто розбийте велику задачу на маленькі частини та працюйте з ними одна з одною. Цей підхід працює коли ви навчаєтесь самі та коли ви є ментором та навчаєте інших.
24👍5🔥3
Forwarded from DOU | QA
Shift-right тестування, стратегія автоматизації на проєкті, каталогування платівок за допомогою computer vision, як Meta працює з Precision Time Protocol та інші новини зі світу тестування зібрав Олександр Романов у цьому дайджесті 👉 https://dou.ua/goto/TNx4

PRO Stage для PRO квитків: Слухайте СЕО MacPaw, Genesis, Intellias та інших на DOU Day 18 травня в Києві!
14👍3
Про навчання - 3: Семантичні хвилі

#learning #tips

Коли ви вчите новий концепт, то вам треба обидві форми пояснення - як абстрактна, так і конкретна. Більш того, вчити стає трохи легше, якщо ви дотримуєтесь "семантичної хвилі", яку придумав Карл Матон.

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

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

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

#learning #tips

З появою Інтернету навчання змінилося. Здається -

"нащо знати той API чи читати книжки від початку до кінця, коли є Google Search, Stack Overflow, ChatGPT з отими копайлотами? Адже уся інформація доступна на відстані декількох кліків"


То що - не вчитись тепер взагалі? Давайте подивимось, що говорять про це вчені.

Чому треба запам'ятовувати?

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

Саме тому, кожного разу коли Вам буде потрібно зробити SQL запит із JOIN'нами - вам треба буде згадувати - що ж таке JOIN взагалі.

Як вчаться експерти?

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

Чому надмірно гуглити - це погано?

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

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

То що робити?

Це все не означає, що гуглити не треба та можна ігнорувати технології.
Просто треба також й самостійно вчитись, опрацьовувати інформацію, робити нотатки.
Щоб не залишитись в ситуації :
"мені відключили копайлот/chatgpt - я тепер не можу працювати"
👍264🔥2
Про навчання 5: Як зрозуміти, що вчити?

#learning #tips

Про те, що треба вчитись - говорять усі. Наче й ресурсів вдосталь: книжки, курси, вебінари, ментори. Але як зрозуміти, що треба вчити?

Універсальної відповіді немає. Бо в кожного свій контекст.

Але можна застосувати таку методику:

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

P.S. Краще поглибитись в тему, здобути перші знання та закріпити їх на практиці. Ніж читати тисячі сторінок книжок теорії

P.P.S. Я трекаю навички у вигляді mind map та переглядаю їх раз у квартал чи півроку.
👍2811🔥5
Про навчання - 6: Експерти та новачки

#learning #tips

Різниця між експертом та новачком.

Чим відрізняються новачки від експертів? Дослідження показують, що експерти (наприклад в грі в шахи) вміють запам'ятовувати та розпізнавати стан дошки в конкретний момент часу. Це допомагає швидко приймати рішення.

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

Як же новачку стати експертом? Відповідь проста - читати, писати та розбиратись у різному коді. Як хорошому так і поганому.

Бути експертом - навчатись по-іншому

Існує така річ, як expertise-reversal effect. Він означає, що для новачкам та експертам потрібні радикально різні підходи до навчання.

- Новачкам буде корисним отримати туторіали та різні cheat листи з використання інструментів. Експерти самі здатні продумати подібні туторіали.
- Новачкам потрібні легкі завдання для закріплення вивченого - поки нова інформація наче пазл не стане на потрібне місце.
- Новачкам потрібні приклади та точне пояснення результату. Експертам більше підійдуть “відкриті” питання та обговорення.
- Експертам потрібне мінімальне пояснення та більша свобода дії.

Бути експертом - не означає бути хорошим вчителем.

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

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

Неявні знання

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

Щоб запобігти накопиченню таких знань - варто писати документацію. Наприклад - FAQ документи, гайди з конфігурації, корисні збірки команд на кожен день.
Для експерта користь буде в зменшенні кількості однакових питань - бо люди спочатку підуть й шукають відповідь на Конфлюенсі.
👍211
Forwarded from Нотатки суворого QA 💛💙 (Artem Grygorenko)
⚡️Олександр Романов: Тестування Blockchain

📝 Про що:
Яку криптовалюту треба купувати прямо зараз? Коли біткоїн знов впаде в ціні та можна буде купити дешевше? Як зрозуміти, що ця компанія - scam? В цій доповіді НЕ БУДЕ таких порад.
А що буде - так це покрокове пояснення про те, що таке блокчейн, як він працює, що в ньому можна тестувати, а що - можна й не тестувати. Світ блокчейну великий та подекуди складний. Але якщо ви знаєте, як він працює "під капотом" - вам буде значно легше тестувати такі системи чи просто взаємодіяти із ними.

🎙 Про Олександра:
В IT з 2011 року. Був автоматизатором, тестувальником, лідом SDET`ів. За цей час - встиг автоматизувати банківські застосунки, CMS системи, мікросервіси та мобільні ігри.

Наразі працює над тестуванням блокчейну в компанії IOHK як Software Engineer in Test. Досліджує питання тестування та захищеності складних розподілених систем.
— Співведдучий подкасту Testing Minutes https://www.youtube.com/@TestingMinutes
— Пише про тестування в каналі Test Engineering Notes https://news.1rj.ru/str/testengineering та блозі https://testengineeringnotes.com/
— Допомагає компаніям знаходити технічних тестувальників та будувати процеси автоматизації
— Менторить тест інженерів

Де знайти Олександра?
🔗 LinkedIn
👥X

📆 Вівторок, 16 Квітня о 19:00 за Києвом
🧑‍🏫 Формат заходу: лекція

Як доєднатись?
🇺🇦 Внесок: 300₴ (200₴ на ЗСУ)
🌟 Для учасників Суворої QA Спільноти захід безкоштовний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍154
Тестування блокчейну - що почитати?

#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
How SMS Fraud Works and How to Guard Against It

#security

Twitter, він же X, в лютому відключив аутентифікацію за допомогою SMS для усіх користувачів, крім преміальних.

- Нащо це було зроблено?
- Як це пов'язано зі злочинними схемами?
- Як захиститись від SMS fraud?

Про все це - сьогодні у невеличкій статті.
9👍1
Про читання професійної літератури

#reading

Як заставити себе читати?

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

Для того. щоб читати та дізнаватись нове - потрібна мотивація.

Мотивація може бути або внутрішня - "хочу дізнатись більше чи опанувати нові навички".
Або ж зовнішня - "якщо не опаную навички - звільнять, поріжуть ЗП, не отримаю підвишення".
Спробуйте дізнатись, що Вас мотивує саме зараз. Якщо нічого - не читайте. В житті є безліч не менш важливих справ.

Як читати великі за обсягом книжки?

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

- Нема нічого поганого, якщо Ви прочитаєте окремі розділи книжки. Розділи, які Вас найбільше цікавлять в конкретний момент часу. Завжди можна повернутись до книжки трохи пізніше. Або змінити одну книжку на іншу.
- Виділяйте кожного дня трохи часу (іноді з таймером) та читайте. Краще - з короткими нотатками. Ще краще - записуйте конкретні action points з кожного розділу: що Ви можете застосувати в роботі прямо зараз. Та пробуйте застосувати одразу. Поки знання ще "свіжі".
- Немає нічого гіршого, коли спеціаліст читає книжку "бо так сказали люди" або "бо її всі читають, вона в усіх підбірках".
Можливо ця книжка Вам не підійде. Не засмучуйтесь. Завжди можна знайти іншу книжку іншого автора.
👍40🔥11
Github Copilot - з чого почати?

#ai #engineering

Минулого тижня я нарешті встановив собі Github Copilot та почав ним користуватись для робочих задач.

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

- How to use GitHub Copilot: Prompts, tips, and use cases
- Using GitHub Copilot in your IDE: Tips, tricks, and best practices
- Using GitHub Copilot Effectively

Трохи згодом розповім про свій особистий досвід користування.
🔥178
Python Big O: the time complexities of different data structures in Python

#python #algo

Для тих, кому було цікаво розібратись яка складність (за часом виконання) в структурах даних Python.
👍14
Forwarded from DOU | QA
Test Engineering Notes — Vol. 13. Про роботу з flaky-тестами, баги в IoT-операційках та Postgres

Чи може ШІ замінити тестувальника, пошук багів в Hubris, чому X вимкнув двоетапну аутентифікацію через SMS, Git для дебагінгу та інші цікаві теми зі світу QA — в новому дайджесті від Олександра Романова 👉 https://dou.ua/goto/sJ4B
👍91
Technology Trends for 2024

#engineering

Всім привіт. Я нарешті повернувся після невеличкої паузи.
Сьогодні я б хотів обговорити цікаву статтю про тренди в технологіях 2023 року порівняно із 2022 від O`Reilly.

Коротко:
- 92% розробників використовує ШІ для написання базового коду
- усі втомились від мікросевісів та починають нові проєкти як моноліти
- кількість PR'ів у Github репозиторії - знизилася (бо стало менше вільного часу після ковіду)
- Python не втратив у популярності, Rust - набрав
- LangChain фреймворк набирав популярності разом із ChatGPT та подібними
- Більше людей почали користуватись PowerBI
- Теми безпеки мереж - найбільш актуальні
- у web девелопменті все ще править React
- найпопулярніші сертифікації CompTIA A+ / Security + та AWS Solution Architect
👍28❤‍🔥1
Корисне з GitHub - 5

#github #selection

Доброго ранку! Олександр на зв'язку.
Приніс для вас чергову порцію цікавих репозиторіїв, які можна подивитись та почитати. (Для тих, кому нічого вчити 😉).

- Якщо ви цікаветесь тим, як працюють відомі системи "під капотом" - то можна почитати system-design-primer або system-design-101.
- Якщо ви прагнете стати хорошим сіньйором чи навіть лідом, то можна подивитись на колекції порад path-to-senior-engineer-handbook та resources-to-become-a-great-engineering-leader.
- Якщо ви хочете трохи поринути в світ LLM систем типу ChatGPT - можна почати з llm-course та hands-on-llms. Далі можна копати в AI загалом на ai-notes.
- Чи може ви готуєтесь до співбесід? Тоді вам знадобляться підбірки interviews та coding-interview-university.
- Для тих, хто працює з блокчейном - awesome-blockchain та awesome-blockchain-testing.
21👍5🔥3❤‍🔥1
Про знання своїх інструментів

#interview #testing #tools

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

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

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

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

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

Вдалого усім тестування!
👍234🔥4
3 Critical Skills You Need to Grow Beyond Senior Levels in Engineering

#career

Чи вистачить лише технічних знань, для того, щоб стати рости до сіньйора й вище?
Скоріш за все - ні.

Пропоную сьогодні почитати - які додаткові скіли ще треба прокачувати.

TL;DR
- вміння масштабувати себе
- вміння працювати з невизначеністю
- вміння впливати без авторитету

Читати все таки треба, бо в статті даються поради як це все розвивати.
👍28🔥4