Технология UniTESK

Поделись знанием:
(перенаправлено с «UniTESK»)
Перейти к: навигация, поиск

UniTESK (Unified Testing & specification toolKit) — технология тестирования программного и аппаратного обеспечения на основе формальных спецификаций, разработанная в Институте системного программирования РАН. Технология представляет собой сочетание хорошо зарекомендовавших себя техник, которые могут применяться в различных комбинациях, взаимно сочетаясь и усиливая друг друга. Это делает технологию гибкой и настраиваемой под существующие процессы разработки на всех этапах жизненного цикла разработки программного обеспечения от сбора и анализа требований до сопровождения.

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

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

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

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

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





Шаги технологии

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

История создания

  • В 1994 году Институт Системного Программирования Российской Академии Наук (ИСП РАН) по контракту с Nortel Networks разработал методологию и комплект инструментов автоматизации тестирования интерфейсов прикладных программ (API). Первым практическим применением методологии стало ядро операционной системы реального времени.
  • В течение 1994—1999 годов ИСП РАН создал и установил в Nortel Networks несколько версий технологии KVEST-1.
  • В 1998—1999 годах было завершено создание технологии KVEST-2.
  • В 2000 году технология KVEST адаптируется для использования в проектах на языках C и C++.
  • В 1999 году ИСП РАН начал разработку технологии верифицирования нового поколения — UniTESK (Unified Testing & specification toolKit).

Применение на практике

Технология была успешно применена во многих проектах. Наиболее интересные:

  • Open Linux VERification ([www.linuxtesting.ru/ OLVER]) (c 2005 г.);
  • Тестирование интеграционных и биллинговых компонентов Вымпелкома (c 2007 г.);
  • Тестирование мобильной реализации протокола IPv6 (2002—2003, 2 человеко-года);
  • Тестирование Object Broker (2000, 1 человеко-год);
  • Тестирование компонентов ATM Framework (1999—2000, 6 человеко-лет);
  • Тестирование и редизайн системы поддержки приложений (1998—1999, 2 человеко-года);
  • Тестирование ядра операционной системы (1994—1997, 25 человеко-лет).

Инструментальная поддержка

  • CTESK — инструмент для тестирования программного обеспечения, реализованного на языке C.
  • CTESK Community Edition — бесплатная полнофункциональная версия инструмента CTESK для платформы Linux.
  • JavaTESK — инструмент для тестирования программного обеспечения, реализованного на языке Java.
  • С++TESK — инструмент для тестирования программного обеспечения, реализованного на языке С++, а также моделей синхронной цифровой аппаратуры на языках описания аппаратуры.
  • Pinery — предназначен для генерации тестовых данных сложной структуры на основе описаний в виде грамматик (к таким описаниям относятся, например, BNF, регулярные выражения, DTD и т. п.).
  • OTK (Optimizer Testing Kit) — инструмент для тестирования программных систем, работающих с данными, имеющими сложную структуру. Применение OTK наиболее эффективно при тестировании компиляторов или других систем обработки формального текста. Основной акцент в OTK делается на построении разнообразных входных тестовых данных.
  • SynTESK (Syntax Testing Kit) — инструмент для тестирования синтаксических анализаторов (парсеров) формальных языков. SynTESK позволяет проверять соответствие реализации парсера и спецификации данного формального языка, то есть что парсер распознает именно данный формальный язык.
  • MicroTESK (Microprocessor Testing Kit) — инструмент для автоматизированной разработки генераторов тестовых программ для микропроцессоров и других программируемых устройств.


Напишите отзыв о статье "Технология UniTESK"

Литература

  • Кулямин В. В.. Критерии тестового покрытия, основанные на структуре контрактных спецификаций //Труды ИСП РАН, Подход UniTESK: итоги и перспективы. 14(1):89-107, 2008 [panda.ispras.ru/~kuliamin/docs/SpecCoverageCriteria-2008-ru.pdf]
  • Гриневич А. И., Кулямин В. В., Марковцев Д. А., Петренко А. К., Рубанов В. В., Хорошилов А. В. Использование формальных методов для обеспечения соблюдения программных стандартов //Труды ИСП РАН, Обеспечение надежности и совместимости Linux-систем. 10:51-68, 2006 [panda.ispras.ru/~kuliamin/docs/StdEnf-2006-ru.pdf]
  • Бурдонов И. Б., Косачев А. С., Кулямин В. В.. Неизбыточные алгоритмы обхода ориентированных графов: недетерминированный случай //Программирование. 30(1):2-17, 2004 [panda.ispras.ru/~kuliamin/docs/Graphs-2004-ru.pdf]
  • Бурдонов И. Б., Косачев А. С., Кулямин В. В.. Использование конечных автоматов для тестирования программ //Программирование. 26(2):61-73, 2000 [panda.ispras.ru/~kuliamin/docs/FSM-2000-ru.pdf]
  • Bourdonov I., Kossatchev A., Kuliamin V., and Petrenko A.. UniTesK Test Suite Architecture //Proc. of FME 2002. LNCS 2391, pp. 77-88, Springer-Verlag, 2002. ISBN 3-540-43928-5
  • Bourdonov I. B., Demakov A. V., Jarov A. A., Kossatchev A. S., Kuliamin V. V., Petrenko A. K., and Zelenov S. V.. Java Specification Extension for Automated Test Development //Proceedings of PSI’2001. Novosibirsk, Russia, July 2-6, 2001. LNCS 2244:301-307, Springer-Verlag, 2001. ISBN 978-3-540-43075-9 [www.springerlink.com/content/6agpf7u9nfwrh8ef/]
  • Bourdonov I., Kossatchev A., Petrenko A., and Galter D.. KVEST: Automated Generation of Test Suites from Formal Specifications //FM’99: Formal Methods. LNCS 1708, Springer-Verlag, 1999, pp. 608—621. ISBN 3-540-66587-0 [www.springerlink.com/content/14m4g33elqfkhy8f/]

Ссылки

  • [www.unitesk.ru/ Основной сайт]
  • Статья [www.citforum.ru/SE/testing/unitesk/ Подход UniTesK к разработке тестов: достижения и перспективы]
  • [www.linuxtesting.ru/ Верификация ОС Linux на соответствие стандарту LSB]
  • [www.unitesk.ru/pinery/pinery-regexp.php Online сервис Pinery: Генерация на основе регулярных выражений Perl]

Отрывок, характеризующий Технология UniTESK

– Что ж, ваше сиятельство, им бы только покушать хорошо, а как всё собрать да сервировать , это не их дело.
– Так, так, – закричал граф, и весело схватив сына за обе руки, закричал: – Так вот же что, попался ты мне! Возьми ты сейчас сани парные и ступай ты к Безухову, и скажи, что граф, мол, Илья Андреич прислали просить у вас земляники и ананасов свежих. Больше ни у кого не достанешь. Самого то нет, так ты зайди, княжнам скажи, и оттуда, вот что, поезжай ты на Разгуляй – Ипатка кучер знает – найди ты там Ильюшку цыгана, вот что у графа Орлова тогда плясал, помнишь, в белом казакине, и притащи ты его сюда, ко мне.
– И с цыганками его сюда привести? – спросил Николай смеясь. – Ну, ну!…
В это время неслышными шагами, с деловым, озабоченным и вместе христиански кротким видом, никогда не покидавшим ее, вошла в комнату Анна Михайловна. Несмотря на то, что каждый день Анна Михайловна заставала графа в халате, всякий раз он конфузился при ней и просил извинения за свой костюм.
– Ничего, граф, голубчик, – сказала она, кротко закрывая глаза. – А к Безухому я съезжу, – сказала она. – Пьер приехал, и теперь мы всё достанем, граф, из его оранжерей. Мне и нужно было видеть его. Он мне прислал письмо от Бориса. Слава Богу, Боря теперь при штабе.
Граф обрадовался, что Анна Михайловна брала одну часть его поручений, и велел ей заложить маленькую карету.
– Вы Безухову скажите, чтоб он приезжал. Я его запишу. Что он с женой? – спросил он.
Анна Михайловна завела глаза, и на лице ее выразилась глубокая скорбь…
– Ах, мой друг, он очень несчастлив, – сказала она. – Ежели правда, что мы слышали, это ужасно. И думали ли мы, когда так радовались его счастию! И такая высокая, небесная душа, этот молодой Безухов! Да, я от души жалею его и постараюсь дать ему утешение, которое от меня будет зависеть.
– Да что ж такое? – спросили оба Ростова, старший и младший.
Анна Михайловна глубоко вздохнула: – Долохов, Марьи Ивановны сын, – сказала она таинственным шопотом, – говорят, совсем компрометировал ее. Он его вывел, пригласил к себе в дом в Петербурге, и вот… Она сюда приехала, и этот сорви голова за ней, – сказала Анна Михайловна, желая выразить свое сочувствие Пьеру, но в невольных интонациях и полуулыбкою выказывая сочувствие сорви голове, как она назвала Долохова. – Говорят, сам Пьер совсем убит своим горем.
– Ну, всё таки скажите ему, чтоб он приезжал в клуб, – всё рассеется. Пир горой будет.
На другой день, 3 го марта, во 2 м часу по полудни, 250 человек членов Английского клуба и 50 человек гостей ожидали к обеду дорогого гостя и героя Австрийского похода, князя Багратиона. В первое время по получении известия об Аустерлицком сражении Москва пришла в недоумение. В то время русские так привыкли к победам, что, получив известие о поражении, одни просто не верили, другие искали объяснений такому странному событию в каких нибудь необыкновенных причинах. В Английском клубе, где собиралось всё, что было знатного, имеющего верные сведения и вес, в декабре месяце, когда стали приходить известия, ничего не говорили про войну и про последнее сражение, как будто все сговорились молчать о нем. Люди, дававшие направление разговорам, как то: граф Ростопчин, князь Юрий Владимирович Долгорукий, Валуев, гр. Марков, кн. Вяземский, не показывались в клубе, а собирались по домам, в своих интимных кружках, и москвичи, говорившие с чужих голосов (к которым принадлежал и Илья Андреич Ростов), оставались на короткое время без определенного суждения о деле войны и без руководителей. Москвичи чувствовали, что что то нехорошо и что обсуждать эти дурные вести трудно, и потому лучше молчать. Но через несколько времени, как присяжные выходят из совещательной комнаты, появились и тузы, дававшие мнение в клубе, и всё заговорило ясно и определенно. Были найдены причины тому неимоверному, неслыханному и невозможному событию, что русские были побиты, и все стало ясно, и во всех углах Москвы заговорили одно и то же. Причины эти были: измена австрийцев, дурное продовольствие войска, измена поляка Пшебышевского и француза Ланжерона, неспособность Кутузова, и (потихоньку говорили) молодость и неопытность государя, вверившегося дурным и ничтожным людям. Но войска, русские войска, говорили все, были необыкновенны и делали чудеса храбрости. Солдаты, офицеры, генералы – были герои. Но героем из героев был князь Багратион, прославившийся своим Шенграбенским делом и отступлением от Аустерлица, где он один провел свою колонну нерасстроенною и целый день отбивал вдвое сильнейшего неприятеля. Тому, что Багратион выбран был героем в Москве, содействовало и то, что он не имел связей в Москве, и был чужой. В лице его отдавалась должная честь боевому, простому, без связей и интриг, русскому солдату, еще связанному воспоминаниями Итальянского похода с именем Суворова. Кроме того в воздаянии ему таких почестей лучше всего показывалось нерасположение и неодобрение Кутузову.
– Ежели бы не было Багратиона, il faudrait l'inventer, [надо бы изобрести его.] – сказал шутник Шиншин, пародируя слова Вольтера. Про Кутузова никто не говорил, и некоторые шопотом бранили его, называя придворною вертушкой и старым сатиром. По всей Москве повторялись слова князя Долгорукова: «лепя, лепя и облепишься», утешавшегося в нашем поражении воспоминанием прежних побед, и повторялись слова Ростопчина про то, что французских солдат надо возбуждать к сражениям высокопарными фразами, что с Немцами надо логически рассуждать, убеждая их, что опаснее бежать, чем итти вперед; но что русских солдат надо только удерживать и просить: потише! Со всex сторон слышны были новые и новые рассказы об отдельных примерах мужества, оказанных нашими солдатами и офицерами при Аустерлице. Тот спас знамя, тот убил 5 ть французов, тот один заряжал 5 ть пушек. Говорили и про Берга, кто его не знал, что он, раненый в правую руку, взял шпагу в левую и пошел вперед. Про Болконского ничего не говорили, и только близко знавшие его жалели, что он рано умер, оставив беременную жену и чудака отца.


3 го марта во всех комнатах Английского клуба стоял стон разговаривающих голосов и, как пчелы на весеннем пролете, сновали взад и вперед, сидели, стояли, сходились и расходились, в мундирах, фраках и еще кое кто в пудре и кафтанах, члены и гости клуба. Пудренные, в чулках и башмаках ливрейные лакеи стояли у каждой двери и напряженно старались уловить каждое движение гостей и членов клуба, чтобы предложить свои услуги. Большинство присутствовавших были старые, почтенные люди с широкими, самоуверенными лицами, толстыми пальцами, твердыми движениями и голосами. Этого рода гости и члены сидели по известным, привычным местам и сходились в известных, привычных кружках. Малая часть присутствовавших состояла из случайных гостей – преимущественно молодежи, в числе которой были Денисов, Ростов и Долохов, который был опять семеновским офицером. На лицах молодежи, особенно военной, было выражение того чувства презрительной почтительности к старикам, которое как будто говорит старому поколению: уважать и почитать вас мы готовы, но помните, что всё таки за нами будущность.
Несвицкий был тут же, как старый член клуба. Пьер, по приказанию жены отпустивший волоса, снявший очки и одетый по модному, но с грустным и унылым видом, ходил по залам. Его, как и везде, окружала атмосфера людей, преклонявшихся перед его богатством, и он с привычкой царствования и рассеянной презрительностью обращался с ними.
По годам он бы должен был быть с молодыми, по богатству и связям он был членом кружков старых, почтенных гостей, и потому он переходил от одного кружка к другому.
Старики из самых значительных составляли центр кружков, к которым почтительно приближались даже незнакомые, чтобы послушать известных людей. Большие кружки составлялись около графа Ростопчина, Валуева и Нарышкина. Ростопчин рассказывал про то, как русские были смяты бежавшими австрийцами и должны были штыком прокладывать себе дорогу сквозь беглецов.