- •2015 Г.
- •1. Тестирование программного обеспечения
- •1.1 Модульное тестирование
- •1.2 Интеграционное тестирование
- •1.3 Системное тестирование
- •1.4 Регрессионное тестирование
- •1.5 Ручное и автоматизированное тестирование
- •2. Автоматизация тестирования программного обеспечения
- •2.1 Основные аспекты автоматического тестирования
- •2.2 Преимущества и недостатки автоматического тестирования
- •3. Практическая часть
- •3.1 Постановка задачи
- •3.2 Описание тестируемой программы
- •3.3 Выполнение тестирования
- •3.4 Листинг тестов
- •3.5 Листинг тестируемой программы
2.2 Преимущества и недостатки автоматического тестирования
Основная особенность автоматизированного тестирования - возможность быстрого проведения регрессионных тестов. Главными плюсами автоматизации является увеличение эффективности персонала b более раннее обнаружение дефектов. Использование системы автоматизации сокращает до минимума время пропуска тестов, без которого невозможно подтвердить уменьшение количества оставшихся ошибок в программной системе. Эти преимущества компенсируются существенным недостатком – дороговизной. Из-за высокой цены на внедрение и поддержку автоматизации тестирования около 50% компаний до сих пор применяют в основном ручное тестирование. Экономическая целесообразность автоматизации тестирования может быть выражена формулой (2.2.1) [5]:
,
(2.2.1)
где
- коэффициент возврата вложений в
автоматизацию;
-
количество выполнений данного набора
тестов в течение цикла разработки;
- время, затрачиваемое
на выполнение набора тестов вручную
(ч);
- зарплата
тестировщика (в час);
- время, затрачиваемое
на автоматический набор тестов (ч);
- зарплата
программиста (в час);
- время, затрачиваемое
на разработку и поддержку автоматизации
тестирования (ч);
- зарплата инженера
по автоматизации тестирования ПО (в
час);
- стоимость лицензий
программного обеспечения для тестирования.
Автоматизация тестирования в проекте будет оправданной, если коэффициент A > 1.
Еще одним недостатков автоматизированного тестирования является его трудоемкость: несмотря на то, что оно позволяет устранить часть рутинных операций и ускорить выполнение тестов, большие ресурсы могут тратиться на обновление самих тестов. Это относится к автоматизации и тестирования на уровне кода, и тестирования пользовательского интерфейса. При рефакторинге часто бывает необходимо обновить и модульные тесты, а изменение кода тестов может занять столько же времени, сколько и изменение основного кода. С другой стороны, при изменении интерфейса приложения необходимо заново переписать все тесты, которые связаны с обновленными окнами, что при большом количестве тестов может отнять значительные ресурсы.
Тем не менее, сравнение ручного и автоматизированного подхода (таблица 2 [4]) показывает тенденцию современного тестирования, ориентирующую на максимальную автоматизацию процесса тестирования и генерацию тестового кода, что позволяет справлять с большими объемами данных и тестов, необходимых для обеспечения качества при производстве программных продуктов.
Таблица 2. Сравнение ручного и автоматизированного тестирования
|
|
Ручное тестирование |
Автоматизированное тестирование |
|
Задание входных значений |
Гибкость в задании данных. Позволяет использовать различные значения на разных циклах прогона тестов, расширяя покрытие. |
Входные значения строго заданы |
|
Проверка результата |
Гибкая, позволяет тестировщику оценивать сформулированные нечетко критерии. |
Строгая. Сформулированные нечетко критерии могут быть проверены только путем сравнения с эталоном. |
|
Повторяемость |
Низкая. Человеческий фактор и нечеткое определение данных приводят к неповторяемости тестирования. |
Высокая |
|
Надежность |
Низкая. Длительные тестовые циклы приводят к снижению внимания тестировщика. |
Высокая, не зависит от длины тестового цикла. |
|
Чувствительность к небольшим изменениям в продукте |
Зависит от детальности описания процедуры. Обычно тестировщик в состоянии выполнить тест, если внешний вид продукта и текст сообщений несколько изменились. |
Высокая. Незначительные изменения в интерфейсе часто ведут к коррекции эталонов. |
|
Скорость выполнения тестового набора |
Низкая |
Высокая |
|
Возможность генерации тестов |
Отсутствует. Низкая скорость выполнения обычно не позволяет исполнить сгенерированный набор тестов. |
Поддерживается |
Однако автоматические тесты не могут полностью заменить ручное тестирование. Автоматизация всех испытаний — очень дорогой процесс, и поэтому автоматическое тестирование является лишь дополнением ручного тестирования. Наилучший вариант использования автоматических тестов — регрессионное тестирование.
