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

         

Специфические требования


Система управления комплексом должна:

Произвести опрос статуса склада (вызвать функцию etStoreStat).

Добавить в журнал сообщений запись "СИСТЕМА: Запрошен статус СКЛАДА". В зависимости от полученного значения произвести следующие действия:

Полученный статус склада = 32. В приемную ячейку склада поступил подшипник. Система должна:

Добавить в журнал сообщений запись "СКЛАД: Статус СКЛАДА = 32".

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

Добавить в журнал сообщений запись "СИСТЕМА: Запрошены параметры подшипника".

В зависимости от статуса терминала подшипника (возвращенного функцией GetRollerPar значения) должны быть выполнены действия, приведенные в табл.:

Полученный статус склада = 16. Склад свободен, т.е. не выполняет никаких команд, но при этом в манипуляторе находится подшипник. В этом случае система должна:

Добавить в журнал сообщений запись "СКЛАД: Статус СКЛАДА = 16".

Поставить на первое место в очереди команду PutR - "ПОЛОЖИТЬ В РЕЗЕРВ".

Полученный статус склада = 4. Нет нуля. В этом случае складу система должна:

Добавить в журнал сообщений запись "СКЛАД: Статус СКЛАДА = 4".

Поставить на первое место в очереди команду SetN - "ПРОИЗВЕСТИ ЗАНУЛЕНИЕ".

Полученный статус склада = 0. Склад свободен. Никаких действий в ответ на этот статус система предпринимать не должна.

Таблица 13.12. Действия в зависимости от статуса терминала подшипника№Статус терминала подшипникаДействие системы
1-3Добавить в журнал сообщений запись "ТЕРМИНАЛ ПОДШИПНИКА: -3 - нет обмена"
2-2Добавить в журнал сообщений запись "ТЕРМИНАЛ ПОДШИПНИКА: -2 - таймаут"
3-1Добавить в журнал сообщений запись "ТЕРМИНАЛ ПОДШИПНИКА: -1 - нет клиента"
40

Добавить на первое место команду GetR - "ПОЛУЧИТЬ ИЗ ПРИЕМНИКА В ЯЧЕЙКУ"

Добавить в журнал сообщений запись "ТЕРМИНАЛ ПОДШИПНИКА: 0 - параметры возвращены <Номер_группы>"

51Добавить в журнал сообщений запись "ТЕРМИНАЛ ПОДШИПНИКА: 1 - нет данных"
6ДругоеДобавить в журнал сообщений запись "ТЕРМИНАЛ ПОДШИПНИКА: ОШИБКА: Неопределенный статус"
<


p>При любом другом статусе в журнал должно быть добавлено сообщение "СКЛАД: ОШИБКА: Неопределенный статус".

Произвести опрос терминала оси (вызвать функцию получения сообщения от терминала - GetAxlePar). В журнал сообщений должно быть добавлено сообщение "СИСТЕМА: Запрошены параметры оси". В зависимости от статуса терминала оси (возвращенного функцией GetAxlePar значения) должны быть выполнены следующие действия:

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

Полученный статус: 0 - успешное получение команды. В журнал сообщений дложно быть добавлено сообщение "СКЛАД: 0 - команда <Полное_название_команды> успешно принята". Команда должна быть удалена. Система должна получить сообщение от склада о результатах выполнения команды.

Полученный статус: 1 - при посылке команды произошла ошибка. В журнал сообщений дложно быть добавлено сообщение "СКЛАД: 1 - ошибка при посылке команды <Полное_название_команды>". Команда должна быть удалена.

Таблица 13.13. Действия, зависящие от статуса терминала оси№Статус терминала подшипникаДействие системы
1-3Добавить в журнал сообщений запись "ТЕРМИНАЛ ОСИ: -3 - нет обмена"
2-2Добавить в журнал сообщений запись "ТЕРМИНАЛ ОСИ: -2 - таймаут"
3-1Добавить в журнал сообщений запись "ТЕРМИНАЛ ОСИ: -1 - нет клиента"
40Добавить в журнал сообщений запись "ТЕРМИНАЛ ОСИ: 0 - параметры возвращены <Передний_диаметр> < Задний_диаметр>"

Подобрать два подшипника из имеющихся на складе в соответствии со следующими требованиями:

Они должны находиться в ячейках с разными номерами

Разность группы первого подшипника и группы переднего посадочного диаметра оси (FrontDiam) должна быть меньше либо равна 2

Разность группы второго подшипника и группы заднего посадочного диаметра оси (BackDiam) должна быть меньше либо равна 2

Разность разностей пункта ii и iii должна быть меньше либо равна 2

Выдаваемые подшипники должны иметь одинаковый тип сепаратора.



В первую очередь должны выдаваться подшипники, которые находятся на складе дольше всего.

При успешном подборе подшипников:

В журнал сообщений должно быть добавлено сообщение "ТЕРМИНАЛ ОСИ: ПОДШИПНИКИ подобраны"

В конец очереди команд должны быть добавлены две команды "SendR Отправить ячейку на выход" с параметрами подобранных подшипников, а также завершающая выдачу команда "Term Завершение команд выдачи"

При отсутствии на складе подшипников, удовлетворяющих заданным параметрам, в журнал должно быть добавлено сообщение "ТЕРМИНАЛ ОСИ: Не подобрать ПОДШИПНИКОВ".

51Добавить в журнал сообщений запись "ТЕРМИНАЛ ОСИ: 1 - нет данных"
6ДругоеДобавить в журнал сообщений запись "ТЕРМИНАЛ ОСИ: ОШИБКА: Неопределенный статус"
<


p>Полученный статус: 2 - склад не понял команду. В журнал сообщений должно быть добавлено сообщение "СКЛАД: 2 - склад не понял команду <Полное_название_команды>". Система должна попытаться послать команду повторно; после второй неудачной попытки в журнал должно быть добавлено сообщение "СКЛАД: Не понял команду после двух попыток", команда должна быть удалена, а система должна приступить к выполнению следующей в очереди команды, если очередь не пуста.

Полученный статус: 3 - склад занят. Система должна посылать команду в течение 30 секунд, при истечении данного интервала в журнал должно быть добавлено сообщение об ошибке "СКЛАД: 3 - занят более 30 секунд", команда должна быть удалена, а система должна приступить к выполнению следующей в очереди команды, если очередь не пуста.

Полученный статус: -1 - нет склада. Система должна попытаться выполнить команду повторно; после второй неудачной попытки в журнал должно быть добавлено сообщение "СКЛАД:-1 - нет СКЛАДА" и система должна завершить работу.

Полученный статус: -2 - таймаут. Система должна попытаться выполнить команду повторно; после второй неудачной попытки в журнал должно быть добавлено сообщение "СКЛАД:-2 - таймаут при посылке команды" и система должна завершить работу.

Полученный статус: -3 - не посылать. Система должна попытаться выполнить команду повторно; после второй неудачной попытки в журнал должно быть добавлено сообщение "СКЛАД:-3 - не удается послать команду СКЛАДУ" и система должна завершить работу.

Полученный статус: -4 - нет свободных ячеек. В журнал должно быть добавлено сообщение "СКЛАД:-4 - нет свободных ячеек", команда должна быть удалена, а система должна приступить к выполнению следующей в очереди команды, если очередь не пуста.

При получении любого другого статуса в журнал должно быть добавлено сообщение "СКЛАД: ОШИБКА: Неопределенный статус при посылке команды".

После успешного получения складом команды (получения статуса команды = 0) система должна получить сообщение от склада и добавить в журнал сообщение "СИСТЕМА: Запрошено сообщение от СКЛАДА":

Полученное сообщение: -1 - нет склада. Система должна попытаться получить сообщение повторно, после второй неудачной попытки в журнал должно быть добавлено сообщение "СКЛАД:-1 - нет СКЛАДА" и система должна завершить работу.

Полученное сообщение: 0 - нет сообщения. Это означает, что склад еще занят, следует продолжать опрос.

Полученное сообщение: 1 - Команда выполнена без ошибки.

На первое место в очередь должна быть добавлена команда с параметрами удаленной команды, но номер результирующей ячейки в команде должен быть заменен номером другой свободной ячейки, соответственно алгоритму поиска свободной ячейки.

Полученное сообщение: 2 - Команда выполнена с ошибкой, не удается взять подшипник. Если текущая выполняемая команда: GetR - "Получить из приемника в ячейку":

В журнал должно быть добавлено сообщение "СКЛАД: ОШИБКА: Не взять из входной ячейки".

Текущая команда должна быть удалена.

На первое место в очереди должна быть добавлена команда SetN - "Произвести зануление".

SendR - "Отправить ячейку на выход":

В журнал должно быть добавлено сообщение "СКЛАД: Не взять из ячейки <Номер_ячейки>".

Текущая команда должна быть удалена.

На первое место в очереди должна быть добавлена команда SetN - "Произвести зануление".

На второе место в очереди должна быть добавлена команда SendR - "Отправить ячейку на выход" с параметрами удаленной в п. 2 команды.

При получении того же статуса при повторной попытке выполнения команды SendR:

Ячейка должна быть помечена как сбойная (не должны предприниматься дальнейшие попытки положить в нее подшипники)

В журнал должно быть добавлено сообщение "СИСТЕМА: Ячейка <Номер_Ячейки> <Номер_Стороны> <Номер_Колонки> <Номер_Ряда> помечена как сбойная"

Текущая команда SendR должна быть удалена.

На первое место в очередь должна быть добавлена команда с параметрами удаленной команды, но номер результирующей ячейки в команде должен быть заменен номером другой свободной ячейки, соответственно алгоритму поиска свободной ячейки.

Полученное сообщение: 3 - команда выполнена с ошибкой, не удается положить подшипник. Если порядковый номер, результирующей ячейки - 999, т.е. это выходная ячейка, то:

В журнал должно быть добавлено сообщение "СКЛАД: Не могу положить подшипник в выходную ячейку".

Текущая команда должна быть отложена.

Должна быть выполнена команда SetN - "Произвести зануление" Должна быть предпринята попытка выполнить отложенную команду.

При получении того же статуса при повторной попытке выполнения команды:

Текущая команда должна быть удалена.

В журнал должно быть добавлено сообщение "СКЛАД: Не могу положить подшипник в выходную ячейку после второй попытки". Если порядковый номер, результирующей ячейки любой другой кроме 999 и 0, то:

В журнал должно быть добавлено сообщение "СКЛАД: Не могу положить подшипник в ячейку № <Номер_ячейки>".

Текущая команда должна быть удалена.

На первое место в очереди должна быть добавлена команда SetN - "Произвести зануление".

На второе место в очереди должна быть добавлена команда с параметрами удаленной в п. 2 команды.

При получении того же статуса при повторной попытке выполнения команды:

Ячейка должна быть помечена как сбойная (не должны предприниматься дальнейшие попытки положить в нее подшипники).

В журнал должно быть добавлено сообщение "СИСТЕМА: Ячейка <Номер_Стороны> <Номер_Колонки> <Номер_Ряда> помечена как сбойная".

Текущая команда должна быть удалена.

На первое место в очередь должна быть добавлена команда с параметрами удаленной команды, но номер результирующей ячейки в команде должен быть заменен номером другой свободной ячейки, соответственно алгоритму поиска свободной ячейки.



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