Автор работы: Пользователь скрыл имя, 17 Декабря 2014 в 02:02, курс лекций
Введение в идеологию. В эпоху НТП объемы производства и использование средств вычислительной технологии во многом определял Н.Т.П. Резкое снижение средств вычислительной техники создало предпосылки для массового внедрения вычислительной техники в бытовом производстве. Это позволило провести широкую автоматизацию производственных процессов на базе встроенных микропроцессов вплоть до применения их в бытовой технике.
Известны 3 метода предупреждения и выявления ошибок.
1) Выбор оптимальной технологии
разработки программного
2) Метод проведения поэтапной
разработки программного
3) Программно-целевой метод тестирования программного изделия, состоит в четкой ориентации тестов на конкретные цели тестирования каждого шага разработки, например ,цели: тестирование особых ситуаций, тестирование операционной памяти, тестирование загрузки.
Выбор способа сборки программного изделия из отдельных его модулей наиболее важный
этап тестирования целого программного изделия. Именно здесь определяется форма направления тестов модуля, типы средств использующихся при тестировании, порядок тестирования модулей локализации и направления ошибок.
Для решения поставленной проблемы выбора, для решения процессов- разработано 2 подхода
1) Монолитное тестирование
2) Пошаговое тестирование(может быть как восходящим, так и нисходящим).
Монолитное тестирование предусматривает проверку всей программы целиком(комплекс программ)
Пошаговое тестирование-каждый модуль последовательно тестируется и тестирование следующего модуля определяется выбранным последним тестированием, т.е порядок определяется пользователем.
Анализ двух указанных подходов(преимущества и недостатки)
1) Монолитное тестирование более трудоемкий процесс сравнительно с пошаговым.
2)При пошаговом тестировании ошибки в межмодульных интерфейсах обнаруживаются раньше, т.е сборка программы идет практически с 0.
3) При пошаговом тестировании менее трудоемка отладка и поиск ошибок, т.е локализация ошибок и внешних изменений не влечет за собой переделку всего модуля.
4) Качество тестирования при пошаговом подходе выше, чем при монолитном тестировании, поскольку при пошаговом тестировании модулей, все оттестируемые модули могут выступать в виде заглушек и не участвовать в трудоемкой разработке тестов.
5) Затраты машинного времени в большинстве случаев при монолитном тестировании как правило меньше , чем при пошаговом, т.к при монолитном тестировании выполняется отдельный модуль, который просто передает управление, тогда как в конце тестирование производится в полном объеме.
6) Монолитное тестирование
В связи со слабой формализованностью описания требований к программному изделию и составлению пользовательской документации, наконец, отсутствие методологии написания тестов для проверки системы выделены 15 категорий тестов, обеспечивающих тестирование системы разработки программного обеспечения.
1) Тестирование удобств
2) Тестирование на предельных объектах
Цель: показать, что программа не может управлять максимальным объемом данных специфицированными в исходных требованиях, т.е в техническом задании прописан максимальный объем памяти 12 мб..
3) Тестирование на предельных
нагрузках- проверка функциональности
программного обеспечения в
4) Тестирование удобства
5) Тестирование защиты, которое
представляет собой систему
6) Тестирование
Проверка характеристик
7) Тестирование требований к памяти, т.е необходимость проверить предельные объемы оперативной и внешней памяти ,в любой момент времени работы программного изделия.
8) Тестирование конфигураций
Проблемы конфигурации- Тестирование на совместимость- оно необходимо тогда, когда в программное обеспечение вносятся существенные изменения. Производится модификация программного обеспечения и когда необходимо создать процедуры конверсии одни данные в другие программного обеспечения.
9) Тестирование удобств установки программного обеспечения- оно проверяет установку достаточно сложного программного продукта, на конкретные условия эксплуатации.
10) Тестирование надежности в
настоящее время носит
11) Тестирование восстановления
Существует ряд программных систем:
Проверка восстанавливаемости программного обеспечения заключается в предварительном ,преднамеренном вводе определенной информации, обеспечивающей заведомо нереализуемые ситуации, в которых программное обеспечение попадает в состояния неадекватные нормальному поведению программы.
12) Тестирование удобств обслуживания, как правило, состоит из комплекса инструментальных средств, облегчающих сопровождения программного обеспечения. Это возможность получения данных, все те средства, позволяющие изучить более детально тестирование программного обеспечения.
13) Тестирование документации
Проверка пользовательской документации входит в комплекс тестирования программного обеспечения и является предметом инспекций проверяемых органов, как правило основные критерии- ясность и четкость понимания описываемых процессов.
14) Тестирование процедур: если
программное обеспечение
Анализ: трудоемкость тестирования составляет от 20 до 60% от всего объема работ, причем львиная доля его составляет -выбор необходимой исходной информации для получения эталонных значений. Эта задача резко экспоненциально растет, когда речь идет о комплексном тестировании огромного объема маршрутов, когда необходимо протестировать предельные нагрузки на программное обеспечение. Нередкий случай ,когда ручная разработка тестов практически невозможна и специально создается и ……..позволяющая генерирование тестов.
Методы отладки:
Основная задача программиста состоит в том, чтобы его программа работала без ошибок, для этого существует 2 подхода
1) Не делать ошибок вовсе, когда
основная нагрузка ложится на
качество программирования, когда
программист тщательно
2) Находить все сделанные ошибки, когда стиль программирования неаккуратный и вся нагрузка ложиться на поиск ошибок.
Лекция 16
Известны три источника ошибок в написании программы (с точки зрения анализа их распределения) – это алгоритмические ошибки или неверный выбор алгоритма решения задачи. Эти ошибки могут иметь наиболее серьезный характер впоследствии до полной переработки программы. К ним относятся: не учет или неполный учет данных, неправильное понимание структуры рассмотрения алгоритма, как неполного подмножества данных, данные, выходящие за пределы задач, не знание или неполное знание средств вычислительной техники, незнание команд ЭВМ, языковых средств, возможностей среды разработки.
Описки – уровень обидной ошибки, который определен в результате просмотра.
Основная задача программиста состоит в том, чтобы его программа работала без ошибок.
Классификация ошибок по их внутреннему содержанию.
Основные классы ошибок.
Такая ошибка может долго не проявляться, до тех пор, пока не появятся случайные данные, активизирующие эту ошибку.
Этот вид ошибок связан, как правило, с оформлением переменных на локальном уровне.
Они появляются, как правило, при использовании в доступе указателей для связи между объектами.
Они так же связаны с использованием указателей и генерируют ошибки, связанные с динамическими переменными, т.е. с созданием и удалением объектов.
Одна из наиболее трудно уловимых ошибок, как правило, связанная с параллельными процессами.
Способы проявления ошибок или симптомы проявления ошибок.
Неверная выдача:
Основной вывод.
Методы, используемые при поиске ошибок.
(делят на 2 категории)
В обоих случаях методы базируются на общей стратегии – стратегии отладки, когда от обратного прохождения программы (от результата ошибки) вы двигаетесь в обратном направлении к месту возникновения ошибок.
В аналитическом способе нагрузка ложиться на аналитические способности программиста.
В экспериментальном - на программу, когда она проверяет ошибки.
Золотые правила отладки.
Оценка качества разработки ПО.
Основные показатели качества ПО.
Под качеством будем понимать, совокупность свойств изделия, выражающие его существенную определенность или индивидуальность, т.е. такую совокупность свойств изделия, благодаря которым оно является именно этим изделием, а не каким другим.
Какие программы считать хорошими?
Многообразие пользовательских интерфейсов приводит к тому, что для ПО невозможно создать формальную систему требований к его качеству. В промышленности высокое качество достигается за счет контрольных средств, т.е. контроль проводится простым сравнением. ПО невозможно таким образом сравнить.