Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 12 лет назад пользователемkafinf.pi.sfedu.ru
1 Языки и методы программирования Преподаватель – доцент каф. ИТиМПИ Кузнецова Е.М. Лекция 9
2 Содержание МОДУЛЬНОЕ ПРОГРАММИРОВАНИЕ ТИПЫ МОДУЛЕЙ ТЕСТИРОВАНИЕ И ОТЛАДКА ПРОГРАММ СРЕДСТВА ТЕСТИРОВАНИЯ
3 Модульное программирование (организация) аппарат процедур и функций является эффективным средством поддержки метода пошаговой детализации возникают проблемы: большой объем текста программы (даже хорошо структурированной) затрудняет ее понимание; значительные затраты времени на компиляцию программы после внесения изменений; аппаратные особенности.
4 Программный модуль - это совокупность операторов, описывающих независимую функцию обработки или представления информации и имеющих стандартные средства связи с другими модулями. Благодаря этому имеется возможность разрабатывать и компилировать модуль автономно. В процессе выполнения программы он также может быть автономно расположен в памяти, т.е. будет занимать отдельный сегмент.
5 Требования к программным модулям: быть независимым от контекста, в котором используется (независимость от источника исходных данных, от места назначения выходных данных, от других модулей) выполнять определенную функцию в соответствии с требованиями спецификации модуля с тем, чтобы процесс формирования сложных программ мог проводиться без каких-либо предварительных знаний о внутренней работе модуля.
6 Типы модулей: Исходные модули (оформленные в виде текста на языке программирования) позволяют решить только проблему уменьшения текста программы на языке программирования. В этом случае текст модуля храниться отдельно (в виде текстового файла), а в том месте в программе, где он должен стоять, вставляется специальная команда (директива).
7 Типы модулей: Загрузочные модули – модули, которые компилируются отдельно и хранятся в виде двоичных файлов, содержащих объектный код (машинные команды). Стандартное расширение OBJ. Если модуль не изменяется, то впоследствии его компиляция уже не нужна, компилируется только вызывающая программа.
8 Преимущества использования загрузочных модулей: сократить время компиляции всей программной системы; хранить модули в более компактном виде; многие языки программирования поддерживают соглашения, позволяющие использовать загрузочные модули, созданные компиляторами других языков высокого уровня.
9 UNIT-модули Как и загрузочные модули, UNIT модули предполагают раздельную компиляцию вызываемого и вызывающего модуля. Во время трансляции вызывающего модуля компилятор получает доступ к описаниям глобальных объектов вызываемого модуля (импорт объектов) В то же время детали реализации вызываемого модуля и его внутренние (локальные) объекты полностью скрыты и к ним нет доступа из вызывающего модуля.
10 UNIT-модули После компиляции программы, использующей модули различных уровней, сразу получается исполнимая программа (абсолютный модуль). Нет необходимости в последующем редактировании связей.
11 Объектно-ориентированное программирование (ООП) - следующий этап развития современных концепций построения языков программирования. В основе ООП лежит идея объединения в одной структуре данных и действий, которые производятся над этими данными (методы в ООП). Объектно-ориентированный подход позволяет упростить написание сложных программ, придать им гибкость. Главное его преимущество возможность расширять область применения, не переделывая программу, а лишь добавляя в нее новые уровни иерархии.
12 ТЕСТИРОВАНИЕ И ОТЛАДКА (определения) Ошибка - программа работает не так, как требует ее спецификация. Тестирование процесс подтверждения пригодности изготовленной программы демонстрацией ее соответствия спецификации. Цель тестирования выявить наличие ошибки или убедительно продемонстрировать их отсутствие. Верификация это демонстрация логической правильности программы для заданных условий.
13 ТЕСТИРОВАНИЕ И ОТЛАДКА (определения) Отладка это набор приемов для устранения ошибки. Считать отладку законченной можно тогда, когда удается продемонстрировать, что программа после исправления ошибки работает правильно. Сопровождение деятельность, направленная на исправление недостатков или последовательное улучшение программы в процессе ее эксплуатации.
14 Принципы тестирования: описание предполагаемых значений выходных данных должно быть необходимой частью тестового набора; следует избегать тестирования программы ее автором; необходимо досконально изучать результаты применения каждого теста; тесты для неправильных и непредусмотренных входных данных следует разрабатывать так же тщательно, как для правильных и предусмотренных; нельзя планировать тестирование в предположении, что ошибки не будут обнаружены; хорошим считается тест, который имеет высокую вероятность обнаружения еще не выявленной ошибки;
15 ТЕСТИРОВАНИЕ СПЕЦИФИКАЦИЙ проверка программы на соответствие поставленной задаче Необходимо проверить спецификации на полноту и ясность. Когда программная спецификация обладает свойствами полноты, ясности и последовательности, то человек, проводящий испытания программы, может рассматривать ее как «черный ящик».
16 Способ контроля за соответствием спецификации программе - поручить заказчику формировать тестовые данные и указывать правильные результаты. Один из способов проверки спецификаций - метод ситуация-эффект. Ситуация это условие или комбинация условии, которые могут возникнуть, эффект это видимый результат, который должен быть получен.
17 Пример: определить спецификацию задачи поиска элемента в массиве : для х, принадлежащего а[1..п], ( ситуация ) получить такое i (i
18 ТЕСТИРОВАНИЕ НА ОСНОВАНИИ АНАЛИЗА ТЕКСТА ПРОГРАММЫ Основной способ реализации проверки методом «белого ящика» является выбор различных маршрутов проверки. Главная цель создание теста, в котором каждый путь проверяется.
19 поиск максимальной из трех величин Program maximum ; var а, b, с : integer ; { Входные данные } max : integer ; { Результат } begin read ( а, b, с) ; if a > b then max : = a else max : = b ; i f с > max then max : = с ; writeln ( max ) end.
20 1)3, 2, 1 или 3, 2, 3 в этом случае выполняется оператор: max := а, значит, max = 3 ; 2)3, 5, 4 или 3, 3, 3- в этом случае выполняется оператор : max := b, значит, max = 5 ; 3)1, 2, 3 в этом случае выполняются операторы: max := b, max := с, значит, max = 3; 4) 3, 2, 5 в этом случае выполняются операторы: max := a, max := с.
21 ЭТАПЫ ТЕСТИРОВАНИЯ проверка в нормальных условиях; проверка в экстремальных условиях; проверка в исключительных ситуациях. Проверка в нормальных условиях выполняется на основе данных, которые характерны для реальных условий работы программы.
22 Проверка в экстремальных условиях предполагает использование таких тестовых данных, которые включают граничные значения области изменения входных данных и должны восприниматься программой как правильные. Примерами экстремальных значений являются слишком большие и малые числа. Проверка в исключительных ситуациях предполагает тестирование программы с использованием данных, значения которых находятся за пределами допустимой области изменения переменных. Программы разрабатываются в расчете на обработку ограниченного набора данных. Важно знать, что произойдет, если программе придется иметь дело с недопустимыми данными.
23 ТЕСТИРОВАНИЕ МОДУЛЕЙ создавайте небольшие модули, которые могут быть проверены независимо от оставшейся части программы; создавайте подходящие структуры данных и реализуйте их так, чтобы программа минимально зависела от способа их представления; для каждой процедуры приводите связные и понятные спецификации.
24 Тестирование модулей индивидуальное тестирование каждого модуля отдельно от остальных интегральное тестирование, когда проверяется одновременная работа всех модулей, т.е. всей программы.
25 СРЕДСТВА ТЕСТИРОВАНИЯ Современные системы программирования (например, система Турбо-Паскаль) обладают способностью следить за ходом выполнения программы и контроля за определенными переменными. Средством автоматического тестирования является генератор тестовых данных, который формирует данные для использования в проверяемой программе. Одним из средств тестирования являются функциональные диаграммы, которые помогают систематически выбирать результативные тесты
26 Схема отладки: начинайте с изучения уже доступных данных; сформулируйте гипотезу, которая корректна для таких данных; проведите несколько раз эксперимент, который в состоянии подтвердить гипотезу.
27 СОВЕТЫ ПРОГРАММИСТУ сформулированные Д. Ван Тасселом Обходитесь минимальным количеством контрольных примеров. Учитывая, что исчерпывающее тестирование невозможно, испытывайте программу разумно. Начинайте тестирование как можно раньше. Прежде всего проведите ручную проверку. Старайтесь проверять правильность принципов построения системы или программы на простом варианте.
28 СОВЕТЫ ПРОГРАММИСТУ сформулированные Д. Ван Тасселом Старайтесь применять тестирование, используя метод, сверху вниз. В каждом следующем тесте должна использоваться группа данных, отличная от предыдущих. Испытывайте программу в нормальных, экстремальных и исключительных условиях. Подготавливайте тестовые данные для проверки каждой ветви алгоритма. Повторяйте тестирование после каждого случая внесения изменений в программу.
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.