Международная научно-техническая конференция «Информационные системы и технологии» ИСТ-2014 СЕКЦИЯ 5.1 ТЕХНИЧЕСКАЯ КИБЕРНЕТИКА (СИСТЕМЫ ОБРАБОТКИ ИНФОРМАЦИИ) П.И. УВАРОВ (к.т.н., доцент) (Нижегородский государственный технический университет им. Р.Е. Алексеева) ТЕСТИРОВАНИЕ ФУКЦИОНАЛЬНО ДЕКОМПОЗИЦИРУЕМЫХ ПРОГРАММНЫХ СИСТЕМ Уровень сложности современных программных систем (ПС) требует такого подхода к их созданию, чтобы их тестирование, отладка и подтверждение достоверности их работы выполнялись за допустимое время и с требуемой надёжностью. Жизненный цикл (ЖЦ) ПС содержит множество этапов: постановки задачи, разработки алгоритма и первичного текстового кода, формирования исполнимого модуля. Любой из этапов ЖЦ ПС может быть реализован некорректно, что приведёт к несоответствию ПС поставленным задачам. Это несоответствие означает, что ПС содержит дефекты, которые приводят к ошибкам в работе ПС. ► Дефект ПС – причина несоответствия ПС поставленным задачам.● Несоответствие ПС поставленным задачам может являться не только следствием некорректной реализации кода ПС, а порождаться на ранних этапах ЖЦ. Если причина несоответствия порождена при определении требований, то корректно спроектировать ПС невозможно – не помогут ни моделирование, ни расчёты и несоответствие выявится только при эксплуатации. Но, т.к. выявление несоответствия всё-таки происходит, то можно предположить наличие некоего эталона, но не эталона ПС, а эталона самой задачи, и несущественно в каком виде: программной модели, физического процесса или толпы знатоков. Этот «всезнающий» эталон можно представить, как идеальную ПС. ►Идеальная ПС – некоторая воображаемая ПС, безошибочно решающая поставленные задачи, представленные полным корректным списком требований, и безошибочно реализованная тем или иным способом.● Используя определение идеальной ПС определим дефект ПС как: ►Дефект – некоторое свойство реальной ПС, при определённых условиях порождающее отличие реакций реальной ПС и идеальной ПС.● ►Дефекты могут порождать ошибки в работе ПС и различаются качественно: o активный (проявившийся) дефект – причина отличия реакций реальной и идеальной ПС; o пассивный дефект – потенциальная причина отличия реакций реальной и идеальной ПС; o ошибка – отличие реакций реальной и идеальной ПС, как следствие проявления дефекта.● Дефекты в ПС являются только смысловыми (семантическими) дефектами (СД). СД не обладают свойством редупликации, т.е. СД не может вновь проявиться после его устранения. Наличие в составе ПС только СД, никогда более не возникающих после устранения, предполагает временный характер тестов и контрольных точек (КТ) для съёма информации. Актуальность и тех и других теряется после устранения дефекта. Для активизации и поиска причины иного дефекта будут необходимы новые тесты и КТ. Следовательно: ► Отладка ПС – комплекс варьируемых тестовых процедур для ПС, не имеющей достоверного образца, направленный на активизацию СД, определение вызывающих их причин с последующим устранением дефектов.● Идеальная ПС являет собой не систему, а представления разработчиков и пользователей, данные им в ощущениях, о «правильной» работе ПС. Эти представления могут быть некорректными и, соответственно, проявление дефекта в виде ошибки при работе ПС может быть кажущимся. Поэтому отладку ПС можно представить в виде взаимосвязанных процессов: ► Отладка ПС – совместные процессы: o поиска предполагаемых дефектов в ПС, не имеющей достоверного образца, на основании представлений наладчика о правильной работе ПС; o приближения представлений наладчика о правильной работе ПС к действиям идеальной ПС; базирующиеся на комплексе варьируемых процедур, направленных на активизацию предполагаемых СД, с определением вызывающих их причин, устранением дефектов или изменением представлений о правильной работе ПС.●. 249 Международная научно-техническая конференция «Информационные системы и технологии» ИСТ-2014 СЕКЦИЯ 5.1 ТЕХНИЧЕСКАЯ КИБЕРНЕТИКА (СИСТЕМЫ ОБРАБОТКИ ИНФОРМАЦИИ) Сложность и большой объём ПС требуют разделения всей ПС на блоки (объекты), тестирование которых проводится практически изолированно. При этом возникает задача подачи на тестируемый блок (ТБ) тестовых воздействий (ТВ) и получения информации об откликах ТБ для анализа состояния блока. Поэтому при тестировании ПС актуальными являются проблемы управляемости и наблюдаемости. ►Управляемость – относительный параметр ПС, характеризующий длительность транспортировки входного теста от входов системы к входам ТБ и сложность его преобразования в ТВ.● ►Наблюдаемость – относительный параметр ПС, характеризующий длительность транспортировки откликов на ТВ с выходов ТБ к КТ и сложность преобразования откликов в анализируемую последовательность, снимаемую с КТ.● Проблемы управляемости и наблюдаемости при тестировании ПС обусловлены тем, что: o входную тестовую информацию приходится обрабатывать на других блоках ПС, чтобы превратить её в ТВ для ТБ; o отклики при транспортировании от ТБ до КТ претерпевают значительные изменения; o информация в КТ при реальной работе ПС: может быть получена со значительной временной задержкой по сравнению с выдачей откликов от ТБ (хранение в промежуточных массивах, файлах ...); может представлять собой огромные массивы данных и объектов; o семантический характер дефектов требует от ПС: произвольного количества сменных КТ; изменения типа, вида и расположения КТ при проведении даже одного тестирования. Субъективный подход к разработке ПС порождает множество проблем при тестировании. Проблемы в основном связаны с управляемостью и наблюдаемостью ПС, т.е. со сложностью доступа к различным точкам системы с целями: подачи ТВ на ТБ и съёма откликов ТБ. Для достижения этих целей либо приходится использовать имеющиеся точки доступа, и тогда возникают проблемы со сложными промежуточными преобразованиями тестовой и анализируемой информации, либо в коде ПС делать дополнительные вставки, изменяя и загромождая код. После выполнения отладки ПС эти вставки подлежат удалению, т.к. они теряют свою актуальность из-за свойств дефектов ПС, которые являются семантическими и после устранения не могут возникнуть вновь. Исполнимый модуль ПС представляет собой динамическую конструкцию, многократно изменяемую при работе ПС. Известно (Майерс), что при внесении изменений в программу она подлежит новому тестированию, т.е. необходим новый тест. Отладка ПС всё-таки выполняется, т.к. фактически объектом тестирования является не исполнимый модуль программы, а исходный текстовый код программы, который представляет собой неизменную конструкцию. Вот в этом текстовом коде необходимо предусмотреть все КТ и учесть проблемы управляемости и наблюдаемости. Большинство проблем тестирования могут быть сняты, если еще на этапе постановки задачи потребовать, чтобы ПС имела свойства, позволяющие повысить её тестируемость. Эта цель достигается при формализации структуры кода ПС, который строится с учётом требований методов функциональной декомпозиции (ФД) (широко используемых при тестировании технических систем), когда код ПС имеет одну структуру в рабочем режиме и другую структуру в режиме тестирования. Функциональная декомпозиция ПС позволяет: динамически устанавливать КТ; выполнять внешнюю подготовку данных (фактически ТВ) конкретно для ТБ; запускать модули ПС в произвольном порядке с целью формирования тестовых данных для ТБ; подавать ТВ непосредственно к ТБ; анализировать отклики непосредственно на выходе ТБ; выполнять промежуточных анализ любой сложности откликов ТБ и т.д. 250 Международная научно-техническая конференция «Информационные системы и технологии» ИСТ-2014 СЕКЦИЯ 5.1 ТЕХНИЧЕСКАЯ КИБЕРНЕТИКА (СИСТЕМЫ ОБРАБОТКИ ИНФОРМАЦИИ) При тестировании ПС с возможностями ФД полностью сохраняют актуальность все известные методы тестирования, т.к. ФД не метод тестирования, а лишь база для более эффективного применения известных методов тестирования. E-mail: pi23@bk.ru 251