Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware
Обучение от Mail.Ru Group.
Онлайн-университет
для программистов с
гарантией трудоустройства.
Набор открыт!
2015 г.

Многообразный мир тестирования

Сергей Кузнецов

Обзор февральского, 2014 г. номера журнала Computer (IEEE Computer Society, V. 47, No 2, February 2014).

Авторская редакция.
Также обзор опубликован в журнале «Открытые системы»

Темой февральского номера является тестирование программного обеспечения. Приглашенные редакторы — Рене Брайс и Рик Кун (Renée Bryce, University of North Texas, Rick Kuhn, National Institute of Standards and Technology). Их вводная заметка так и называется: «Тестирование программного обеспечения» («Software Testing»).

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

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

Важным аспектом повышения эффективности тестирования является согласование подхода, выбранного для тестирования, с особенностями приложения. Имеется очевидное различие между, например, программным обеспечением, поддерживающим сетевые протоколы, и приложениями электронной коммерции. В первом случае программа обычно основывается на сложном конечном автомате и выполняется сравнительно немного вычислений, а во втором случае у приложения, скорее всего, имеется развитый пользовательский интерфейс, оно производит значительные вычисления над объемными входными данными и выводит результаты в графической форме. Этот пример также иллюстрирует одно из важнейших соображений практического тестирования: потребность в участии человека. Тестирование программного обеспечения, требующее визуальной проверки результатов на экране, позволяет сократить число тестов за счет расходов на проверку, выполняемую людьми.

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

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

Первая статья тематической подборки называется «Расширяемая инфраструктура для онлайнового тестирования срежиссированных сервисов («An Extensible Framework for Online Testing of Choreographed Services») и представлена Мидхатом Али, Фраческо де Анжелис, Диниеле Фани, Антониа Бертолино, Гельельмо де Анжелес и Андреа Полини (Midhat Ali, Francesco De Angelis, Daniele Fanì, University of Camerino, Italy, Antonia Bertolino, Guglielmo De Angelis, Andrea Polini, CNR-ISTI, Pisa, Italy).

Статья посвящена проблемам тестирования в области, оказывающей большое влияние на экономику – постоянно растущий рынок сервис-ориентированных архитектур (service-oriented architecture, SOA). Анализируются проблемы тестирования сервис-ориентированного программного обеспечения, возникающие в системах, основанных на хореографии сервисов. Затем подробно описывается инфраструктура, поддерживающая непрерывный процесс онлайнового тестирования таких систем.


Рис. 1. Процесс онлайнового тестирования в удобном для пассажиров аэропорте. Совет по хореографии устанавливает бизнес-цели (1) и публикует модель композиции сервисов, а также сопровождающую ее спецификацию (2). Поставщики услуг (торговые предприятия аэропорта, транспортные компании и т.д.) выявляют новые возможности для бизнеса и регистрируют свои сервисы для участия в хореографии (3). Во время работы системы конечные пользователи приводят предписания хореографии (4) в соответствие со спецификацией (5). Это включает установление связей между всеми сервисами (6) и образование средств, доступных по подписке (7). Тестировщики выбирают подходящие стратегии тестирования (8) и выявляют конкретные тестовые случаи для возможных сервисов (9). Эти тестовые случаи делаются доступными в специальном репозитории (10), так что все поставщики услуг могут протестировать взаимодействие своих сервисов с сервисами других поставщиков, включая еще не разработанные сервисы (11). Инженеры могут непрерывно тестировать требуемые сервисы в режиме онлайн, чтобы периодически убеждаться в том, что их сервисы работают в среде выполнения именно так, как замышлялось.

Нуно Антунес и Марко Виейра (Nuno Antunes, Marco Vieira, University of Coimbra, Portugal) написали статью «Тестирование защиты от несанкционированного проникновения Web-сервисов» («Penetration Testing in Web Services»).

Авторы исследуют эффективность автоматических инструментов определения уязвимостей приложений, основанных на использовании Web-сервисов. Хотя автоматизированный подход к обнаружению уязвимостей имел некоторый успех, результаты сильно уступали тем, которые получались при проверке кода экспертами. У инструментов также имелось значительное число ложноположительных срабатываний, что сводило на нет многие преимущества автоматизированного подхода из-за появления лишней работы. Наличие злоумышленников приводит к тому, что в некоторых областях тестирования проверка защиты от несанкционированного проникновения является скорее искусством, а не наукой. Для эффективного внедрения экспертных знаний в процесс тестирования требуются дополнительные исследования.


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

Авторами статьи «Развитие области комбинаторного тестирования взаимодействий» («Moving Forward with Combinatorial Interaction Testing») являются Кемаль Йилмаз, Гульсен Демироз, Угур Коч, Сандро Фуше, Мира Коэн и Адам Портер (Cemal Yilmaz, Gulsen Demiroz, Ugur Koc, Sabanci University, Istanbul, Turkey, Sandro Fouché, Towson University, Myra B. Cohen, University of Nebraska–Lincoln, Adam Porter, University of Maryland at College Park).

В последние несколько лет комбинаторное тестирование взаимодействий (Combinatorial Interaction Testing, CIT) стало модной темой, о чем свидетельствуют появление десятков инструментальных средств, наличие исследовательских статей, на которые часто ссылаются, возникновение ежегодного симпозиума на Международной конференции по тестированию программного обеспечения, верификации и валидации (International Conference on Software Testing, Verification, and Validation). В данной статье приводится краткий обзор состояния дел в области CIT.


Рис. 3. Три фазы комбинаторного тестирования взаимодействий. На фазах 1 и 2 определяется, «что» нужно тестировать, на фазах 3 и 4 решается вопрос о том, «как» стоит тестировать.

Последняя статья тематической подборки «Тестирование мобильных приложений – методы исследований, проблемы и потребности» («Mobile Application Testing—Research Practice, Issues, and Needs») представлена Джерри Гао, Ксяоином Баем, Вей-Теком Цаем и Тадахиро Уехарой (Jerry Gao, San Jose State University, Xiaoying Bai, Tsinghua University, Wei-Tek Tsai, Arizona State University, Tadahiro Uehara, Fujitsu Laboratories).

Авторы анализируют имеющиеся инструменты для тестирования мобильных приложений. Сравниваются многочисленные популярные коммерческие средства и инструменты с открытыми исходными текстами. Обсуждаются открытые проблемы в области тестирования мобильных приложений. Практики этого быстро растущего рынка нуждаются в новых методах тестирования и эмпирических исследованиях.


Рис. 4. Различные инфраструктуры тестирования мобильных приложений: (a) эмуляция, (b) облака, (c) устройство и (d) с использованием толпы.

Вне тематической подборки опубликованы две крупные статьи. Авторами статьи «Прозрачность приложений и манипулирование ими» («Application Transparency and Manipulation») являются Андреас Дан и Клеменс Кап (Andreas Dähn, Clemens H. Cap, University of Rostock, Germany).

Манипулирование приложениями производится через Интернет, зачастую незаметным образом. Обычно пользователи не знают, как работают Web-сервисы, и что делается с данными, поставляемыми ими. Это может приводить к недоверию к приложениям или их недостаточно эффективному использованию. Большая часть манипуляций происходит в сетевой инфраструктуре, и пользователи их не видят. В то же время, фильтрация контента может быть явной, направленной на поддержку некоторой заявленной политики (не обязательно понятной пользователям), либо неявной в тех случаях, когда поставщик услуг предпочитает не раскрывать свои экономические, политические или социальные мотивы.

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


Рис. 5. Пример экономически обоснованного манипулирования приложением. На рис. 5 (a) показана Google-карта расположения ресторанов неподалеку от трамвайной станции «Остров Рузвельта» в Манхэ́ттене (Нью-Йорк) в масштабе 1:200 метров. На этой карте показаны только два варианта. Как показывает рис. 5 (b), изменение масштаба карты на 1:100 метров позволяет показать несколько дополнительных вариантов.

Последняя крупная статья февральского номера называется «Enhanced IP: IPv4 с 64-битовыми адресами» («Enhanced IP: IPv4 with 64-Bit Addresses») и написана Вильямом Химяком, Сэмуэлем Паттоном и Стефаном Янанским (William J. Chimiak, Samuel T. Patton, Laboratory for Telecommunication Sciences, Stephen Janansky, University of Delaware).

В прошлом несколько раз приходилось изменять IPv4, чтобы смягчить проблему исчерпания адресного пространства. До настоящего времени основное решение обеспечивала система трансляции адресов CGN (Carrier-grade network address translation), которая позволяла многим оконечным узлам совместно использовать небольшой пул адресов и обеспечивала временный выход из положения интернет-провайдерам с ограниченным пространством IP-адресов. Однако для работы CGN требуется сложный обмен состояниями и, кроме того, из-за трансляции адресов возникают значительные трудности при мониторинге соблюдения законов и ведении учета.

Надвигающееся истощение адресного пространства IPv4 побудило авторов статьи к разработке Enhanced IP (EnIP). В EnIP используется частное адресное пространство в духе IPv4+4, но имеется большая гибкость адресации и не требуется маршрутизация. EnIP расширяет адресное пространство IPv4 в 17,9 миллионов раз. Кроме того, для EnIP не требуется трансляция сетевых адресов с сохранением состояния (network address translation, NAT). Поскольку EnIP работает без сохранения состояний, шлюзы можно кластеризовать или делать резервными без сложного обмена состояниями. EnIP также поддерживает сквозные соединения, что было невозможно при использовании NAT. Это облегчает реализацию предлагаемого протокола в мобильных сетях.

Новости мира IT:

Архив новостей

Последние комментарии:

Релиз ядра Linux 4.14  (9)
Среда 22.11, 19:04
Loading

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 985 1945361
Пресс-релизы — pr@citforum.ru
Обратная связь
Информация для авторов
Rambler's Top100 TopList liveinternet.ru: показано число просмотров за 24 часа, посетителей за 24 часа и за сегодня This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2015 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...