Новости
Предисловие.
Аннотация
Специальный выпуск трудов Института системного программирования, который Вы держите в руках, состоит из двух частей и содержит работы сотрудников отдела технологий программирования, посвященные различным методам тестирования сложных систем. В этом выпуске мы постарались представить информацию практически обо всех работах, которые ведутся на данный момент в отделе. К сожалению, это не получилось сделать в полной мере, и ряд разработок остались за рамками сборника, прежде всего, работы по тестированию телекоммуникационных протоколов и систем интеграции уровня предприятия. Однако набор тем статей все же позволяет получить некоторое представление о текущей деятельности отдела.
Разнообразие затронутых в сборнике предметов связано с множеством задач, с которыми приходится сталкиваться при оценке качества сложной программной или аппаратной системы. Тем не менее, и из чисто эстетических, и из прагматических соображений, хотелось бы иметь дело с некоторым единым, унифицированным подходом к тестированию.
Несколько лет назад, еще не столкнувшись с большинством проблем, играющих важную роль в текущих проектах, мы полагали, что такой подход у нас есть — это технология UniTESK, предназначенная для автоматизации разработки тестов на основе формальных спецификаций. Какие-то элементы этого взгляда вполне подтвердились, например, удалось использовать технологию UniTESK для тестирования модулей микропроцессоров. Но сейчас мы знаем больше как о различных методах тестирования, так и о разнообразных внешних ограничениях, которые могут в значительной степени определять используемые в проектах технологии, и недостаточная универсальность положений, лежавших в основе нашего подхода, становится все более очевидной.
Тем не менее, некоторую эклектичность тех методик и технологий, которые разрабатываются и используются сейчас, мы склонны рассматривать не как финальное состояние, а как переход к новому этапу унификации, позволяющему более целостно осмыслить проблемы обеспечения качества для сложных систем. Итогом должно стать создание «новой версии» подхода UniTESK, унифицирующего методы тестирования в значительно более широкой области и на новом уровне.
Пока контуры такого подхода лишь едва проглядывают за многообразием используемых техник и методов. Анализ ситуации проводит А. К. Петренко в первой статье первой части сборника «Унификация в автоматизации тестирования. Позиция UniTESK».
Вторая и третья статьи сборника посвящены теории, лежащей в основе методов тестирования компонентов распределенных систем. И. Б. Бурдонов и А. С. Косачев в первой статье «Системы с приоритетами: конформность, тестирование, композиция» формализуют понятие взаимодействия с приоритетной обработкой сообщений различных типов и строят теорию тестирования для компонентов, взаимодействующих подобных образом. Во второй своей статье «Эквивалентные семантики взаимодействия» они анализируют наборы тестовых возможностей, предоставляемых различными семантиками взаимодействия, и определяют условия эквивалентности таких семантик, т.е. условия, при выполнении которых их возможности с точки зрения тестирования одни и те же.
Тему тестирования компонентов распределенных систем продолжает статья В. С. Мутилина «Многопоточное тестирование программных интерфейсов». В ней представлен метод проверки программ на безопасность их работы в многопоточном окружении, сочетающий элементы тестирования и дедуктивного анализа программного кода.
Две следующих статьи рассказывают о критериях тестового покрытия, используемых при тестировании на основе формальных спецификаций, и техниках вычисления достигнутого покрытия во время тестирования. Статья В. В. Кулямина «Критерии тестового покрытия, основанные на структуре контрактных спецификаций» определяет несколько удобных для использования критериев покрытия на базе спецификаций. Статья С. В. Зеленова и С. А. Зеленовой «Автоматическое определение выполнимости наборов формул для операций сравнения» посвящена алгоритму, позволяющему отбрасывать невыполнимые комбинации значений формул, использующих сравнения чисел, получая таким образом более точные отчеты о достигнутом тестовом покрытии.
Еще одна статья С. В. Зеленова и С. А. Зеленовой «Генератор сложных данных Pinery: реализация новых возможностей UniTESK», написанная в соавторстве с А. В. Демаковым, представляет инструмент Pinery для генерации сложных тестовых данных и различные техники его использования, позво-ляющие точнее нацелить процесс генерации на создание специфических данных.
Статья С. Г. Грошева «Локализация ошибок методом сокращенного воспроизведения трассы» описывает методику минимизации сложных тестов для облегчения анализа и более аккуратной локализации обнаруживаемых ими ошибок, а также инструмент, позволяющий строить минимальные тесты автоматически.
В последней в первой части статье Е. С. Чернова и В. В. Кулямина «Тестирование современных библиотек тригонометрических функций» рассказывается о результатах тестирования нескольких реализаций тригонометрических функций с помощью разработанных в ИСП РАН общих подходов к проверке правильности работы математических библиотек.
Издание
Труды Института системного программирования РАН, том 14, часть 1, 2008, стр. 5-6.
ISSN 2220-6426 (Online), ISSN 2079-8156 (Print).