Автоматизация тестирования
Сравнение ручного и автоматизированного подхода
|
Ручное |
Автоматизированное |
|
|
|
Задание |
Гибкость в задании данных. Позволяет |
Входные значения строго |
входных |
использовать разные значения на разных циклах |
заданы |
значений |
прогона тестов, расширяя покрытие |
|
|
|
|
Проверка результата |
Гибкая, позволяет тестировщику оценивать |
Строгая. Нечетко |
|
нечетко сформулированные критерии |
сформулированные критерии |
|
|
могут быть проверены только |
|
|
путем сравнения с эталоном |
|
|
|
Повторяемость |
Низкая. Человеческий фактор и нечеткое |
Высокая |
|
определение данных приводят к |
|
|
неповторяемости тестирования |
|
|
|
|
Надежность |
Низкая. Длительные тестовые циклы приводят к |
Высокая, не зависит от длины |
|
снижению внимания тестировщика |
тестового цикла |
|
|
|
Чувствительность |
Зависит от детальности описания процедуры. |
Высокая. Незначительные |
к незначительным |
Обычно тестировщик в состоянии выполнить |
изменения в интерфейсе часто |
изменениям в |
тест, если внешний вид продукта и текст |
ведут к коррекции эталонов |
продукте |
сообщений несколько изменились |
|
|
|
|
Скорость выполнения |
Низкая |
Высокая |
тестового набора |
|
|
|
|
|
Возможность |
Отсутствует. Низкая скорость выполнения |
Поддерживается |
генерации тестов |
обычно не позволяет исполнить |
|
|
сгенерированный набор тестов |
|
_
Автоматизация тестирования
Документирование тестовых процедур
Тестовые процедуры - это формальный документ, содержащий описание необходимых шагов для выполнения тестового набора.
Вслучае описания ручных тестов тестовые процедуры должны содержать полное описание всех шагов и проверок, позволяющих протестировать продукт
ивынести вердикт PASS/FAIL.
Вслучае описания автоматизированных тестов тестовые процедуры должны содержать достаточную информацию для запуска тестов и анализа результатов.
Описание тестов разрабатывается для облегчения анализа и поддержки тестового набора, может быть реализовано в произвольной форме, но при этом должно выполнять следующие задачи:
-анализировать степень покрытия продукта тестами на основании описания тестового набора.
-для любой функции тестируемого продукта найти тесты, в которых функция используется.
-для любого теста определить все функции и их сочетания, которые данный тест использует (затрагивает)
-вывить структуру и взаимосвязи тестовых файлов
-выявить принцип построения системы автоматизации тестирования
Автоматизация тестирования
Документирование дефекта
Каждый дефект, обнаруженный в процессе тестирования, должен быть задокументирован и отслежен. При обнаружении нового дефекта его заносят в базу дефектов. Для этого лучше всего использовать специализированные базы, поддерживающие хранение и отслеживание дефектов, например, вида DDTS.
При занесении нового дефекта рекомендуется указывать:
-наименование подсистемы, в которой обнаружен дефект.
-версия продукта (номер build ), на котором дефект был найден.
-описание дефекта.
-описание процедуры (шагов, необходимых для воспроизведения дефекта).
-номер теста, на котором дефект был обнаружен.
-уровень дефекта, то есть степень его серьезности с точки зрения критериев качества продукта или заказчика.
Жизненный цикл дефекта
|
|
Fixed |
|
New |
Open |
Resolved |
Verified |
Postponed
Автоматизация тестирования
Тестовый отчет
Тестовый отчет обновляется после каждого цикла тестирования и должен содержать следующую информацию для каждого цикла:
-перечень функциональности в соответствии с пунктами требований, запланированный для тестирования на данном цикле, и реальные данные по нему
-количество выполненных тестов – запланированное и реально исполненное
-время, затраченное на тестирование каждой функции, и общее время тестирования.
-количество найденных дефектов.
-количество повторно открытых дефектов.
-отклонения от запланированной последовательности действий, если таковые имели место.
-выводы о необходимых корректировках в системе тестов, которые должны быть сделаны до следующего тестового цикла
_
Автоматизация тестирования
Оценка качества тестов
Тестовые метрики
Набор тестовых метрик, который помогает определить эффективность тестирования и текущее состояние продукта:
-покрытие функциональных требований.
-покрытие кода продукта (для модульного уровня тестирования).
-покрытие множества сценариев.
-количество или плотность найденных дефектов. Текущее количество дефектов сравнивается со средним для данного типа продуктов с целью установить, находится ли оно в пределах допустимого статистического отклонения.
-соотношение количества найденных дефектов с количеством тестов на данную функцию продукта. Сильное расхождение этих двух величин говорит либо о неэффективности тестов (когда большое количество тестов находит мало дефектов), либо о плохом качестве данного участка кода (когда найдено большое количество дефектов на не очень большом количестве тестов)
-количество найденных дефектов, соотнесенное по времени, или скорость поиска дефектов. Если производная такой функции близка к нулю, то продукт обладает качеством, достаточным для окончания тестирования и поставки заказчику.