Спасибо за комментарий! Насчёт фейкового опыта — точное замечание. Честно, не стал выносить это в статью, потому что, по факту, этим занимаются не только по наводке курсов. Многие ушлые студенты уже изначально идут на обучение с планом: "сделаю пару пет-проектов, накручу резюме, притворюсь сразу миддлом". Курсы тут не всегда первопричина — это скорее симптом общей болезни.
Когда такие "лайфхаки" ещё и вдалбливаются как часть обучения — это просто токсично. Вред и рынку, и самим выпускникам.
В файле button.py видимо ошибка два раза повторяется expect(locator).to_be_disabled() в двух методах
Спасибо за замечание! Действительно, этот вызов повторялся дважды — уже исправил.
И вот не понятно с чекбоксом как быть? его не нужно выделять в отдельный тоже файл? или это считается button
Чекбокс — это всё же отдельный элемент, у него своя семантика и поведение. Поэтому его лучше выносить в отдельный файл/класс. Он не является частью button, даже несмотря на визуальную схожесть.
Как правильно и где объявлять кастомный data-testid, если по умолчанию web разработчики используют просто "id"? Если я не ошибаюсь, то это нужно сделать в fixtures в settings в chromium_page?
Да, вы всё верно поняли. Если на проекте используются обычные id, и нет возможности повлиять на появление data-testid, можно переопределить селектор по умолчанию. Это делается один раз в начале (например, в фикстуре chromium_page) с помощью:
playwright.selectors.set_test_id_attribute("id")
осле этого можно использовать привычный синтаксис:
Да, к сожалению, таких людей действительно больше, чем хотелось бы. Поэтому подобные "школы" и курсы до сих пор не просто держатся на плаву — я бы даже сказал, уверенно плывут. В статье хотелось хотя бы немного вразумить, дать повод задуматься. Понятно, что её не увидят миллионы и поможет она, может, единицам — но если даже кому-то одному сэкономит время, деньги и нервы, значит не зря.
Спасибо за комментарий! Если уже не новичок и срочно нужна работа — лучше не идти ни на какой курс. Это просто не тот момент. Гораздо эффективнее сразу фокусироваться на поиске: обновить резюме, пройтись по вакансиям, подготовиться к собеседованиям, порешать задачки. Курсы — это всё-таки про вдумчивое, системное обучение, которое требует времени. А в ситуации «нужно срочно выйти на работу» — это не самое разумное вложение времени.
А как в этом отчете узнать, какие страницы / состояния не покрыты тестами? На первый взгляд - кто-то должен вручную прокликать разные тесты / страницы в отчете и визуально оценить покрытие. Это так, или я что-то упустил?
Сейчас предполагается, что вы уже примерно знаете, какую страницу или сценарий хотите проверить.
Но да, вы правы — бывают ситуации, когда наоборот хочется именно найти те страницы, куда никто не заходил, и вот это сейчас не автоматизировано. Эту часть я как раз допиливаю: скоро появится новый режим с графом, на котором можно будет кликнуть на ноду или переход и сразу увидеть, какие тесты туда ходили (и ходили ли вообще), откуда был переход и т.д.
Скриншот этой штуки будет чуть ниже — фича уже почти готова
Да, всё так. Они вваливают миллионы в маркетинг, лендосы, фотосессии с модными прическами — и потом всё это включают в цену курса. А по факту — ты платишь не за контент, а за «ощущение, что учишься у звезды».
Можно ведь по-человечески сделать нормальный, содержательный курс, без всей этой обёртки. Но для этого нужно реально заморочиться: подумать, привлечь толковых спецов, а не просто тех, кто умеет красиво улыбаться и торговать лицом.
И самое смешное — всё это часто делается, чтобы человек, купив курс, видел в преподе «себя в будущем». Типа «я тоже буду таким модным экспертом». А потом хоп — уже подписка, рассрочка, и ты не учишься, а просто платишь.
Что касается подборок — в статье как раз хотел не список курсов выдать, а дать фильтр: как понять, где годнота, а где просто красивая упаковка. Потому что хорошие курсы и так на поверхности — вопрос в том, как их теперь отличать от красивого фейка.
Понимаю ход мысли, и в идеале всё действительно так: пошёл работать, и на практике всё понял.
Но вот проблема — как туда попасть? На джун-позиции огромная конкуренция, а требования уже давно не "научим всему с нуля", а "приходи готовым, с пет-проектами, пониманием процессов и опытом (пусть даже на стажировке)".
И вот тут как раз и возникает место для обучения — не как волшебная таблетка, а как мост через пропасть между нулём и первым шансом.
Хорошие курсы могут помочь. Плохие — создают ложные ожидания и ещё больше людей вешают в воронке "вроде учился, а взять никто не хочет".
Если вы не заметили, все мои статьи оформлены в таком же стиле — и те, что были написаны задолго до появления LLM в публичном поле. Просто сейчас стало настолько много сгенерированного мусора, что качественный и структурированный текст уже вызывает подозрение.
Попробуйте смотреть шире: если статья написана ясно, по делу и без воды — это ещё не повод искать подвох. Иногда это просто результат опыта и желания делать контент с уважением к читателю.
Забавно, что вы сразу делаете выводы про "накрутку", вместо того чтобы допустить более простое объяснение: может, людям просто полезны мои ответы. Я стараюсь отвечать развернуто, по существу и без токсичности — может, попробуете так же? Глядишь, и ваши комментарии тоже начнут лайкать не меньше.
А про устройство платформы: комментарии тут ничего не дают, кроме обратной связи и смысла — если вы её не видите, это уже не мои проблемы.
Спасибо, крутое уточнение. Маркетинг работает не в одну сторону. Это не только курсы «навязывают» то, что им выгодно, но и рынок действительно сам просит: дайте всё и сразу, за один платеж и без усилий. Поэтому и рождается этот странный гибрид — «всё в одном», который вроде бы решает проблему, но по факту не даёт ни глубины, ни результата.
Я в статье больше фокусировался на стороне самих курсов, но да есть и вторая половина — это ожидания студентов. Типа "я лучше один раз отмучаюсь, зато потом сразу буду автотестером". Только вот «один раз» превращается в месяц-полтора абстрактной беготни по верхам, и толку никакого. Но это не отменяет сказанного в статье, что вместо того, чтобы это объяснить студентам и не толкать ерунду в виде "все везде и сразу", создатели таких курсов все равно продолжают этим заниматься. Лишь бы бабки заносили, а там уже не важно. Хотите и танцы с бубном плясать научим, главное деньги занесите.
Но как раз поэтому и написал статью — не чтобы всех поругать, а чтобы как минимум переориентировать мышление: сначала фундамент, потом специализация. А не "всё сразу, по акции, но поверхностно".
Спасибо за комментарий! Рад, что стиль изложения понравился.
Но, на мой взгляд, важно и не оставить читателя с ощущением "всё бесполезно".
Статья — не про «всё бесполезно». Именно поэтому в конце я и добавил блок "А как надо?", где как раз собрал конкретный чек-лист, как распознать адекватный курс без воды и маркетинга. Постарался сделать его максимально практичным — для новичков, которым и правда трудно сориентироваться.
12. А как надо?
Кто-то может сказать: да ты только критикуешь, а что нам делать? Неужели всё так плохо и альтернатив вообще нет? Есть. Давайте я просто дам чек-лист того, как может выглядеть нормальный, адекватный курс, который действительно может стоить вашего внимания.
1. Нет иллюзий и пустых обещаний
Если на странице курса нет ни слова про зарплаты, гарантии трудоустройства, "профессии будущего", волшебников на голубом вертолёте — это уже хороший знак. Значит, вас хотя бы не пытаются развести с порога. Просто обучение — без сказок.
2. Фокус на знания, а не зарплату
Если вместо "200 тыщ через 3 месяца" вам обещают знания, конкретные навыки, работу с технологиями, практику, проекты, — это уже говорит о вменяемости. Вам не вешают лапшу, а просто говорят: «Вот чему вы научитесь. А как вы этим распорядитесь — ваш выбор».
3. Если обещают деньги — спрашивайте про ответственность
Любое упоминание зарплаты должно сразу вызывать вопрос: А кто за это в ответе? Что будет, если вы закончите курс и не устроитесь? Или устроитесь, но не на "от 150К"? Если в договоре прописана компенсация, возврат или ответственность — это уже что-то. Но если просто заявляют, что "все наши выпускники получают офферы" — это вода, это маркетинг, это развод. Все должно быть закреплено юридически — в противном случае они не имеют права давать такие обещания.
...
Но, на мой взгляд, сотрясания воздуха в статье чуть больше, чем информации, которая действительно была бы полезна новичку в сфере.
Тема сложная: за последние годы накопилось столько навязанного шума вокруг тестирования и входа в IT, что прежде чем дать конкретику, нужно немного расчистить завалы. Снять розовые очки, если так будет проще. Так что часть «воздуха» — это не просто критика, а попытка снять искажения, чтобы человек, приходящий в профессию, понимал, куда он идёт и на что его там ждет. Иначе он как мотылек, который летит на костер и даже не знает, что его там ждет.
Из личного опыта — жена (психолог по образованию) закончила полугодовые курсы по мануальному тестированию и вполне влилась в сферу. Второй год работает и недавно взяла ещё курс, по автоматизации. Каким-то вещам уже сама меня учит :)
Это как раз подтверждает мой месседж: если подходить без иллюзий и шарлатанства, то можно войти в профессию. Спокойно, осознанно и постепенно. Ключевое — не искать волшебства, а работать системно.
Согласен просто потому, что комментарии перекликаются с тем, что я уже описал в статье. Видимо, не зря писал. А на разговоры ради разговоров времени, правда, нет — стараюсь отвечать по сути.
Полностью согласен. Здесь на самом деле две большие проблемы, и я как раз из-за них и решил написать эту статью.
Во-первых, если подобные курсы до сих пор существуют и не закрылись, значит, маркетинг у них работает. Люди продолжают нести им деньги, покупаясь на красивые обещания, гарантию трудоустройства и атмосферу "вот-вот войдёшь в айти". Цель статьи — хотя бы немного повлиять на это. Пусть она поможет одному человеку не попасть на развод — уже не зря.
Во-вторых, как вы правильно подметили, после этих курсов люди оказываются в полном одиночестве. Им "продали мечту", "навеяли иллюзию", что после курса их с руками оторвут, но на деле — ни опыта, ни понимания, ни результата. Разработчики их не понимают, они — разработчиков, а на собесах только и могут, что пересказывать определения из глоссария, но бизнесу не уперлись эти определения, им нужен опыт, инженерное мышление, умение принимать решения и делать все в срок.
Конечно, статья — капля в море. Но если таких капель будет больше, если больше людей начнёт говорить вслух о проблеме — может, хоть немного изменится ситуация.
Насчёт бесплатных курсов — полностью согласен, действительно есть достойные. Я даже думал накидать парочку ссылок, но:
во-первых, таких курсов достаточно много, и боюсь, что кого-то случайно забуду, что вызовет вопросы;
во-вторых, большинство из них и так довольно на слуху — например, на Stepik, Moodle, freeCodeCamp, JetBrains Academy, metanit (особенно по C# и .NET, но и по python, например там тоже есть), Frontend Mentor, MDN Web Docs, LearnPython.org и других — полно качественного контента бесплатно, без регистрации и СМС
Что касается возврата денег, то да — идея с месячным сроком (а не 7 или 14 дней) и тем более с возвратом пропорционально пройденному — максимально здравая. Некоторые платформы вроде Stepik или Coursera это уже реализуют, вроде как.
Спасибо за комментарий! Делюсь. У меня был очень похожий кейс — человек, которого я менторил, тоже был далеко за 30 и уже работал ручным QA. Мы начали заниматься автоматизацией, когда он ещё оставался на своей текущей позиции.
Занимались примерно год по 2 - 3 часа в день, иногда по выходным и даже по праздникам — за это время он начал хоть как-то «разбирать» автотесты и понимать, что происходит. Затем он ещё около полугода продолжал работать ручным тестировщиком, но уже с пониманием автоматизации, после чего устроился джуном-автоматизатором.
Проработал около года на первой позиции, и затем перешёл на роль мидла — насколько знаю, до сих пор стабильно работает в этой роли.
Но важно понимать:
всё это происходило в течение нескольких лет — не «волшебный рост за 3 месяца»;
мы потом еще много раз с ним созванивались, но уже по его текущим задачам по автоматизации;
человек уже был внутри IT, а это всё же облегчает процесс;
и очень многое зависело от его внутренней мотивации: прогресс шёл только тогда, когда он сам прикладывал усилия между сессиями.
Короче, путь не быстрый и сложный, обещать что-то таким людям сложно, прям очень сложно. И это не их вина, просто у каждого свой бэкграунд и темп обучения
Благодарю за ироничный комментарий — всегда интересно наблюдать, как люди приходят не чтобы задать вопрос, обсудить идею или предложить улучшение, а просто чтобы вбросить сарказм ради самоутверждения. Особенно когда аргумент — «популярный инструмент» с 8 звёздами.
P.S. инструмент ui-coverage-toolбыл создан 15 апреля. Стартовые 8 звёзд за пару недель — неплохой темп
Если у вас есть свой проект — могли бы предложить сравнение, обсудить отличия, архитектуру, цели. Но вместо этого — типичный токсичный вброс, замаскированный под юмор.
Разница между инструментом и полезным инструментом — в том, как и зачем он сделан.
В идеальном мире тесты стабильны и проходят, а если начинают падать на ранних шагах, то первым приоритетом становится починить их, а не анализировать покрытие. Но ваш поинт абсолютно логичен: при падении ранних шагов часть покрытия может "исчезать" из визуального отчета, что искажает картину.
Что касается вашей идеи — да, теоретически и технически можно собрать покрытие даже без запуска самих тестов. Библиотека никак не ограничена в этом плане: если вы можете заранее получить локаторы + действия (например, как metadata из тестов), то можно отрисовать покрытие поверх сайта даже в статике — просто подкинуть это всё трекеру.
Фреймворк-специфичная реализация (как собрать сценарии без исполнения) — это уже вопрос к конкретному стеку. Но сама возможность — абсолютно реальна и интересна. Возможно, вы навели на ещё одно направление использования инструмента. Спасибо! Подумаю, мб какой пример накидать, как это можно сделать.
По поводу нейминга и ссылок — полностью согласен, и на самом деле это уже возможно: можно передавать любые названия и URL через tracker.start_scenario(name=..., url=...). Просто в примере использован request.node.name (который возвращает имя функции), чтобы не усложнять.
Насчёт "маркетингового булшита" — ну, хочется, чтобы полезное звучало громко. Рад, что хотя бы в этой статье градус был комфортный.
Спасибо, что следите — ценю, даже когда комментарии с "перцем".
Благодарю за столь эмоциональный и многословный комментарий. Видно, что мой скромный инструмент задел вас за живое, и это уже успех.
Ваш развернутый поток сознания заслуживает уважения — не каждый день можно увидеть столько страсти при обсуждении вопроса о покрытии UI. Особенно приятно, что вы нашли время написать целую стену текста, демонстрируя глубину боли, которую, судя по всему, моя работа вам причинила.
Теперь по сути:
Я рад, что вы открыли для себя различие между действиями и проверками. Поверьте, большинство людей в индустрии догадываются об этом даже без 5-страничных манифестов.
Касательно старых конференций, no-name решений и 19 минут на ознакомление: Удивительно, сколько презрения можно вложить в слова о событиях, о которых вы сами не так много знаете. К слову я лично был на этой конференции еще несколько лет назад и был в курсе про данное решение еще до того, как вы про него узнали. Не стесняйтесь, признание — первый шаг к принятию.
Ваше объяснение разницы между документацией, тест-кейсами и фактическим тестированием трогает своей наивностью. Вероятно, вы и вправду считаете, что TMS и красивые таблички спасают от багов в продакшене. Желаю удачи в этой вере.
Что касается "старых технологий" и морали пяти лет назад: Спасибо, что напомнили, что инновации для вас — это плохое слово. Видимо, в вашем мире рефакторинг под GO решает вопросы качества продукта лучше, чем инструменты контроля реального поведения тестов. Потрясающая логика.
По поводу отсутствия ассертов: Инструмент и не претендует на роль экстрасенса. Я не строю иллюзий, что могу угадать мысли тестировщика через отслеживание кликов. В отличие от некоторых, кто, судя по вашему тону, всерьез считает, что TMS отражает реальность тестирования.
В завершение хочу сказать: Если в будущем вам вновь захочется выплеснуть поток токсичности и обид за жизнь, не стесняйтесь — я рад видеть, что мой инструмент вызывает живые эмоции. А значит, он работает.
P.S.: Вместо скриншот-тестирования, как вы опасались, я, пожалуй, займусь еще одним полезным делом — выведу "coverage-психотерапию" в отдельную ветку разработки. Успех будет гарантирован — аудитория уже есть.
Спасибо за комментарий! Насчёт фейкового опыта — точное замечание. Честно, не стал выносить это в статью, потому что, по факту, этим занимаются не только по наводке курсов. Многие ушлые студенты уже изначально идут на обучение с планом: "сделаю пару пет-проектов, накручу резюме, притворюсь сразу миддлом". Курсы тут не всегда первопричина — это скорее симптом общей болезни.
Когда такие "лайфхаки" ещё и вдалбливаются как часть обучения — это просто токсично. Вред и рынку, и самим выпускникам.
Спасибо за замечание! Действительно, этот вызов повторялся дважды — уже исправил.
Чекбокс — это всё же отдельный элемент, у него своя семантика и поведение. Поэтому его лучше выносить в отдельный файл/класс. Он не является частью
button
, даже несмотря на визуальную схожесть.Да, вы всё верно поняли. Если на проекте используются обычные
id
, и нет возможности повлиять на появлениеdata-testid
, можно переопределить селектор по умолчанию. Это делается один раз в начале (например, в фикстуреchromium_page
) с помощью:осле этого можно использовать привычный синтаксис:
Похоже, вы немного ошиблись статьёй — тут речь идёт про API тесты, а не про UI и работу с
data-testid
Да, к сожалению, таких людей действительно больше, чем хотелось бы. Поэтому подобные "школы" и курсы до сих пор не просто держатся на плаву — я бы даже сказал, уверенно плывут. В статье хотелось хотя бы немного вразумить, дать повод задуматься. Понятно, что её не увидят миллионы и поможет она, может, единицам — но если даже кому-то одному сэкономит время, деньги и нервы, значит не зря.
Спасибо за комментарий! Если уже не новичок и срочно нужна работа — лучше не идти ни на какой курс. Это просто не тот момент. Гораздо эффективнее сразу фокусироваться на поиске: обновить резюме, пройтись по вакансиям, подготовиться к собеседованиям, порешать задачки. Курсы — это всё-таки про вдумчивое, системное обучение, которое требует времени. А в ситуации «нужно срочно выйти на работу» — это не самое разумное вложение времени.
Спасибо за комментарий, очень хороший вопрос!
Сейчас предполагается, что вы уже примерно знаете, какую страницу или сценарий хотите проверить.
Но да, вы правы — бывают ситуации, когда наоборот хочется именно найти те страницы, куда никто не заходил, и вот это сейчас не автоматизировано. Эту часть я как раз допиливаю: скоро появится новый режим с графом, на котором можно будет кликнуть на ноду или переход и сразу увидеть, какие тесты туда ходили (и ходили ли вообще), откуда был переход и т.д.
Скриншот этой штуки будет чуть ниже — фича уже почти готова
Да, всё так. Они вваливают миллионы в маркетинг, лендосы, фотосессии с модными прическами — и потом всё это включают в цену курса. А по факту — ты платишь не за контент, а за «ощущение, что учишься у звезды».
Можно ведь по-человечески сделать нормальный, содержательный курс, без всей этой обёртки. Но для этого нужно реально заморочиться: подумать, привлечь толковых спецов, а не просто тех, кто умеет красиво улыбаться и торговать лицом.
И самое смешное — всё это часто делается, чтобы человек, купив курс, видел в преподе «себя в будущем». Типа «я тоже буду таким модным экспертом». А потом хоп — уже подписка, рассрочка, и ты не учишься, а просто платишь.
Что касается подборок — в статье как раз хотел не список курсов выдать, а дать фильтр: как понять, где годнота, а где просто красивая упаковка. Потому что хорошие курсы и так на поверхности — вопрос в том, как их теперь отличать от красивого фейка.
Понимаю ход мысли, и в идеале всё действительно так: пошёл работать, и на практике всё понял.
Но вот проблема — как туда попасть? На джун-позиции огромная конкуренция, а требования уже давно не "научим всему с нуля", а "приходи готовым, с пет-проектами, пониманием процессов и опытом (пусть даже на стажировке)".
И вот тут как раз и возникает место для обучения — не как волшебная таблетка, а как мост через пропасть между нулём и первым шансом.
Хорошие курсы могут помочь. Плохие — создают ложные ожидания и ещё больше людей вешают в воронке "вроде учился, а взять никто не хочет".
Если вы не заметили, все мои статьи оформлены в таком же стиле — и те, что были написаны задолго до появления LLM в публичном поле. Просто сейчас стало настолько много сгенерированного мусора, что качественный и структурированный текст уже вызывает подозрение.
Попробуйте смотреть шире: если статья написана ясно, по делу и без воды — это ещё не повод искать подвох. Иногда это просто результат опыта и желания делать контент с уважением к читателю.
Забавно, что вы сразу делаете выводы про "накрутку", вместо того чтобы допустить более простое объяснение: может, людям просто полезны мои ответы. Я стараюсь отвечать развернуто, по существу и без токсичности — может, попробуете так же? Глядишь, и ваши комментарии тоже начнут лайкать не меньше.
А про устройство платформы: комментарии тут ничего не дают, кроме обратной связи и смысла — если вы её не видите, это уже не мои проблемы.
Спасибо, крутое уточнение. Маркетинг работает не в одну сторону. Это не только курсы «навязывают» то, что им выгодно, но и рынок действительно сам просит: дайте всё и сразу, за один платеж и без усилий. Поэтому и рождается этот странный гибрид — «всё в одном», который вроде бы решает проблему, но по факту не даёт ни глубины, ни результата.
Я в статье больше фокусировался на стороне самих курсов, но да есть и вторая половина — это ожидания студентов. Типа "я лучше один раз отмучаюсь, зато потом сразу буду автотестером". Только вот «один раз» превращается в месяц-полтора абстрактной беготни по верхам, и толку никакого. Но это не отменяет сказанного в статье, что вместо того, чтобы это объяснить студентам и не толкать ерунду в виде "все везде и сразу", создатели таких курсов все равно продолжают этим заниматься. Лишь бы бабки заносили, а там уже не важно. Хотите и танцы с бубном плясать научим, главное деньги занесите.
Но как раз поэтому и написал статью — не чтобы всех поругать, а чтобы как минимум переориентировать мышление: сначала фундамент, потом специализация. А не "всё сразу, по акции, но поверхностно".
Спасибо за комментарий! Рад, что стиль изложения понравился.
Статья — не про «всё бесполезно». Именно поэтому в конце я и добавил блок "А как надо?", где как раз собрал конкретный чек-лист, как распознать адекватный курс без воды и маркетинга. Постарался сделать его максимально практичным — для новичков, которым и правда трудно сориентироваться.
Тема сложная: за последние годы накопилось столько навязанного шума вокруг тестирования и входа в IT, что прежде чем дать конкретику, нужно немного расчистить завалы. Снять розовые очки, если так будет проще. Так что часть «воздуха» — это не просто критика, а попытка снять искажения, чтобы человек, приходящий в профессию, понимал, куда он идёт и на что его там ждет. Иначе он как мотылек, который летит на костер и даже не знает, что его там ждет.
Это как раз подтверждает мой месседж: если подходить без иллюзий и шарлатанства, то можно войти в профессию. Спокойно, осознанно и постепенно. Ключевое — не искать волшебства, а работать системно.
Согласен просто потому, что комментарии перекликаются с тем, что я уже описал в статье. Видимо, не зря писал. А на разговоры ради разговоров времени, правда, нет — стараюсь отвечать по сути.
Полностью согласен. Здесь на самом деле две большие проблемы, и я как раз из-за них и решил написать эту статью.
Во-первых, если подобные курсы до сих пор существуют и не закрылись, значит, маркетинг у них работает. Люди продолжают нести им деньги, покупаясь на красивые обещания, гарантию трудоустройства и атмосферу "вот-вот войдёшь в айти". Цель статьи — хотя бы немного повлиять на это. Пусть она поможет одному человеку не попасть на развод — уже не зря.
Во-вторых, как вы правильно подметили, после этих курсов люди оказываются в полном одиночестве. Им "продали мечту", "навеяли иллюзию", что после курса их с руками оторвут, но на деле — ни опыта, ни понимания, ни результата. Разработчики их не понимают, они — разработчиков, а на собесах только и могут, что пересказывать определения из глоссария, но бизнесу не уперлись эти определения, им нужен опыт, инженерное мышление, умение принимать решения и делать все в срок.
Конечно, статья — капля в море. Но если таких капель будет больше, если больше людей начнёт говорить вслух о проблеме — может, хоть немного изменится ситуация.
Спасибо за содержательный комментарий!
Насчёт бесплатных курсов — полностью согласен, действительно есть достойные. Я даже думал накидать парочку ссылок, но:
во-первых, таких курсов достаточно много, и боюсь, что кого-то случайно забуду, что вызовет вопросы;
во-вторых, большинство из них и так довольно на слуху — например, на Stepik, Moodle, freeCodeCamp, JetBrains Academy, metanit (особенно по C# и .NET, но и по python, например там тоже есть), Frontend Mentor, MDN Web Docs, LearnPython.org и других — полно качественного контента бесплатно, без регистрации и СМС
Что касается возврата денег, то да — идея с месячным сроком (а не 7 или 14 дней) и тем более с возвратом пропорционально пройденному — максимально здравая. Некоторые платформы вроде Stepik или Coursera это уже реализуют, вроде как.
Спасибо за комментарий! Делюсь. У меня был очень похожий кейс — человек, которого я менторил, тоже был далеко за 30 и уже работал ручным QA. Мы начали заниматься автоматизацией, когда он ещё оставался на своей текущей позиции.
Занимались примерно год по 2 - 3 часа в день, иногда по выходным и даже по праздникам — за это время он начал хоть как-то «разбирать» автотесты и понимать, что происходит. Затем он ещё около полугода продолжал работать ручным тестировщиком, но уже с пониманием автоматизации, после чего устроился джуном-автоматизатором.
Проработал около года на первой позиции, и затем перешёл на роль мидла — насколько знаю, до сих пор стабильно работает в этой роли.
Но важно понимать:
всё это происходило в течение нескольких лет — не «волшебный рост за 3 месяца»;
мы потом еще много раз с ним созванивались, но уже по его текущим задачам по автоматизации;
человек уже был внутри IT, а это всё же облегчает процесс;
и очень многое зависело от его внутренней мотивации: прогресс шёл только тогда, когда он сам прикладывал усилия между сессиями.
Короче, путь не быстрый и сложный, обещать что-то таким людям сложно, прям очень сложно. И это не их вина, просто у каждого свой бэкграунд и темп обучения
Благодарю за ироничный комментарий — всегда интересно наблюдать, как люди приходят не чтобы задать вопрос, обсудить идею или предложить улучшение, а просто чтобы вбросить сарказм ради самоутверждения. Особенно когда аргумент — «популярный инструмент» с 8 звёздами.
P.S. инструмент ui-coverage-tool был создан 15 апреля. Стартовые 8 звёзд за пару недель — неплохой темп
Если у вас есть свой проект — могли бы предложить сравнение, обсудить отличия, архитектуру, цели. Но вместо этого — типичный токсичный вброс, замаскированный под юмор.
Разница между инструментом и полезным инструментом — в том, как и зачем он сделан.
Спасибо за крутой и очень точный вопрос!
В идеальном мире тесты стабильны и проходят, а если начинают падать на ранних шагах, то первым приоритетом становится починить их, а не анализировать покрытие. Но ваш поинт абсолютно логичен: при падении ранних шагов часть покрытия может "исчезать" из визуального отчета, что искажает картину.
Что касается вашей идеи — да, теоретически и технически можно собрать покрытие даже без запуска самих тестов. Библиотека никак не ограничена в этом плане: если вы можете заранее получить локаторы + действия (например, как metadata из тестов), то можно отрисовать покрытие поверх сайта даже в статике — просто подкинуть это всё трекеру.
Фреймворк-специфичная реализация (как собрать сценарии без исполнения) — это уже вопрос к конкретному стеку. Но сама возможность — абсолютно реальна и интересна. Возможно, вы навели на ещё одно направление использования инструмента. Спасибо! Подумаю, мб какой пример накидать, как это можно сделать.
По поводу нейминга и ссылок — полностью согласен, и на самом деле это уже возможно: можно передавать любые названия и URL через
tracker.start_scenario(name=..., url=...)
. Просто в примере использованrequest.node.name
(который возвращает имя функции), чтобы не усложнять.Насчёт "маркетингового булшита" — ну, хочется, чтобы полезное звучало громко. Рад, что хотя бы в этой статье градус был комфортный.
Спасибо, что следите — ценю, даже когда комментарии с "перцем".
Благодарю за столь эмоциональный и многословный комментарий. Видно, что мой скромный инструмент задел вас за живое, и это уже успех.
Ваш развернутый поток сознания заслуживает уважения — не каждый день можно увидеть столько страсти при обсуждении вопроса о покрытии UI. Особенно приятно, что вы нашли время написать целую стену текста, демонстрируя глубину боли, которую, судя по всему, моя работа вам причинила.
Теперь по сути:
Я рад, что вы открыли для себя различие между действиями и проверками. Поверьте, большинство людей в индустрии догадываются об этом даже без 5-страничных манифестов.
Касательно старых конференций, no-name решений и 19 минут на ознакомление: Удивительно, сколько презрения можно вложить в слова о событиях, о которых вы сами не так много знаете. К слову я лично был на этой конференции еще несколько лет назад и был в курсе про данное решение еще до того, как вы про него узнали. Не стесняйтесь, признание — первый шаг к принятию.
Ваше объяснение разницы между документацией, тест-кейсами и фактическим тестированием трогает своей наивностью. Вероятно, вы и вправду считаете, что TMS и красивые таблички спасают от багов в продакшене. Желаю удачи в этой вере.
Что касается "старых технологий" и морали пяти лет назад: Спасибо, что напомнили, что инновации для вас — это плохое слово. Видимо, в вашем мире рефакторинг под GO решает вопросы качества продукта лучше, чем инструменты контроля реального поведения тестов. Потрясающая логика.
По поводу отсутствия ассертов: Инструмент и не претендует на роль экстрасенса. Я не строю иллюзий, что могу угадать мысли тестировщика через отслеживание кликов. В отличие от некоторых, кто, судя по вашему тону, всерьез считает, что TMS отражает реальность тестирования.
В завершение хочу сказать: Если в будущем вам вновь захочется выплеснуть поток токсичности и обид за жизнь, не стесняйтесь — я рад видеть, что мой инструмент вызывает живые эмоции. А значит, он работает.
P.S.: Вместо скриншот-тестирования, как вы опасались, я, пожалуй, займусь еще одним полезным делом — выведу "coverage-психотерапию" в отдельную ветку разработки. Успех будет гарантирован — аудитория уже есть.