AutotestЯк
785 subscribers
8 photos
1 video
42 links
Новини, тексти, ідеї, навчальні матеріали на тему “Як писати автотести”, – на Python, Java, C#, JavaScript/TypeScript;)
Cайт: https://autotest.how/uk
Download Telegram
На стрімі промайнуло – як набиратись досвіду щоб знайти першу роботу, але здається там я не резюмував мій основний лайф хак: «шукати цікаві оупенсорс проекти чи альфа/бета-версій цікавих апок і гайда тестить, заводить баги». Можна самотужки, навіть в незалежностів від команди таких апок - пройти весь цикл, від декомпозиції функціоналу і побудови функціональної карти + чеклістів, написанню простого власного тест плану (що я буду тестить (скоуп)? як (принципи)? чим (інструменти)? коли?), і аж до автоматизації відповідних сценаріїв, власного прослідковування покриття, заведенню багів і спілкуванню з командою, перепровіркою фіксів, регресії на релізах... І ось вчора список таких апок для першого досвіду поповнився https://github.com/diia-open-source 😉
🔥9
Який потрібен софт, щоб допомогти громаді самоорганізуватися та почати вирішувати свої проблеми?

Один з проектів, які можна обрати на Міському таборі для підлітків від школи Майбутні на весняних канікулах — це розробка таск-менеджера для громад.

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

Як громада може визначити свої проблеми і потреби? Хто в громаді може взятися за пошук рішення? До вирішення яких задач треба залучати державу, а з якими проблемами можна впоратися своїми силами? Який сервіс і софт потрібні, щоб громада самоорганізувалася? А що потрібно окрім софту? — це питання, над якими працюватимемо.

Проєкт будемо створювати за ментороством політологів, правників та власне мене, Яші Крамаренко 😇

🗓️ Міський табір триватиме на весняних канікулах з 25-29 березня в приміщенні школи на Подолі.
Опис інших проєктів і реєстрація на табір на сайті🕹️
❤6🔥5
Ми автоматизуємо тести не для тестувальників ✋🏻, а для розробників 🦾. Ціль не у тому щоб допомогти з мануальною рутиною тестувальникам на стадії тестування, а у тому щоб помогти розробникам не пропустити дефекти, які вони «тільки що наробили» і от от хочуть уже перевести таску в done чи ready for test... ну а далі «класичний пінг-понг» між тестерами і девами 🏓... Тут можна довго придиратись до формулювань, адже з якого це дива взагалі ділити на «це тестування» а це «ще не тестування». Так і є... Але тут трюк в акценті. Якщо трошки змінити кут зору, то можна почати бачити оптимізації там, де раніше вони були не очевидні. Якщо ми починаємо більше думати про розробників, максимально «ближче до них» впроваджувати автоматизацію і інтегрувати її саме у «життя девів», то починає виявлятись що навіть меншою кількістю покриття ми досягаємо більшого в плані якості. Деви тупо починають «менше робити багів».

І в цю ж тему відповідно до розгляду куча практик від розподілу покриття по піраміді до банального включання навіть end-to-end тестів у репу самої апки. Ясно що виключення є скрізь, але, можливо... і враховуючи принцип YAGNI - це «енд ту енд тести окремо від коду проекту є виключенням ніж навпаки». Раз уже наш клієнт - це деви, то чому б і тести не «тримати поближче до них»... Про от це «ближче до того де воно використовується» – ось ця гарна стаття https://kentcdodds.com/blog/colocation 😉 Цікавий термін co-location... Вперше почув) Зазвичай це cohesion-ом обзиваю, та й оригінально з появою React-у саме цей термін і використовули як селлінг поїнт його підходу «вью та логіка вью разом», але щось є у ко-локації - якось більш прямо говорить про що воно 😎
Please open Telegram to view this post
VIEW IN TELEGRAM
❤13
AutotestЯк
Го тестити virtuoso.qa на стрім https://youtube.com/live/UqiuIw9AsL0 !!!
Нарешті розтаймкодили стрім про Virtuoso, найцікавіше ось:

19:58 чи вміє virtuoso автоматично записати тест
32:31 virtuoso vs python у pycharm
37:00 користь від AI у Virtuoso
37:18 чи не краще copilot?
47:34 нема assert-ів? писати extensions на js о_О?
58:51 очікування vs реальність
1:05:48 Як підтримує API і чи воно треба? (Про те як правильно покривати API тестами)
1:09:20 як функіонал є базовим для таких фреймворків і чи є він тут?
1:11:24 про тестування CRM систем і чому virtuoso тут теж програє
1:12:19 модель конструктора як альтернатива
1:14:18 альтернатива з cucumber
1:19:33 великі проблеми класних фіч virtuoso
1:19:46 про AI testing в codeceptJS
1:20:59 про дебагінг в playwright
1:21:28 сумнівна перевага використання людськоподібної мови
1:23:17 codeceptJS - недоліки дизайну для рефакторингу
1:40:43 скільки часу потрібно, щоб вивчитись і лідувати проект з нуля?
1:43:58 кейс однієї студентки
1:45:20 про важливу навичку в навчанні і як її качати
1:53:47 градація рівнів спеціаліста від джуна до ліда
1:55:47 чи можна і варто всіх залучати до автоматизації?
2:02:03 чому Яша не активний у соц мережах
2:03:39 чим Яша займається?
2:13:50 про мрію в автоматизації
❤13🔥8👍1
Тільки помітив cyborg тести @xotabu4-a 😇. Ще не закопувався, але вже пахне тим напрямком про який я фантазував весь свій час у тестуванні. Попросив свою команду швиденько глянути, і чекнути що там і як, враховуючи те що ми наразі на прикладі тестомата студентам своїм синхронізацію автотестів з ТМС показуємо. Нижче репорт по кіборг-тестам з легким порівнянням на тестомат від Олени Долженко. А свої коментарі/короткі-враження залишу в коментарі до посту.

===============
"ТMS не потрібні" — ніби поки занадто гучно сказано, як можна зробити висновок з цієї презентації...

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

- UI для зручного менеджменту тестів, клікаючи по кнопках — фільтрувати, сортувати, присвоювати теги, прив’язувати Jira-тікети, і потім ці теги прилетять і в код автотестів при синхронізації.

- створювати тест-плани за тегами, фільтрами і запускати їх з UI на віддаленому CI-сервері.

- Тестомат підтримує багато мов і тестових фреймворків, а ця нова ліба поки тільки JS+Playwright.

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

Щодо мануальних тестів — "кіборг"-варіант особисто мені на підставі власного досвіду з менеджменту мануальних тестів сподобався тим, що:

- всі тести — і мануальні, і автоматизовані — зможуть жити в одному проєкті під гітом. Писати, редагувати, рефакторити мануальні можна в улюбленій IDE з усіма її зручностями і фішками. Можна виносити мануальні степи в змінні, методи, робити з ними PO, щоб зручно перевикористовувати тощо.

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

Що варто було б прояснити на практиці згодом, коли буде вже реліз:

- для комплексного репортингу (і мануальні, і автоматизовані — в одному репорті) використовується окремий сервер — його треба піднімати та обслуговувати самостійно. І, мабуть, знадобляться значні ресурси, адже записується відео кожного рану, стан браузера на кожному степі, логи консолі...

- ніби ліба буде опенсорсною, тільки AI (за бажанням) платно, поки без подробиць. На сайті лише форма запису у вейт-лист.

Окремо зауважено в подкасті - не "злетить" з мобільними тестами, не буде повного крос-браузер, крос-ОС, обмежена версіями браузерів самого Playwright.

UPDATE від @xotabu4: «Доречі, після підкасту вже поінвестигейтив - з мобільними тестами взлетить, просто не буде такого класного репортингу»
🫶🏻
❤15🔥1
Forwarded from Hot testing Channel (roman marinsky)
#діскорд 18:00 сьогодні буде остаточний розйоб Playwright MCP сервера
Та порівняємо Windsurf/Cursor з JetBrains IDEs + Julia
https://discord.gg/JeeAakd5?event=1364312617640001657
❤5
Треба допомога:) Ми з командою час від часу проводимо співбесіди для наших клієнтів, і я люблю понадавати якихось реальних задачок на співбесіді, наприклад, провести повноцінне код рев'ю якогось фреймворку з тестами на Web UI. І от у мене є такі приклади проектів на веб, але немає на апі :). Треба такий проект щоб якби не все там було "ідеально", щоб було що порев'ювити. Може хтось може поділитись своїм, чи "друга" проектом на гітхабі з апі-тестами? Той проект який мені найбільше сподобається – тому ще й прийшлю відповідне код-рев'ю персонально від себе :)
❤7😁1
Пів року тому я закінчив інтерв'ювити серію кандидатів на топову сеньйорно-лідуючу позицію. Проінтерв'ювив біля 20 крутющих кандидатів. І один з них... Мене вмовив на те щоб викласти запис в паблік на його каналі, запис, який, зовсім не планувався до викладання, а був призначений для внутрішньої оцінки кандидата іншими членами команди. Може я ще встигну про це пожалкувати, хто зна:) А поки – рекомендую вам пошукати на ютубі відосик з назвою "Приклад крутої співбесіди на позицію Senior AQA" 😇, ще й краще шукати саме по тексту "співбесіда на позицію Senior AQA". Заодно подізнаєтесь кучку моїх секретиків в плані проведення інтерв'ю. Значна частина інтерв'ю це реальне код-рев'ю демо проекту на playwright, де, певен, щось цікаве та й знайдете, та ще й можете самі себе протестувати, ставити на паузу, аналізувати код, і потім звірятись з тим що озвучує кандидат, і що озвучу в кінці я у своєму власному відгуку на код.

P.S. прям, не полініться, пошукайте самостійно без прямих посилань щоб допомогти автору підняти відео в рекомендаціях
🔥26👍10❤2😁1
«Покеляйте ваші CLAUDE.md!» – кричить радісно Тео після виходу нещодавнього Evaluating AGENTS.md: Are Repository-Level Context Files Helpful for Coding Agents?...

Радісно бо "а я давно казав", але ж і доволі клікбейтно, бо насправді там уся історія про "умійте їх готувати" 😇.

У будь якому випадку прокричав супер корисно, бо власне і поділився своїми інсайтами, а я вже тут ділюсь своїм їх конспектом ↙️.

🦉 Ключовий підхід: не генеруйте claude.md зі старту і не напихуйте туди купу ваших побажань, починайте без нього. Ідея — дописувати туди щось тільки тоді, коли агент почав тупити й не вийшло за допомогою архітектури самого фреймворку/коду зробити так, щоб він не тупив.

По суті Тео (не знаю чи свідомо) референсить супер мною коханий ґайдлайн, що формулював ще Скот Мейерс: «Make interfaces easy to use correctly and hard to use incorrectly».

💰 Рецепт: можна залишити в claude.md тільки інструкцію, щоб агент дописував у цей файл якісь пропозиції у всіх випадках, коли в нього стаються затупи при роботі з кодом, і тоді, типу, рев'ювити кожну таку пропозицію. ☝️ Конкретно у Тео (якщо я правильно його зрозумів) статистика така, що 1 із 5 таких пропозицій він залишає в claude.md, а в 4 із 5 просто бачить, що це треба на рівні коду змінити архітектуру.

Пару трюків:

- 💰 розуміючи, що агент схильний "забагато всього враховувати", можна час від часу брехати йому, щоб він не відволікався, типу: "ми ще не в проді, не думай про кінцевих юзерів, просто зарев'юй схему БД і запропонуй, що змінити, щоб досягти того-то..."
- 💰 якщо є кроки 1, 2, 3, і агент тупить над кроком 2, просіть його одразу зробити крок 3 — тоді він у більшості випадків вибереться з порочного кола.

А що по самому гучному дослідженню? – Хех, ну... доволі примітивне, але зате дало привід гарному обговоренню на Хакер Ньюз з якого можна понатягти ще кучу інсайтів. В коментах залишу самері яке мені нагенерив Клод. Можете поділитись вашими персональними інсайтами яких там нема, а я побіг видалятичистити свій CLAUDE.md 😇
🔥7👀6❤1🤡1
Йо, сходіть хтось на парті хард в Києві 18го, розкажіть що там цікавого, бо у мене ніяк не вийде...

18.04.26 Кийов - Party Hard #11
Найкулураніша конференція для QA та всіх інших айтівців!
Локація настільки класна, що аш дуууже треба багато людей!
Деталі тут: https://partyhard.com.ua/
❤3😁1
Народ, збираю мітап-тусу в Києві 23 серпня — про лайфхаки, інсайти та рецепти агентної оркестрації. (UPDATE: 22 серпня відмінили, тепер за планом лиш ОДИН день)

Формат — unconference / open space: максимально пряме спілкування, програма народжується прямо по ходу. На старті слоту збираємо питання з аудиторії — і гайда їх розгрібати, стрімлячи практичну складову в реальному часі й організовуючи воркшопи на ходу. Фокус на офлайні; для тих, хто не в Києві, буде стрім для учасників. Один день з перервами на перекуси/обіди — їжа прямо на місці, входить у вартість.

Що привезу. Останні пів року я будую "агентну систему оркестрації". Чесно — цілі високі і красиві, реальність скромніша :) але сетап уже живий і робочий:

— оркеструю всю свою роботу (3–5 паралельних треків-проектів) у межах трьох підписок Max 20x на Claude Code + ChatGPT Pro 5x (Codex) + SuperGrok;
— моделі ганяються як на нативних харнесах, так і на "чужих", і навіть на "чистих" без системного промпту: GPT-5.6 Sol їздить як codex, claudex (Sol на харнесі Claude Code) і pi-sol (чиста Sol); те ж саме з Grok — grok build, claugrok, pi-grok. Останній — темна конячка: найстрогіша модель з усіх, незамінна там, де треба над-задротське рев'ю алгоритмів і правил через призму абсолютної коректності;
— вся диспетчеризація по цих моделях/агентах іде автоматично з головної сесії — за типом роботи та обставинами;
— сесії самі стежать за своїм бюджетом контексту, самі зберігають стан у потрібні моменти, самі флагають місця, де обов'язкове око людини, самі визначають, яке рев'ю і від кого потрібне, і самі входять в "економічний режим", коли тижневі вікна добігають кінця;
— пакет неочевидних інсайтів (з тестів) про форми правил для різних моделей. Наприклад, Opus 5 провалює partial antecedent у прозі: правило каже "перед пушом у main зроби X" — Опус бачить у транскрипті "pushed" і вважає X зробленим, не перевіривши, куди саме був пуш. Псевдокод у процедурній частині правил це лікує — а без нього оркеструвати на Opus 5 доволі ризиковано;
— пайплайн генерації документації на проект — з улюбленою деталлю: записали живу зустріч-срач з розробниками, збудували з того запису персони цих девів — і далі тестували дизайн документації, ганяючи його проти цих персон :)
— і ще є персона живого крутого дева, яка пише мені CRM :) — збудована з півсотні його опублікованих принципів. Наступний етап — уже в процесі — персони самого себе :)

Окремо для QA-люду: чимала частина цієї кухні — це, по суті, мій QA та SDET досвід, застосований до роботи агентів. Багатомодельне адверсарійне рев'ю, увага до строгості моделей у ролі рев'юера, фундаментальні принципи розробки та автоматизації, застосовані до процедурних артефактів оркестрації — правил, протоколів, чеклістів для агентів. Хех, це я так виправдовую свій QA досвід, намагаючись побудувати місток до QA спільноти 🤡 — насправді ж, у себе в голові я добряче знецінюю мою власну QA-ну експертність. Але я схильний перегинати, тому — подискутуємо наживо 🙂.

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

По оплаті — формат "відповідальний соціалізм" (що це таке — нижче 👇): заявлена ціна 700 грн/год (годин буде 7 — з 11 до 18). Чесно: через експромтний формат я й сам не певен, що подія витягне заявлену ціну :) — це радше умовний ідеал: вийде класно — саме таку ціну я вважаю чесною і справедливою; будуть косяки — відповідальний соціалізм усе вирівняє. ☝️ Бо платити можна стільки, скільки можеться і відчувається по отриманій цінності (тільки годину звучало щось цінне? - 700 грн і баста), і коли зручно — наперед, у день, або "потім колись" (нагадуватимемо м'яко). Сподіваюсь, хоч на їжу та оплату простору назбираємо 😇 Будуть ще спікери — домовимось і поділимось "заробленим".

Спікерство, до речі, відкрите: не обов'язково підписуватись наперед — можна відстендапити прям у моменті, якщо випаде нагода.

Відгукується? Пишіть у коменти: бажаний формат (онлайн/офлайн) і що саме хотіли б отримати (чи чим поділитись) — теми та питання збираю вже зараз. /➡️ UPDATE від 21 серпня ➡️/ — гайда реєструватись https://stigmergic-unconf.yashaka.wtf/. Оглядову історію зародження агентної системи що будую — розповів тут. Надалі більше про процес її еволюцї буде в окремому каналі @synoetic.
❤13🤡2👍1
Йо! Гриби, феромони, мурахи, міста — і до чого тут агентна оркестрація?

Завтра ввечері розкажу, як у лютому я прочитав одну статтю, мене накрило — і затягнуло в побудову агентної системи на основі стигмергічних принципів.

Чули про виступ «The OpenAI–Hugging Face Incident» на конференції з кібербезпеки Black Hat? Ото те, що там розповідають, я і намагаюсь заархітектурити останні пів року — так, щоб працювало як процес. Цікаво, що OpenAI нічого не намагались: у них це ставалось спонтанно — без жодних інструкцій від людей — з травня по липень, просто через те що вони можуть собі дозволити заспавнити мільярди агентних траєкторій — де потрібний ефект стається природним чином. Власне передбачення цього ще в лютому і штовхнуло мене на мої пригоди з 🍄🐜.

І якщо і вам цікаве щось подібне — гайда завтра на зустріч.

🗓 Середа, 19 серпня
🕖 Посилання скину тут же о 18:45; починаємо о 19:00.

Лінк на виступ від OpenAI та ще трохи цікавих посилань скину у коментарях.
🔥16👍7💩1
Хоп! Запис вчорашнього вебінару — https://youtu.be/6PKmiYrfbWQ

В описі — розділи по темах (можна стрибати одразу до мурах чи до інсайтів) і окрема фішка: «Коментарі від Міста» — мої ж агенти зробили фактчек мого виступу і виправили мене в кількох місцях 🙂

І нагадую: хто планує на мітап у ці вихідні (офлайн Київ / онлайн) — відмітьтесь у формі до сьогоднішнього обіду бажано, ми по ній замовляємо їжу: https://stigmergic-unconf.yashaka.wtf/
❤17🤡1
Апдейт по мітапу цих вихідних: робимо ОДИН день — у неділю, 23 серпня. Суботу скасовуємо.

Причина: офлайн на суботу зібралась одна людина, на неділю — кілька 😇. Тож зводимо все в один камерний день.

Отже, план:
🗓 Неділя 23.08, 11:00–18:00 (з перервою на обід), офлайн у Києві або онлайн (Zoom-стрім)
📝 Реєстрація та ж, форма вже оновлена: https://stigmergic-unconf.yashaka.wtf/
👥 Хто вже зареєструвався на суботу або на обидва дні — ми напишемо персонально, нікого не загубимо.

Формат — unconference / open space: не лекція, а спільна тусовка. Програму будуватимемо від питань учасників, у напрямку, який я задав на вебінарі в середу, буде також виступ мого колеги про QA-пайплайн на агентах, і ваші теми — хто захоче щось розказати чи показати, вперед. Можна принести компи і разом щось поналаштовувати.

До зустрічі 🍄🐜
👍8❤1🤡1
А покидайте но питань по агентній оркестрації, AI в QA, і в принципі в сучасній розробці — відповіді на які вам було б цікаво почути від мене. Прям в коментах під цим постом. Завтра на події думаю буде вдосталь часу, і якийсь слот ми зможемо присвятити чисто відповідям на питання 😇
🎉1🤡1
T3 Code — краса і мед на моє серце! Мати можливість швидко виділяти по відповіді агента цитати і одразу їх коментувати — це прям UX-🔥
❤8👍1🔥1🤡1💯1
Запис Stigmergic Unconf — готовий 🍄

23 серпня замість мітапу вийшла жива розмова чотирьох практиків з QA й розробки: понад чотири години про агентну оркестрацію — з покроковим розбором реального агентного QA-пайплайну, від PM-агента до SDET-агента, що пише автотести.

Про що:
0:00 — економіка рев'ю: чи потрібне ще людське рев'ю і скільки коштує AI-рев'ю
39:31 — як ми прийшли до агентів: Copilot, Cursor, Claude Code, Codex, T3 Code
1:19:24 — живий агентний QA-пайплайн: PM-, QA-, UI- і SDET-агенти; скіл vs сабагент vs файл з інструкцією
3:11:05 — документація: living spec, story vs spec vs AC
4:01:48 — що далі: ціни, локальні моделі, люди як аватари агентів

Внесок — у форматі відповідального соціалізму. Що це означає — на сторінці 👇

👉 https://autotest.how/unconf
🔥10👍4🤡1
Media is too big
VIEW IN TELEGRAM
На мітапі ми дискутували про відмову від human review — з відео може здатись що я проти. Але я якраз вважаю, що відмовлятись варто все більше. Принаймні у більшості як робочих інженерних, так і продуктових рішень, навіть коли нам здається, що не варто 🙃, бо ми, схоже, не встигаємо осягнути ту швидкість, з якою агенти еволюціонують, і тому варто свідомо щоразу «іти у делегуванні агентам все далі».

Окрема справа — рев'ю найризикованіших рішень на рівні продукту чи розвитку компанії в цілому. Там у якісь моменти людина потрібна і при цьому не зовсім по «раціональній причині». І саме про це моє «треба хоч трошки довіритись». Можливо, я сформулював на відео трошки не зовсім зрозуміло... — спробую розширити пояснення текстом.

Тут насправді декілька шарів...

Перший — коли точно не знає ніхто. Ні машина, ні людина. Ну от погода через більш ніж тиждень. Може колись AI-шка і навчиться її передбачати, але наразі нема програм, які передбачать точно. Припустимо, програма видала декілька варіантів, а нам треба поставити бабло, закрити якийсь діл, і все залежить від того, чи допливуть кораблі вчасно. А ще якщо там все залежить від геополітики, і так далі — взагалі страх. Ми розуміємо, що стріляємо пальцем в небо, і, як люди — хочемо принаймні заспокоїти себе «довірою» до думки живого експерта. Навіть коли він сам каже: це моя інтуїція, на 100% я не знаю.

Чому так? Можливо, помилку людини ми просто приймаємо легше, ніж помилку машини. Бо коли помилилась машина — ну ідіть-колотіть, це ж машина, як я міг їй довіритись? — я ж знав, що це машина, і знав, що вони у цій ніші недосконалі... А що, якби людина своєю інтуїцією таки допомогла?

Другий шар — коли машина таки знає. Ми вже бачимо, як штучний інтелект починає переганяти людей у багатьох сферах. Але сама «ШІ-машина» настільки складна, що ми не можемо осягнути, як вона насправді думає. І навіть коли статистика, наука, реальні досліди будуть показувати, що машини помиляються менше за людей, людина все одно потребуватиме, щоб рішення таких сильних машин валідувала людина ж. Бо завжди буде оцей страх перед машинами, які стали неймовірно сильними, неймовірно розумними і на нас цією «силою» не схожими. Тобто людині потрібен буде шлях також і через довіру, а не через «чисту математику» і обчислювальні потужності.

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

Доступ до повного запису з мітапу — у попередньому пості.
👍2❤1🔥1