Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Оценочное тестирование



A0 A1 C Q
x x   Тек. состояние
      C
      D
      E
      F
entity mux is

port (c, d, e, f: in std_logic;

s: in std_logic_vector(1 downto 0);

mux_out: out std_logic);

end mux;

architecture mux_impl of mux is

begin

muxl: process (s, c, d, e, f)

begin

case s is

when “00” => mux_out <= c;

when “01” => mux_out <= d;

when “10” => mux_out <= e;

when others => mux_out <= f;

end case;

end process muxl;

end mux_impl;

Подписи преподавателей

  ГОУ СПО   КАиР № 27     «28» июня 2013 г. Итоговая государственная аттестация гр. 09АТ0ВМ1 II этап экзамена – решение практических заданий ЭКЗАМЕНАЦИОННЫЙ БИЛЕТ № 22 УТВЕРЖДАЮ Зам. директора по учебной работе _________________ Руководитель цикловой комиссии _________________
1. Настроить фильтрацию TCP/IP по IP – протоколам.

  1. Рассчитать вероятность безотказной работы схемы № 8.
Подписи преподавателей

  ГОУ СПО   КАиР № 27     «28» июня 2013 г. Итоговая государственная аттестация гр. 09АТ0ВМ1 II этап экзамена – решение практических заданий ЭКЗАМЕНАЦИОННЫЙ БИЛЕТ № 23 УТВЕРЖДАЮ Зам. директора по учебной работе _________________ Руководитель цикловой комиссии _________________
1. Обжать сетевой кабель UTP-5(E).

  1. Опишите план работы компании-разработчика программного обеспечения в проекте по созданию новой версии своего программного продукта.
Подписи преподавателей

  ГОУ СПО   КАиР № 27     «28» июня 2013 г. Итоговая государственная аттестация гр. 09АТ0ВМ1 II этап экзамена – решение практических заданий ЭКЗАМЕНАЦИОННЫЙ БИЛЕТ № 24 УТВЕРЖДАЮ Зам. директора по учебной работе _________________ Руководитель цикловой комиссии _________________

  1. Рассчитать вероятность безотказной работы схемы № 9.
h0 =


h i – интенсивность отказов какого-то типа элементов
N i – количество элементов с интенсивностью отказов hi
KН – коэффициент электрической нагрузки
Кт – коэффициент теплового режима
k – количество элементов по типам и режимам использования


Вероятность безотказной работы устройства P0


e – основание натурального логарифма = 2.71

h0 – суммарная интенсивность отказов
t – время наработки на отказ

Время наработки на отказ – 10000 часов

Наименование и тип элемента Интенсивность отказов Kн Kт Ni
Микросхемы LM358A (DA1 – DA2) CD4013 (DD1.1) 0.013 0.013 1 1 1 1 2 1 0.026 0.013
Резисторы R1 – R13 МЛТ 0.03 0.6 1 13 0.234
Конденсаторы C1, C2 0.035 0.7 1 2 0.049
Транзисторы VT1 КТ315 VT2 IRLR2905 0.5 0.5 0.5 0.5 1 1 1 1   0.25 0.25
Диод PZX84C4V7 0.157 0.5 1 1 0.0785
Пайка SB1 0.07 0.8 1 50 2.8
          3.7 * 10­-6

  1. Сформулируйте цели и основные функции системы автоматизированного контроля прохода пассажиров.
Подписи преподавателей

  ГОУ СПО   КАиР № 27     «28» июня 2013 г. Итоговая государственная аттестация гр. 09АТ0ВМ1 II этап экзамена – решение практических заданий ЭКЗАМЕНАЦИОННЫЙ БИЛЕТ № 25 УТВЕРЖДАЮ Зам. директора по учебной работе _________________ Руководитель цикловой комиссии _________________
1. Объясните (с частичной разборкой) кинематику привода оптического накопителя.

Принцип действия всех оптических накопителей информации основан на лазерной технологии. Луч лазера используется как для записи на носитель информации, так и для считывания ранее записанных данных, и является, по сути, дела своеобразным носителем информации. Накопители CD-R (CD-Recordable) обеспечивают однократную запись информации на диск и последующее многократное считывание этой информации, в то время как накопители CD-RW (CD-Re Writable – перезаписывающий) позволяют осуществлять многократную запись на оптические диски. Решение проблемы увеличения емкости оптических носителей информации на базе совершенствования технологии производства CD и приводов, а также имеющихся научно-технических решений в области высококачественного цифрового видео привело к созданию CD-дисков повышенной емкости, называемых DVD. Качество изображении, хранимого в формате DVD, соизмеримо с качеством профессиональных студийных видеозаписей, причем качество звука также не уступает студийному. Такие возможности дисков формата DVD обусловлены улучшенными параметрами рабочей поверхности дисков. Следующими шагами в развитии технологии DVD стало создание двухслойных дисков, а затем и двухсторонних дисков, что существенно увеличило их емкость.

2. Настроить Firewall. Заблокировать пакеты по ICMP протоколу.

Подписи преподавателей

  ГОУ СПО   КАиР № 27     «28» июня 2013 г. Итоговая государственная аттестация гр. 09АТ0ВМ1 II этап экзамена – решение практических заданий ЭКЗАМЕНАЦИОННЫЙ БИЛЕТ № 26 УТВЕРЖДАЮ Зам. директора по учебной работе _________________ Руководитель цикловой комиссии _________________
1. Объясните конструкцию оптической головки лазерного привода.

Элементы оптической головки
1) Полупроводниковый лазер. Существует две разновидности корпусов лазеров: с цилиндрическим металлическим корпусом (cup) и с плоским пластиковым корпусом (frame). Мощность лазера в устройствах чтения 5-7 мВт. Мощность регулируется потенциометром, расположенным на flexiboard (не знаю как по-русски) головки. Контроль установленного значения мощности осуществляется вмонтированным в лазер и установленном на торце излучающей поверхности фотодиодом. В связи с этим одиночный лазер имеет три контакта. Лазеры рекодеров не имеют внутреннего фотодиода, хоть и имеют три выводящих контакта (один пустой).
2) Корректор широкого использования в устройствах CD/DVD не получил. Однако в настоящее время используется в BD из-за более жёстких требований к качеству пятна на информационном слое.
3) Дифракционная решётка расщепляет свет лазера на три пятна, перпендикулярным штрихам решётки. Три пятна фокусруются на информационный слой таким образом, чтобы центральное пятно находилось на дорожке, а два дополнительных пятна (пятна спутники) на строго выставленном удалении от центра дорожки. Разностный сигнал пятен спутников даёт сигнал ошибки трекинга (положения относительно центра дорожки).
4) Светоделитель может быть трёх видов: светоделитель 50-50 (NPBS, DBS), поляризованный светоделитель (PBS), светоделительная пластинка 50-50. Поляризованный светоделитель работает только в паре с пластинкой l/4.
5) Пластинка l/4 элемент, изменяющий поляризацию света лазера. Появление множества «левых» производителей дисков привело к тому, что не выполняется требование допусков в части двулучепреломления. Это приводит к тому, что в поликарбонате диска происходит сильное поглощение света линейной (строго постоянной во времени) поляризации. Чтобы избежать этого ставят пластинку l/4, которая делает поляризацию круговой (переменной во времени). Вторым достоинством пластинки l/4 является её комбинация с поляризационным светоделителем. Это позволяет практически свести к нулю потери света в системе (улучшить помехозащищённость).
6) Коллиматор – линза, в фокусе которой находится лазер. Коллимирует свет (параллельный пучок лучей), для создания условий манипуляций с ним с помощью зеркал и актюатора.
7) Зеркало. Различают три вида зеркал: светоделительная пластинка (beam splitter), полное зеркало (full mirror) и пропускающее зеркало (leakage mirror). В обозначенной позиции используется в головках чтения – полное зеркало, в рекодерах – пропускающее зеркало, за которым ставится фотодиод обратной связи по мощности лазера.
8) Объектив – второй по стоимости элемент оптической головки после лазера. Основные характеристики диаметр и рабочее расстояние (расстояние от линзы до диска). Вклеивается на актюатор (actuator – электро-механическое устройство с несколькими степенями свободы). На поверхности линзы требует наличие параллельного пучка лучей, чтобы иметь возможность сдвигать линзу в радиальном и осевом (относительно диска) направлениях. Для считывающих головок специфицируется мощность света после объектива (0,3-0,5 мВт. Хотя с поляризационной оптикой бывают экземпляры и с 0,2 мВт, но это скорее исключение из правила).
9) Диск. Информационный слой любого диска защищён поликарбонатной подложкой определённой толщины. CD – 1.2 мм, DVD – 0.6 мм, BD – 0.1 мм. Жёсткие требования на форму поверхности (tangential and radial tilt – тангенциальный и радиальный наклон поверхности по отношению к посадочному отверстию), посадочной поверхности диска (эксцентриситет отверстия, вертикальное биение диска), двулучепреломлению (поляризационные свойства диска. См. Пункт 5)
10) Сенсорная линза. Линза предназначенная для создания условий выделения сигнала ошибки фокусировки на информационый слой. Имеет сфероцилиндрическую форму и устанавливается под углом 45° к разделительным линиям фотоприёмника. Если фокус объектива ближе информационного слоя – свет формирует эллипс на двух диагональных элементах фотоприёмника (например А и С). Если дальше – на двух других (B и D).
11) Фотоприёмник. Фотоприёмник является довольно сложным электронным элементом. Обычно он четырёхквадрантный. При условии использования дифракционной решётки – четырёхквадрантный с двумя внешними фотоприёмниками. В рекодерах – до 12 приёмных площадок. С целью экономии выводов многие разностные сигналы формируются внутри сборки. В целях повышения помехозащищённости предусилитель размещается на той же подложке. В связи с этим требует подвода напряжения. В связи со значительными различиями в коэффициенте отражения «алюминиевых» и записываемых дисков реализованы мнгоступенчатые усилители (ещё как минимум один управляющий вывод).

  1. Рассчитать вероятность безотказной работы схемы № 10.
Подписи преподавателей

  ГОУ СПО   КАиР № 27     «28» июня 2013 г. Итоговая государственная аттестация гр. 09АТ0ВМ1 II этап экзамена – решение практических заданий ЭКЗАМЕНАЦИОННЫЙ БИЛЕТ № 27 УТВЕРЖДАЮ Зам. директора по учебной работе _________________ Руководитель цикловой комиссии _________________
1. Объясните конструкцию звуковой карты.

Звуковая карта (звуковая плата, аудиокарта; англ. sound card) — дополнительное оборудование персонального компьютера, позволяющее обрабатывать звук (выводить на акустические системы и/или записывать)=

Звуковой сигнал (аналоговый) микрофона или плеера подается на один из входов звуковой карты. Далее он поступает на входной микшер, который служит для смешивания сигналов, если их поступает на вход несколько. Затем сигнал с входного микшера поступает на аналого-цифровой преобразователь (АЦП), с помощью которого происходит оцифровка аналогового сигнала, т.е. преобразование его в дискретный двоичный сигнал.

Потом цифровые данные поступают в процессор. Этот процессор управляет обменом данными с компьютером через шину PCI материнской платы.

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

При воспроизведении этого звукового файла данные с жесткого диска через шину PCI поступают в сигнальный процессор звуковой платы, который направляет их на цифро-аналоговый преобразователь (ЦАП). Цифро-аналоговый преобразователь преобразует двоичный сигнал в аналоговый. Электрический сигнал, получившийся в результате преобразования, поступает на выходной микшер. Этот микшер идентичен входному и управляется при помощи той же самой программы. Сигнал с выходного микшера поступает на линейный выход звуковой карты и выход на звуковые колонки, подключив к которому колонки или наушники мы слышим звук.

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

Частотная модуляция применяется для высококачественной передачи звукового (низкочастотного) сигнала в радиовещании (в диапазоне УКВ), для звукового сопровождения телевизионных программ, передачи сигналов цветности в телевизионном стандарте SECAM, видеозаписи на магнитную ленту, музыкальных синтезаторах.

Высокое качество кодирования аудиосигнала обусловлено тем, что при ЧМ применяется большая (по сравнению с шириной спектра сигнала АМ) девиация несущего сигнала, а в приёмной аппаратуре используют ограничитель амплитуды радиосигнала для ликвидации импульсных помех.

Синтез звука - процесс генерации звука, представленного в виде дискретного сигнала. Для синтеза звука используется метод частотной модуляции, осуществляющий синтез с помощью нескольких генераторов синусоидальных частот.

  1. Создайте функциональную модель деятельности магазина, занимающегося продажей компьютерной техники. Основные виды производимых в магазине работ таковы: менеджеры формируют планы закупки магазином товаров и закупают товары, кладовщик принимает товары и доставляет их в торговый зал, продавцы размещают товар на полках и продают его покупателю; специалисты гарантийного обслуживания проверяют работоспособность товара и оформляют гарантию на товар.
Подписи преподавателей

  ГОУ СПО   КАиР № 27     «28» июня 2013 г. Итоговая государственная аттестация гр. 09АТ0ВМ1 II этап экзамена – решение практических заданий ЭКЗАМЕНАЦИОННЫЙ БИЛЕТ № 28 УТВЕРЖДАЮ Зам. директора по учебной работе _________________ Руководитель цикловой комиссии _________________
1. Установить менеджер групповых политик. Настроить локальные политики компьютера. (Конфигурация компьютера, конфигурация пользователя).

Запуск редактора групповой политики

Чтобы запустить редактор групповой политики, выполните следующие действия:

ПРИМЕЧАНИЕ. Чтобы использовать редактор групповой политики, необходимо войти в систему с учетной записью, обладающей привилегиями администратора.

В меню Пуск выберите пункт Выполнить.

В поле Открыть введите команду mmc и нажмите кнопку ОК.

В меню Консоль выберите команду Добавить или удалить оснастку.

Нажмите кнопку Добавить.

В диалоговом окне Добавить изолированную оснастку выберите оснастку Групповая политика и нажмите кнопку Добавить.

Если требуется изменить политику не для локального компьютера, нажмите кнопку Обзор и выберите нужный объект групповой политики. При необходимости укажите имя пользователя и пароль. В диалоговом окне Выбор объекта групповой политики нажмите кнопку Готово.

ПРИМЕЧАНИЕ. С помощью кнопки Обзор можно найти объекты групповой политики, соответствующие сайтам, доменам, подразделениям и другим компьютерам. Объект групповой политики по умолчанию («Локальный компьютер») служит для настройки параметров локального компьютера.

Нажмите кнопку Закрыть, после чего в диалоговом окне Добавить/удалить оснастку нажмите кнопку ОК.

Выбранный объект групповой политики отобразится в корне консоли.

Использование редактора групповой политики

Оснастка «Групповая политика» содержит два основных узла.

Конфигурация компьютера

Этот узел служит для настройки политик, применяемых к компьютеру независимо от того, кто входит в систему. Узел «Конфигурация компьютера», как правило, содержит вложенные элементы для параметров программ, параметров Windows и административных шаблонов.

Конфигурация пользователя

Этот узел служит для настройки политик, применяемых к пользователям независимо от того, на каком компьютере они входят в систему. Узел «Конфигурация пользователя», как правило, содержит вложенные элементы для параметров программ, параметров Windows и административных шаблонов.

Чтобы использовать редактор групповой политики, выполните следующие действия:

Разверните нужный объект групповой политики, например Политика «Локальный компьютер».

Разверните нужный узел, например Конфигурация компьютера.

Разверните нужный вложенный элемент, например Конфигурация Windows.

Откройте папку, которая содержит нужный параметр политики. Элементы политики отображаются на правой панели оснастки в редакторе групповой политики.

ПРИМЕЧАНИЕ. Если для выбранного элемента политика не определена, щелкните нужную папку правой кнопкой мыши, выберите в меню пункт Все задачи и выберите команду. Перечень команд в подменю Все задачи зависит от контекста. Отображаются только те команды, которые применимы к выбранной папке политики.

В списке Параметр два раза щелкните нужный элемент политики.

ПРИМЕЧАНИЕ. Чтобы просмотреть дополнительные сведения об элементе политики в папке Административные шаблоны можно открыть вкладку Расширенный на правой панели консоли управления (MMC),.

Настройте параметры политики в открывшемся диалоговом окне и нажмите кнопку OК.

Выполнив необходимые действия, закройте консоль управления.

  1. Рассчитать вероятность безотказной работы схемы № 11.
Интенсивность отказов устройства h0

h0 =


h i – интенсивность отказов какого-то типа элементов
N i – количество элементов с интенсивностью отказов hi
KН – коэффициент электрической нагрузки
Кт – коэффициент теплового режима
k – количество элементов по типам и режимам использования


Вероятность безотказной работы устройства P0


e – основание натурального логарифма = 2.71

h0 – суммарная интенсивность отказов
t – время наработки на отказ

Время наработки на отказ – 10000 часов

Наименование и тип элемента Интенсивность отказов Kн Kт Ni
Микросхемы LM358A (DA1 – DA2) CD4013 (DD1.1) 0.013 0.013 1 1 1 1 2 1 0.026 0.013
Резисторы R1 – R13 МЛТ 0.03 0.6 1 13 0.234
Конденсаторы C1, C2 0.035 0.7 1 2 0.049
Транзисторы VT1 КТ315 VT2 IRLR2905 0.5 0.5 0.5 0.5 1 1 1 1   0.25 0.25
Диод PZX84C4V7 0.157 0.5 1 1 0.0785
Пайка SB1 0.07 0.8 1 50 2.8
          3.7 * 10­-6

Подписи преподавателей

  ГОУ СПО   КАиР № 27     «28» июня 2013 г. Итоговая государственная аттестация гр. 09АТ0ВМ1 II этап экзамена – решение практических заданий ЭКЗАМЕНАЦИОННЫЙ БИЛЕТ № 29 УТВЕРЖДАЮ Зам. директора по учебной работе _________________ Руководитель цикловой комиссии _________________
1. Опишите принцип работы снифферов. Определить логин для почты.

Анализатор трафика, или сниффер (от англ. to sniff — нюхать) — сетевой анализатор трафика, программа или программно-аппаратное устройство, предназначенное для перехвата и последующего анализа, либо только анализа сетевого трафика, предназначенного для других узлов.

Сниффер может анализировать только то, что проходит через его сетевую карту. Внутри одного сегмента сети Ethernet все пакеты рассылаются всем машинам, из-за этого возможно перехватывать чужую информацию. Использование коммутаторов (switch, switch-hub) и их грамотная конфигурация уже является защитой от прослушивания. Между сегментами информация передаётся через коммутаторы. Коммутация пакетов — форма передачи, при которой данные, разбитые на отдельные пакеты, могут пересылаться из исходного пункта в пункт назначения разными маршрутами. Так что если кто-то в другом сегменте посылает внутри его какие-либо пакеты, то в ваш сегмент коммутатор эти данные не отправит.

Перехват трафика может осуществляться:

  1. Создайте функциональную модель системы автоматизированного контроля прохода пассажиров.
Подписи преподавателей

  ГОУ СПО   КАиР № 27     «28» июня 2013 г. Итоговая государственная аттестация гр. 09АТ0ВМ1 II этап экзамена – решение практических заданий ЭКЗАМЕНАЦИОННЫЙ БИЛЕТ № 30 УТВЕРЖДАЮ Зам. директора по учебной работе _________________ Руководитель цикловой комиссии _________________

  1. Рассчитать вероятность безотказной работы схемы № 12.
Интенсивность отказов устройства h0

h0 =


h i – интенсивность отказов какого-то типа элементов
N i – количество элементов с интенсивностью отказов hi
KН – коэффициент электрической нагрузки
Кт – коэффициент теплового режима
k – количество элементов по типам и режимам использования


Вероятность безотказной работы устройства P0


e – основание натурального логарифма = 2.71

h0 – суммарная интенсивность отказов
t – время наработки на отказ

Время наработки на отказ – 10000 часов

Наименование и тип элемента Интенсивность отказов Kн Kт Ni
Микросхемы LM358A (DA1 – DA2) CD4013 (DD1.1) 0.013 0.013 1 1 1 1 2 1 0.026 0.013
Резисторы R1 – R13 МЛТ 0.03 0.6 1 13 0.234
Конденсаторы C1, C2 0.035 0.7 1 2 0.049
Транзисторы VT1 КТ315 VT2 IRLR2905 0.5 0.5 0.5 0.5 1 1 1 1   0.25 0.25
Диод PZX84C4V7 0.157 0.5 1 1 0.0785
Пайка SB1 0.07 0.8 1 50 2.8
          3.7 * 10­-6

  1. Создайте в информационной модели сущность «Изделия» и реализуйте в ней рекурсивную связь, показывающую вхождение более простых изделий в состав более крупных.
Подписи преподавателей

Оценочное тестирование

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

Оценочное тестирование, которое также называют «тестированием системы в целом», включает следующие виды:

• тестирование удобства использования - последовательная проверка соответствия программного продукта и документации на него основным положениям технического задания;

• тестирование на предельных объемах - проверка работоспособности программы на максимально больших объемах данных, например, объемах текстов, таблиц, большом количестве файлов и т. п.;

• тестирование на предельных нагрузках - проверка выполнения программы на возможность обработки большого объема данных, поступивших в течение короткого времени;

• тестирование удобства эксплуатации - анализ психологических факторов, возникающих при работе с программным обеспечением; это тестирование позволяет определить, удобен ли интерфейс, не раздражает ли цветовое или звуковое сопровождение и т. п.;

• тестирование защиты - проверка защиты, например, от несанкционированного доступа к информации;

• тестирование производительности - определение пропускной способности при заданной конфигурации и нагрузке;

• тестирование требований к памяти - определение реальных потребностей в оперативной и внешней памяти;

• тестирование конфигурации оборудования - проверка работоспособности программного обеспечения на разном оборудовании;

• тестирование совместимости - проверка преемственности версий: в тех случаях, если очередная версия системы меняет форматы данных, она должна предусматривать специальные конвекторы, обеспечивающие возможность работы с файлами, созданными предыдущей версией системы;

• тестирование удобства установки - проверка удобства установки;

• тестирование надежности - проверка надежности с использованием математических моделей;

• тестирование восстановления - проверка восстановления программного обеспечения, например системы, включающей базу данных, после сбоев оборудования и программы;

• тестирование удобства обслуживания - проверка средств обслуживания, включенных в программное обеспечение;

• тестирование документации - тщательная проверка документации, например, если документация содержит примеры, то их все необходимо попробовать;

• тестирование процедуры - проверка ручных процессов, предполагаемых в системе.

Естественно, целью всех этих проверок является поиск несоответствий техническому заданию. Считают, что только после выполнения всех видов тестирования программный продукт может быть представлен пользователю или к реализации. Однако на практике обычно выполняют не все виды оценочного тестирования, так как это очень дорого и трудоемко. Как правило, для каждого типа программного обеспечения выполняют те виды тестирования, которые являются для него наиболее важными. Так базы данных обязательно тестируют на предельных объемах, а системы реального времени - на предельных нагрузках.

14. Отладка ПО – классификация ошибок: ошибки компиляции, компоновки, выполнения; причины ошибок выполнения.

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

В целом сложность отладки обусловлена следующими причинами:

• требует от программиста глубоких знаний специфики управления используемыми техническими средствами, операционной системы, среды и языка программирования, реализуемых процессов, природы и специфики различных ошибок, методик отладки и соответствующих программных средств;

• психологически дискомфортна, так как необходимо искать собственные ошибки и, как правило, в условиях ограниченного времени;

• возможно взаимовлияние ошибок в разных частях программы, например, за счет затирания области памяти одного модуля другим из-за ошибок адресации;

• отсутствуют четко сформулированные методики отладки.

В соответствии с этапом обработки, на котором проявляются ошибки, различаю:

синтаксические ошибки - ошибки, фиксируемые компилятором (транслятором, интерпретатором) при выполнении синтаксического и частично семантического анализа программы;

ошибки компоновки - ошибки, обнаруженные компоновщиком (редактором связей) при объединении модулей программы;

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

Синтаксические ошибки. Синтаксические ошибки относят к группе самых простых, так как синтаксис языка, как правило, строго формализован, и ошибки сопровождаются развернутым комментарием с указанием ее местоположения. Определение причин таких ошибок, как правило, труда не составляет, и даже при нечетком знании правил языка за несколько прогонов удается удалить все ошибки данного типа.

Следует иметь в виду, что чем лучше формализованы правила синтаксиса языка, тем больше ошибок из общего количества может обнаружить компилятор и, соответственно, меньше ошибок будет обнаруживаться на следующих этапах. В связи с этим говорят о языках программирования с защищенным синтаксисом и с незащищенным синтаксисом. К первым, безусловно, можно отнести Pascal, имеющий очень простой и четко определенный синтаксис, хорошо проверяемый при компиляции программы, ко вторым - Си со всеми его модификациями. Чего стоит хотя бы возможность выполнения присваивания в условном операторе в Си, например: if (c = n) x = 0; /* в данном случае не проверятся равенство с и n, а выполняется присваивание с значения n, после чего результат операции сравнивается с нулем, если программист хотел выполнить не присваивание, а сравнение, то эта ошибка будет обнаружена только на этапе выполнения при получении результатов, отличающихся от ожидаемых */

Ошибки компоновки. Ошибки компоновки, как следует из названия, связаны с проблемами,

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

Ошибки выполнения. К самой непредсказуемой группе относятся ошибки выполнения. Прежде всего они могут иметь разную природу, и соответственно по-разному проявляться. Часть ошибок обнаруживается и документируется операционной системой. Выделяют четыре способа проявления таких ошибок:

• появление сообщения об ошибке, зафиксированной схемами контроля выполнения машинных команд, например, переполнении разрядной сетки, ситуации «деление на ноль», нарушении адресации и т. п.;

• появление сообщения об ошибке, обнаруженной операционной системой, например, нарушении защиты памяти, попытке записи на устройства, защищенные от записи, отсутствии файла с заданным именем и т. п.;

• «зависание» компьютера, как простое, когда удается завершить программу без перезагрузки операционной системы, так и «тяжелое», когда для продолжения работы необходима перезагрузка;

• несовпадение полученных результатов с ожидаемыми.

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

• неверное определение исходных данных,

• логические ошибки,

• накопление погрешностей результатов вычислений.

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

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

К последней группе относят:

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

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

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

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

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

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

• опосредованного проявления ошибок;

• возможности взаимовлияния ошибок;

• возможности получения внешне одинаковых проявлений разных ошибок;

• отсутствия повторяемости проявлений некоторых ошибок от запуска к запуску – так называемые стохастические ошибки;

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

• написания отдельных частей программы разными программистами.

15. Методы отладки ПО: ручное тестирование, индукции, дедукция, обратное прослеживание.

Отладка программы в любом случае предполагает обдумывание и логическое осмысление всей имеющейся информации об ошибке. Большинство ошибок можно обнаружить по косвенным признакам посредством тщательного анализа текстов программ и результатов тестирования без получения дополнительной информации. При этом используют различные методы:

• ручного тестирования;

• индукции;

• дедукции;

• обратного прослеживания.

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

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

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


Самый ответственный этап - выявление симптомов ошибки. Организуя данные об ошибке, целесообразно записать все, что известно о ее проявлениях, причем фиксируют, как ситуации, в которых фрагмент с ошибкой выполняется нормально, так и ситуации, в которых ошибка проявляется. Если в результате изучения данных никаких гипотез не появляется, то необходима дополнительная информация об ошибке. Дополнительную информацию можно получить, например, в результате выполнения схожих тестов. В процессе доказательства пытаются выяснить, все ли проявления ошибки объясняет данная гипотеза, если не все, то либо гипотеза не верна, либо ошибок несколько.


Метод дедукции. По методу дедукции вначале формируют множество причин, которые могли бы вызвать данное проявление ошибки. Затем анализируя причины, исключают те, которые противоречат имеющимся данным. Если все причины исключены, то следует выполнить дополнительное тестирование исследуемого фрагмента. В противном случае наиболее вероятную гипотезу пытаются доказать. Если гипотеза объясняет полученные признаки ошибки, то ошибка найдена, иначе - проверяют следующую причину (рис. 10.4).


Метод обратного прослеживания. Для небольших программ эффективно применение метода обратного прослеживания. Начинают с точки вывода неправильного результата. Для этой точки строится гипотеза о значениях основных переменных, которые могли бы привести к получению имеющегося результата. Далее, исходя из этой гипотезы, делают предложения о значениях переменных в предыдущей точке. Процесс продолжают, пока не обнаружат причину ошибки.

16. Методы и средства получения дополнительной информации об ошибке: отладочный вывод, интегрированные средства отладки, независимые отладчики.

Для получения дополнительной информации об ошибке можно выполнить добавочные тесты или использовать специальные методы и средства:

• отладочный вывод;

• интегрированные средства отладки;

• независимые отладчики.

Отладочный вывод. Метод требует включения в программу дополнительного отладочного вывода в узловых точках. Узловыми считают точки алгоритма, в которых основные переменные программы меняют свои значения. Например, отладочный вывод следует предусмотреть до и после завершения цикла изменения некоторого массива значений. (Если отладочный вывод предусмотреть в цикле, то будет выведено слишком много значений, в которых, как правило, сложно разбираться.) При этом предполагается, что, выполнив анализ выведенных значений, программист уточнит момент, когда были получены неправильные значения, и сможет сделать вывод о причине ошибки. Данный метод не очень эффективен и в настоящее время практически не используется, так как в сложных случаях в процессе отладки может потребоваться вывод большого количества - «трассы» значений многих переменных, которые выводятся при каждом изменении. Кроме того, внесение в программы дополнительных операторов может привести к изменению проявления ошибки, что нежелательно, хотя и позволяет сделать определенный вывод о ее природе.

Примечание. Ошибки, исчезающие при включении в программу или удалению из нее каких-либо «безобидных» операторов, как правило, связаны с «затиранием» памяти. В результате добавления или удаления операторов область затирания может сместиться в другое место и ошибка либо перестанет проявляться, либо будет проявляться по-другому.

Интегрированные средства отладки. Большинство современных сред программирования (Delphi, Builder C++, Visual Studio и т. д.) включают средства отладки, которые обеспечивают максимально эффективную отладку. Они позволяют:

• выполнять программу по шагам, причем как с заходом в подпрограммы, так и выполняя их

целиком;

• предусматривать точки останова;

• выполнять программу до оператора, указанного курсором;

• отображать содержимое любых переменных при пошаговом выполнении;

• отслеживать поток сообщений и т. п.

Применять интегрированные средства в рамках среды достаточно просто. Используют разные приемы в зависимости от проявлений ошибки. Если получено сообщение об ошибке, то сначала уточняют, при выполнении какого оператора программы оно получено. Для этого устанавливают точку останова в начало фрагмента, в котором проявляется ошибка, и выполняют операторы в пошаговом режиме до проявления ошибки. Аналогично поступают при «зависании» компьютера.

Если получены неправильные результаты, то локализовать ошибку обычно существенно сложнее. В этом случае сначала определяют фрагмент, при выполнении которого получаются неправильные результаты. Для этого последовательно проверяют интересующие значения в узловых точках. Обнаружив значения, отличающиеся от ожидаемых, по шагам трассируют соответствующий фрагмент до выявления оператора, выполнение которого дает неверный результат.

Отладка с использованием независимых отладчиков. При отладке программ иногда используют специальные программы - отладчики, которые позволяют выполнить любой фрагмент программы в пошаговом режиме и проверить содержимое интересующих программиста переменных. Как правило такие отладчики позволяют отлаживать программу только в машинных командах, представленных в 16-ричном коде.

17. Общая методика отладка ПО: изучение проявления ошибки, локализация ошибки, определение причины ошибки, исправление ошибки, повторное тестирование.

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

2 этап - локализация ошибки - определение конкретного фрагмента, при выполнении которого произошло отклонение от предполагаемого вычислительного процесса. Локализация может выполняться:

• путем отсечения частей программы, причем, если при отсечении некоторой части программы ошибка пропадает, то это может означать как то, что ошибка связана с этой частью, так и то, что внесенное изменение изменило проявление ошибки;

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

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

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

4 этап - исправление ошибки - внесение соответствующих изменений во все операторы, совместное выполнение которых привело к ошибке.

5 этап - повторное тестирование - повторение всех тестов с начала, так как при исправлении обнаруженных ошибок часто вносят в программу новые.

Следует иметь в виду, что процесс отладки можно существенно упростить, если следовать основным рекомендациям структурного подхода к программированию:

• программу наращивать «сверху-вниз», от интерфейса к обрабатывающим подпрограммам, тестируя ее по ходу добавления подпрограмм;

• выводить пользователю вводимые им данные для контроля и проверять их на допустимость сразу после ввода;

• предусматривать вывод основных данных во всех узловых точках алгоритма (ветвлениях, вызовах подпрограмм).

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

Проще всего обычно искать ошибки определения данных и ошибки накопления погрешностей: их причины локализованы в месте проявления. Логические ошибки искать существенно сложнее. Причем обнаружение ошибок проектирования требует возврата на предыдущие этапы и внесения соответствующих изменений в проект. Ошибки кодирования бывают как простые, например, использование неинициализированной переменной, так и очень сложные, например, ошибки, связанные с затиранием памяти. Затиранием памяти называют ошибки, приводящие к тому, что в результате записи некоторой информации не на свое место в оперативной памяти, затираются фрагменты данных или даже команд программы. Ошибки подобного рода обычно вызывают появление сообщения об ошибке. Поэтому определить фрагмент, при выполнении которого ошибка проявляется, несложно. А вот определение фрагмента программы, который затирает память - сложная задача, причем, чем длиннее программа, тем сложнее искать ошибки такого рода. Именно в этом случае часто прибегают к удалению из программы частей, хотя это и не обеспечивает однозначного ответа на вопрос, в какой из частей программы находится ошибка. Эффективнее попытаться определить операторы, которые записывают данные в память не по имени, а по адресу, и последовательно их проверить. Особое внимание при этом следует обращать на корректное распределение памяти под данные.

18. Организация испытаний, цель испытаний, предварительные и совместные испытания, виды испытаний в жизненном цикле ПО: опытного образца, рабочей версии, модернизированной версии; категории испытаний: функциональные, стрессовые, использования ресурсов ЭВМ, параллельного решения задач.

Организация испытаний комплексов программ. Используются для программ, создаваемых на уровне продукции производствен­но-технического назначения и отчуждаемых от разработчика. Важная осо­бенность испытаний программы состоит в наличии достаточно полных эталонов, которым должен соответствовать КП, тре­бований технического задания. Цель испытаний — определение степени соответствия созданного комплекса программ техниче­скому заданию, полученному от заказчика.

Испытания сложных КП являются наиболее формализован­ным и регламентированным видом тестирования. Для всесторон­ней проверки опытный образец КП подвергается испытаниями главного конструктора (предварительные испытания) и заказчи­ка-пользователя с участием разработчиков (совместные испыта­ния).

При испытаниях главного конструктора, которые зачастую совмещаются с завершением комплексной отладки, производится, по существу, такое же тестирование, что и на совместных испытаниях, только в меньшем объеме. Эти проверки оформляются документально и являются основанием для предъявления КП за­казчику на совместные испытания. Любые испытания ограничены допустимым объемом проверок и длительностью работы комиссии, поэтому не могут гарантировать всестороннюю проверку изделия. Для повышения достоверности определения и улучшения харак­теристик КП после испытаний главного конструктора программы целесообразно на некоторое время передавать на опытную эксплу­атацию в типовых условиях. Это позволяет более глубоко оце­нить эксплуатационные характеристики созданного комплек­са и устранить некоторые ошибки. Опытная эксплуатация КП проводится разработчиками с участием испытателей и некоторых пользователей, назначаемых заказчиком. Результаты опытной эксплуатации после испытаний главного конструктора могут учитываться при совместных испытаниях для их сокращения.

В жизненном цикле КП можно выделить следующие виды испытаний

-опытного образца на полное соответствие требованиям технического задания,

-рабочей версии КП, адаптированной к условиям конкретного применения,

-версии модернизированного КП при сопровождении.

Функциональное тестирование — наиболее об­ширное и труднее всего систематизируемое. Набор испытатель­ных тестов полностью определяется функциональными задачами и сложностью КП. Эти тесты должны обеспечивать проверку и демонстрацию заказчику или пользователю качества решения функциональных задач, сформулированных в техническом зада­нии и конкретизированных в документации. Поскольку исчерпывающее тестирование для сложных КП невозможно, большое значение имеют уточнение областей варьирования тестовых дан­ных и выделение областей их изменения, наиболее важных для последующего использования программ

Стрессовое тестирование (в критических ситуа­циях) базируется на классификации областей определения ис­ходных данных и использует граничные или экстремальные значения параметров и условий. Комбинация критических зна­чений и условий испытаний в большинстве случаев очень разнообразна, и необходим тщательный анализ для выделения до­статочно представительной выборки. Кроме того, при стрессо­вых испытаниях должно быть показано, что при изменении ис­ходных данных за допустимыми пределами эти ситуации обна­руживаются, селектируются и выдается диагностика о наруше­нии ограничений на условии эксплуатации программ.

Тестирование использования ресурсов ЭВМ комплексом программ в значительной степени является стрессовым тестированием. При этом внимание сосредо­точивается на исследовании зависимости объема памяти и дли­тельности решения задач от характеристик исходной информа­ции. Определяются допустимые размерность задач и интенсив­ности потоков исходных данных, при которых возможно нормальное функционирование КП на данной ЭВМ





Дата публикования: 2014-11-18; Прочитано: 1935 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.047 с)...