Основы тестирования программного обеспечения

         

с настоящим пунктом полезно предварить


Ознакомление с настоящим пунктом полезно предварить изучением п. 7, содержащего описание ручного тестирования. Здесь рассматривается та часть теста на C#, которую вам придется написать самостоятельно при выполнении заданий. Приведенный пример был разработан в соответствии со спецификацией тестового случая N1. Для простоты будем считать, что события происходят последовательно в строго заданном порядке. Реально наша система представляет собой многопоточное приложение, поэтому мы не можем это гарантировать.

class Test1:Test { override public void start() {//Задаем состояние окружения (входные данные) StoreStat="32"; //Поступил подшипник RollerPar="0 NewUser Depot1 123456 1 12 1 1"; //статус обмена с терминалом подшипника (0 - есть подшипник) //и его параметры AxlePar="1 NewUser Depot1 123456 1 0 12 12"; //статус обмена с терминалом оси (1 - нет оси) и ее параметры CommandStatus="0"; //команда успешно принята StoreMessage="1"; //успешно выполнена //Получаем информацию о функционировании системы wait("GetStoreStat"); //опрос статуса склада wait("GetRollerPar"); //Получение информации о подшипнике с терминала подшипника wait("GetAxlePar"); //Получение информации об оси с терминала оси wait("SendStoreCom"); //добавление в очередь команд склада на первое место //команды GetR (получить из приемника в ячейку) wait("GetStoreMessage"); //Получение сообщения от склада о результатах выполнения команды //В результате первый подшипник должен быть принят wait("GetStoreStat"); //опрос статуса склада wait("GetRollerPar"); //Получение информации о подшипнике с терминала подшипника wait("GetAxlePar"); //Получение информации об оси с терминала оси wait("SendStoreCom"); //добавление в очередь команд склада на первое место //команды GetR (получить из приемника в ячейку) wait("GetStoreMessage"); //Получение сообщения от склада о результатах выполнения //команды.


В результате второй подшипник должен быть принят //Задаем новое состояние окружения (входные данные) RollerPar="1 NewUser Depot1 123456 1 12 1 1"; //статус обмена с терминалом подшипника (1 - нет подшипника) //и его параметры AxlePar="0 NewUser Depot1 123456 1 0 12 12"; //статус обмена с терминалом оси (0 - есть ось) и ее параметры //Получаем информацию о функционировании системы wait("GetStoreStat"); //опрос статуса склада wait("GetRollerPar"); //Получение информации о подшипнике с терминала подшипника wait("GetAxlePar"); //Получение информации об оси с терминала оси wait("SendStoreCom");//Добавление в очередь команд склада на последнее место //команды SendR (ячейку на выход) wait("GetStoreMessage"); //Получение сообщения от склада о результатах выполнения //команды //В результате первый подшипник для оси должен быть выдан wait("SendStoreCom"); //Добавление в очередь команд склада на последнее место //команды SendR (ячейку на выход) wait("GetStoreMessage"); //Получение сообщения от склада о результатах выполнения //команды. //В результате второй подшипник для оси должен быть выдан wait("SendStoreCom"); //Добавление в очередь команд склада на последнее место //команды Term (завершение команд выдачи) wait("GetStoreMessage"); //Получение сообщения от склада о результатах выполнения //команды finish(); } } Пример 5.1. Пример фрагмента теста (вариант 1)При разработке тестов не обязательно дожидаться каждого события, которое должно происходить в соответствии со случаем использования. Достаточно вызвать wait для событий, после наступления которых надо менять состояние окружения. В период ожидания наступления события, заданного в wait, может происходить любое количество других событий. Все эти события будут занесены в журнал. При необходимости ждать не первого, а n-го вызова можно вызывать wait с одним и тем же параметром n раз (например, в цикле). При таком подходе тест будет гораздо короче, например приведенный выше тест будет выглядеть следующим образом:

class Test1:Test { override public void start() { StoreStat="32";//Пришел подшипник RollerPar="0 NewUser Depot1 123456 1 12 1 1";//его параметры AxlePar="1 NewUser Depot1 123456 1 0 12 12";//нет оси CommandStatus="0";//команда успешно принята StoreMessage="1";//команда успешно выполнена wait("SendStoreCom");//первый подшипник принят wait("SendStoreCom");//второй подшипник принят RollerPar="1 NewUser Depot1 123456 1 12 1 1"; //больше нет подшипников AxlePar="0 NewUser Depot1 123456 1 0 12 12";//есть ось wait("SendStoreCom");//выдача подшипника wait("SendStoreCom");//выдача подшипника wait("SendStoreCom");//завершение выдачи finish();} } Пример 5.2. Пример фрагмента теста (вариант 2)

Содержание раздела