WWW.DISSERS.RU

БЕСПЛАТНАЯ ЭЛЕКТРОННАЯ БИБЛИОТЕКА

   Добро пожаловать!


Pages:     || 2 | 3 | 4 | 5 |   ...   | 23 |
А. В. Пономаренко, В. В. Рубанова и Е. С. Чернова «Технология Azov автоматизации массового создания тестов работоспособности» представляет технологию Azov в целом и сопоставляет ее с аналогами. Статья Р. С. Зыбина, А. В. Пономаренко, В. В. Рубанова и Е. С. Чернова «Расширение описаний сигнатур операций для автоматической генерации тестов» рассказывает более Предисловие детально о ключевом элементе технологии Azov — специализированных типах, и о методике их создания. Третья статья А. В. Пономаренко и Е. С. Чернова «Алгоритм генерации тестов работоспособности на основе Этот специальный выпуск трудов Института системного программирования расширенной базы данных LSB» содержит описание алгоритма РАН составлен из статей сотрудников отдела технологий программирования и автоматической генерации тестов, используемого в технологии Azov.

посвящен различным методам тестирования сложных программных и Последняя в этой серии статья «Опыт применения технологии Azov для аппаратных систем.

тестирования библиотеки Qt3» Р. С. Зыбина анализирует особенности использования этой технологии при разработке тестов работоспособности для Хотя в настоящий момент разрабатываемые в отделе технологии тестирования переносимой библиотеки Qt версии 3, предназначенной для создания очень сильно различаются в силу различий области применения, задач и приложений с графическим пользовательским интерфейсом.

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

которые можно использовать для автоматизации тестирования Webприложений, большая часть функций которых реализована с помощью Первые две работы второй части сборника, статья А. С. Камкина и скриптов, кода на интерпретируемых языках. В этой статье также М. М. Чупилко «Тестирование модулей арифметики с плавающей точкой представлены результаты тестирования с помощью перечисленных техник микропроцессоров на соответствие стандарту IEEE 754» и статья LSB Навигатора, приложения, предназначенного для представления и анализа А. С. Камкина «Генерация тестовых программ для микропроцессоров» информации о различных составляющих стандарта Linux Standard Base.

посвящены методам тестирования аппаратного обеспечения, разрабатываемым в ИСП РАН. Первая статья рассказывает о тестировании модулей вычислений с плавающей точкой, использующем технологию Член-корреспондент РАН В. П. Иванников UniTESK и специальные техники выбора тестов данных для проверки Кандидат физ.-мат. наук В. В. Кулямин корректности выполнения операций над числами с плавающей точкой. Вторая статья представляет методику автоматической генерации тестовых программ для системного тестирования микропроцессоров, основанную на комбинаторном переборе сочетаний различных условий выполнения отдельных инструкций.

Статья В. В. Рубанова, А. В. Хорошилова и Е. А. Шатохина «T2C: технология автоматизированной разработки тестов базовой функциональности программных интерфейсов» описывает разработанную в ИСП РАН технологию T2C (Template-to-Code), повышающую эффективность ручной разработки тестов базовой функциональности и обеспечивающую строгую привязку всех создаваемых тестов к требованиям к тестируемой системе.

Четыре статьи, идущие следом, посвящены одной теме — новой технологии Azov, предназначенной для автоматической генерации тестов, проверяющих минимальную работоспособность тестируемой системы, на основе базы данных, содержащей структурированную информацию об интерфейсных операциях этой системы. Статья Р. С. Зыбина, В. В. Кулямина, 5 Модули арифметики, как и любая цифровая аппаратура, разрабатываются на специальных языках описания аппаратуры (HDLs, Hardware Description Languages), например, Verilog или VHDL [4]. Такие языки позволяют описать функциональность электронной схемы, абстрагируясь от деталей расположения и соединения ее элементов. Использование языков описания Тестирование модулей арифметики с аппаратуры значительно повышает продуктивность разработки аппаратуры, но не страхует от ошибок, поэтому функциональное тестирование поплавающей точкой микропроцессоров прежнему остается актуальной и востребованной задачей.

на соответствие стандарту IEEE Формат и правила действий над числами с плавающей точкой определены в стандарте IEEE 754 [5] (он же — IEC 60559 [6]). Стандарт описывает операции сложения, умножения, вычитания, деления, вычисления остатка от деления, А. C. Камкин, М. M. Чупилко извлечения квадратного корня и преобразований между различными типами {kamkin, chupilko}@ispras.ru чисел — это базовый набор операций, реализуемых в FPU микропроцессоров.

Для всех операций требуется, чтобы их результат получался из точного путем Аннотация. В работе рассматривается методика функционального тестирования приведения к представимому числу согласно установленному режиму модулей арифметики с плавающей точкой микропроцессоров (FPUs, Floating Point округления.

Units) на соответствие стандарту IEEE 754. Методика основана на технологии В идеале, чтобы убедиться в том, что операция над числами с плавающей тестирования UniTESK, но дополнена методами генерации тестов для операций над точкой реализована корректно, необходимо проверить ее результат на всех числами с плавающей точкой. Большое внимание в статье уделяется операциям деления и извлечения квадратного корня. Важной частью работы является описание возможных значениях операндов. Огромное пространство входных данных не опыта применения предлагаемой методики.



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

1. Введение В работе рассматривается методика построения тестов для FPU Модули арифметики с плавающей точкой (FPUs, Floating Point Units) микропроцессоров, которая основана на технологии тестирования являются важной составной частью микропроцессоров. Они используются в UniTESK [7], использующей формальные спецификации требований к системе научно-технических расчетах и задачах обработки мультимедиа-данных, без для автоматизированного построения тестов на соответствие им [8]. Основные них редко обходятся бортовые системы самолетов и космических спутников, элементы технологии UniTESK применительно к модулям арифметики они входят в состав станков с программным управлением и медицинского таковы. Требования на тестируемые операции представляются формально в оборудования. Ошибки в таких системах могут стоить жизней или здоровья виде эталонных реализаций. Чтобы сделать спецификации независимыми от людей, поэтому не удивительно, что к модулям арифметики предъявляют конкретного интерфейса модуля, разрабатывается прослойка медиаторов, очень строгие требования.

связывающих спецификации операций с тестируемым модулем.

Большое влияние на формирование жестких требований оказывают также Рассматриваемая методика дополняет технологию UniTESK методами экономические факторы. В отличие от программного обеспечения, в котором генерации тестов для операций над числами с плавающей точкой. В рамках исправление ошибки стоит сравнительно дешево, ошибка в аппаратном предлагаемого подхода используются несколько типов тестов: сложные обеспечении, обнаруженная несвоевременно, может потребовать перевыпуск случаи округления, тесты на исключительные ситуации, особые случаи и замену продукции, а это сопряжено с очень высокими затратами. Так, (специальные значения операндов, граничные значения и другие) и тесты с известная ошибка в реализации инструкции деления чисел с плавающей определенной битовой структурой операндов. Подход был успешно точкой микропроцессора Pentium1 [1] (FDIV bug) обошлась компании Intel в апробирован в проектах по тестированию Verilog-моделей FPU, реализующих 475 миллионов долларов [2,3].

операции деления и извлечения квадратного корня.

Исключение составляют унарные операции над числами однократной Pentium — торговая марка нескольких поколений микропроцессоров точности. (Определение чисел однократной точности дается во втором семейства x86, выпускаемых компанией Intel с 22 марта 1993 года. разделе.) 7 Статья состоит из шести разделов, включая введение и заключение. Второй Значения NaN подразделяются на тихие (QNAN, Quiet NaN) и раздел посвящен стандарту IEEE 754. В этом разделе описываются основные сигнальные (SNaN, Signaling NaN), которые отличаются старшим положения стандарта касательно представления чисел с плавающей точкой, битом мантиссы: если он равен единице, это QNaN; в противном режимов округления и исключений, вызываемых операциями. В третьем случае — SNaN.

разделе описаны предлагаемые методики построения тестов. Четвертый Стандарт IEEE 754 определяет несколько возможных типов чисел с раздел описывает архитектуру разработанной тестовой системы, плавающей точкой (отличающихся числом бит, отводимых под порядок и предназначенной для тестирования Verilog-моделей FPU. В пятом разделе мантиссу), среди которых чаще всего используются числа однократной приведены результаты апробации тестовой системы.

точности (singles, single precision numbers) и числа двойной точности (doubles, double precision numbers).

2. Обзор стандарта IEEE Числа однократной точности — это числа с плавающей точкой, для Стандарт IEEE 754 определяет представление двоичных чисел с плавающей представления которых используется 32 бита: 1 бит на знак, 8 бит на порядок точкой, а также режимы округления операций и исключения — специальные и 23 бита на мантиссу.

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

В дальнейшем будем называть двоичные числа с плавающей точкой просто числами с плавающей точкой, а действительные числа, точно представимые в виде чисел с плавающей точкой — представимыми.

2.1. Представление чисел с плавающей точкой Рис. 1. Представление числа однократной точности.

Согласно стандарту IEEE 754, битовое представление чисел с плавающей точкой содержит три составляющие: знак, порядок и мантиссу. Под знак Числа двойной точности — это числа с плавающей точкой, для представления отводится один бит (значение 0 соответствует положительным числам, 1 — которых используется 64 бита: 1 бит на знак, 11 бит на порядок и 52 бита на отрицательным); число бит, отводимое под порядок и мантиссу, зависит от мантиссу.

типа чисел.

2.2. Режимы округления Пусть под порядок отводится n бит. Число B = 2n–1 – 1 называется смещением Стандарт IEEE 754 описывает операции сложения, умножения, вычитания, порядка (bias). Знаковый бит S, порядок E и мантисса M числа x определяют деления, вычисления остатка от деления, извлечения квадратного корня и его значение по следующим правилам: x = (–1)S · 2e · m, где:

преобразований между различными типами чисел. Общий принцип всех опе если E 0, то e = E – B; иначе, e = –B + 1;





раций заключается в том, что результат получается из точного путем приве если 0 < E < 2n – 1, то m имеет двоичное представление 1.M, то есть дения к представимому числу согласно установленному режиму округления.

целая часть m равна 1, а последовательность цифр дробной части В стандарте определены четыре режима округления:

совпадает с последовательностью бит M; если E = 0, то m имеет двоичное представление 0.M, такие числа (с нулевым порядком) округление к ближайшему представимому числу;

называются денормализованными.

округление к –;

округление к +;

Заметим, что среди чисел с плавающей точкой существует число –0, которое округление к 0.

стандарт требует считать равным 0.

Стандартом определены особые комбинации значений порядка и мантиссы:

В режиме округления к ближайшему представимому числу, как следует из названия, результатом операции является представимое число, ближайшее к бесконечности () — все разряды порядка равны единице, мантисса точному значению. Когда точное значение одинаково удалено от двух предсравна нулю (E = 2n – 1, M = 0);

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

не-число (NaN, Not-a-Number) — все разряды порядка равны единице, мантисса отлична от нуля (E = 2n – 1, M 0).

При округлении к – результатом является ближайшее представимое число, не превосходящее точного значения; при округлении к + — ближайшее 9 представимое число, которое не меньше точного значения; при округлении к 0 бесконечности делимое. В случае возникновения исключения division by zero — ближайшее представимое число, не превосходящее по абсолютной результат равен бесконечности:

величине точного значения.

делимое: 7FEFFFFFFFFFFFFF16 (1.797693e+308) делитель: 000000000000000016 (+0) Три последних режима называют режимами направленного округления частное: 7FF000000000000016 (+) (directed rounding).

исключения: division by zero Для иллюстрации режимов округления рассмотрим примеры. В первом примере требуется округлить число к ближайшему представимому числу Исключение overflow возникает, когда результат операции превышает (по однократной точности:

абсолютной величине) наибольшее представимое число:

исходная мантисса:

делимое: 7FEFFFFFFFFFFFFF16 (1.797693e+308) делитель: 0003A6B50B0F27BB16 (5.077619e–309) частное: 7FEFFFFFFFFFFFFF16 (1.797693e+308) округленная мантисса:

исключения: overflow и inexact Исключение underflow возникает, когда результат операции настолько мал (по В следующем примере требуется округлить число с заданной мантиссой в абсолютной величине), что он может быть представлен только сторону 0:

денормализованным числом:

исходная мантисса:

делимое: 001000000000000016 (2.225074e–308) делитель: 7FEFFFFFFFFFFFFF (1.797693e+308) округленная мантисса:

частное: 000000000000000016 (+0) исключения: underflow и inexact 2.3. Исключения Исключение inexact возникает, когда результат операции отличается от точного значения:

Стандартом IEEE 754 определены пять типов исключений:

делимое: 27E83F0F3FFC953816 (1.786431e+000) invalid operation — некорректная операция;

делитель: FBAF43813FFFFFFF (2.000000e+000) division by zero — деление на нуль;

частное: 2BC3037F3FEC953816 (8.932153e–001) overflow — переполнение;

исключения: inexact underflow — потеря значимости;

inexact — потеря точности.

3. Методика построения тестовых данных В стандарте приводится список ситуаций, в которых выставляется исключение Для качественного тестирования модулей арифметики с плавающей точкой invalid operation. Ниже представлены некоторые из них:

тесты должны затрагивать различные аспекты их функциональности:

любые операции над SNaN;

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

округления, тесты на исключительные ситуации, особые случаи умножение 0·;

(специальные значения операндов, граничные значения и другие) и тесты с деление 0/0 или /;

определенной битовой структурой операндов.

взятие остатка от деления x rem y, где y = 0 или x = ;

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

которые бывают полезны на ранних стадиях тестирования.

Рассмотрим остальные исключения на примере деления чисел двойной 3.1. Сложные случаи округления точности в режиме округления к 0.

Сложным случаем округления (hard-to-round case, extremal rounding boundary Исключение division by zero выставляется, когда делитель равен нулю.

case) называется ситуация, когда значения операндов таковы, что результат Обязательное условие возникновения исключения — не равное нулю или операции очень близок к числу, представимому в форме числа с плавающей 11 точкой заданной точности, но отличается от него на величину значительно включать тесты, в которых создаются ситуации “близкие” к исключительным, меньшую единицы последнего разряда мантиссы (ulp, unit in the last place). но таковыми не являющиеся.

Очевидно, что значения операндов для сложных случаев округления зависят Заметим, что для проверки правильности выставления исключения inexact как от операции, так и от режима округления.

Pages:     || 2 | 3 | 4 | 5 |   ...   | 23 |










© 2011 www.dissers.ru - «Бесплатная электронная библиотека»

Материалы этого сайта размещены для ознакомления, все права принадлежат их авторам.
Если Вы не согласны с тем, что Ваш материал размещён на этом сайте, пожалуйста, напишите нам, мы в течении 1-2 рабочих дней удалим его.