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

Связь: @MyachinDA
Download Telegram
Ребята из приложения для карт Стрелка (Подмосковье) тестируют прям на продакшене, делая пуши на всех
Сегодня услышал презабавную историю.
Один банк в личном кабинете всякие операции оформил ссылками с get запросами, а не post. И клиенты начали охреневать, что у них на счетах происходят совершенно удивительные вещи, которые они не инициировали.
Дело оказалось в том, что современные браузеры, дабы ускорить загрузку страниц, в которые может провалиться пользователь, если будет кликать по ссылкам на текущих страницах, грузят эти страницы заранее, в фоне. В итоге пользователь жмёт на ссылку, а страница открывается мгновенно. И пользователь думает, какой же этот, например Хром, быстрый. А тот просто из кеша достал данные, ведь он уже всё качнул в фоне.

Ну так вот браузеры тыкали на эти ссылки и на бэкэнд уходили валидные get запросы.

Что за банк такой и как давно это было я не знаю.
Как знают все 3,5 человека, которые на меня подписаны, недавно я искал новую работу. Среди вакансий один из сайтов предлагал и такие
Ошибка, которую совершают не редко, но воспроизводят внезапно и чинят буквально чтением документации.
Касается эта ошибка работы с SQLite. И она проста — STRING. Это тип, которого нет в SQLite, но который, не читая документацию, создают.

Чтобы понять о чём идёт речь, можете зайти, например, вот сюда https://sqliteonline.com/ и вставить мой демонстрационный пример:

create table test(testINT INTEGER, testSTR STRING, testTXT TEXT);
insert into test values ('007', '007', '007');
insert into test values ('abc', 'abc', 'abc');
insert into test values ('2e3', '2e3', '2e3');
insert into test values ('2e9999999999', '2e9999999999', '2e9999999999');
insert into test values ('16e25', '16e25', '16e25');
insert into test values ('30e125125', '30e125125', '30e125125');
select * from test;


Смотрите внимательно, что происходит в testSTR. Так что если вам нужны строки, то только TEXT.
https://i.imgur.com/hxMlEMn.jpg в Ставрополе над сиволом для городского рынка решили не париться вообще.

Источник: https://overmind88.point.im/zhvvc
Это оказалось несколько неожиданно, но в Интернете почти не осталось сайтов http only. Если вам вдруг понадобится такой для каких-то тестов, можете ходить на neverssl.com
Мне тут напомнили вещь, которую всё забывал сказать. Встречный в Android VPN клиент даже не пытайтесь применять. Он никогда не работает за всю свою историю.

https://issuetracker.google.com/issues/118789580
Лютое бомбление прямо по курсу
Качество онлайн банкинга ВТБ
И, надо сказать, это наименьшая из проблем этого банка.
При сбросе данных приложению в Android сбрасываются также и пермишены. Но вот разрешение установки других приложений не затрагивается.

Как и разрешение создания окон поверх других приложений.
Никому не нужен MS Office на Android/iOS? Не как отдельные приложения, а именно пакет.
This media is not supported in your browser
VIEW IN TELEGRAM
Великолепное качество встроенного ПО Android 10 для Google Pixel 2
Это не про баг, а просто наблюдение.

Гугл такой: https://developers.google.com/cast/docs/media
Chromecast Ultra поддерживает AAC. Правда не упомянуто, что только стерео. 5.1 он не поддерживает и никогда не будет: https://issuetracker.google.com/issues/69112577 Поддержка 5.1 зарезана на уровне прошивки.

Какова же официальная рекомендация Гугла? «We recommend that users use regular stereo (2-channel) AAC or alternative multi-channel formats like AC3/EAC3 or 5.1 Opus» Используйте, говорят, ac3 или ogg, там вам доступен 5.1. Правда нигде не сказано ещё, что вы не можете пулять в Хромкаст видео, если в нём есть хоть одна дорожка с AAC более чем стерео. Пусть хоть все будут подходящими, но наличие лишь одной сразу сводит поддержку на нет.

Таким образом нужно убрать неподдерживаемую дорожку и засунуть в поддерживаемом формате. Для этого я сейчас пишу приложение. И отлаживаюсь на видео, в котором несколько дорожек AAC 5.1 и одна AC3 5.1. Дабы не тянуть внешние зависимости, в виде того же FFMPEG (потому что проект сразу вырастает на десятки мегабайт), я использую нативные возможности Android 4.3+ (на самом деле 7.0+, потоу что делаю в первую очередь для себя).

Так вот MediaExtractor, который умеет вытаскивать дорожки из медиа, без проблем справляется с AAC (5.1) и с AC3 (тоже 5.1), и с видеодорожкой. Он может их извлечь. Но на данном этапе я хочу извлечь видео дорожку и AC3 и объединить только их. Для этого мне нужен MediaMuxer. И вот MediaMuxer НЕ ПОДДЕРЖИВАЕТ ac3. Никакой. Нельзя создать mp4 файл, объединив две дорожки из оригинального mp4, будет брошего исключение.

Таким образом Гугл говорит, что используйте ac3, чё вы как эти, но не дает инструментов, даже в Android 10, чтобы это сделать средствами самого Android. Если нужная вам дорожка находится в AC3, а не в AAC-2, то вы обязаны будете тянуть внешние инструменты для склеивания видео и аудио. А иначе вы обязаны будете заниматься декодированием AC3 в PCM и из PCM уже в AAC2. Ведь ваш телефон прям создан для транскодирования. Ведь у него шикарный процессор с поддержкой всех нужных инструкций и с великолепным охлаждением, у него огромный объём быстрой оперативной памяти, дабы держать в ней буфферы и не дампить их на постоянную память и главное, у него бездонная батарейка.

Ладно. Цель я не убираю. Приложение будет написано, хотя бы как пробный проект для Маркета. Заодно встрою туда какой-никакой бенчмарк, дабы проверять, в какие форматы лучше всего перегонять, чтобы и быстро для телефона, и поддерживалось ХромКастом.
Screenshot (Nov 29, 2019 00:22:45)