|
Автоматизация тестирования и отладкиСистема автоматизации тестирования и отладки (САТО) представляет собой сложный комплекс алгоритмических и программных средств, предназначенных для автоматизации анализа АСУП, тестирования, отладки и оценки ее качества, и позволяет облегчить модификацию компонент АСУП, обеспечить выявление ошибок на ранних стадиях отладки, повысить процент автоматически обнаруживаемых ошибок. На рис. 23 показано, как использование САТО влияет на цену обнаружения ошибок в течение жизненного цикла АСУП. АСУП становится «работоспособной», когда цена обнаруженной ошибки меньше некоторого значения μ, которое отражает уровень терпимости пользователя к программным ошибкам. Число имеющихся ошибок (область под кривой) одно и то же в обоих случаях. Отметим, что число обнаруженных ошибок после того, как АСУП становится работоспособной, почти постоянно по следующим причинам: 1) влияние эффекта «ряби» — исправление ошибки служит источником внесения новых ошибок (практика показывает, что такие ошибки составляют 19% всех обнаруженных ошибок); 2) практически для всех АСУП лишь небольшая ее часть интенсивно эксплуатируется, все остальные функции выполняются от случая к случаю, поэтому ошибки в них могут быть обнаружены значительно позже при удовлетворении некоторых специальных условий. Рис. 23 I - кривая тестирования с использованием САТО, II - кривая тестирования без использования САТО
САТО значительно сокращает количество ошибок, возникающих по вышеперечисленным причинам за счет предсказания влияния модификации, которые будут содержать эффект «ряби», а также за счет генерации и оценки тестов для тщательного и систематического тестирования АСУП. Таким образом, установление корректности с помощью САТО является наиболее дешевым и эффективным средством улучшения качества и надежности АСУП. Конечно, абсолютная надежность не может быть достигнута с помощью САТО, тем не менее вероятность надежной работы АСУП будет являться допустимой в большинстве практических случаев. Средства автоматизации, включаемые в САТО, в зависимости от решаемых ими задач разбиваются на средства автоматизации тестирования и средства автоматизации отладки. Средства автоматизации тестирования в соответствии с этапами процесса тестирования классифицируются на следующие пять типов: 1) генераторы тестовых данных (ГТД), способные генерировать большие объемы тестовых данных на основании задаваемых форматов и допустимых диапазонов значений входной информации. При этом часто требуется выделить из множества тестовых данных приемлемое их подмножество. Обычно это осуществляется путем перевода ГТД в режим генерации случайных тестовых данных в пределах некоторого диапазона значений или путем выбора тестовых данных, распределенных с равными интервалами по всему диапазону возможных значений. Имеется и другой тип ГТД, строящих так называемые полные системы тестовых данных, позволяющие АСУП проверить все свои ветви или удовлетворяющие в той или иной степени другим критериям тестирования; 2) средства автоматизированного контроля результатов, предназначенные для автоматического сравнения ожидаемых результатов с реальными и выдачи информации обо всех расхождениях. Иногда удается автоматизировать и получение ожидаемых результатов, однако соответствующие средства не будут являться универсальными по отношению к тестируемым объектам; 3) средства автоматизированного управления тестированием (тест-мониторы), решающие задачу управления процессом тестирования. Тест-монитор формирует входные тестовые данные (возможно, принимая их от ГТД), подает их на испытываемый объект, получает результаты работы, визуализирует их и помогает проверить их правильность; 4) средства автоматизированного контроля тестирования, позволяющие оценить, насколько полная и тщательная проверка АСУП была осуществлена, например, на основе информации о непроверенных операторах/функциях, непроверенных маршрутах и т. п.; 5) средства автоматизации повторного тестирования, включающие в себя средства сохранения результатов, средства сравнения и визуализации всех расхождений. Средства автоматизации отладки разбиваются на средства статического анализа исходных текстов и средства динамического контроля программ в период их выполнения. В состав этих групп входят инструментальные средства двух типов: средства автоматического обнаружения и локализации семантических ошибок некоторых классов и средства частичной автоматизации, позволяющие получать дополнительную информацию для облегчения обнаружения остальных семантических ошибок. При статическом анализе осуществляется контроль предварительно построенной (средствами САТО) графовой модели АСУП и в отдельных случаях ее исходных текстов с целью обнаружения ошибок, а также спорных конструкций для дальнейшего анализа вручную. Средства статического анализа классифицируются следующим образом: 1) средства анализа потоков управления, осуществляющие контроль структуры АСУП в целом, а также отдельных ее конструкций на основе графовой модели. Средства данного типа позволяют автоматически обнаружить следующие изъяны: невыполняемые операторы/функции, тупиковые ветви, некоторые виды бесконечных циклов и др.; 2) средства контроля операций над данными, предназначенные для обнаружения и локализации ошибок, связанных с особенностями конкретного языка программирования и его реализации (например, выход за пределы разрядной сетки значения константы, использование служебных слов языка в качестве имен, использование в отношении равенства вещественных переменных). Обычно такой контроль осуществляется по исходным текстам; 3) средства анализа потоков данных, используемые для обнаружения ошибок в потоках данных, связанные с нарушениями последовательности операций над информационными объектами (прежде всего операций чтения и записи). Анализ осуществляется по графовой модели, при этом обнаруживаются неинициализированные данные, неиспользуемые данные, ошибки в написании имен и т. п.; 4) средства контроля межмодульных интерфейсов, обнаруживающие некорректные межмодульные взаимодействия, например, несоответствие типов и числа фактических и формальных параметров при вызове модуля; 5) средства обнаружения возможных источников побочных эффектов, позволяющие получать информацию об изменении в теле функции/процедуры/модуля значений параметров вызова, в теле цикла значений управляющих переменных и т. п. для дальнейшего анализа вручную; 6) средства для контроля последовательности событий, производящие сравнение этой последовательности с правильной, заранее заданной последовательностью (например, при работе с файлом должна соблюдаться следующая последовательность: создание, открытие, совокупность чтений/записей, закрытие). Основным недостатком средств статического анализа является то, что они обеспечивают обнаружение лишь частных, специальных случаев семантических ошибок (как правило, проявляющих себя в период выполнения). К достоинствам статического анализа следует отнести возможность контроля выбранного по заданным критериям множества маршрутов потенциального выполнения программы. Средства динамического контроля предназначены для отслеживания поведения программы в период ее выполнения. Средства полной автоматизации обеспечивают контроль определенных семантических некорректностей (обычно по списку ошибок, заданному в той или иной форме). Дополнительно рассматриваемые средства позволяют осуществлять подсчет числа выполнений различных компонент АСУП, временных характеристик и другой статистической информации. Средства частичной автоматизации позволяют пользователю автоматически получать необходимую ему информацию для дальнейшей локализации ошибок вручную. Среди таких средств наиболее распространены DDT (Dinamic Debugging Tools) — «системы для уничтожения блох«(слово «bug» в английском языке означает не только «ошибка», но и»блоха», а ДДТ — популярное в недавнее время средство борьбы с насекомыми). Управление системой DDT и, соответственно, управление отладкой осуществляются посредством языка отладки командного типа, его операторы имеют форму приказов (команд), состоящих из ключевого слова и списка операндов, если последние необходимы. Операторы языка отладки обеспечивают взаимодействие программиста с DDT и инициируют выполнение соответствующих отладочных функций, согласно которым они могут быть разбиты на следующие группы: 1) управляющие операторы, обеспечивающие управление выполнением АСУП в отладочном режиме, а также гибкий контроль исполнения информирующих и контролирующих операторов; 2) информирующие операторы, обеспечивающие сбор статистической информации периода выполнения и поддерживающие аппарат трассировок различного вида (слежение, трассировка по точкам ветвления, трассировка по условиям чтения/записи значений, отслеживание частот прохождения через определенные секции кода и др.); 3) контролирующие операторы, осуществляющие контроль значений переменных, маршрутов и т. п. на предмет сравнения с заранее заданными; 4) операторы чтения/записи, дающие возможность форматного ввода тестовых данных и вывода результатов в протокол сеанса отладки в терминах исходного языка программирования; 5) служебные операторы, обеспечивающие загрузку отлаживаемых программных и информационных компонент АСУП, переключение режимов (пакет, диалог), ввод в протокол сеанса отладки комментариев и т. д. В последние годы разработан ряд DDT, имеющих более сложные языки отладки, приближающиеся по своим изобразительным возможностям к языкам программирования высокого уровня и позволяющие задавать ряд условий, при удовлетворении которых DDT способна исполнять некоторые действия (события), также заранее задаваемые средствами языка отладки. ЧТО ПРОИСХОДИТ ВО ВЗРОСЛОЙ ЖИЗНИ? Если вы все еще «неправильно» связаны с матерью, вы избегаете отделения и независимого взрослого существования... Система охраняемых территорий в США Изучение особо охраняемых природных территорий(ООПТ) США представляет особый интерес по многим причинам... Что делать, если нет взаимности? А теперь спустимся с небес на землю. Приземлились? Продолжаем разговор... ЧТО ПРОИСХОДИТ, КОГДА МЫ ССОРИМСЯ Не понимая различий, существующих между мужчинами и женщинами, очень легко довести дело до ссоры... Не нашли то, что искали? Воспользуйтесь поиском гугл на сайте:
|