Мой баг дня (записки тестировщика) – Telegram
Мой баг дня (записки тестировщика)
242 subscribers
169 photos
23 videos
11 files
126 links
Precondition:
Repro steps:
1. ...
2. ...
3. ...
Expected: good
Actual: bad

Связь: @MyachinDA
Download Telegram
В UiAtomator 2.3 исправили несколько проблем, из-за которых я и начал писать свой фреймворк автотестов. Кажется, скоро смогу отказаться от него (ура!).

Изменений от 2.2 много, вот только те, которые мне важны, потому что у меня были свои реализации, а теперь можно будет использовать гугловые:

- Поддержали отправку события нажатий нескольких кнопок. Я использовал это в первую очередь для снятия скриншотов ПОЛЬЗОВАТЕЛЬСКИМ способом.

- Теперь правильно будят устройство - через отправку кей эвентов. Если вам приходится писать автотесты на вот тех офигенных телефонах, где на кнопку Power навесили вызов ассистента, вы меня поймёте

- Уменьшили интервал полинга в 10 раз. Надо сказать, радикально. Я уменьшал в 5 раз

- Поддержали матчинг многострочных текстов и описаний https://android-review.googlesource.com/c/platform/frameworks/support/+/2283416

- Наконец вытянули UiDevice#executeShellCommand наружу

- Исправлен NPE для UiDevice#dumpWindowHierarchy

- Для UiObject2#scrollUntil добавили retry

- Уменьшили скорость скроллинга. Надеюсь, уменьшили правильно. Потому что мне приходилось опытным путём подбирать steps у скрола, чтобы всё работало нормально

Остальное либо я не использовал, либо работа меня устраивала. Например, поддержку второго экрана ни разу не использовал, а это одна из фич релиза
👍3
Написал статью о том, что в RuStore лежит настоящий, но неправильный Signal. И что RuStore имеет прям детскую болезнь: он не понимает архитектуру процессора, на котором работает.

Лёгкая версия статьи (в килобайтах, в смысле): https://text.tchncs.de/umnik/rustore-i-podderzhka-raznykh-arkhitektur

Она же, но на блогспоте: https://myachinqa.blogspot.com/2024/03/rustore.html
👍6
Вакансию мечты нашёл.

Требования:
- Релевантные для задач проекта
- Опыт в тестировании от 5 лет
Бесячий баг в собственной прошивке. Несколько раз в неделю нужно выходить из дома с пакетом с, допустим, сменной одеждой.
Всё приходит нормально, пока не добавляется пакет с мусором. В этом случае выхожу с мусором без сменной одежды или с одеждой, но без мусора.
👍6
Вроде в Тинькофф должны понимать, что внешние данные нужно валидировать.
На прод гонят описание с 429 ошибкой.
👍10
В RuStore отломили открытие экрана нужного приложения через стандартный вызов схемой market

adb shell am start -a android.intent.action.VIEW -d 'market://details?id=ru.dublgis.dgismobile'

Если в системе более одного маркета, нужно выбрать РуСтор. Он должен открыть экран нужного приложения (2GIS), но не сделает этого.
👍7
https://developer.android.com/reference/android/app/admin/DevicePolicyManager потеряли закрывающий </i>. Так что до самого Summary всё написано курсивом
👍2
Не баг. Пока пишу тест, увидел, что есть приложение с таким вот именем пакета. Представлено и в Gplay, и в F-droid: https://github.com/Semper-Viventem/MetaRadar
👍5
Попросил cloud.ru (часть Сбера, как я понимаю) удалить мою учётку. ТП ответили, что удалили, всё в порядке. Это было месяца два назад или больше.
Сейчас проверяю. Регистрируюсь на телефон - говорят, что такой есть. Восстанавливаю пароль по телефону - на моё мыло (то есть оно тоже известно) падает ссылка для установки нового пароля. Прохожу по ссылке - 403: пользователь заблокирован.

Сбер не понимает разницы между удалить учётную запись и заблокировать её.
👍9
О тестировании.pdf
5.6 MB
В нашей внутренней wiki для нашей команды написал статью о тестировании, тестировщиках, о взаимодействии, терминологии, приоритизации багов . В общем, единый документ для создания одинаковых пониманий разработчиков, менеджеров и тестировщиков

Сегодня получил разрешение на его публикацию, так что вот, прикладываю. 6 страниц в PDF.

Мне будет интересно, с чем согласны, с чем не согласны, а где я вообще нафиг пошёл.

Разумеется, есть некоторая специфика, связанная с именно нашими проектами и нашим багтрекером, но прям таких вещей мало. Старался писать более-менее универсально
👍15
Рассказал HRше, что их в IT называют "хрюши". Она не знала. Расскажет ли она теперь остальным?
👍6
https://chromewebstore.google.com/detail/%D0%BE%D0%B1%D0%BE%D0%B9%D1%82%D0%B8-%D0%B7%D0%B0%D0%BC%D0%B5%D0%B4%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5-youtube/khpkadmigccakicajloljbckokgnknkp надеюсь я ошибаюсь, но… Уверен, сейчас как грибы полезут мошеннические расширения. "Активация через Телегу" для меня выглядит как способ эту самую Телегу увести.

Проверять не буду и вам не советую.
👍4
Если вы пишите автотесты под Android и это не (или не только) Espresso, вам нужен инструмент для разбора разметки экрана и получения информации о вьюхах.

Когда-то давно Google предлагал утилиту на java uiautomatorviewer, но ей пришёл кирдык.

Возможно, вы уже нашли для себя замену. А если нет, то можно уже и не искать особо. Выложил в публичный доступ утилиту, которую написал для себя. Точнее, её исходники: https://gitea.myachin.xyz/umnik/android-ui-viewer
👍6
Сегодня, в 19:00 всей Францией запускаем бумажные самолётики из окон!
🤡3👍1
Почему я никогда не использую для написания автотестов не нативные фреймворки платформы.

Вот статья на Хабре от 2013 года: https://habr.com/ru/companies/intel/articles/205864/

Комментарии:
- чем это лучше роботиума?
- Работал и работаю с calabash. Из плюсов — Ruby и кросс-платформенность. Cucumber и BDD тоже можно отнести к плюсам. Тесная интеграция с Xamarin, в будущем calabash станет плагином к Frank. Ну и конечно же активное сообщество, частые коммиты и релизы.

Сейчас это смешно читать, а тогда кто-то всерьёз считал, что использовать левые фреймворки - это хорошо и правильно.
https://issuetracker.google.com/issues/127100532 с 2019 года Гугл просят добавить поддержку JUnit5. Если считаете, что +1 играет роль, то влепите. Ну невозможно же уже. Как минимум параметризация тестов в JUnit5 намного лучше. В 4 она прям совсем базовая.
Есть у меня читатели из ВК? У вас возраст на банере и возраст в описании отличаются. 18+ или 16+ в итоге?
Исправите, пока РКН не пришёл.
Когда-то давно, когда я только вкатывался в автоматизацию и в программирование в целом, у меня очень часто что-то не работало, хотя мне казалось, что код написан правильно. Нет, всякий раз это были мои ошибки, а не библиотек или чего-то ещё.

Прошло несколько лет. Каждый, сука, раз, это ошибки библиотек теперь, а не мои.

Я не могу запустить тест из командной строки правильным способом: adb shell am instrument -w -e class xyz.myachin.letsappsbeupdated.rustore.tests.RuStoreDenoscriptionTest#whatsNewTestRuStore xyz.myachin.letsappsbeupdated.test/androidx.test.runner.AndroidJUnitRunner

Получаю, что OK, 0 тестов выполнено. Хотя раньше всё работало.

А проблема в том, что в Google сломали такой способ запуска ПАРАМЕТРИЗИРОВАННЫХ тестов. Не параметризированные работают по-прежнему.

https://issuetracker.google.com/issues/321752267

Судя по приоритетам и важности, исправления будем ждать долго.
👍6
Последние 2 пункта
👍13