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

Связь: @MyachinDA
Download Telegram
Кстати для тех, у кого устройство поддерживает Project Treble:

https://developer.android.com/preview/gsi-release-notes
Интересные пермишены в Бете2: Приложения с доступом к финансовым SMS и НЕ БУДЕТ РЕЛИЗИТСЯ
Теперь подсказывается, что именно будет париться, наконец.
Вот о чём я. Раньше было не понятно, что именно расшарится. Сейчас тоже не очень, например, не понятно, как расшарится контент с текстом и фото, но уже лучше.
Будьте осторожны, не удаляйте образы Android Q эмуляторов в релизной версии Студии, иначе рискуете их не вернуть, пока не исправят баг: https://issuetracker.google.com/issues/129907892
Вот так это выглядит. Одинаковые ошибки на все образы
Если вы планируете работать с MS TFS через REST API, эта статья вам пригодится: https://myachinqa.blogspot.com/2019/04/ms-tfs-rest-api.html Она очень большая, очень скучная, но если бы она была мне доступна до того, как я сам стал это изучать, мне было бы намного проще разобраться со всем этим
JFYI. В Google Play тоже есть Development mode, как в самом Android, хотя и лишь с одной опцией (пока?)
Боковая панель > Settings > Тапы по версии Play Store
Возможно это нервное из-за скорого релиза, но сейчас неплохо просмеялся.
Пишут тест на новую фичу. В графе "номер партнёра" прилетает символ '*', хотя там должен быть int. Стали разбираться, как такое вообще возможно. Оказалось, что тестовое значение у нас было 42, которое, из-за ошибки, было приведено к строке. И к строке привели не цифру, а сделали, условно говоря, chr(). То есть 42 — это просто код символа '*' в ASCII.
Недавний баг.

Иногда автотест сценария обновления приложения до новой версии валился с ошибкой, что не почищены наши внутренние БД. Они должны чиститься при обновлении с любой прошлой версии на ту, которая тестировалась и не должны чиститься после этого. Потому что в этих БД изменился формат и старые таблицы дропались. А в будущих версиях (в ближайших, по крайней мере) формат меняться не будет и базы будут заиспользованы как есть.

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

Очень долго пытались понять, почему так происходит и почему не стабильно. В конце-концов ситуация оказалась следующей.
0. Продукт шифрует некоторые базы. Продукт при инициализации запрашивает путь к своим нативным либам (в их состав входит и само средство шифрования). Происходит это либо по явной указке так называемого родительского приложения (т.к. я работаю с SDK, то клиенты его интегрируют в свои приложения — эти приложения и называются родительскими; это не имеет отношения к родительскому контролю или типа того, это в основном вообще банковские приложения), либо через запрос у системного Package Manager.
1. Происходило обновление приложения на новую версию
2. Продукт палил, что изменилось приложение в системе и его нужно срочно проверить
3. Продукт ОЧЕНЬ БЫСТРО реагировал на это и запускался
4. Система не успевала удалить нативные либы из старого пути, где раньше жило приложение
5. Продукт срочно вгружал эти либы
6. К этому времени очухивалось само родительское приложение и передавало новый путь к нативу, который также принимался продуктом

В итоге у продукта 2 набора нативных либ в памяти. При вызове какого-нибудь нативного метода заранее не известно, кто именно отвечает из двоих.
В общем, слишком быстрая инициализация продукта приводила к тому, что он успевал инициализироваться ещё до того, как Package Manager полностью завершал работу по установке обновлённого приложения.
Теперь продукт научился понимать, можно ли уже работать или же система ещё не закончила свои дела.

Вот так. Если вы самая быстрая лапка на Диком Западе, вас поджитают вот такие проблемы.
Media is too big
VIEW IN TELEGRAM
Это был день, когда я принял твёрдое решение отказаться от Wndows. И хотя очевидно, что просто тако такого происходить не должно, мне было просто лень разбираться
https://review.source.android.com/#/c/24397/ Тем временем Google забил на сопровождение старого ресурса и теперь его нельзя нормально открыть.
Впрочем, если знать коммит, то можно его загуглить. В данном случае это af99cdf19a20ec938c97d9e7513f687b28b5f31c и вот он: https://android.googlesource.com/platform/cts/+/af99cdf%5E%21/ Но если у вас была только ссылка, то всё будет сложнее.

Если кому интересно, то это добавление тестов на просирание настроек. Был такой баг в Samsung прошивках во времена 2.2 — они просто не сохраняли настройки. Вот так. Что вы вообще знаете о факапах? Самсунг выпустил на прод, на Galaxy S, прошивку, которая просто не сохраняла настройки приложений. Каждый запуск такого приложения был новым запуском, с настройками по умолчанию: https://issuetracker.google.com/issues/36925224

Чтобы такого не повторялось, Google добавил в CTS (Компатибилити тест сьют: https://source.android.com/compatibility/cts) тест на сохранение настроек. Коммит см. выше.