Стандарты в Linux

1371377631_standarty-v-linux-2912991 Современный стандарт в виде текста не всегда полезен и удобен — например, LSB в бумажной интерпретации занял бы несколько томов. А поскольку он ссылается более чем на сотню других стандартов и спецификаций (включая POSIX, OpenGL и другие достаточно объемные документы), то пользоваться им в бумажном варианте практически нереально. Наличие электронного представления текста в виде HTML или PDF несколько улучшает ситуацию, но не снимает проблему огромного объема информации.Поэтому создатели многих стандартов предоставляют не только текст, но и различные вспомогательные инструментальные средства, призванные помочь в создании совместимых со стандартом продуктов.

Тесты

В случае стандартов на интерфейсы взаимодействия приложений с ОС тесты могут быть нацелены на две различные категории продуктов:> тесты для компонентов ОС, предоставляющих определенные в стандарте интерфейсы;> тесты для приложений, использующих интерфейсы.Задача тестов первого вида — удостовериться, что дистрибутив предоставляет все необходимые интерфейсы с требуемыми характеристиками.Задача тестов второго вида — помочь разработчикам приложений убедиться, что их продукты используют только разрешенные стандартом интерфейсы и только таким образом, каким это предусмотрено стандартом.Если стандарт подразумевает формальную процедуру сертификации продуктов на соответствие требованиям спецификации, то именно успешное прохождение тестов является основным (а зачастую и единственным) условием получения такого сертификата.Рассмотрим реальный пример: LSB требует присутствия в системной библиотеке libc функции ioctl(), осуществляющей различные операции, связанные с вводом-выводом (ioctl расшифровывается как input/output control). В различных дистрибутивах Linux (в зависимости от версий ядра и библиотеки libc) функция ioctl() может поддерживать различные виды аргументов и соответственно осуществлять различные операции.В стандарте LSB специфицировано только подмножество возможных аргументов ioctl(), которые должны гарантированно поддерживаться в любой LSB-совместимой ОС. Соответственно тесты LSB для дистрибутивов проверяют, что в системе присутствует библиотека libc, экспортирующая функцию ioctlQ, которая принимает на вход все виды предусмотренных стандартом аргументов и выполняет соответствующие операции.Тесты LSB для приложений пытаются проверить, что при вызове ioctl() приложение не передает функции аргументов, не предусмотренных стандартом.Подчеркнем в последнем предложении слово «пытаются» — не так-то просто проверить, что приложение использует функцию корректно при любых сценариях работы.Тестовый инструментарий LSB DynChk для приложений предоставляет средства для отслеживания аргументов, передаваемых ioctl() в процессе работы программы, но сам процесс запуска приложения в различных условиях отдается на откуп человеку, запускающему тесты.

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

Автор: Admin
Прочитано:
Комментариев: 0

Оцените статью
Яндекс.Метрика