Опубликован: 06.05.2014 | Доступ: свободный | Студентов: 2634 / 611 | Длительность: 10:33:00
Лекция 3:

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

Аннотация: В лекции рассматриваются общие вопросы тестирования и отладки.

Введение

Презентацию к лекции Вы можете скачать здесь.

Если вспомнить эволюцию процесса разработки программного обеспечения (см. "Проектирование, ориентированное на пользователей. Пользовательский опыт" ), можно заметить, что с самых ранних этапов развития индустрии разработки ПО, тестирование обязательно присутствовало, как неотъемлемая часть процесса разработки. Это объяснимо, любому разработчику или команде разработчиков необходимо знать насколько продукт соответствует первоначальному плану. Тестирование позволяет участникам проекта лучше понимать процесс разработки и более эффективно управлять им. Благодаря тестированию разработчики могут проверить правильность понимания задач, поставленных заказчиком. Проектные менеджеры в свою очередь могут получать информацию о проблемных местах в процессе разработки, могут принимать оперативные решения о готовности продукта или его версии к эксплуатации, т.е. о возможности выпуска продукта на рынок.

Тестирование может рассматриваться как способ обеспечения качества программного продукта. При постановке задачи обеспечения качества ПО необходимо определить круг заинтересованных лиц, выявить критерии качества для каждой группы заинтересованных лиц, постараться найти оптимальное решение, удовлетворяющее полученным критериям. Процесс тестирования заключается в выполнении приложения на некотором множестве исходных данных и в сравнении полученных результатов с заранее известными (эталонными). Цель тестирования состоит в проверке: удовлетворяют ли свойства и характеристики разрабатываемого приложения заказанным свойствам и характеристикам.

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

Общие вопросы тестирования и отладки

В 1990 году стандартом ISO принято следующее определение тестирования:

Тестирование — это наблюдение за функционированием программного обеспечения в специфических условиях с целью определения степени соответствия ПО требованиям к нему.

Тестирование ориентировано на оценку качества ПО с помощью следующих методов:

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

Процесс тестирования имеет циклический характер и запускается при каждой сборке системы в процессе разработки. В зависимости от задач, которые ставились перед сборкой, проверка может быть более или менее полной. Но, как минимум, она должна включать некоторый набор тестов на "дым", проверяющих, что основная функциональность системы не нарушена, и при ее запуске от компьютера не "валит дым", как из негерметичного трубопровода (для которых исходно такие тесты и применялись). Типовой цикл тестирования приведен на рис. 5.1.

 Цикл тестирования

Рис. 5.1. Цикл тестирования

Рассмотрим кратко этапы цикла тестирования.

  • Определение цели тестирования. Включает выбор тестируемых фрагментов и формулирование задач тестирования (например, определить пригодность архитектуры, проверить реализацию основной функциональности, проверить выполнение требований заказчика в полном объеме).
  • Верификация метода тестирования. Настройка среды и инструментов тестирования, выполнение отдельных тестов, подтверждение возможности реализовать задачи и цели тестирования.
  • Подтверждение правильности сборки. Проверка сборки на явные ошибки, для сборок, в которых не реализован достаточный объем новой функциональности, тестирование может на этом и закончиться.
  • Тестирование и оценка. Разработка (уточнение) необходимых тестов, выполнение тестов в ручном или автоматическом режиме, оценка результатов. Оценивается, с одной стороны, качество и эффективность тестирования, а, с другой стороны, качество тестируемой системы и ее соответствие требованиям, предъявляемым на данном этапе разработки.
  • Улучшение набора тестов. Описание и сохранение тестов, наборов тестовых данных, настроек среды и инструментальных средств, которые можно использовать в последующих тестовых циклах.

Выполнение задач жизненного цикла сопровождается разработкой различных артефактов (документов, моделей и других материалов проекта). Разумеется, и процесс тестирования сопровождается подготовкой некоторых документов:

  • План тестирования. Документ, определяющий стратегию тестирования на каждой итерации. Включает в себя описание целей и задач тестирования в текущей итерации, стадии тестирования для каждой итерации, перечни тестов, начальные и конечные метрики и критерии тестирования, набор методов и инструментальных средств, необходимых для проведения тестирования и оценки качества.
  • Сценарий тестирования (test case) . Документ, содержащий описание теста. Определяет входную информацию, условия и последовательность выполнения действий, ожидаемый выходной результат.
  • Тестовые данные. Документ, определяющий наборы входных данных для тестов, а также ожидаемые результаты, с которыми полученные результаты выполнения тестов должны сравниваться как с эталонными. Имеет смысл хранить тестовые данные в одном месте, при этом данные полезно группировать по группам тестов.
  • Тестовый скрипт. Документ, содержащий описание действий, необходимых для выполнения конкретного сценария тестирования.
  • Набор тестов. Пакет, объединяющий сценарии тестирования. Позволяет группировать тесты с похожими задачами, а также зависимые тесты, которые должны выполняться в определенном порядке, т. к. последующие тесты используют данные, сформированные в ходе выполнения предыдущих.
  • Список идей тестов. Внутренний рабочий документ группы тестирования, содержащий идеи по проверке не функциональных требований к системе, а также идеи о том Что и/или Как стоит еще проверить.
  • Результаты тестирования. Документ, содержащий суммарную информацию о прохождении тестов. Используется для анализа и сравнения с ожидаемыми результатами, позволяет провести детальную оценку качества тестируемого продукта и текущего статуса процесса тестирования. Рекомендуется записывать и сохранять результаты тестирования для каждого этапа.
  • Дефекты. Описание обнаруженных фактов несоответствия системы предъявляемым требованиям. Рекомендуется использовать специализированное инструментальное средство, которое позволяет передавать информацию об обнаруженных дефектах от тестировщиков к разработчикам, а в обратную сторону — сведения об устранении дефектов. А также формировать и отчеты о тенденциях изменения количества обнаруживаемых и устраняемых дефектов.