Опубликован: 06.05.2014 | Доступ: свободный | Студентов: 2619 / 601 | Длительность: 10:33:00
Самостоятельная работа 3:

Основы тестирования и отладки приложений на смартфоне

< Лекция 3 || Самостоятельная работа 3: 123 || Лекция 4 >

Запуск теста и просмотр результатов.

Перед запуском теста необходимо удостовериться, что запущен эмулятор или подключено устройство, на котором будет производиться тестирование.

Для запуска теста в Package Explorer щелкните правой кнопкой на названии проекта тестов (SpinnerActivityTest), а затем выберите Run As→Android JUnit Test

После запуска теста появится новая вкладка JUnit рядом с вкладкой Package Explorer.

Вкладка JUnit

Рис. 6.5. Вкладка JUnit

Эта вкладка содержит две панели. Верхняя панель содержит информацию о тестах, которые были запущены, нижняя панель содержит запись ошибок.

Информация о запущенных тестах содержит следующие пункты:

  • общее время, затраченное на исполнение теста;
  • количество запусков (Runs) — количество тестов в классе;
  • количество ошибок (Errors) — количество ошибок и исключений, обнаруженных в приложении за время работы теста;
  • количество провалов (failures) – количество неудачных испытаний во время работы теста;
  • полоса состояния, если тесты прошли успешно, полоса остается зеленой, если тест провален, полоса становится красной;
  • под полосой состояния можно увидеть описание каждого класса в тестирующем приложении, можно просмотреть результаты каждого метода тест-класса.

Спровоцируем провал некоторых тестов

Посмотрим, что произойдет в Android IDE, когда тест будет провален. Можно быстро увидеть какой тест-класс был провален, найти метод или методы, которые были провалены, используя запись ошибки точно найти проблему.

Испортим в файле SpinnerActivity.java метод onCreate(), в этом файле есть закомментированная строка:

// spinner.setOnItemSelectedListener(null);

Снимите комментарий, тем самым проверим работу метода testPreCondition() класса SpinnerActivityTest, в этом методе в строке:

assertTrue(mSpinner.getOnItemSelectedListener() != null);

утверждается, что слушатель событий визуального компонента Spinner не равен null. После удаления символов комментария и запуска тестирующего проекта, это утверждение будет выдавать ошибку, т.е. тест будет провален. Результаты таких изменений на рис. 6.6. Теперь полоса состояния стала красной, количество провалов равно 2. Очевидно желание разработчика посмотреть на эти провалы и увидеть точно, где они появились.

Вкладка JUnit, пример проваленных тестов

Рис. 6.6. Вкладка JUnit, пример проваленных тестов

Чтобы найти место в коде, на котором был провален тест, достаточно щелкнуть мышью по строке testPreCondition, выделенной на рис. 6.6 в нижней панели Failure Trace появится список вызовов, который привел к провалу теста. Первая строка в этой панели сообщает об ошибке, чтобы увидеть место в коде, где произошел провал теста достаточно дважды щелкнуть по строке с ошибкой.

Вместо заключения

Выполненная работа продемонстрировала путь создания тестирующего проекта и способ связывания его с приложением, которое необходимо тестировать. Был выбран и добавлен класс тестовых сценариев, созданы тесты и запущен процесс тестирования: в первом случае без провалов, во втором случае созданы условия для провала тестов, рассмотрена вкладка JUnit с результатами тестирования.

Для дальнейшего развития имеет смысл ознакомиться с основными классами тестовых сценариев:

ActivityInstrumentationTestCase2 — класс функционального тестирования активности;

ActivityUnitTestCase — класс, обеспечивающий изолированное тестирование активности;

ProviderTestCase2 — класс, обеспечивающий тестирование контент-провайдера;

ServiceTestCase – класс, обеспечивающий тестирование сервиса;

Assert — множество методов утверждений;

MoreAsserts — дополнительные методы утверждений;

ViewAsserts – полезные методы для тестирования визуальных компонентов;

TouchUtils – методы, симулирующие сенсорные события активности;

Instrumentation – базовый инструментальный класс;

InstrumentationTestCase – базовый класс сценариев тестов;

InstrumentationTestRunner – стандартный класс запуска Android тестов.

В конце лабораторной работы хочется обратить внимание на статьи, посвященные рассмотрению автоматического тестирования приложений для Android:

http://software.intel.com/ru-ru/articles/automated-android-application-testing;

http://habrahabr.ru/post/219655/.

< Лекция 3 || Самостоятельная работа 3: 123 || Лекция 4 >