может писать код, который связан с библиотеками тестируемого ПО. Это типично для юнит-тестирования (англ. unit testing), при котором тестируются только отдельные части системы. Оно обеспечивает то, что компоненты конструкции — работоспособны и устойчивы, до определённой степени. При тестировании белого ящика используются метрики покрытия кода.
При тестировании чёрного ящика, тестировщик имеет доступ к ПО только через те же интерфейсы (например, при интеграции приложений), что и заказчик или пользователь, либо через внешние интерфейсы, позволяющие другому компьютеру либо другому процессу подключиться к системе для тестирования. Например, тестирующий модуль может виртуально нажимать клавиши или кнопки мыши в тестируемой программе с помощью механизма взаимодействия процессов, с уверенностью в том, все ли идёт правильно, что эти события вызывают тот же отклик, что и реальные нажатия клавиш и кнопок мыши. Как правило, тестирование чёрного ящика ведётся с использованием спецификаций или иных документов, описывающих требования к системе. Как правило, в данном виде тестирования критерий покрытия складывается из покрытия структуры входных данных, покрытия требований и покрытия модели (в тестировании на основе моделей).
При тестировании серого ящика разработчик теста имеет доступ к исходному коду, но при непосредственном выполнении тестов доступ к коду, как правило, не требуется.
1.5. Основные технологии и методы тестирования
Вопросы для рассмотрения: Стандарты и модели жизненного цикла разработки программного обеспечения. Модульное тестирование, интеграционное тестирование, системное тестирование, регрессионное тестирование. Издержки тестирования. Ручное и автоматизированное тестирование. Тестирование графического интерфейса. Тестирование производительности. Нагрузочное тестирование. Стресс тестирование. Конфигурационное тестирование. Тестирование надежности, удобства использования, производительности.
Рекомендуемая литература: 7.
Перечень дополнительных ресурсов: 4, 5, 6, 10. Наименование вида самостоятельной работы: изучение
литературы; подготовка к практическим занятиям; выполнение тестовых заданий; выполнение контрольной работы.
Технологий тестирования существует целое множество. Условно их можно отнести к статическим или к динамическим.
Необходимо разобраться в том, что же такое динамическое тестирование, а что такое статическое, и какие технологии они используют.
Статическое тестирование – это процесс, который обычно ассоциируют с анализом ПО. Статическим тестированием пользуются для верификации практически любого артефакта разработки: программного кода компонент, требований, системных спецификаций, функциональных спецификаций, документов проектирования и архитектуры программных систем и их компонентов, и т.д. Использование статических методов тестирования – один из наиболее эффективных способов обнаружения дефектов на ранних стадиях разработки ПО. Действительно, статическое тестирование – это единственный способ тестирования без запуска программного кода приложения.
Динамическое тестирование – процесс тестирования, производимый над работающей системой или подсистемой. Оно не может быть осуществлено без запуска программного кода приложения. Если быть более точным, динамическое тестирование состоит из:
запуска системы или подсистемы;
вызова необходимых функциональных элементов или модулей;
сравнения через графический интерфейс пользователя поведения системы с ожидаемым результатом поведения.
Широко используемыми методами тестирования являются
модульное тестирование, интеграционное тестирование, приемочное тестирование, и тестирование системы. Программное обеспечение подвергается этим испытаниям в определенном порядке:
модульное тестирование;
интеграционное тестирование;
системное тестирование;
приемочные испытания. Методы тестирования:
Восходящее тестирование – программа собирается и тестируется снизу-вверх.
Нисходящее тестирование – программа собирается и тестируется сверху вниз. Изолировано тестируется только головной модуль.
Метод большого скачка – каждый модуль тестируется автономно. По окончании тестирования модулей они интегрируются
всистему все сразу.
Метод сандвича – представляет собой компромисс между восходящим и нисходящим подходами. При использовании этого метода одновременно начинают восходящее и нисходящее тестирование, собирая программу как снизу, так и сверху и встречаясь, в конце концов, где-то в середине. Точка встречи зависит от конкретной тестируемой программы и должна быть заранее определена при изучении ее структуры.
2.ПРАКТИЧЕСКИЕ РАБОТЫ
2.1. Практическая работа № 1 «Процессы отладки и тестирования. Основные законы теории
тестирования программных продуктов»
Рекомендуемая литература: 7.
Перечень дополнительных ресурсов: 1, 3, 9, 10.
Задание:
Цель работы: в практической работе тестируем и оцениваем качественные показатели ПП.
Методика оценки качественных показателей ПП основана на составлении метрики ПП. В лабораторной работе необходимо выполнить следующее:
Выбрать показатели качества (не менее 5) и сформулировать их сущность. Каждый показатель должен быть существенным, т. е. должны быть ясны потенциальные выгоды его использования. Показатели представить в виде таблицы.
Показатели |
Сущность |
Экспертная оценка |
Оценка, установленная |
качества |
показателя |
(вес) wi |
экспериментом ri |
|
|
|
|
Установить веса показателей wi (∑wi =1). |
|||
Для каждого показателя установить конкретную численную |
|||
оценку ri от 0 до 1, исходя из следующего: |
|
||
0 – свойство в ПП присутствует, но качество его неприемлемо; 0.5 - 1 – свойство в ПП присутствует и обладает приемлемым
качеством; 1 – свойство в ПП присутствует и обладает очень высоким
качеством.
Возможно, присвоение промежуточных значений в соответствии с мнением оценивающего лица относительно полезности того или иного свойства ПП.
Результатом выполнения данной работы является отчет об оценке качества ПП
2.2. Практическая работа № 2 «Выявление дефектов по тестовым сценариям»
Рекомендуемая литература: 5.
Перечень дополнительных ресурсов: 4, 5, 7.
Цель работы: провести функциональное и нефункциональное тестирование мобильных и веб-приложений.
Общие сведения: Тестирование мобильных и веб-приложений представляет из себя комплексную задачу, которая требует глубоких знаний и опыта, а также владения разнообразными методами тестирования. Необходимо провести тестирование вёрстки, функциональное тестирование, Usability тестирование, тестирование безопасности, тестирование производительности.
Необходимо учитывать особенности тестирования на мобильных устройствах:
размер экрана и touch-интерфейс;
ресурсы устройства;
различные разрешения экрана и версии ОС;
реакция приложения на внешние прерывания;
удобство навигации по приложению;
тестирование вёрстки сайта;
отсутствие пустых экранов;
одновременное нажатие на все клавиши («защита от дурака»);
жесты предусмотренные функционалом;
Подготовка и порядок выполнения работы:
выбрать любой интернет-сайт и эмулятор (симулятор) мобильного устройства;
провести функциональное и нефункциональное тестирование этого сайта;
найти дефекты в работе сайта, сравнив отображение на эмуляторе устройства и на ПК в различных браузерах;
Заполнить тест-план и 10 тест-кейсов для тестирования
сайта.
2.3. Практическая работа № 3 «Метрики тестирования и качества. Метрики покрытия»
Рекомендуемая литература: 7.
Перечень дополнительных ресурсов: 2, 4, 10.
Задание:
1.познакомьтесь с метриками;
2.познакомьтесь с характеристиками и требованиями к ним, которые предъявляются к человеко-машинным интерфейсам программно-технических комплексов в атомной энергетике;
3.выберите вариант задания (таблица 1);
4.определите метрики для оценки заданной характеристики качества (для этого выберите метрики из моделей 9126, QUIM и т.д. или разработайте собственные оригинальные метрики для следующих характеристик пользовательских программных интерфейсов);
5.задайте метрику в форме спецификации;
6.обоснуйте адекватность выбранных метрик;
Варианты заданий
Таблица 1. Характеристики и требования к ним
№ |
Характеристика |
|
Описание |
|
|
||
|
Безопасность |
Дизайн |
интерфейса |
должен |
обеспечивать |
||
1. |
минимальную возможность травм и воздействия |
||||||
персонала |
|||||||
|
|
вредных материалов. |
|
|
|
||
|
|
Роль |
оператора |
должна |
состоять |
из |
|
2. |
Когнитивная |
целенаправленных и значимых задач, которые |
|||||
|
совместимость |
позволяют персоналу |
поддерживать хорошую |
||||
|
|
осведомленность с АЭС и поддерживать уровень |
|||||