Я все життя мріяв написати її клон/аналог, але не склалося.
А чому не склалося? Життя закінчилось? :)
Ще не пізно! Я почав в 40 писати гру для ZX Spectrum, яку закинув ще у 7 класі.
;)
Радий, що цей pun хоч хтось побачив. Усю статтю писав заради нього. :)
У цьому каламбурі і є візія Testinel — зібрати якомога більше діагностичної інформації, щоб помилки було простіше виправляти. :)
Eat your own dog’s food — в нас усі тести на Python, тому і інструмент впроваджував для Python.
Поспілкувавшись з десятками автоматизаторів в моєму нетворку в LinkedIn я зрозумів, що більше використовується Playwright + TypeScript/JavaScript (хоча були поодинокі згадування C#, Java).
Я почав писати репортер для Playwright + TypeScript, але модель звітів в pytest достатньо відрізняється від моделі звітів в Playwright, щоб вважати обʼєднання цих моделей суровим рефакторингом. Я не хотів перетворювати усе це на «кружок програмування», тобто постійно щось розробляти та інтегрувати, та вирішив ось доробити інтеграцію Python, pytest, Selenium, Playwright, щоб вона стабільно працювала хоча б для моєї команди, робити умовний «реліз» (що і роблю за допомоги цієї статті, дякуючи редакції ДОУ).
Тому Playwright + TypeScript/JavaScript в шортлісті на першому місці.
Олександре, а яку інтеграцію ви хотіли би бачити?
PS Взагалі pytest крутий із коробки, а наявність сотень плагінів до нього робить його неймовірно крутим. ;) Наприклад, я пишу тести щоб тестові дані були окремо від тестів, так якийсь хлопець з Німеччини зробив такий плагін, щоб тестові дані потрапляли в тест з CSV-таблиці: https://first.institute/blog/vidokremyty-dani-vid-kodu-testuvannya-z-csv-pytest/
В нас також є тестрейл. Чому я вирішив це робити без нього:
1. У Тестрейла спеціалізація на менеджменті тест-кейсів. В Testinel фокус на падіння в автоматичному тесті, та пошуку причин падіння.
2. Тестрейл курва дорогий! $38 per seat / month, що на команду з 5 інженерів дає 190$/місяць просто за базу даних тестів — я вважаю, що це дуже дорого. Так, я на розробку Testinel витратив багато часу, але з точки зору споживача тарифікація йде пропорційно споживанню — кількості тестів, які обробляються системою: спробувати можна безкоштовно, до 10000 тестів — 29$/місяць, до 50000 тестів — $89/місяць. На платних планах користувачі та проєкти майже необмежені, тому що додаткові користувачі вони не споживають ресурсів. Ціни та ліміти в планах зараз умовні, бо це ще гіпотеза, що саме так воно повинно бути.
3. В Тестрейлі я не побачив нормального інтерфейсу для аналізу помилок: щоб була присутня діагностична інформація. Тобто просто текст трейсбека я можу подивитись і в pytest-html-report.
4. Ну і not invented here — хотів власними руками зробити інструмент від початку і до кінця. :) Не буду брехати, що мені не було просто цікаво це робити.
Так, це можна зробити фікстурою. Але в Testinel воно трішки складніше, зроблено на хуках. Воно ловить виключення не лише у call фазі, а також у setup та teardown. Окрім цього, робиться інструментація (патч Selenium), створюється окремий потік для завантаження артефактів: скріншотів, трейсів, щоб не блокувати виконання тестів.
Якщо в вас воно працює на однієї фікстурі, то я б залюбки запитав у вас демо реалізації. Дякую.
Btw, агент з відкритим кодом (а яким ще може бути пакет у Пайтоні?), можна подивитись, що він робить: github.com/Testinel/pytest-testinel
Так, що тут такого?
Є таке. :) Але у нього є недолік: Not Invented Here. :)
джиры
Солофаундери не користуються джирою. Вони взагалі не користуються трекерами.
Розробка продукту з т. з. інженера — ідеальна архітектура, ідеальній код, немає помилок.
Розробка продукту з т. з. солофаундера — знайти попит та підтвердити його платними підписками.
Для ЛЛМ слово долонь та слово длоноь це два однакових слова, тобто річ у незбереженні порядку атомів.
Not true. В цих двух слів різні вектори. Це легко перевіряється через gpt5-токенайзер:
долонь: [489, 1031, 130135]
длоноь: [489, 12553, 1332, 615]
Як ми бачимо, це два різних вектори. Математично в векторі порядок важливий, на відміну від множини.
А як допоможе мені відкриття РАХУНКУ, якщо я на нього не зможу перерахувати гроші з України?
Олександро, маю термінове питання до вас в особистих повідомленнях. Зверніть, будь ласка, увагу.
Так, але відкрити карту в іноземному банку варіантів дуже мало. Мабуть, Genome останній, хто відкривав.
Мабуть, відкрити вакансію CTO/Co-founder на DOU/Djinni (якщо мова про український ринок), рекламувати її у власних соцмережах, просити поради у знайомих та незнайомих людей.
Чому СТО — тому що просто «інженер» може не потягнути увесь спектр відповідальності — від продуктового мислення до архітектури, реалізації, деплою, тестування та обслуговування, найму та менеджменту інших іженерів. Тобто потрібна людина all-in-one, яка закриє питання інженерії та побудови інженерної команди.
знайти інвестиції іноді простіше, ніж знайти «свою» технічну людину
Поки не спробуєте — не дізнаєтесь. Та й маючи інвестиції це вже зробити набагато простіше, ніж без грошей.
Як варіант! Дякую!
юрисдикцію, де це можна здійснювати самостійно, тоді й проведемо розрахунок
Чи вже думали, як це зробити? Тому що в нормальних юрисдикціях наче не так вільно можна обмінюватись активами.
людей п’ятдесят років «тренували», що компьютерні програми детерміністичні
en.wikipedia.org/...ondeterministic_algorithm
> The term nondeterministic algorithm was used by Robert W. Floyd as early as 1967.
Тобто 60 років як світ знає, що існують недетерміновані алгоритми.
Не треба ототожнювати недетермінований алгоритм та (псевдо)випадковість.
генератор випадкових символів
Чого випадкових? У послідовності згенерованих символів моделями дуже низька ентропія. Взагалі у моделей погано з генерацію випадкових значень: arxiv.org/html/2601.05414v3
Розумію.
Але із контекста повідомлення терпіли:
The code that canceled every active Stripe subscription I had.
Мова про код, який згенерував агент, а не про дії, які зробив агент безпосередньо з API.
шкіряний мішок ін зе луп, тестування, «безпека»
Тут не згоден, що якщо у агента не буде повноваження BATCH DELETE SUBSCRIPTIONS, то як він це зробить?
Якщо агент буде робити чернетку запиту на видалення підписок, а людина буде апрувити (human in the loop), то як агент обійде цю процедуру не маючи повноважень на видалення?
То й же терпіла пише:
* Restricted keys, yeah. Should have done that day one. — тобто дав повні адмінськи права агенту.
* sandbox and human review from now on — не тестував в сендбоксі, не робив код-ревʼю, та не побудував human-in-the-loop процес.
* it ran while I slept though — не був присутній коли йшло тестування
* It didn’t have access to my stripe records. It just randomly wrote a cron job that removed all of the subscriptions. — не розуміє як працює безпека.
* sticking with Fable 5 for now — думає, що Fable виправить його прогалини в квалифікації.
* GPT 5.6 is way better than Opus 4.8. / GPT 5.6 takes the design crown from Fable 5 and GLM 5.2. — днями раніше він вихваляв 5.6. Куди вітер, туди й флюгер.
Колись було гарне визначення таких користувачів. ЛАМЕРИ.
Та наче не виробляється вже. Для мене бренд Pentium це щось з90-х, початку 2000-х. Потім вже пішли Core. Хоча я памʼятаю що цей перехід з цифрових серій (386, 486) на Pentium був крутий. Бо Pentium це круто, а 586 (AMD) якась фігня. ;)