От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
Проверка влияния внешних событий на работу мобильного приложения
1. Савастюк Наталья
BP Mobile, Минск
www.software-testing.by
n.savastiuk@gmail.com
skype: csi.nataliasavastiuk
Проверка влияния внешних событий
на работу мобильного приложения
5. Примеры багов
Если во время загрузки фалов на Dropbox
пропадает интернет, приложение крешится
Если во время загрузки файлов, свернуть
приложение в БГ и развернуть его, то прогресс бар
перестанет заполняться
После прихода memory warning пропадает с экрана
кнопка «Отправить» (не отрисовывается)
Пропадает соединение с Dropbox и не
восстанавливается до перезапуска приложения,
если во время загрузки тип соединения меняется с
Wi-Fi на 3G
Креш, если во время выделения файлов, нажать
сразу на две строки (выделить 2 файла)
6. Матрица стресс-тестов
Стрессовое
событие 1
Стрессовое
событие 2
Стрессовое
событие 3
Важная операция1
внутри приложения
до стрессовой
ситуации
Ожидаемый
результат после
стрессовых
событий
Y N N
Операция2 внутри
приложения
Ожидаемый
результат после
стрессового
события
N Y Y
Состояние 1
приложения
Ожидаемый
результат после
стрессовых
событий
N N Y
9. Состояния приложения на
момент стрессовой ситуации
Начинайте с очевидных:
длительные операции
фоновые операции
работа с интернетом
Затем можно расширять, анализируя:
Каждое действие пользователя
Внешне «стабильные» состояния приложения
По мере роста опыта и знаний об особенностях
работы приложения вы список расширите или,
наоборот, сузите.
10. Состояния приложения на момент
стрессовой ситуации
Пользователь нажимает на кнопку
«Отправить»
Пользователь случайно нажал на кнопку
«Снять выделение» во время нажатия на
«Отправить» (multitouch)
Идёт процесс загрузки на Dropbox
Пользователь отменяет загрузку файлов
на Dropbox
Открыт таб «Файлы» с выделенными
файлами
Пользователь нажимает на таб
«Плейлисты»
Пользователь случайно нажал на таб
«Плейлисты» во время отмечания файлов,
которые нужно загрузить (multi touch)
12. Необходимость теста
• Идёт процесс загрузки файлов на Dropbox и пропадает
интернет
• Идёт процесс загрузки файлов на Dropbox и приходит
входящий звонок на телефон
Очевидно, что стоит проверить:
• Пользователь выбирает файлы в момент, когда пропадает
интернет
Очевидно, что можно не проверять:
• Пользователь выбирает файлы и приходит входящий звонок
• Пользователь нажимает на таб Files и одновременно
сворачивается приложение
Не очевидно, проверять ли:
14. Мультитачи. Сколько пальцев
использовать?
Пользователь случайно нажал
на кнопку «Снять выделение» во
время нажатия на «Отправить»
Случайно нажал сразу на две
строки с файлами
Пользователь, отмечая файлы,
случайно нажал и на файл, и на
таб «Плейлисты»
16. Комплексные стрессовые ситуации
Потерять интернет после того как сработал
будильник
Выйти в бекграунд, перевернуть девайс,
залочить телефон, разлочить и вернуться в
приложение
Мы осознаем риски и
почти не проводим
подобные тесты
17. Ожидаемый результат
Обычно не очевиден вначале
Записываем в процессе исследования, чтобы
запомнить поведение
Очевидный – не пишем
20. Частота проведения тестирования*
Для нового функционала обязательно
Суперважные – в acceptance
Регрессия раз в год/полгода и по мере
возможности
* Зависит от проекта
21. Итоговые рекомендации по составлению
матрицы стресс-тестов
1. Составьте список возможных стрессовых
ситуаций для ваших условий
2. Выучите их
3. Выделите в своем приложении самые важные
операции
4. Составьте таблицу и отметьте необходимость
тестов (какие операции приложения с какими
стрессовыми ситуациями нужно скрестить)
5. Где возможно, опишите ожидаемые результаты
6. Проведите тесты и там, где невозможно было
заполнить ожидаемый результат, заполните
7. Не забывайте обновлять по мере изменений
приложения
22. Спасибо за ваше внимание!
С удовольствием отвечу на ваши вопросы
Савастюк Наталья
bpmobile.by, Минск
www.software-testing.by
n.savastiuk@gmail.com
skype: csi.nataliasavastiuk
Скачать шаблон матрицы и
пример
Editor's Notes
В этой матрице:
Y – обозначает необходимость проводить тест (yes).
N – обозначает, что тест не имеет смысла (no).