![]() |
| Якобы изменений нет |
Показаны сообщения с ярлыком тестировщик. Показать все сообщения
Показаны сообщения с ярлыком тестировщик. Показать все сообщения
7 августа 2019 г.
Ответ No changes detected в продуктах JetBrains при попытке сделать коммит
10 апреля 2019 г.
MS TFS REST API через боль и слёзы
![]() | ||
| Первый подход к снаряду. Выглядит так себе |
Но Microsoft мне показал, насколько я неправ.
13 марта 2018 г.
Форматирование карты памяти как внутренней памяти. Возвращение Android Adoptable Storage
![]() |
| Получаем вот этот экран |
В моём же варианте речь про Android Emulator. Дело в том, что
ещё недавно образы в эмуляторе позволяли форматировать «карты памяти» так, чтобы они становились внутренней памятью. Без этого вы не можете, к примеру, выполнить простое
adb push myDir /sdcard/
3 февраля 2018 г.
Проблема запуска Android emulator из командной строки
![]() |
| Хочется, но не удаётся |
для GNU/Linux илиERROR:android/android-emu/android/qt/qt_setup.cpp:28:Qt library not found at ../emulator/lib64/qt/lib
emulator/qemu/windows-x86_64/qemu-system-i386.exe': No such file or directoryдля Windows, то вам сюда.
26 мая 2016 г.
Негативные сценарии тестирования
Ииииииии... Это последняя запись из цикла! Она самая короткая, самая простая и практически целиком состоит из реальных историй. По возможности — глупо-смешных. Даже есть видео, снятое специально для записи вот прямо в момент написания. Свежачок-с. К сожалению, я не догадался снять скриншот с сообщением о падении Youtube клиента, он бы подошёл. Упал прямо при заливке того ролика, который вставлен в статью. Ладно, пусть будет мой экран блокировки.
На старте тестирования, вне зависимости от того, новый это проект или такой, что его стоило бы уже похоронить, в целом всегда ясно, с чего начинать. Если, конечно, к момент старта тестирования ни одно из звеньев цепи не слажало. Обычно тестировщики вычитывают требования и прочие документы с нерусскими названиями, типа «БиЭрКью», «ЭсАрки» и «Юзер стори» и прикидывают, как написать тест кейс, чтобы он проверил выполенения всех этих документов. Это всё понятно, на поверхности и нет смысла на этом задерживаться. Но есть ещё поведение самого Android, о котором иногда не знают не то что аналитики, но даже архитекторы и некоторые разработчики. А помня, что с AOSP никто не работает, только с кастомами, таких особенностей всплывает довольно много. И я говорю не о стрессовых сценариях, когда памяти нет или батарейку внезапно вынули (как-то встречал негодование человека на терминал GNU/Linux, что тот не показывает пароль при вводе, а у него глючная клавиатура и он не понимает, вводит пароль или же это клавиатура снова не работает), а о штатном поведении кастомизации Android и даже поведении, заложенном в AOSP. То есть штатные поведения системы, которые могут отрицательно сказаться на тестируемом продукте. Так называемые, негативные сценарии.
На старте тестирования, вне зависимости от того, новый это проект или такой, что его стоило бы уже похоронить, в целом всегда ясно, с чего начинать. Если, конечно, к момент старта тестирования ни одно из звеньев цепи не слажало. Обычно тестировщики вычитывают требования и прочие документы с нерусскими названиями, типа «БиЭрКью», «ЭсАрки» и «Юзер стори» и прикидывают, как написать тест кейс, чтобы он проверил выполенения всех этих документов. Это всё понятно, на поверхности и нет смысла на этом задерживаться. Но есть ещё поведение самого Android, о котором иногда не знают не то что аналитики, но даже архитекторы и некоторые разработчики. А помня, что с AOSP никто не работает, только с кастомами, таких особенностей всплывает довольно много. И я говорю не о стрессовых сценариях, когда памяти нет или батарейку внезапно вынули (как-то встречал негодование человека на терминал GNU/Linux, что тот не показывает пароль при вводе, а у него глючная клавиатура и он не понимает, вводит пароль или же это клавиатура снова не работает), а о штатном поведении кастомизации Android и даже поведении, заложенном в AOSP. То есть штатные поведения системы, которые могут отрицательно сказаться на тестируемом продукте. Так называемые, негативные сценарии.
9 мая 2016 г.
Android SDK. Тестируем по-настоящему!
Эта запись — предпоследняя из всего цикла. Пожалуй, она самая скучная, однако она ближе всего к тому, что называется тестированием. И, мне кажется, она ещё и самая длинная. Я попытался разбавить всю эту скукоту наглядными примерами, скриншотами. Книги с картинками читают охотнее? По крайней мере популярные «блоггеры» (а я — популярный, у меня есть минимум 8 читателей, скоро продамся кому-нибудь и работать перестану!) часто ставят всякие картинки, возможно это и работает.
Как бы то ни было, здесь можно получить минимальное понимание того, что есть в Android SDK и что из этого нужно тестировщику. А главное — зачем. Ещё тут есть море грамматических ошибок, наверное, так как писать большую часть текста приходилось ночью, а я по ночам люблю спать и после 22 часов, как правило, уже сплю.
Уверен, вам было интересно узнать, во сколько я засыпаю. Читайте дальше, там ещё интереснее!
Android SDK
Мы подбираемся всё ближе и ближе к инструментам и методам тестирования. Инструменты для тестирования, а также всякий вспомогательный инструментарий, входит в состави Android SDK. Самые нужные компоненты из состава SDK, конкретно для тестировщиков, это инструменты SDK, они же SDK tools, инструменты сборки, они же Build tools (внезапно, да?) и инструменты платформы, они же Platform tools. Нет никакого смысла запоминать это. Я просто сказал названия папок из установленного пакета Android SDK:| Рис. 1. Содержание папки Android SDK |
14 апреля 2016 г.
Исследовательское тестирование как метод изучения Android
![]() |
| Картинка без смысла |
В целом мы выяснили в общих чертах, как работают приложения в Android. Это поможет нам понять, как проводить хорошее глубокое исследовательское тестирование приложений и самой операционной системы. Глубоким я буду считать такое, которое позволит находить не ошибки переводов и не проблемы с влезанием надписей в кнопки, а разлом функциональности продуктов из-за архитектурных особенностей как Android, так и устройств под этой операционной системой.
Сразу нужно уяснить, что более-менее одинаковые реализации Android есть лишь у горстки производителей. И ситуация, когда на одной и той же модели устройства, но выпущенные в разных странах или даже в одной стране, но от разных операторов, используются разные прошивки — это жестокая реальность! Прошивка — это не ОС Android, а всё, под чем работает устройство. Начиная от загрузчика, заканчивая доступными в Android на этом устройстве языками и предустановленными приложениями с их настройками. ОС Android — это лишь часть прошивки.
Все ключевые термины, что описано ниже, вы уже встречали в предыдущей статье из этого цикла. Теперь дополним понимание этих терминов с той стороны, которая называется «исследовательское регрессионное тестирование». Регрессионное здесь — потому что я буду описывать проблемы, которые появлялись из-за обновлений системы.
6 апреля 2016 г.
Основы понимания приложений
Этой записью я открою короткий цикл длинных и скучных (не просто так же имя блогу дано!) статей о тестировании приложений под Android. Здесь теория, теория, теория, вперемешку с историями «из жизни», которые, конечно, наиболее ценны (для меня).
Все статьи буду идти от очень общего к частностям. Это поможет сначала разобраться с тем, как всё работает, как устроено, как называется, а затем — жонглировать этими теоретическими знаниями. Например в этой, открывающей статье, я сначала расскажу вскользь о компонентах приложений, затем расскажу о них подробно, а затем — добавлю понимания, где можно найти эти компоненты. Так будет построена каждая последующая статья, но, кроме того, каждая последующая будет сильно завязана на каждую предыдущую. Так что если уж решили подтянуть уровень понимания Android и исследовательского тестирования приложений под Android, стоит читать всё.
К чёрту, приступим!
Программный код пишется, в основном, на Java. То есть вы можете писать на чём угодно, хоть на той же Scala, да хоть на Python. Но тут есть свои подводные камни, очевидные и не очевидные. Можно писать и на C и нативный код будет работать также быстро, как и Java (слова «быстро» и «Java» в одном предложении и даже нет слова «память», спешите видеть!), возможно даже быстрее, но это дороже в скорости разработки и затратах на сопровождение.
Итак, код пишется на Java. Далее Android SDK (Software Development Kit — набор средств для разработки) собирает код и все требуемые файлы ресурсов в файл APK (Android Application Package) — программный пакет Android, который суть — zip файл с расширением .apk. То, что это zip, легко убедиться, посмотрев на заголовок, где мы увидим буквы PK:
Ну или «РК» — РосКом и многозначительное многоточие… Кстати, а кто помнит, какие буквы находятся в заголовках exe и dll файлов и что они означают? Это буквы MZ — инициалы Марка Зибовски, бывшего архитектора компании Microsoft, который был одним из создателей MS DOS. Он и разработал этот формат исполняемых файлов, который заменил собой устаревший .com. Пятиминутка бесполезных знаний!
Все статьи буду идти от очень общего к частностям. Это поможет сначала разобраться с тем, как всё работает, как устроено, как называется, а затем — жонглировать этими теоретическими знаниями. Например в этой, открывающей статье, я сначала расскажу вскользь о компонентах приложений, затем расскажу о них подробно, а затем — добавлю понимания, где можно найти эти компоненты. Так будет построена каждая последующая статья, но, кроме того, каждая последующая будет сильно завязана на каждую предыдущую. Так что если уж решили подтянуть уровень понимания Android и исследовательского тестирования приложений под Android, стоит читать всё.
К чёрту, приступим!
Программный код пишется, в основном, на Java. То есть вы можете писать на чём угодно, хоть на той же Scala, да хоть на Python. Но тут есть свои подводные камни, очевидные и не очевидные. Можно писать и на C и нативный код будет работать также быстро, как и Java (слова «быстро» и «Java» в одном предложении и даже нет слова «память», спешите видеть!), возможно даже быстрее, но это дороже в скорости разработки и затратах на сопровождение.
Итак, код пишется на Java. Далее Android SDK (Software Development Kit — набор средств для разработки) собирает код и все требуемые файлы ресурсов в файл APK (Android Application Package) — программный пакет Android, который суть — zip файл с расширением .apk. То, что это zip, легко убедиться, посмотрев на заголовок, где мы увидим буквы PK:
16 января 2016 г.
Не используйте aapt для удаления файлов из apk
Очень короткая запись про то, что aapt не стоит использовать для модификации apk файлов, лучше 7z подтянуть или иное решение. А ещё лучше, конечно, свалить в Новую Зеландию или Таиланд на ПМЖ, чего уж тут. Открыт для ваших предложений =)
29 декабря 2015 г.
В Android аду есть специальное место для Samsung
Это перевод вот этой записи: http://verybadalloc.com/android/2015/12/19/special-place-for-samsung-in-android-hell/. Как всегда, рекомендую читать в оригинале, если есть такая возможность.
Отказ от отвественности: если вы здесь только чтобы услышать, как кто-то поносит Samsung, проматывайте вниз. И да, вы пришли по назначению.
Если вы используете библиотеку поддержки appcompat (конечно же используете), то могли видеть вот такой стек трейс с Статистике падений от устройств Samsung под Android 4.2.2:
Отказ от отвественности: если вы здесь только чтобы услышать, как кто-то поносит Samsung, проматывайте вниз. И да, вы пришли по назначению.
Если вы используете библиотеку поддержки appcompat (конечно же используете), то могли видеть вот такой стек трейс с Статистике падений от устройств Samsung под Android 4.2.2:
java.lang.NoClassDefFoundError: android.support.v7.internal.view.menu.MenuBuilder at android.support.v7.app.ActionBarActivityDelegateBase.initializePanelMenu(ActionBarActivityDelegateBase.java:991) at android.support.v7.app.ActionBarActivityDelegateBase.preparePanel(ActionBarActivityDelegateBase.java:1041) at android.support.v7.app.ActionBarActivityDelegateBase.doInvalidatePanelMenu(ActionBarActivityDelegateBase.java:1259) at android.support.v7.app.ActionBarActivityDelegateBase.access$100(ActionBarActivityDelegateBase.java:80) at android.support.v7.app.ActionBarActivityDelegateBase$1.run(ActionBarActivityDelegateBase.java:116) at android.os.Handler.handleCallback(Handler.java:725) at android.os.Handler.dispatchMessage(Handler.java:92) at android.os.Looper.loop(Looper.java:176) at android.app.ActivityThread.main(ActivityThread.java:5299) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:511) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1102) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:869) at dalvik.system.NativeStart.main(Native Method)
Подписаться на:
Сообщения (Atom)







