Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Курсовик / Методика испытаний

.doc
Скачиваний:
18
Добавлен:
29.01.2015
Размер:
98.82 Кб
Скачать

5

КФБН.00000-01 51 01-1

ПРОГРАММА И МЕТОДИКА ИСПЫТАНИЙ

  1. ОБЪЕКТ ИСПЫТАНИЙ.

Наименование: Транслятор языка высокого уровня (упрощенной версии языка Pascal) (далее транслятор).

Данное руководство предназначено для проведения испытаний транслятора.

  1. ЦЕЛЬ ИСПЫТАНИЯ.

Целью испытаний является определение соответствия программы требованиям технического задания.

  1. ТРЕБОВАНИЯ К ПРОГРАММЕ.

Программа должна выполнять все требования, предъявляемые ей в п. 4.1 - 4.3 технического задания (в дальнейшем – п.№ ТЗ).

  1. ТРЕБОВАНИЯ К ПРОГРАММНОЙ ДОКУМЕНТАЦИИ.

Для проведения испытаний предъявляется следующая программная документация:

  • техническое задание;

  • руководство оператора.

5. СРЕДСТВА И ПОРЯДОК ИСПЫТАНИЙ

Во время проведения испытаний необходимо наличие IBM PC совместимой персональной вычислительной машины с параметрами, удовлетворяющими требованиям Windows 9x и установленным .NET Framework.

6. МЕТОДЫ ИСПЫТАНИЙ ПРОГРАММЫ.

  1. “Транслятор должен работать в оконном графическом режиме и поддерживать работу как клавиатуры, так и манипулятора типа "мышь”. (п. 4.1.1 ТЗ)

Испытание считается успешным, если после запуска программы появится окно, в котором будет возможно провести действия, описанные в п. 3.1 РО.

  1. “Окно транслятора должно содержать поля ввода программы, вывода псевдокода, вывода результата интерпретации, вывода сообщений об ошибках или успешной трансляции” (п. 4.1.2 ТЗ)

Испытание считается успешным, если окно действительно содержит перечисленные компоненты.

  1. “Транслятор должен поддерживать как ручной ввод текста в поле программы, так и загрузку текста программы из файла” (п. 4.1.3 ТЗ)

Испытание считается успешным, если доступен ручной ввод теста программы, либо после выполнения действий из п. 3.1.5 РО в поле ввода программы отобразится текст из открытого файла

  1. “Транслятор должен поддерживать сохранение составленной программы, полученного псевдокода, результата работы интерпретированной программы ” (п. 4.1.3 ТЗ)

Испытание считается успешным, если после выполнения действий из п. 3.1.6 РО появятся файлы с соответствующим содержанием.

  1. “В сообщении об ошибке должен обязательно присутствовать номер строки, где эта ошибка была найдена и прочая вспомогательная информация (имя ошибочного идентификатора, операция, операнды которой несовместимы по типам и т.п.)” (п. 4.1.6 ТЗ)

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

  1. “При двойном щелчке мышью на строке ошибки должна подсвечиваться строка в программе, где произошла эта ошибка” (п. 4.1.7 ТЗ)

Испытание считается успешным, если при двойном щелчке по ошибке в окне сообщений строка, где она была найдена, будет выделена красным цветом.

  1. “Исходный текст программы и псевдокод должны иметь подсветку синтаксиса ” (п. 4.1.8 ТЗ)

Испытание считается успешным, если ключевые слова в тексте исходной программы выделяются жирным шрифтом черного цвета, строки – синим цветом, комментарии имеют зеленый цвет, номера команд псевдокода – серый, команды – синим.

  1. “Транслятор должен обеспечивать подсказку о текущем месте редактирования (строка, колонка)” (п. 4.1.9 ТЗ)

Испытание считается успешным, если при перемещении текстового курсора в строке состояния окна отображается его текущее положение.

  1. Соответствие требованиям п.4.1.11, 4.1.12 выражается в трансляции программы, написанной в соответствии с указанной грамматикой, с поиском в ней несоответствий грамматике языка.

Испытание считается успешным, если при обработке программы:

Program Success;

Function Func1(R:Real):Real;

Begin Func1:=Tan(R); End;

Function Func2(R:Real):Real;

Begin Func2:=Sin(R)/Cos(R); End;

Var

X : Real;

Begin

WriteLn('Введите X: ');

ReadLn(X);

WriteLn('Tan1(X)=');

WriteLn(Func1(X));

WriteLn('#13');

WriteLn('Tan2(X)=');

WriteLn(Func2(X));

End.

в окне сообщений будет присутствовать только строка “Трансляция программы успешно завершена”, а в окне исполнения при вводе значения 45 появится:

Введите X: 45

Tan1(X)=1,61977519054386

Tan2(X)=1,61977519054386

а псевдокод будет иметь вид:

1: @Func1:

2: create Func1,0

3: create Func1.R,0

4: pop Func1.R

5: push Func1.R

6: pop ax

7: tan ax,ax

8: push ax

9: pop ax

10: mov Func1,ax

11: dispose Func1.R

12: push Func1

13: dispose Func1

14: @Func2:

15: create Func2,0

16: create Func2.R,0

17: pop Func2.R

18: push Func2.R

19: pop ax

20: sin ax,ax

21: push ax

22: push Func2.R

23: pop ax

24: cos ax,ax

25: push ax

26: pop bx

27: pop ax

28: div ax,bx,ax

29: push ax

30: pop ax

31: mov Func2,ax

32: dispose Func2.R

33: push Func2

34: dispose Func2

35: @Main:

36: create Main,0

37: create X,0

38: push 'Введите X: '

39: pop ax

40: out ax

41: in X

42: push 'Tan1(X)='

43: pop ax

44: out ax

45: push X

46: call Func1

47: pop ax

48: out ax

49: push '#13'

50: pop ax

51: out ax

52: push 'Tan2(X)='

53: pop ax

54: out ax

55: push X

56: call Func2

57: pop ax

58: out ax

59: dispose X

60: push Main

61: dispose Main

  1. “ Транслятор должен обнаруживать как лексические, так и синтаксические ошибки…” (п. 4.1.5 ТЗ)

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

Программа:

<пусто>

Сообщение: “[Синтаксическая ошибка] Строка 1 : Неожиданный конец файла”

Программа:

Program Priяmer;

Сообщение: “[Лексическая ошибка] Строка 1: Недопустимый символ”

Программа:

Program Priяmer;

Сообщение: “[Лексическая ошибка] Строка 1 : Priяmer - недопустимое имя идентификатора”

Программа:

Function Func1(R:Real):Real;

Begin

label a;

Func1:=Tan(R);

End;

Сообщение: “[Синтаксическая ошибка] Строка 4 : Неправильное объявление метки а”

Программа:

Function Func1(R:Real):Real;

Begin

label a:

label a:

Func1:=Tan(R);

End;

Сообщение: “[Синтаксическая ошибка] Строка 5 : Повторное определение метки Func1.a

Программа:

Function Func1(R:Real):Real;

Begin

goto a;

Func1:=Tan(R);

End;

Сообщение: “[Синтаксическая ошибка] Строка 4 : Использование необъявленной метки Func1.a

Программа:

Function Func1(R:Real):Real;

Begin

Func1:=Tan(error);

End;

Сообщение: “[Синтаксическая ошибка] Строка 4 : Необъявленный идентификатор”

Программа:

Function Func1(R:Real):Real;

Var R:Real;

Begin

Func1:=Tan(R);

End;

Сообщение: “[Синтаксическая ошибка] Строка 3 :повторное объявление идентификатора Func1.R

Программа:

Function Func1(R:Real):Real;

Begin

Func1:=1.0+1;

End;

Сообщение: “[Синтаксическая ошибка] Строка 4 : Разные типы операндов у операции +”

Программа:

Function Func1(R:Real):Real;

Begin

:=1.0+1;

End;

Сообщение: “[Синтаксическая ошибка] Строка 4 : Ожидается идентификатор в левой части присваивания”

Программа:

Function Func1(R:Real):Real;

Begin

Func1:= ;

End;

Сообщение: “[Синтаксическая ошибка] Строка 4 : Ожидается выражение в правой части присваивания"

Программа:

Function Func1(R:Real):Real;

Begin

Func1:='error';

End;

Сообщение: “[Синтаксическая ошибка] Строка 4 : Присваиваемое значение не соответствует по типу"

Программа:

Function Func1(R:Real):Real;

Begin

Func1:=(1.0;

End;

Сообщение: “[Синтаксическая ошибка] Строка 4 : Ожидается )”

Программа:

Program Primer;

Function Func1(R:Real):Real;

Begin Func1:=R*2.0; End;

Var X : Real;

Begin Func1('error'); End.

Сообщение: “[Синтаксическая ошибка] Строка 7 : Несоответствие аргументов вызываемой функции Func1”

Программа:

Function Func1(R:Real):NotReal;

Begin Func1:=R*2.0; End;

Сообщение: “[Синтаксическая ошибка] Строка 2 : NotReal не является поддерживаемым типом"

Программа:

Function Func1(R:Real):Real;

Var s:string

Begin

s:='df

Func1:=R*2.0;

End;

Сообщение: “[Синтаксическая ошибка] Строка 5 : Не закрыты кавычки”

Программа:

Function Func1(R:Real):Real;

Begin {

Func1:=R*2.0;

End;

Сообщение: “[Синтаксическая ошибка] Строка 3 : Незакрытый комментарий”