Читать в оригинале

<< Предыдущая Оглавление Следующая >>


4.1.4. Пример модульного тестирования

Пусть требуется протестировать класс TCommand, который реализует команду для склада. Этот класс содержит единственный метод TCommand.GetFullName(), спецификация которого описывается следующим образом:

Операция GetFullName() возвращает полное имя команды, соответствующее ее допустимому коду, указанному в поле NameCommand. В противном случае возвращается сообщение «ОШИБКА: Неверный код команды». Операция может быть применена в любой момент.

Разработаем спецификацию тестового случая для тестирования метода GetFullName

на основе приведенной спецификации класса (Таблица 5).

Таблица 5. Спецификация теста

Название класса: TCommand

Название тестового случая: TCommandTest1

Описание тестового случая. Тест проверяет правильность работы метода

GetFullName - получения полного названия команды на основе кода команды. В

тесте подаются следующие значения кодов команд (входные значения):

-1, 1, 2, 4, 6, 20, (причем, 1 - запрещенное значение).

Начальные условия. Нет.

Ожидаемый результат

 

Перечисленным входным значениям должны соответствовать следующие вы

ходные:

 

Коду команды -1 должно соответствовать сообщение

«ОШИБКА: Неверный код команды»

Коду команды 1 должно

соответствовать полное название команды

«ПОЛУЧИТЬ ИЗ ВХОДНОЙ ячеики»

Коду команды 2 должно

соответствовать полное название команды

«ОТПРАВИТЬ ИЗ ЯЧЕЙКИ В ВЫХОДНУЮ ЯЧЕЙКУ»

Коду команды 4 должно

соответствовать полное название команды

«ПОЛОЖИТЬ В РЕЗЕРВ»

 

Коду команды 6 должно

соответствовать полное название команды

«ПРОИЗВЕСТИ ЗАНУЛЕНИЕ»

Коду команды 20 должно соответствовать полное название команды

«ЗАВЕРШЕНИЕ КОМАНД ВЫДАЧИ»

Для тестирования метода класса TCommand.GetFullName() был создан тестовый драйвер - класс TCommandTester. Класс TCommandTester содержит метод TCommandTest1(), в котором реализована вся функциональность теста.

class TCommandTester:Tester // Тестовый драйвер
{
          ...
         TCommand OUT;
         public TCommandTester() {
            OUT=new TCommand();
            Run();
         }
         private void Run() {
            TCommandTest1();
            }
         private void TCommandTest1() {
            int[] commands = {-1, 1, 2, 4, 6, 20};
            for(int i=0;i<=5;i++) {
                        OUT.NameCommand=commands[i];
                        LogMessage(commands[i].ToString()+" : "+OUT.GetFullName());
            }
         }
}

В данном случае для покрытия спецификации достаточно перебрать следующие значения кодов команд: -1, 1, 2, 4, 6, 20, (-1 - запрещенное значение) и получить соответствующее им полное название команды с помощью метода GetFullName().

Пары значений (X, Ув) при исполнении теста заносятся в log-файл для последующей проверки на соответствие спецификации.

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

-1: ОШИБКА : Неверный код команды
1: ПОЛУЧИТЬ ИЗ ВХОДНОЙ ЯЧЕЙКИ
2: ОТПРАВИТЬ ИЗ ЯЧЕЙКИ В ВЫХОДНУЮ ЯЧЕЙКУ
4: ПОЛОЖИТЬ В РЕЗЕРВ
6: ПРОИЗВЕСТИ ЗАНУЛЕНИЕ
20: ЗАВЕРШЕНИЕ КОМАНД ВЫДАЧИ

 



<< Предыдущая Оглавление Следующая >>