Опубликован: 05.03.2005 | Уровень: специалист | Доступ: платный
Практическая работа 5:

Ручное тестирование

Описание тестовых процедур

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

Как запустить тест

Для того чтобы запустить тест, нужно:

В методе Class1.Main создать экземпляр нового класса и вызвать его метод start. Так как метод start является виртуальным, то можно обращаться к тестам, используя ссылку на тип Test. Это делается так:

Test t = new <ваш класс-потомок Test>;
t.start();

Собрать и запустить приложение.

Проверка результатов выполнения тестов (сравнение с ожидаемым результатом)

После завершения теста следует просмотреть текстовый журнал теста ( ..\SystemTesting\ManualTests\Tests\bin\Debug\log.log ), чтобы выяснить, какая последовательность событий в системе была реально зафиксирована (выходные данные) и сравнить их с ожидаемыми результатами, заданными в спецификации тестового случая №1.

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

Пример неправильного теста

Предположим, что вы не поняли Приложение 2 (FS) во всех деталях и неправильно составили спецификацию тестового случая №1 и тест. Например:

//Задаем состояние окружения (входные данные)
StoreStat="32"; //Поступил подшипник
...
//Получаем информацию о функционировании системы
wait("GetStoreStat"); //опрос статуса склада
//Вместо того, чтобы получить информацию о подшипнике с
//терминала подшипника, мы хотим получить информацию
//об оси с терминала оси
wait("GetAxlePar");
...

В журнале теста мы увидим следующую информацию:

CALL: GetStoreStat 0
RETURN: 32
CALL: GetRollerPar
RETURN: 0 NewUser Depot1 123456 1 12 1 1
CALL: GetAxlePar
RETURN: 1 NewUser Depot1 123456 1 0 12 12
...

Главное - суметь разобраться и исправить спецификацию тестового случая и тест, если вы сами допустили ошибку.

Задание 3

Для тестового случая №1 необходимо составить полный список всех возможных альтернативных путей (см. подраздел "Список альтернативных путей") и разработать соответствующие тесты.

Кроме того, необходимо:

  • выбрать случай использования на основании дерева решений ( ..\SystemTesting\Decision Tree.vsd );
  • составить пошаговое описание выбранного случая использования;
  • учесть все альтернативные пути;
  • составить спецификации тестовых случаев;
  • разработать соответствующие тестовые случаи (тесты) ;
  • составить тестовые отчеты (табл. 2.2).
Федор Антонов
Федор Антонов
Оплата и обучение
Сергей Чурбанов
Сергей Чурбанов
Какие подходы используются для обоснования истинности программ?
Марина Дайнеко
Марина Дайнеко
Россия
Сергей Пантелеев
Сергей Пантелеев
Россия, Москва