Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Категории ошибок в программном обеспеченииСодержание книги
Похожие статьи вашей тематики
Поиск на нашем сайте
Многообразие ошибок, встречающихся в программных изделиях, порождает множество их классификаций, необходимых для систематизации большого статистического материала, накопленного при создании и эксплуатации программного обеспечения. Ошибки можно систематизировать по этапам разработки программного продукта. 1. При описании требований к программному продукту появляются ошибки в спецификациях, обусловленные неполным или некорректным пониманием требований пользователя разработчиком. Некачественно сформулированные пользователем требования также порождают ошибки в требованиях к программному изделию. Это наиболее серьезные ошибки, исправление которых на последующих этапах проектирования, и особенно в процессе эксплуатации, может потребовать огромных трудозатрат. 2. На этапе системного анализа решаемой проблемы могут также появляться неточные формулировки требований к программному обеспечению, а также пропуск отдельных требований. 3. Архитектурное проектирование программного изделия может порождать ошибки, связанные с неточностями в функциональной декомпозиции и в интерфейсах между модулями. 4. При алгоритмизации отдельных функциональных задач могут быть допущены ошибки, обусловленные выбором неверного или неэффективного алгоритма, неправильного математического метода решения, неверной логикой алгоритма. 5. Серьезные ошибки могут быть допущены при проектировании базы данных (в описании модели, определении типов элементов и структур данных, а также связей между ними, способах обращений к данным и т.п.)- 6. Наибольшее число ошибок относится к этапу кодирования и тестирования. Ошибки этой группы исследованы наиболее полно, и для них собран обширный статистический материал-Ошибки при программировании можно просто разделить на синтаксические и логические. Многие синтаксические ошибки обнаруживает транслятор; немало синтаксических ошибок при трансляции не обнаруживается. Так в ряде языков программирования не обнаруживаются пропуски операторов в программе, нарушения форматов ввода/вывода, правил индексации массивов, отсутствие начальных значений переменных и т.п. Не выявляются, как правило, и ошибки в указании типов передаваемых параметров при вызовах процедур. Наиболее распространены следующие ошибки, зафиксированные при разработке программного обеспечения. А- Ошибки в спецификациях. 1. Неполная или неоднозначная спецификация. 2. Некорректное определение проблемы. Б. Ошибки проектирования. 1. Непонимание спецификаций. 2. Некорректный алгоритм решения задачи. 3. Пропуск отдельных шагов и вариантов алгоритма. 4. Ошибки инициализации переменных. 5. Ошибки в управлении циклом, 6. Пропуски отдельных типов данных. В. Ошибки кодирования. 1- Неправильное понимание проектных документов. 2. Ошибки в управляющих структурах. 3. Ошибки форматов ввода/вывода. 4. Ошибки индексирования. 5. Ошибки инициализации и повторная инициализация. 6. Противоречивые наименования переменных. 7. Ошибки межпрограммных интерфейсов. 8. Ошибки в записи математических выражений. 9. Переполнение, потеря значимости или точности. 10. Логические ошибки. 11 - Отсутствие проверки флажка и контроля установки начальных значений. 12. Ошибки в операциях манипулирования данными. 13. Ошибки в пользовательском интерфейсе и в сопряжениях с системным программным обеспечением. Г. Ошибки тестирования и отладки. 1. Неадекватные тестовые наборы данных. 2. Недостаточное или некорректное использование тестовых вариантов и данных. 3. Неправильная интерпретация результатов тестирования. 4. Неправильные выводы о причинах ошибки и се источнике. 5. Неправильное понимание программной спецификации при выборе тестовых наборов данных. Д. Ошибки в описании базы данных. 1- Ошибки в сопряжениях с базой данных. 2. Ошибки в словарной базе метаданных. 3. Ошибки в инициализации базы данных. Е. Канцелярские ошибки. 1. Описки. 2. Неверное использование клавиш. 3. Пропуск или перестановка строк программы. Ж. Внешние ошибки. 1. Отказы технических устройств. 2. Реакция программного обеспечения на сбои в работе технических устройств. 3. Ошибки из-за аварийных ситуаций, возникающих в других системах, с которыми взаимодействует рассматриваемое программное изделие. 3. Ошибки в документации. Вероятность появления ошибок перечисленных категорий зависит от многих факторов, но, как показывает анализ, наиболее распространены логические ошибки (20—35%), ошибки манипулирования данными, ошибки внешних и внутренних интерфейсов, описаний данных (каждая категория от 5 до 20%). Рекомендации по отладке 1. Используйте систематический, продуманный заранее подход к отладке. Планируйте процесс отладки и тщательно проектируйте тестовые наборы данных, начиная с наиболее простых вариантов, вначале исключая наименее вероятные источники ошибок. Для упорядочения процесса тестирования собирайте и анализируйте информацию: • об особенностях и статистике ошибок; • о специфике исходных данных и последовательности изменения переменных в программе и их взаимном влиянии; • о структуре алгоритма и особенностях его программной реализации. 2. В каждый момент времени определяйте местоположение одной ошибки. 3. Используйте средства регистрации и отображения информации об ошибках, включая в программу специальный отладочный код для распечатки выборочных значений переменных, сообщений об окончании отдельных участков программы, трассировки логических условий и т.п. 4. Тщательно изучайте полученные выходные данные и сравнивайте их с ожидаемыми, заранее просчитанными результатами. 5. Обращайте особое внимание на данные, обрабатываемые программой, поскольку функционирование программы — это обработка потока данных. Тщательно анализируйте работу программы для граничных значений проверяемых условий, а также при неправильных входных данных, когда необходимо контролировать ошибки, относящиеся к данным. Контролируйте типы данных, диапазоны их значений, размеры полей и конкретные значения переменных и их точность. 6. Используйте совместный анализ потоков данных и потоков управления для проверки корректности в установлении областей определения данных для разных маршрутов выполнения программы. 7. Используйте одновременно различные средства отладки, не останавливайтесь на одной возможности. Привлекайте наиболее мощные автоматизированные средства и одновремейно применяйте ручные методы отладки и тестирования за рабочим столом, проверяя текст программы (индивидуально или группой) с точки зрения ее функционирования и с учетом наиболее вероятных ошибок. 8. Документируйте все обнаруженные и исправленные ошибки, отмечая, где они были найдены, и указывая тип ошибки. Эта информация будет полезной для предсказания источников ошибок в будущем. (Каждый программист имеет свой профиль ошибок, т.е. склонность к ошибкам определенного типа.) 9. Измеряйте сложность программ. Программы (модули) с высоким цикломатическим числом имеют более высокую предрасположенность к ошибкам и будут, вероятно, требовать большего времени для их обнаружения и исправления. В программах с высокой сложностью более высока вероятность ошибок спецификаций и проектирования, а с низкой сложностью — кодирования и канцелярских огцибок. 10. Дл»1 повышения опыта и тренировки в отладке программ используйте программы с искусственно помещенными в них ошибками. После определенного периода отладки программисту следует указать на. оставшиеся необнаруженные ошибки. Подобное "засеивание" программы дополнительными ошибками широко используется для оценки числа необнаруженных реальных ошибок. Действительно, если предположить, что во время тестирования и отладки с равной вероятностью обнаруживаются и искусственные, и реальные ошибки, то по проценту соотношения обнаруженных внесенных и реальных ошибок можно высказать предположение о числе оставшихся необнаруженных ошибок в программе.
|
||||
Последнее изменение этой страницы: 2017-02-07; просмотров: 1174; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.219.247.59 (0.006 с.) |