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

Связь: @MyachinDA
Download Telegram
Вроде в Тинькофф должны понимать, что внешние данные нужно валидировать.
На прод гонят описание с 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.RuStoreDescriptionTest#whatsNewTestRuStore xyz.myachin.letsappsbeupdated.test/androidx.test.runner.AndroidJUnitRunner

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

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

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

Судя по приоритетам и важности, исправления будем ждать долго.
👍6
Последние 2 пункта
👍13
Если вы ловите исключение java.lang.IllegalAccessError: class com.google.protobuf.GeneratedMessageV3 tried to access method 'boolean com.google.protobuf.CodedInputStream.shouldDiscardUnknownFields()' (com.google.protobuf.GeneratedMessageV3 is in unnamed module of loader java.net.URLClassLoader @4cd1c1dc; com.google.protobuf.CodedInputStream is in unnamed module of loader 'app')

то это не вы дурак. Это опять всё сломали в Андирод 15. Причём ещё в дев превью.

https://github.com/protocolbuffers/protobuf/issues/19371
👍2
This media is not supported in your browser
VIEW IN TELEGRAM
Решил я посмотреть итоги года в Я.Музыке, пока ждал жену. А там рядом кружок танцев для детей и десяток мам ждут своих. Я не знал, что итоги будут с музыкой, которая у меня была на полную громкость. Ткнул в кнопку и как оно включилось.

Наверное не надо в фон 18+ ставить из прослушанного. И не надо по умолчанию звук включать.
👍9🤡6
This media is not supported in your browser
VIEW IN TELEGRAM
Вот хочу освоить ЯП со встроенной поддержкой создания GUI. Решил взять Flutter, потому что стильно, модно, молодёжно. Написал программу, которая разбирает экран Android на элементы: https://gitea.myachin.xyz/umnik/android-ui-viewer

Недавно вернулся к автотестам на проекте и потребовалось улучшить программу:
- поддерживать несколько подключенных устройств
- обновлять экран без необходимости перезапуска программы

Поправил код, создал бранч https://gitea.myachin.xyz/umnik/android-ui-viewer/src/branch/new-features Меня уже устраивает, как он работает. Но не нравится, что вьюхи у меня списком, надо бы дерево.

Разобрался, как разбирать деревья, как их строить. Смотрю, что во Флаттер есть РОДНОГО для отрисовки деревьев. Рекомендуется использовать TreeSliver https://api.flutter.dev/flutter/widgets/TreeSliver-class.html

Три дня я, прошу прощения, проебался с ним. Я чувствовал себя идиотом. Я читал документацию, читал примеры из официальной статьи, но не мог победить баг - при прокрутке списка он не прокручивается, а просто исчезает сверху, см. видео (заодно видно, какие красивости добавил)

Продолжение в комментарии.
👍4
ГОТОВО ДЛЯ РАБОТЫ! https://github.com/flutter/flutter/issues?q=is%3Aopen+label%3Aframework+label%3Ap1%2Cp2+-label%3Ateam-accessibility+label%3A%22has+reproducible+steps%22+-label%3A%22workaround+available%22+-label%3A%22waiting+for+PR+to+land+%28fixed%29%22+-label%3Aplatform-ios+-label%3Aplatform-web+-label%3Aplatform-android
Почти тысяча багов первого и второго приоритета на Flutter, для которых есть шаги воспроизведения, нет (не предложено) обходных решений, которые воспроизводятся на любой платформе, а не на конкретных, для которых нет фикса и при этом они не относятся к accessibility
👍10