Книги, научные публикации

ПРОГРАММНАЯ ИНЖЕНЕРИЯ ТЕСТИРОВАНИЕ КРУПНЫХ КОМПЛЕКСОВ ПРОГРАММ НА СООТВЕТСТВИЕ ТРЕБОВАНИЯМ В.В. Липаев, главный научный сотрудник Института системного программирования РАН, профессор Государственного

университета - Высшей школы экономики algordom net.ru Рассмотрены проблемы разработки корректных требований к крупным системам и комплексам программ;

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

Концепция тестирования программных продуктов Методология программной инженерии основана на на соответствие требованиям применении систематизированного, научного и предсказуемого процесса планирования, проекти рупные комплексы программ - компоненты рования, разработки, тестирования и сопровождения вычислительных систем, реализующие крупных программных продуктов. Разработчики та Кобычно их основные функциональные свой ких продуктов должны учитывать, что они работают ства и задачи, и создающие предпосылки для по в организационных и финансовых рамках заключён следующего их развития и применения. Реализация ных контрактов, и искать решение поставленной жизненного цикла, методология управления, обра перед ними задачи с учётом требований и условий ботки информации и изменения программных заказчика. Программная инженерия не рассматрива комплексов зависят от квалификации специалис ет технические аспекты индивидуального создания тов, технических, организационных и договорных (программирования) модулей и небольших компонентов, требований заказчика и от сложности проекта. в её ведении задачи коллективов специалистов по уп Множество текущих состояний и модификаций равлению проектами и разработке методов, теорий и компонентов в жизненном цикле крупных ком средств, необходимых для обеспечения жизненного плексов программ, обусловливают необходимость цикла крупных комплексов программ.

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

контролируемое и методичное отслеживание созда объектами тестирования должны быть круп ния и динамики изменений в жизненном цикле ные, целостные комплексы программ (сотни комплексов программ, их разработка при строгом тысяч строк) для систем обработки информа учёте и контроле каждого изменения - базовоя ции и управления в реальном времени, разра проблема эффективного, поступательного развития батываемые большими коллективами (коман крупных систем высокого качества методами про дами) специалистов;

граммной инженерии [7, 8, 10]. Накопление в мире программные продукты должны соответство знаний, опыта разработки и применения огромно вать первому эталону - целостному комплексу го количества различных сложных комплексов требований к функциям, характеристикам, ар и компонентов программ для ЭВМ способствует си хитектуре и качеству, утверждённому заказчи стематизации и обобщению методов и технологий ком и согласованному с разработчиком;

их разработки, сокращению дефектов и неопреде комплексы применяемых тестов рассматрива лённостей в характеристиках и качестве поставляе ются как второй эталон функций и характери мых и применяемых программных продуктов. стик программного средства, которые должны 16 БИЗНЕС ИНФОРМАТИКА №2(04)Ц2008 г.

ПРОГРАММНАЯ ИНЖЕНЕРИЯ адекватно отражать и покрывать набор требо выступали при создании компонентов и всей систе ваний заказчика к программному продукту;

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

использовании ресурсов на реализацию всей совокуп применяются сценарии и процедуры детерми ности задач.

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

ной цели получения программного продукта с заданны процессы и продукты формирования требова ми требованиями и качеством [3, 5]. Планирование ний и реализации тестирования должны быть проектов крупных комплексов программ должно охвачены глубоким, детальным документиро обеспечивать компромисс между требующимися ванием, архивированием и конфигурационным функциями и характеристиками создаваемой систе управлением исходными, промежуточными мы, и ограниченными ресурсами, необходимыми на и отчётными документами;

её разработку и применение.

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

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

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

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

инженерной деятельности, включающий: поста программный продукт и система - результат новку задач;

подготовку требований;

планирова реализации требований: функциональные ха ние, организацию и стимулирование специалистов;

рактеристики системы, её поведение и пред контроль хода работ и использования ограниченных усмотренные свойства, реализованные в сис ресурсов при создании сложных систем. Критичес теме и комплексе программ для обеспечения кий параметр управления такими проектами - огра корректного применения;

критические пара ниченное время. Основная проблема целевого управ метры, характеристики качества и эффектив ления работами - сводить воедино усилия испол ности;

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

БИЗНЕС ИНФОРМАТИКА №2(04)Ц2008 г. ПРОГРАММНАЯ ИНЖЕНЕРИЯ Эти четыре объекта ниже используются как ба Любое отклонение результатов функционирования зовые при анализе тестирования в жизненном цик программы от предъявляемых к ней требований ле крупных комплексов программ. Основное вни и сформированных по ним эталонов следует квали мание сосредоточено на исследовании и формали фицировать как дефект или ошибку в программном зации полноты и качества: продукте и по возможности устранять.

разработки требований к функциям и характе При разработке требований к крупным системам ристикам крупных программных продуктов;

и программным продуктам необходимо учитывать тестирования и обеспечения корректности реа функции, основные свойства и общие требования лизации этих требований. к проектам крупных систем [3, 5, 6]. Формирование назначения, функций и технического задания на Основная цель тестирования комплексов про проект системы должно включать в себя основные грамм и их функциональных компонентов - обнару требования к комплексу программ и особенности жить, зарегистрировать и устранить дефекты требований к нему заинтересованных лиц. Общие и ошибки, которые внесены во время последова требования к качеству функционирования крупных тельной разработки и реализации требований программных продуктов реального времени обя к функциям и характеристикам комплекса про зательно включают: требования к надёжности грамм. Тестированию программных компонентов и функциональной безопасности продуктов;

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

считается, что они приме обеспечение повторного использования програм няются готовыми, апробированными и высокого мных компонентов и комплексов. Для обеспечения качества [1, 2, 11]. Однако допускается, что для качества программного продукта необходима вери идентификации, локализации и устранения дефек фикация и трассирование требований к функциям тов и ошибок необходимо применять тестирование и компонентам комплекса, а также обеспечение ба и корректировку модулей и небольших компонен ланса требований к ним. Должны быть обеспечены тов с использованием соответствующих традици процессы достаточно полного и корректного доку онных методов и средств. ментирования требований к функциям и характе ристикам комплексов программ.

Формализация требований к программному продукту При формировании требований к системе и (первый эталон) программному продукту заказчик и разработчики В требованиях к программному продукту должно должны осуществлять согласованные действия в быть зафиксировано соглашение между заказчиком соответствии с принятой политикой и процедурами и выполняющими проект специалистами, отража [7, 9, 10]:

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

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

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

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

18 БИЗНЕС ИНФОРМАТИКА №2(04)Ц2008 г.

ПРОГРАММНАЯ ИНЖЕНЕРИЯ задать системные требования и функции, случайных, непредсказуемых дефектов и ошибок в соответствии с которыми определяются [7, 9]. Поэтому плотность потоков и размеры необ риски и параметры системы и программного ходимых корректировок в требованиях к комплексу продукта, связанные с критическими показа и компонентам программ могут различаться в де телями, надёжностью, безопасностью, произ сятки раз. Однако в крупных комплексах программ водительностью;

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

ориентиры при их выявлении. Каждому типу необ продемонстрировать связь между требования ходимых корректировок соответствует более или ми и практическими потребностями заказчика;

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

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

требования, с одной стороны, необходимы и доста точны для удовлетворения заказчика, а с другой - не Формализация тестирования программного продукта обходимые и достаточные входные данные для дру (второй эталон) гих процессов, например, для проектирования функ Совокупности требований к тестам могут при ций и архитектуры комплекса программ. меняться как эталоны и вторая адекватная форма При формировании требований следует учиты описания функций и характеристик комплексов про вать, что источниками ошибок в комплексах про грамм. Для обеспечения высокого качества про грамм являются специалисты - конкретные люди граммных продуктов стратегию создания требова с их индивидуальными особенностями, квалифика ний к тестам целесообразно строить, основываясь цией, талантом и опытом. Можно выделить пред на требованиях к функциям и характеристикам сказуемые дефекты требований, модификаций, рас крупных комплексов программ. Требования к тестам ширения и совершенствования комплекса, и необ можно дополнять структурным методом на основе ходимые изменения, обусловленные выявлением анализа логики архитектуры системы. Он может БИЗНЕС ИНФОРМАТИКА №2(04)Ц2008 г. ПРОГРАММНАЯ ИНЖЕНЕРИЯ применяться в зависимости от условий договора к функциям комплекса программ, его архитектуре, или особых требований к безопасности или ограни функциональным компонентам должна быть разра ченным рискам системы. Например, покрытие ботана спецификация требований к тестам, обеспе полной структуры решений для некоторых функ чивающая проверку корректности, адекватности ций может быть необходимо в аэрокосмических и возможности в последующем реализовать тестиро и других критических системах с повышенными вание компонента на соответствие этому требова требованиями безопасности. нию. Взаимная проверка корректировок функций Тестирование комплексов программ может иметь компонентов, отражённых в требованиях и в спе две цели, одинаково важные для качества тестирова цификациях тестов, обеспечивает повышение их ния. Первая цель - тестирование для идентифика качества, сокращение дефектов, ошибок, неодно ции дефектов - подразумевает успешность проце значностей и противоречий.

дуры тестирования, если дефект найден и устранён. Спецификации тестов должны обеспечивать до Это отличается от подхода в тестировании (вторая полнительный контроль корректности специфика цель), когда тесты исполняются для демонстрации ций требований и верификацию взаимодействия того, что программный комплекс удовлетворяет компонентов на соответствующем уровне описания предъявляемым требованиями и, соответственно, комплекса программ. Независимая разработка спе тест считается успешным, если не найдено дефектов. цификаций тестов на основе спецификаций требова Тестирование программ может использоваться для ний, создаёт базу для обнаружения не тестированных демонстрации наличия дефектов, но никогда не требований или требований, которые принципиаль гарантирует их отсутствие. Основная причина этого но не могут быть проверены тестированием. Таким в том, что полное, всеобъемлющее тестирование недо образом, верификация спецификаций требований тес стижимо для реального крупного программного тов к функциям и характеристикам программных продукта [1, 4, 9]. Когда пытаются оценивать мето компонентов и комплекса могут использоваться ды тестирования, надо чётко определять, что подра с двумя целями:

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

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

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

процедуры проверки реализации этих требований. Реализация этих целей верификации и тестирова Тестовые спецификации могут использоваться для ния может производиться разными методами и неза проверки согласованности, внутренней непротиво висимыми специалистами - программистами, инте речивости и полноты реализации требований без граторами и тестировщиками. Это позволяет исполь исполнения программ. Для каждого требования зовать результаты их деятельности для сравнения 20 БИЗНЕС ИНФОРМАТИКА №2(04)Ц2008 г.

ПРОГРАММНАЯ ИНЖЕНЕРИЯ одних и тех же описаний программ, представленных покрытия требует учёта, в какой степени тесты на языках программирования и на языках тестов. нацелены на пространство требуемых функций Особенности описаний и реализации программ, и характеристик комплекса программ. Точность и мышление их разработчиков (программистов) - на определения степени покрытия ограничена, но вы основе требований, функций, характеристик струк деление сильных и слабых связей между тестами и туры и исполнения программ - существенно отли пространством требований к функциям и характе чаются от представлений и методов описаний тех же ристикам продукта позволяет акцентировать анализ функций комплекса программ тестировщиками - со на безопасности, допустимых рисках или некоторых здателями сценариев и эталонов требуемых резуль характеристиках, особенно важных для конкретно татов тестирования. Они акцентируют свою дея го проекта.

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

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

лены тестовые сценарии, а по другой - требуемые Жизненный цикл разработки тестов и процессов функции, характеристики, безопасность или риски тестирования программных комплексов должен компонентов или комплекса программ [4, 6, 12]. проходить во времени, параллельно динамике измене При этом можно отслеживать степень покрытия тре ния требований и жизненному циклу реализации бований тестами, поддерживаемыми конфигураци комплекса программ. Тесты и сценарии их приме ей и сценариями использования программного про нения должны быть адекватными и полностью от дукта. Такие документы - статические графовые мо ражать содержание и изменения функций и харак дели функционирования программного продукта. теристик компонентов комплексов программ, но Подобные модели могут фиксировать потоки и виды в иной форме. Их следует рассматривать и анализи данных системы, последовательность состояний, ровать как ещё одну форму описания изменений в которых может находиться программный продукт функций комплексов программ которые могут со и последовательность их обработки. Можно прово держать дефекты и ошибки. Таким образом, про дить оценку степени покрытия относительно этих граммной (процедурной) форме представления моделей, проверяя, что каждому узлу и каждой связи программ должно полностью соответствовать его в графе соответствует тестовый сценарий. Оценка равноправное содержание в форме сценариев тестов БИЗНЕС ИНФОРМАТИКА №2(04)Ц2008 г. ПРОГРАММНАЯ ИНЖЕНЕРИЯ для проверки их взаимного соответствия. При этом Для сокращения неопределённостей и прямых дефекты и ошибки возможны в обеих формах интег ошибок при оценивании качества комплексов про рального описания комплекса программ (не только в грамм необходимо предварительно определить ос текстах программного средства, но и в требованиях новные параметры внешней среды, при которых к тестам) определение их места и устранение - ос должен функционировать комплекс программ новная задача тестирования требований и тестов. с требуемыми характеристиками. Для этого заказ Квалификационное тестирование и испытания чик и разработчик совместно должны структуриро программного продукта на соответствие требовани вать, описать и согласовать модель внешней среды ям должно базироваться на организации, программе и её параметры в среднем, типовом режиме приме и методиках испытаний крупных программных про нения программного продукта, а также в наиболее дуктов. Тестирование на соответствие требованиям вероятных и критических режимах генерации тес к динамическим характеристикам и рискам круп тов с обеспечением требуемых характеристик каче ных программных продуктов должно включать ства функционирования. Необходимость проверять тестирование надёжности и функциональной безо широкий набор требований и характеристик круп пасности, характеристик производительности и ди ных программных комплексов приводит к необ намического использования ресурсов ЭВМ, сокра ходимости динамического генерирования тестов щение и ликвидацию опасных рисков при примене посредством создания моделей внешней среды, ох нии программных продуктов в реальном времени. ватывающих весь спектр данных, воздействующих Для обеспечения качества продукта важно тестиро на тестируемый объект. Подготовку тестов для вание эксплуатационной документации на соответ испытаний крупных комплексов программ целесо ствие требованиям к продукту. Тестирование долж образно осуществлять с применением автоматизи но поддерживать методы, процессы и средства рованной генерации динамических тестов внешней управления конфигурацией требований и тестов среды в реальном времени, а также средств обра крупных комплексов программ. Особое значение ботки результатов динамического тестирования.

могут иметь процессы завершения испытаний и внедрения версий продуктов, анализ результатов, Формализация эксплуатационной документации усовершенствование процессов тестирования тре программных продуктов (третий эталон) бований и сертификация крупных программных Эксплуатационная документация должна обес продуктов. печивать эффективное применение программного про Тестирование всегда предполагает компромисс дукта и точно отражать его назначение, функции, между ограниченными ресурсами и заданными характеристики и требования, для использования сроками, с одной стороны, и практически неогра квалифицированными специалистами пользовате ниченными требованиями к качеству результатов лями [7, 8, 10]. Для этого эксплуатационные доку тестирования и программного продукта, с другой. менты необходимо тестировать на полное соответ Оценка стоимости и затрат и другие измерения ствие выполнения всей совокупности требований на процессов, связанных с оценкой ресурсов, необхо программный продукт, согласованной между разра димых для тестирования, как и оценка экономичес ботчиками и заказчиком. В результате эксплуатаци кой эффективности тестирования на разных этапах онные документы можно использовать как отдель и уровнях, основывается на точке зрения и практи ный, независимый при разработке третий эталон ке менеджмента проектов и используется для оцен и вид тестов для квалификационного тестирования ки и улучшения процесса тестирования. Разная тех реализации требований к функциям и характеристи ника, концепции и модели тестирования требуют кам программного продукта. Апробирование доку разных затрат по времени и необходимым ресур ментов пользователями при применении комплекса сам. Учёт соответствия между стоимостью или за программ - практический метод тестирования кор тратами, необходимыми для того или иного метода, ректности реализации требований к программному и эффективностью тестирования - обязательная продукту, завершающий полный цикл испытаний часть современного управления проектами круп и контроля его качества. Разработчики этих доку ных программных комплексов. ментов должны обеспечивать комфортное и кор Характеристики качества встроенных програм ректное применение программных продуктов поль мных продуктов реального времени зависят не толь зователями на основе ясного и непротиворечивого ко от их внутренних свойств, но и от свойств внеш изложения в документах технологических процедур ней среды - сценариев и генераторов динамических те и операций для штатного применения, функциони стов, в которых они испытываются и применяются. рования и получения требуемых результатов.

22 БИЗНЕС ИНФОРМАТИКА №2(04)Ц2008 г.

ПРОГРАММНАЯ ИНЖЕНЕРИЯ Организация документирования должна опреде Документация для оперативных пользователей лять стратегию, стандарты, процедуры, распределе программных продуктов в системе, их функциони ние ресурсов и планы создания, изменения и приме рования, обработки и анализа результатов должна нения эксплуатационных документов на програм обеспечивать взаимодействие пользователей с раз мный продукт. Для этого должны быть выделены личными аппаратно программными реализациями специалисты, обязанные планировать, утверждать, терминалов. Для этого необходима унификация выпускать, распространять и сопровождать ком концепции, архитектуры, функций и методов визу плекты апробированных и утверждённых эксплуата ализации пользовательского интерфейса. Типовые ционных документов. Они должны стимулировать формы шаблоны документов и процедуры работы с разработчиков программных средств, осуществлять ними, рассматриваемые как объекты стандартиза непрерывное, регламентированное документирова ции, относятся к функциональному, оперативному ние процессов и результатов своей деятельности, уровню взаимодействия пользователей с системами контролировать полноту и качество утверждённых и программными продуктами в соответствии с ис эксплуатационных и отчётных документов. ходными требованиями к ним.

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

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

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

тративного управления программным продуктом должен не противоречить международным стандар Заключение там на коммуникацию, интерфейсы с пользовате В мире накоплено огромное количество готовых лями и базами данных, на защиту и обеспечение программных компонентов, сокращается необходи безопасности информации. мость программирования и тестирования новых БИЗНЕС ИНФОРМАТИКА №2(04)Ц2008 г. ПРОГРАММНАЯ ИНЖЕНЕРИЯ модулей и повторно используемых компонентов. Это и сложность отдельных проектов. Необходимость приводит к увеличению роли интеграции готовых ком обеспечения взаимодействия распределённой вы понентов, применения соответствующих методов числительной и коммуникационной техники и инструментария программной инженерии. Однако предъявляет новые системотехнические требова вследствие их принципиальной новизны и сложнос ния к специалистам по программным комплексам.

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

Литература 1. Бейзер Б. Тестирование черного ящика. Технология функционального тестирования программного обеспечения и систем. Пер.

с англ. - СПб: ПИТЕР. 2004.

2. Блэк Р. Ключевые процессы тестирования. Пер. с англ. - М: ЛОРИ. 2006.

3. Вигерс К.И. Разработка требований к программному обеспечению. Пер. с англ. - М.: Русская редакция. 2004.

4. Дастин Э., Рэшка Д., Пол Д. Автоматизированное тестирование программного обеспечения. Внедрение, управление и эксплуата ция. Пер. с англ. - М. ЛОРИ. 2003.

5. Леффингуэлл Д., Уидриг Д. Принципы работы с требованиями к программному обеспечению. Унифицированный подход. Пер.

с англ. - М.: Вильямс. 2002.

6. Липаев В.В. Отладка сложных программ. М.: Энергоатомиздат. 1993.

7. Липаев В.В. Программная инженерия. Методологические основы. Учебник. - М.: ТЕИС. 2006.

8. Соммервилл И. Инженерия программного обеспечения. 6 е издание. Пер. с англ. - М.: Вильямс. 2002.

9. Тэллес М., Хсих Ю. Наука отладки. Пер. с англ. - М.: Кудиц образ. 2003.

10. Фатрелл Р. Т., Шафер Д. Ф., Шафер Л. И. Управление программными проектами: достижение оптимального качества при мини мальных затратах. Пер. с англ. - М.: Вильямс. 2003.

11. Beizer B. Software testing techniques. N.Y.: Van Nostrand Reinhold. 1990.

12. Kit E. Software Testing in the Real World. NY. Addison Wesley. 1996.

24 БИЗНЕС ИНФОРМАТИКА №2(04)Ц2008 г.

   Книги, научные публикации