Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Тестирование потока данных
Один из способов создания тестовых случаев для ошибок, связанных с потоками дан ных, которые проходят через невзаимодействующую с пользователем часть програм мы — это создание базовой копии файлов данных первоначального запуска програм мы. Затем выполняется сравнение результатов всех последующих запусков програм мы, при условии, что программа прогоняется с той же самой копией файлов данных. Наконец, в исходный код программы вставляются зонды, которые вносят в журнал уникальный номер зонда после выполнения каждого оператора ввода/вывода про граммы. Сравнивая номера зондов, записанные в журнал при каждом запуске про граммы, можно определить, остается ли поток данных через зонды неизменным для каждого теста, который выполняется при использовании одной и той же базовой ко пии файлов данных первоначального запуска. Затем этот тестовый случай может применяться для проверки неизменности потока данных и в новой версии.
Более распространенным способом тестирования потоков данных является под ход, который используется для тестирования приложений, ориентированных на транзакции, например, систем ввода заказов, систем обработки заказов, технологи ческих систем, систем выписки счетов, поставки и возврата продукции. Данные, по лученные в результате каждой тестовой транзакции, могут отслеживаться в каждом из этих процессов и подтверждаться промежуточными результатами тестирования, выполняемого между процессами.
В случае тестирования изменений существующих систем планирование и выпол нение тестирования потоков данных не связано с особыми сложностями, поскольку снимки системы можно сделать до и после того, как каждый процесс впервые исполь зуется существующей системой. Впоследствии, после внесения изменений в новую версию и ввода в нее тех же самых данных, новые результаты можно сравнить (ино гда автоматически) с предыдущими результатами тестирования существующей сис темы.
Еще одним примером блокирующей ошибки, которая также влияет на поток дан ных, может послужить оператор:
IF (I > J) THEN B (I) = A(J) ELSE B (I) = 0 ENDIF.
Если символ операции " больше чем" (>) указан по ошибке и вместо него должен присутствовать символ операции " меньше или равно" (< =), обнулится неверная часть массива В. Все вычисления, следующие за этим оператором IF будут иметь дело с эти ми обнуленными значениями В, в то время как они должны выполняться с ненулевы ми значениями, скопированными из массива А. Это означает, что все результаты тес та, зависящие от В, окажутся неверными. Поэтому тестировщик не сможет опреде лить, содержит ли ошибки остальная часть программы (та, что следует за показанным оператором IF). Тестировщик мог бы проследить поток данных для всех значений I и J или их некоторого поднабора. Имея информацию о потоке данных через несколько процессов, специалист по тестированию может извлекать промежуточные результа ты, тем самым ускоряя процесс выявления и последующего воссоздания ошибок.
|