// это скорее список тодо больше всего на свете
Вступление
Текстовые входы
Другие входы (флажок, коммутаторы, взаимоисключающие элементы управления)
Управление ошибками (исключения, сбои, оповещения, отображение ошибок)
Навигация (push, pop, вкладки, модальные, вращение экрана)
Фон (сохраненное состояние, карта трамплина)
Подключение (Wi-Fi, Mlow Edge, 2G, 3G, 4G, прерывистое, ноль-байты, автономный, плоский режим) и аппаратное подключение (USB, NFC, Bluetooth, Wi-Fi)
Локализация (текста и изображений, в различных настройках на языке телефона против языка приложений против текущего региона)
Прерывания (принятые звонки, отклоненные звонки, отправка/получение SMS, питания, перезапуск, отправка/уведомление, оповещения, низкая память, домашний экран, переключение приложений, плоский режим, из хранения): должно означать, что приложение может остановиться, сама пауза и восстанавливаться на правильном экране и в правильном состоянии при прохождении фонового фона или прерыванием любым средством. Отвечая на приложения из уведомления .
Хранение (это все хранятся правильно, без рисков, в нужном месте)
Безопасность (использует ли ваше приложение хранить информацию о платежей или информацию о кредитной карте? Использует ли ваше приложение безопасные сетевые протоколы? Могут ли они быть переключены на небезопасные? Запрашивает ли приложение больше разрешений, чем необходимость? Безопасность для запуска приложений Уточнивание в области безопасности и ошибок приложений.
Доступность (кнопки программного обеспечения, масштабирование, размеры шрифтов, текст к речи, ...)
Производительность (использование батареи, использование процессора, использование памяти (и утечки), управление хранением (диск против карты), отзывчивость, размер экрана, время для запуска приложения, время на экране времени на запуске, экран тяжелой загрузки / Yous должны распространять нагрузки, непрерывное нажатие клавиши). Что бы ни случилось, должно быть плавно разобраться с хорошей быстротой и ясной реакцией.
Фоновая работа (выполнение работы за пределами основного потока, чтобы не блокировать пользовательский интерфейс, но также не иметь массовой работы, когда приложение «холостое» или на фоне, дренирование батареи/данных/и т. Д.)
Интеграция (с приложением работает камера, GPS, Bluetooth)
Обратная совместимость, оборудование совместимость: проверьте все версии всех устройств, если это возможно. Приложение должно быть установленным и полностью полезным (если на этом устройстве нет функций)
Изображения: правильный размер и вес на всех устройствах и ориентациях. Не растянут, не пиксель, не слишком HD и т. Д.
Социальные: политики обеспечения безопасности и конфиденциальности доступны, пользователь может выходить или отказаться. Пользователям предложено, что может/произойдет, когда они дадут права, и когда произойдет сказанная вещь (посты/акции/лайки).
Реклама (отображается/скрыта, когда они должны, отображать соответствующий контент)
Часовые пояса: удаленные звонки/время по сравнению с временем телефона против текущего времени региона => Используйте UTC везде везде, преобразуйте в локальное время в представлении
Магазины: Приложение видно только в нужных магазинах/необходимости (iOS Appstore, Playstore, Android Market и т. Д.), И видно только на совместимых устройствах. Приложение планшета не должно быть видно в магазине смартфонов. Страница магазина обновлена с обновлениями версий, описанием, именем/номером, тестированием, уведомленными перед выпуском,
Предварительные проверки / предварительные проверки магазина (так что обзор магазина должен пройти)
Значки приложений доступны во всех необходимых форматах; Значки магазина доступны; Все изображения приложений доступны во всех форматах (1x, 2x, 3x и т. Д.)
Совместимость ОС, Crossplatform совместимость (работает ли это на iOS / Android / Windows Phone, как это должно?)
Совместимость версий: работает ли в iOS 9, 10, 11, 12? Проверьте свою цель и все версии, которые вы должны поддерживать
Это работает на всех устройствах на всех версиях? : iPhone, iPad, iPhone X, iPhone #S, а также Android (Omegalul)
Ориентации (Сообщения об ошибках, видео, сплески, навигация и обычные экраны во всех ориентациях, на всех размерах устройства)
Звук (останавливается, когда переходит на фоновый?
Уведомления (отправляются, когда они должны, богаты? Глубоко связаны? Изменить значок? Значок обновляет сам приложение, считывается?
Жесты
// Фактический список вещей, которые я не хочу забывать
О чем это? Речь идет о тщательном и полностью тестировании вашего приложения. Этот список будет включать как можно больше элементов, которые вы должны проверить. Многие из которых вы, вероятно, уже проверили, некоторые, о которых вы, возможно, не думали. Речь идет о проверке всех коробок и либо подтверждении того факта, что вы действительно проверяли X & Y, но вы также решили игнорировать Z. Многие элементы контрольного списка могут не применить вас, потому что ваше приложение не имеет этой конкретной функции или не использует конкретную технологию. Вы также можете просто захотеть пропустить некоторые тестирование по любой причине, и это нормально. Это зависит от вас, чтобы узнать и решить; Пока вы приняли решение, это означает, что вы прочитали список, приняли цену и последствия (не) тестирования и полезны!
Если вы подумаете о своем проекте, у вас, вероятно, есть шоры. Шорны программиста или владельца являются худшими, потому что вы знаете, что должно делать приложение, и, неизбежно, вы будете проверять в этих границах. Пользователи могут использовать ваше приложение не так, как вы думали, и это будет проблемой UX. Мы здесь только о тестировании, обеспечении того, чтобы ваше приложение работает офлайн, или на низком батареи, или при отрицании прав доступа, которые вам действительно нужны. Некоторые вещи, которые пользователи могли бы сделать, которые вы воспринимали как должное в течение всех этих недель тестирования. Это в основном о «мышлении за пределами коробки» или, как я люблю это называть: выполнять наилучшую работу в качестве тестера.
Вот довольно известный твит, который иллюстрирует то, что я имею в виду.
Инженер QA входит в бар. Заказывает пиво. Заказы 0 пива. Заказы 999999999 пиво. Заказывает ящерицу. Заказы -1 сорта пива. Заказывает SFDELJKNESV.
- Билл SEMPF (@SEMPF) 23 сентября 2014 г.
Это смешно (или, по крайней мере, мне нравится думать, что это так), и это правда. Этот простой пример иллюстрирует много вещей, чтобы проверить ваше приложение.
Весь список выглядит довольно ошеломляющим, и это нормально. Я хочу, чтобы это было максимально полным. Как я уже говорил ранее, дело в том, чтобы сообщить вам о многих возможностях. Вам решать, стоит ли тестировать элемент для вашего конкретного случая. Это или нет или нет вашего решения, если вы приняли решение и знаете об этом. В этом смысл этого списка.
Вы можете использовать этот список, как вам нравится, потому что до тех пор, пока вы используете его, вы улучшаете качество отправленного программного обеспечения. Тот факт, что вы используете этот список, гораздо важнее, чем то, как вы используете этот список. Это может быть тщательное и обычное прохождение, предварительный контрольный список или даже простой, как быстрое чтение перед сном. Пока вы читаете это и знаете, что он там, это будет каким -то образом полезно.
В качестве быстрого, но очень важного примечания, помните, что большая часть этого тестирования может быть проведена с использованием классических модульных тестов и тестов пользовательского интерфейса. Это уже должно покрывать подавляющее большинство важных элементов для проверки. Остальные можно проверить вручную, если это необходимо. Это означает, что вы можете написать тестовые люксы и использовать его в разных местах вашего приложения, чтобы обеспечить долгосрочную стабильность. Тестирование всего этого вручную было бы кошмаром ; Если вы не знаете, как писать модульные тесты или тесты пользовательского интерфейса, посмотрите. Там есть чему поучиться, что сэкономит вам огромное количество времени, денег и избежать испытания, в котором есть ручное тестирование.
Я в основном пишу это в одиночку, единственная помощь/вдохновение, которое я получил, была от просмотра Интернета (см. Следующую главу, ID) по различным предметам. К сожалению, я ограничен своими собственными знаниями и опытом, что означает, что в областях, в которых у вас, дорогой читатель, не хватает много контента. Вот где Github появляется; Вы можете свободно попросить запрос на привлечение, изменение моего контента или добавление своего собственного. Я рассмотрю это и подтверждаю, насколько мне известно, вероятно, с помощью сообщества. Такие вещи, как безопасность, шифрование, сеть, это области, где мне не хватает больше всего. Учитывая, что я средний Джо, это, вероятно, там, где большинству людей не хватает мастерства, и где ваше приложение будет наиболее уязвимым/не хватает. Это означает, что это области (те, в которых вы слабые) должны быть тройной проверены, и вы обязательно должны потратить на это дополнительное внимание!
Другие способы внесения / сказать, спасибо, будут следующие:
В конце концов, я трачу много времени, чтобы сэкономить вам все время, это должно стоить чего -то из вышеперечисленного: D
И, наконец, я хотел бы поблагодарить Майкла Хантера за его удивительный контрольный список, который вдохновил меня начать свой собственный контрольный список специально для мобильной разработки (iOS, Android, Windows Phone). Похоже, что много времени, и усилия были вложены в эту версию списка, которая, как я знаю, даже не первая версия. Это отличная работа, и если вы вне мобильного телефона, я настоятельно рекомендую вам проверить ее. Моя единственная надежда на то, чтобы когда -нибудь достичь контрольного списка аналогичного качества. Оттуда я нашел несколько контрольных списков в Интернете, большинство из них очень неполными, но тот, кто выделялся,-это контрольный список Дэвида Диаса, который также вдохновлял меня во многих отношениях на улучшение моего собственного. Пожалуйста, иди и проверь его, это работа, которую стоит распространять!
Текстовые входы бывают разных вкусов, размеров и вариантов использования. Очевидно, что вы не относитесь к password полям так же, как относиться к другому поле, и есть много полей с множеством различных целей. Этот список должен охватывать их все или, по крайней мере, большинство из них. Тестирование вашего ввода будет выполнена с помощью нескольких аспектов. Вы должны убедиться, что валидация работает в логике и пользовательском интерфейсе, чтобы текстовое поле обрабатывает всевозможные напряжения и входы, и что, если таковые имеются, форматирование работает должным образом. Все они в конечном итоге должны предоставить вам рабочее текстовое поле.
Вы еще не закончили, если вы не имели дело со всеми следующими входами и ситуациями, при проверке текстовых входов. Обратите внимание, что они также применяются к большинству других типов ввода (пароль, электронная почта, номера и т. Д.). Если вы имеете дело с каким -либо типом строкового ввода, рассмотрите следующий список, а также соответствующий список.
aBCd 1234 #@ !? ;) $= § :grinning: или :-) или? или U+1F60A 123 t , " , ... string.Empty nullВы еще не закончили, если вы не пытались ввести данные следующими способами:
И это только для одного ввода текста в одном экране вашего приложения. Вы должны тщательно проверить каждое поле ввода текста по всему приложению. И это даже не упоминает форматирование ввода, например, автоматическое добавление пробелов между входами или заставляя некоторых символов быть окрашенными или измененными на верхнюю регистрацию.
Вы еще не закончили, если вы не тщательно протестировали все свои номера с
0 13.37 или 13,37 (размышления о разделителе в зависимости от локали!) -1337 10^20 "124" 12.23 против 12,23 10.234,96 против 10,234.96 13.37 € vs € 13.37 13.34 вместо 13.3389 13.00 или только 13 , или что -то еще полностью? 4000 , но не 3999.99 , или я также могу ввести 4000.56 ? 12345 становится 0,12345 или ,12345 или что -то еще? Это переформатируется до 0,12 ? -1 , 0 , -1000 , 234940 ) Вы еще не закончили, если вы не тщательно протестировали все свои входы электронной почты с
@ @ . характер . , - , _ и т. Д.) ù , à и т. Д. Ты еще не закончил, если
Ты еще не закончил, если у тебя нет
Ты еще не закончил, если
Ты еще не закончил, если
Ты еще не закончил, если
Входные данные не всегда текстовые в формах, есть и другие способы, которыми люди могут дать свой ... вклад. И поэтому есть и другие способы забыть вещи!
Ты еще не закончил, если
Ты еще не закончил, если
Ты еще не закончил, если
Ты еще не закончил, если
Управление ошибками - это столб приложения в хорошем здоровье. Это поможет вам отслеживать проблемы (другие инструменты также помогут) и, следовательно, исправят ошибки. Но вы не хотите, чтобы это было препятствием для вашего пользователя и их опыта вашего приложения. Существует прекрасный баланс для достижения хорошего UX, отслеживания ошибок и уведомлением пользователя о проблеме.
Ты еще не закончил, если
Ты еще не закончил, если
Ты еще не закончил, если
Ты еще не закончил, если