
- •В ходе работы над проектом по созданию любой сложной программной системы создается большое
- •Поскольку верификация программной системы (в оптимистичном случае) выполняется в течение всего жизненного цикла
- •Перед началом верификации менеджером тестирования (test manager) создается документ, называемый планом верификации (или
- •В данном документе также определяются требования собственно к тестовой документации – тест-требованиям, тест-
- •На основании тест-требований разработчиками тестов (test developers) создаются тест-планы – документы, которые содержат
- •По несоответствиям создаются отчеты о проблемах – документы, которые направляются на анализ в
- •Форматы различных тестовых документов описаны в стандартах IEEE 1012 [14] и IEEE 829
- •Стратегия и планы верификации
- •Для каждого этапа определяется:
- •Согласно разделу 4 стандарта IEEE 829 [15] основная задача плана тестирования как документа
- ••идентификатор плана тестирования и номер его версии, который позволяет однозначно находить нужный план
- ••критерий успешности/неуспешности прохождения тестов
- •• требования к среде тестирования – данный раздел описывает требования к аппаратным и
- •Стратегия и планы тестирования несколько отличаются от другой документации, относящейся к процессу тестирования.
- •Тест-требования
- •Тест-требования, написанные в рамках структурного подхода пишутся на основании описания архитектуры системы и
- •Свойства тест- требований
- •Тест-требования, написанные в рамках функционального подхода обычно разделяют на следующие группы:
- •Как правило, одному системному или функциональному требованию соответствует минимум одно тест-требование. Если совокупность
- •Примером не верифицируемого требования может служить следующее «требование»:
- •Без четкого определения критериев интуитивной понятности, проверить такое требование при помощи написания тестовых
- •При большом количестве тест-требований и частых их изменениях может возникнуть ситуация, в которой
- •Тест-планы
- •Критерием качества тест-плана является покрытие (выполнение) всех требований к проверке правильности функционирования программной
- •Структура тест-плана может соответствовать структуре тест- требований или следовать логике внешнего поведения системы.
- •В состав тест-плана рекомендуется дополнительно включать пункты, служащие для проверки ветвей программы, не
- •Возможные формы подготовки тест-планов
- •Для автоматизированного тестирования сценарий теста может записываться на каком-либо формальном языке, в этом
- •И, наконец, третьей формой представления тестовых примеров является определение примеров в виде конечного
- •Сценарии
- •Подразумевается, что действия сценария должны быть описаны таким образом, чтобы их мог воспроизвести
- •Как можно видеть, такая форма представления действительно неудобна для автоматизации тестирования и предназначена

Как правило, одному системному или функциональному требованию соответствует минимум одно тест-требование. Если совокупность проверок, задаваемых тест-требованиями, покрывает всю функциональность системы, определенную в системных требования и требованиях к программному обеспечению, то говорят о полноте тест-требований. При изменениях требований к системе для поддержания полноты должны меняться и тест-требования.
Как системные требования и требования к ПО, так и тест- требования должны обладать свойством верифицируемости. Т.е. для каждого требования должна существовать возможность определить четкий критерий проверки – выполняется это требование в реализованной системе или нет.

Примером не верифицируемого требования может служить следующее «требование»:
Система должна иметь интуитивно понятный пользовательский интерфейс.
Очевидное «тест-требование» будет выглядеть как
Проверить, что система имеет интуитивно понятный пользовательский интерфейс

Без четкого определения критериев интуитивной понятности, проверить такое требование при помощи написания тестовых примеров не представляется возможным.
Однако, если сопроводить такое требование количественными или качественными характеристиками интуитивно понятного интерфейса – написание тестовых примеров по требованиям становится возможным. Так, среди критериев интуитивной понятность могут быть следующие: глубина вложенности меню не более трех, наличие всплывающих подсказок на каждом элементе управления каждой экранной формы и т.п.

При большом количестве тест-требований и частых их изменениях может возникнуть ситуация, в которой различные требования перестают быть согласованными. В этом случае такие требования имеют взаимоисключающие друг друга критерии проверки.
Т.е., например, в простом случае, одно тест-требование на пользовательский интерфейс может декларировать необходимость проверки того, что введенный пользователем пароль имеет длину не более 16 символов, а тест-требование к базе данных системы – что допустимый размер пароля, сохраняемого в БД – от 4 до 12 символов. В этом случае эти два требования являются противоречивыми. Для того, чтобы устранить это противоречие нужно проводить анализ системных и функциональных требований с последующей модификацией тест-требований.
Тест-требования по которым составляются тест-планы для тестирования системы обычно обладают свойством непротиворечивости, поскольку противоречия обычно устраняются на уровне верификации проектной документации. Однако противоречия могут быть выявлены и позже, в результате попытки создать адекватные тестовые примеры.

Тест-планы
На основании тест-требований составляются тест-планы - программы испытаний (проверки, тестирования) программной реализации системы. В отличие от тест-требований в тест- плане описываются конкретные способы проверки функциональности системы, т.е. то, как должна проверяться функциональность. Как правило, тест-план состоит из отдельных тестовых примеров, каждый из которых проверяет некоторую функцию или набор функций системы. Для каждого тестового примера однозначно определяется критерий успешного прохождения (pass/fail criteria), при помощи которого можно судить о том – соответствует ли поведение системы заданному в требованиях или нет (Рис. 16).

Критерием качества тест-плана является покрытие (выполнение) всех требований к проверке правильности функционирования программной реализации. Желательной характеристикой тест-плана является проверка исполнения всех веток схемы программной реализации.

Структура тест-плана может соответствовать структуре тест- требований или следовать логике внешнего поведения системы. Каждый пункт тест-плана описывает, как производится проверка правильности функционирования программной реализации, и содержит:
•ссылку на требование(я), которое проверяется этим пунктом;
•конкретное входное воздействие на программу (значения входных данных);
•ожидаемую реакцию программы (тексты сообщений, значения результатов)
•описание последовательности действий, необходимых для выполнения пунктов тест-плана.

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

Возможные формы подготовки тест-планов
Форма представления тест-плана в первую очередь зависит от того, каким образом тест-план будет использоваться в процессе тестирования. При ручном тестировании удобно представление тест-планов в виде текстовых документов, в которых отдельные разделы представляют собой описания тестовых примеров. Каждый тестовый пример в таком случае включает в себя перечисление последовательности действий, которые необходимо выполнить тестировщику для проведения тестирования – сценария теста, а также ожидаемые
отклики системы на эти действия. Такая форма представления тест-плана неудобна для автоматизации тестирования, поскольку описания на естественном языке практически не поддаются формализации.

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