Slow QA
111 subscribers
34 photos
1 video
33 links
Download Telegram
Напишу себе, чтобы не забывать:
pytest умеет переименовывать названия параметризованных тестов не только через проставление фиксированных названий в параметр ids.


@pytest.mark.parametrize("param", [1, 2, 3], ids=["first", "second", "third"]
def test(param):
pass


Но и использовать входные данные, если структура сложная.


def idfn(val):
return val["value"]

@pytest.mark.parametrize("param", [{"value": "first"}, {"value": "second"}, {"value": "third"}], ids=idfn)


Читать документацию, когда она есть, это вещь полезная!
В рамках самообучения попробовала сегодня написать два текста на английском по такой схеме:
- сначала в граммарли (чтобы бесплатно проверить на фигню)
- загнать с запросом в чатГПТ (чтобы сформировать более native фразы да и просто менее канцелярские)
- смержить два текста в один.

Очень интересно и увлекательно. Правда, не ясно остается ли что-то у меня в голове.

Но рада, что дописала коротенький текст про выбор языка для автоматизации. На русском, конечно, я бы ввернула побольше язвительности.

Long story short: выбор языка дело простое, быстрое, но там куча связных параметров.

В краткосрочной перспективе мы смотрим на те ресурсы, которые есть сейчас. Это и те ЯП, которые знает прямой исполнитель или исполнители. И то, можно ли задействовать стронних людей (типа разработку, и если да, то какую). А еще неплохо бы понять, что вы точно хотите от проекта, какие есть для этого тулы, на сколько они хороши по документации, по величине сообщества, кол-ву ответов на SO etc.

Типа если вы хотите реализовывать GUI web автоматизацию и вы хотите кроссбраузерность, не стоит брать фреймфорк, который из коробки работает только в chrome. А потом пытаться натягивать сову на глобус.

В долгосрочной пероспективе нам важно сможем ли мы нанять (на сколько быстро и за сколько денег) нового специалиста. Если новичку нужно будет менять стек, то как быстро можно втянуться в язык. Какая у нас вообще техническая стратегия и SLA по качеству.

Может оказаться, что если автоматизация нужна вчера в обед хоть в каком-то виде, то подойдет и фреймворк с накликиванием. А потом будет время, чтоб переделывать нормально.

Я видела когда язык автоматизацией был языком фронтенда, бекенда, третьей интересной опцией. Как фреймворки и языки тестов менялись буквально за год.

Для собеседований еще полезно рассказывать, как вы думали над такой задачей, из каких критериев исходили, какие за и против были у рассматриваемых вариантов.
AirSerbia, у вас там все в порядке???
Мне кажется, что это ожидаемый результат.
Если не следить за общей чистотой кода, то ты и в вариантах копайлота не будешь видеть избыточность, допустим.

Что еще раз подтверждает тезис: AI максимальную пользу приносят "синьорам".

И еще вот что думаю: нейронка обучается на актуальном коде, качество кода стало ниже (по определенным критериям), качество предложений нейронки тоже будет ухудшаться.

https://twitter.com/milan_milanovic/status/1756952644642300282?t=1gbiqpt8dGvf9MPve4vyYg&s=19
Сохранила для реальных тестовых данных. Вдруг пригодится когда-нибудь. Можно увидеть, что на скрине слева полное ФИО не влезает в строку.

А то у меня пока только есть в таких двойное имя: Лина-Александра

Дополнение у твита достаточно грустное, если что.
Я щас с ума сойду просто. Что это за магия вуду.
Спасибо, конечно, за то, что видно, что денег за это не спишут.
Если ваше приложение подразумевает, что пользователи будут уходить, а потом возвращаться, то вы эти сценарии тоже разбирайте. А то выходит вот, что мне simple советует выпить 76 литров воды. Ну, это еще обозримо.
Но как выпить 1 336 916 480 литров за один день - это я не могу представить.

(Вообще оч хочу написать про собесы на head of qa и про то, что автоматизаторы не нужны)

Upd. Да, я написала тикет в саппорт! (Еле-еле, но нашла эту возможность)
Каким-то сложными путями дошла до linear.app - это новый модный таск трекер для проектов с кучей интеграций (github, gitlab, figma, slack, discord, zendesk), AI (куда без него), синхронизацией с другими аналогичными вещами (jira, asana, github projects).
Обещают быстро - модно - молодежно.
Попробую потыкать в общем. Мб это мне пригодится.

С одной стороны, очень симпатично и удобно. С другой стороны, из моего микро проекта на гитхабе туда подтянулась 1 открытая issue из 3. Из проекта для репозитория подтянулось только название 🥲
Дамы и господа, когда вы делаете лок региона на контент и через впн тоже все лочите, вы, пожалуйста, делайте так, что можно хотя бы без саппорта подписку кансельнуть :)

То есть казалось бы, что это очевидная штука!

PS зато пообщалась с оч милым саппорт гаем Кетавани ^_^
Так, ну я официально фанат https://linear.app/

Кроме того, что выглядит красиво и есть интеграция с github из коробки (при этом там есть настройка через ключевые слова в описании PR-ов, и это позволяет не просто закрыть тикет, но и оставить его незакрытым, если ты знаешь, что у тебя будет несколько веток в задаче).

Я разобралась как делать кастомные views. И это в каком-то роде бомба.
Когда не надо подсаживать типа на конкретный формат "доски", когда можно спокойно и быстро сделать несколько вьюшек для одного проекта и они будут персонализированными. То есть условный лид или проджект менеджер могут настроить себе kanban колоночки, а люди, которых это отвращает, могут использовать ту вьюху, которая им удобна. По дефолту это просто список задач с приоретизацией по их статусам.

Ретроспективно я думаю, что на одной из прошлых работ эта последняя фича очень бы зашла.

Мигриться я никого не призываю. Потому что не в курсе сравнения цен.
Да, я разобралась почему у меня не все задачи отображались при переносе github projects - linear (почти все ушло в архив почему-то), но не знаю, как будет вести себя миграция тикетов на больших объемах.

⭐️ отличная интеграция с PR-ами в github, которая сразу работает, так как надо (и ты не сношаешься в попытках все настроить нормально) ⭐️
От кого я не ожидала такого, так это от гугла.
При этом это еще немного плавющий баг.
Правда, я firefox использую. Но не думаю, что это является оправданием для гигантской корпорации плохо верстать!
С одной стороны, я понимаю, что это мало популярный функционал. С другой стороны, мне это не нравится.
XCode - инструмент сотоны.

UPD. Конечно, во всем виновато command line tools
На позапрошлой неделе произошли сразу две вещи, которые напомнили мне о важности принципа “подстелить соломку”.

Во-первых, впервые за 13 лет лег Braze (платформа для маркетинговый инструментов всяких и менеджментом рассылки сообщений по все возможным каналам). И лег он на 11 часов.
Сам постмортем достаточно интересно написан. Оказывается, что 29 апреля некорректно произошло перенаправление трафика с поломавшегося свича. И все упало, абсолютно все.
А хорошо не стало, когда починили эту проблему, из-за Монги. Такие дела.

Во-вторых, Google случайно удалил аккаунт в google cloud Пенсионного фонда из Австралии. Бывают и такие случайности. Кто на проде деньги не факапил?

За пенсионеров вроде бы волноваться не стоит, т.к. UniSuper сообщили, что начали восстанавливать данные из бекапов. Искренне надеюсь, что там все получилось, и пенсионеры не останутся без денег.
В обоих случаях повалилась интеграция с сервис провайдером. Даже так: с надежным сервис провайдером. И это знак свыше, что даже если мы доверяем и рассчитываем на безотказность стороннего сервиса, который поддерживает репутацию надежного, то стоит заняться минимальным риск-менеджментом и подумать, а что будет, если с этим сервисом что-то случится.
Если не реализовывать дублирующую страхующую функциональность, то хотя бы иметь под рукой план, который позволит в менее нервном режиме решить проблему.

Лучший пример, конечно, был в самом начале covid’19. Детали я забыла, но chatGPT мне подсказывает (т.е. возможно, что меня обманули), что именно BlackRock в самом начале эпидемии лучше всего среагировала на все происходящее. Потому что заранее подготовила сценарии поведения для всевозможных кризисов.


К таким глобальным событиям нам обычно готовиться не надо. Но кажется, что стоит подумать, как можно будет быстро компенсировать, допустим, отвалившееся API каких-нибудь карт, если вы только на его основании собираете адрес для доставки товара пользователю.
Для меня неожиданным оказалось следующее поведение в pydantic выше 2.6.4:

У пайдентик класса, который наследуется от BaseModel есть классовый метод model_validate(). Возвращает он, как написано, The validated model instance. если все успешно обработалось. Если что-то пошло не так, то мы получим ValidationError.

Еще из нового в v2 ввели анотацию @model_validator, которая позволяет удобнее писать кастомные правила для валидации модели.

И вот для декоратора я, конечно, плохо прочитала доки, поэтому почти везде функции валидации не возвращали ничего.

Соответственно model_validate() я использовала, чтобы получить объект класса и работать уже с ним, а не с dict.
Понадобилось много времени, чтобы понять, что если я пытаюсь отвалидировать модель, для которой есть функция с @model_validator (которая возвращает н и ч е г о), то поэтому и model_validate() мне вернет None.

Урок: если тебе дают сделать штуку, которая выглядит не очень, это не значит, что все будет работать как швейцарские часы!
Внимание вопрос, а как так можно хранить резервные копии БД, что их тоже пожрет вирь? 🤔

То есть я не очень глубоко знаю тему. И почитала бы что-то про лучшие и худшие практики:
- где хранить
- как часто снепшотать
- что есть по вариантам накатки
Новость!
СДЭК взломали. Проукраинская хакерская группировка взялась на себя ответственность за это

Выяснилось, что хакеры из Head Mare зашифровали все базы данных службы доставки и не выдвинули никаких требований. Резервные копии делались раз в полгода и они тоже зашифрованы вирусом. Служба доставки не работает уже три дня.

Утром 28 мая СДЭК объявила, что пока "не готова возобновить обслуживание": "В течение понедельника мы значительно продвинулись в восстановлении полноценной работы, но, к сожалению, не готовы возобновить техническое обслуживание. Команда СДЭК приносит искренние извинения всем клиентам, ожидания мы не оправдали".

Новости Дня
Вот это релиз ноте. А уязвимость мы тут какую фиксим, депендабот, а?
Я тут дожала себя и опубликовала статью про то как ревьюить код 😄
Получилось много и без картинок. Зато я потренировалась в английском писменном и у меня были потрясные ревьюеры.

Как говорится, мне нужны ваши лайки и просмотры 💜 (я правда считаю, что вышло неплохо)

https://dev.to/nadia/how-to-review-as-a-pro-59a0