Подборка по базе: ДОКЛАД (Юридическая ответственность за управление транспортным с, Гос поддержка малого бизнеса.docx, Государственная поддержка инвалидов военной службы и членов их с, государственная поддержка малого бизнеса.docx, Государственная поддержка инноваций.doc, Государственная поддержка малого бизнеса.docx, Внеурочное занятие по биологии. Лабораторный практикум на тему _, Внеурочное занятие по биологии. Лабораторный практикум на тему _, Государственная поддержка малого бизнеса.docx, Доклад о состоянии и использовании земель в Смоленской обл. в 20
Содержание
Введение……………………………………………………………………………………………………………4
1 Установка на серверы и рабочие станции: опеационные систмы и необходимое для работы прогрммное обеспечение. ……5
2 Осуществление конфигурации программного обеспечения на серверах и рабочих станциях, сетевом оборудовании ..13
3 Поддержка в работоспособном состоянии программное обеспечение серверов и рабочих станций. 17
4 Регистрация пользователей локальной сети…………………………………………………..19
5 Настройка прав доступа……………………………………………………………………….…….…23
6 Резервное копирование………………………………………………………………………..…….…25
7 Восстановление работоспособности локальной сети при сбоях…………………………30
8 Ошибки пользователей и программного обеспечения и принятие мер по их исправлению…………………………………………………………………………………………..……….32
9 Мониторинг сети………………………………………………………………………………………….34
10 Обеспечение сетевой безопасности……………………………………………………………..35
11 Осуществление антивирусной защиты……………………………………………………………40
Заключение…………………………………………………………………………………………….……….42
Список используемых источников…………………………………………………………..……….43
Введение
Производственная практика проходила на базе организации ГБУЗ «ООКПТД»
На практику были даны следующие задачи:
- установка на серверы и рабочие станции: операционные системы и необходимое для работы программное обеспечение;
- осуществление конфигурирования программного обеспечения на серверах и рабочих станциях;
- поддержка в работоспособном состоянии программное обеспечение серверов и рабочих станций;
- регистрация пользователей локальной сети и почтового сервера, назначает идентификаторы и пароли;
- установка прав доступа и контроль использования сетевых ресурсов;
- обеспечение своевременного копирования, архивирования и резервирования данных;
- принятие мер по восстановлению работоспособности локальной сети при сбоях или выходе из строя сетевого оборудования;
- выявление ошибок пользователей и программного обеспечения и принятие мер по их исправлению;
- проведение мониторинга сети, разрабатывать предложения по развитию инфраструктуры сети;
- обеспечение сетевой безопасности (защиту от несанкционированного доступа к информации, просмотра или изменения системных файлов и данных), безопасность межсетевого взаимодействия;
- осуществление антивирусной защиты локальной вычислительной сети, серверов и рабочих станций;
- документирование всех произведённых действий;
- сформировать отчёт.
1 Установка на серверы и рабочие станции: операционные системы и необходимое для работы программное обеспечение
Драйвер – это программа, с помощью которой вносятся настройки того или иного компьютерного оборудования в его операционную систему.
Иными словами, драйвер это по сути настройки, которые помогают установленной на компьютере операционной системе распознать подключённое устройство и обеспечить корректную работу с полным его функционалом. Драйверы необходимы как для компьютера, так и для ноутбука.
Устанавливать драйвера вручную лучше всего скачав их с официального сайта производителя устройства (а не устанавливать с диска), так как на сайте будут самые последние их версии.
Загрузив файл драйвера — запустите его, он сам установиться в нужное место.
Драйвера помимо настроек несут в себе различного рода приложения, которые упрощают настройку устройств и расширяют их потенциал.
Драйвера помимо настроек несут в себе различного рода приложения, которые упрощают настройку устройств и расширяют их потенциал.
Некоторые драйвера идут в комплекте с операционной системой, но, тем не менее, в комплекте с каждым устройством должен идти диск с драйверами.
Практически на все устройства, подключаемые к компьютеру, которые имеют сложную структуру и им нужны драйвера. Причём это как внутренние, так и внешние устройства.
Драйвера необходимы для: видеокарты, звуковой карты, сетевой карты, материнской карты, а также для МФУ, веб-камеры, подключаемых гаджетов и т.п.
Некоторые драйвера идут в комплекте с операционной системой, но, тем не менее, в комплекте с каждым устройством должен идти диск с драйверами.
Что касается Windows, то там драйвера также могут загрузиться и установиться через сервис обновлений, но это случается далеко не всегда, а если и случается, то установленные драйвера не всегда работают корректно.
Именно поэтому рекомендует драйвера на Windows устанавливать вручную.
Устанавливать драйвера вручную лучше всего скачав их с официального сайта производителя устройства (а не устанавливать с диска), так как на сайте будут самые последние их версии.
Загрузив файл драйвера — запустите его, он сам установиться в нужное место.
Основное предназначение драйверов – это налаживание взаимодействия между аппаратными устройствами и операционной системой.
Но это не все. Кроме выполнения своих основных функций драйвера имеют ряд настроек, которые оказывают существенное влияние на производительность системы в целом.
Изменить параметры функционирования устройством можно в окне управления драйвером.
Нажимаем «Пуск» – правой кнопкой щелкаем по пункту «Компьютер» – выбираем в открывшемся меню пункт «Управление» – в правой части появившегося окошка выбираем «Диспетчерустройств» (или находим поиском Windows) – в списке находим необходимое устройство и два раза кликаем по нему – переходим на вкладку «дополнительно» и проводим необходимы настройки.
На предприятии имеется всего один канал связи, он является как и цифровым, так и кабельным одновременно. Кабельным служит витая пара UTP пятой категории.
Установка операционной системы:
Операционная система (ОС) является системным программным обеспечением, оно приводит в действие всю техническую составляющее любого из компьютеров, исключение могут представлять лишь микрокомпьютеры. Микрокомпьютерам, являющимися составляющими каких-либо приборов, такой программный комплекс не нужен, по причине того, что они в большинстве случае отвечают ка какую ни, будь конкретную функцию. Настройка производилась согласно установленным правилам эксплуатирования. Рисунки 1 — 13
Рисунок 1 – Этап начала установки ОС
Рисунок 2 – Выбор языка
Рисунок 3 – Лицензионное соглашение
Рисунок 4 – Выбор типа установки
Рисунок 5 – Выбор места установки – диск
Рисунок 6 – Процесс установки операционной системы
Установка Windows Server 2019;
Рисунок 7 – Выбор язык
Рисунок 8 – Версии ОС
Рисунок 9 – Лицензионное соглашение
Рисунок 10 – Тип установки
Рисунок 11 – Лицензионное соглашение
Рисунок 12 – Процесс установки
Рисунок 13 – создание пользователя
2 Осуществление конфигурации программного обеспечения на серверах и рабочих станциях, сетевом оборудовании
Подготовка и настройка Windows server для администрирования сети. Для этого следует назначить IP-адресс, а также задать имя главному серверу перед установкой Active Directory, если этого не сделать, то в дальнейшем возникнут трудности. Следующий этап – это установка ролей: доменные службы, DHCP, DNS, служба сертификатов Active Directory, служба развёртывания. Они пригодятся нам для администрирования сети, создания безопасности от угроз из внешней среды, управление правами пользователей и облегчённого управление сети. WDS (Windows Deployment Services) или Служба развертывания Windows — Служба WDS предназначена для централизованной установки систем на большом количестве компьютеров. С помощью WDS можно устанавливать, как чистые системы, так и предварительно созданные образы, включающие в себя уже установленное ПО и драйвера (Такие образы тоже можно создавать средствами WDS). Подробная настройка представлена на рисунках с 14 по 20.
Рисунок 14 – Конфигурация развёртывания
Рисунок 15 – Установка AD
Рисунок 16 – Завершение установки AD
Рисунок 17 – Настройка
Рисунок 18 – Имя области
Рисунок 19 – Диапазон адресов
Рисунок 20 – Срок действия аренды адресов
3 Поддержка в работоспособном состоянии программное обеспечение серверов и рабочих станций
В современных сетях устранение неполадок, так или иначе, связано с производительностью конечных пользователей. Чаще всего они жалуются на невозможность подключения и медленную работу сети. Низкая производительность может быть вызвана приложением, сервером или коммутационным оборудованием. Однако существует ряд проблем на физическом уровне и в процессе подключения, которые могут привести к медленной работе сети.
Проверка подключения кабелей:
Тест «Wire map» предназначен для проверки терминирования контактов на каждом конце коммутационного кабеля, а также для проверки ошибок подключения. Wire map указывает, что вам нужно проверить для каждого из 8 проводников в кабеле;
- замыкания между любыми двумя или более проводами;
- Перевёрнутые пары;
- перепутанные или перекрещенные пары;
- Расщеплённые пары;
- расстояние до обрыва и размыкания;
- недожатый коннектор;
- другие проблемы с проводами.
Эти проблемы могут быть наиболее распространенными, так как коммутационные шнуры на любом конце канала могут быть повреждены или подключены к другому неисправному шнуру, при этом не будет понятно, что что-то не так.
Проверка скрещивая (наводки и перекрёстные помехи):
С учётом характерных особенностей сетей WLAN используемых в компаниях и значительных проблем, с которыми сталкиваются сетевые специалисты при управлении ими, стандартизированные процессы тестирования и контроля существенно упрощают работу сетевых инженеров и одновременно повышают производительность сети.
- Наводка — это посторонняя индуктивность, ёмкость и электромагнитные сигналы из внешней среды
- Перекрёстные помехи — это слабые электромагнитные сигналы, которые возникают при передаче данных по расположенным рядом проводам.
Эти нежелательные проблемы имеют одинаковый эффект на оба провода в одном направлении (полярность). Было установлено, что благодаря скручиванию проводов электромагнитная полярность нежелательных сигналов смещается. Это даёт эффект погашения перекрёстных помех. Чем больше скручивания на каждый сантиметр провода, тем сильнее эффект погашения. Рисунок 21 — 22
Рисунок 21 — Пример плохого соотношения скрещивания
Рисунок 22 — Пример хорошего соотношения скрещивания
4 Регистрация пользователей локальной сети
Создание пользователя для локальной сети осуществляется через Active Directory.
Active Directory — одна из самых важных областей управления сетями в Windows. Active Directory — расширяемая и масштабируемая служба каталогов, которая поддерживает охватывающую всю сеть базу данных для хранения учетных записей и информации о ресурсах.
WINS Manager и Server Manager могут использоваться для просмотра списка систем, но они не были доступны конечным пользователям.
Администраторы использовали User Manager для добавления и удаления данных совершенно другого типа сетевого объекта.
Хранилище Active Directory обрабатывает весь доступ к БД. Хранилище данных состоит из служб и физических файлов, которые управляют правами доступа, процессами чтения и записи данных внутри базы данных на жестком диске каждого контроллера.
При работе с Active Directory вы имеете дело с целостной системой именования, описания, поиска, изменения и защиты информации о ресурсах.
Active Directory применяется для управления сетевой инфраструктурой, системного администрирования и управления пользовательскими средами.
Active Directory содержит две структуры- логическую и физическую.
Логическая структура состоит из доменов, подразделений, лесов и деревьев, тогда как физическая структура содержит специальные серверы, называемые контроллерами домена, и сайты.
Леса, домены и организационные единицы (OU) составляют основные элементы логической структуры Active Directory.
Лес определяет единый каталог и представляет границу безопасности. Леса содержат домены. Рисунки 23 — 29
Рисунок 23 – Создания домена
Рисунок 24 – Режим работы корневого домена
Рисунок 25 – Процесс делегирования с помощью DNS
Рисунок 26 – Пути базы данных Active Directory
Рисунок 27 – Процесс установки
Рисунок 28 – Начала регистрации
Рисунок 29 – Регистрация
5 Настройка прав доступа
Права доступа – это набор действий, которые может выполнять пользователь с файлом или папкой. Обычно это право на чтение, запись и выполнение.
Права доступа подразумевают в первую очередь не только право на доступ к информации, но и право на пользование этой информацией, то есть, что можно с этой информацией делать.
Получив доступ к информации, пользователь, в зависимости от предоставленных прав, может только ознакомиться с этой информацией, т.е. читать (право на чтение- read), изменять эту информацию, сохраняя изменения (право на запись – write), а если вы получили, которая является исполняемой программой, то для того, чтобы запустить её2 на выполнение у Вас должно быть право на выполнение – execute.
Операционная система Windows по умолчанию предоставляет определенные права таким встроенным группам, как Administrators , Users , Power Users и Backup Operators. Aдминистраторы — встроенная группа, существующая как на компьютерах, являющихся контроллерами домена, так и на компьютерах, не являющихся контроллерами домена. Члены этой группы имеют полный контроль над компьютером или доменом.
Пользователи — встроенная группа, существующая как на компьютерах, являющихся контроллерами домена, так и на компьютерах, не являющихся контроллерами домена.
Члены этой группы могут выполнять только те задачи, на которые им предоставлены конкретные права, например, запускать приложения, использовать локальные и сетевые принтеры и выключать, и блокировать рабочие станции.
Возможность доступа к файлу зависит также от прав доступа к каталогу, в котором находится файл. Например, даже если права доступа к файлу установлены как -rwx, другие пользователи не могут получить доступ к файлу, пока они не имеют прав на исполнение для каталога, в котором находится файл. Рисунок 30-31
Рисунок 30 – Разрешение
Рисунок 31 – Права доступа
6 Резервное копирование
Резервное копирование — создание копий всех файлов, находящихся в хранилищах памяти впоследствии записаны на другие хранилища памяти для сохранения важных данных без потерь.
Практически у каждого пользователя на компьютере хранится важная информация, потеря которой может, как минимум, расстроить пользователя (личные фото, коллекция музыки, рабочие документы и т.д.).
Что бы обезопасить важную информацию необходимо делать резервное копирование данных.
Резервное копирование файлов и информации позволит Вам защитить эти данные, в случае если произойдёт выход из строя основного носителя информации (например, жёсткий диск компьютера) или вирусной атаки.
Главным способом, который может быть использован для создания резервных копий — это создание образа жёсткого диска, иначе говоря, клонирование, это можно легко сделать с любым программным обеспечением для создания образов.
Ещё одним способом при создании резервных копий данных является использование удалённого интерактивного сервера.
Это значит, что все важные данные будут сохраняться на сервере, который довольно безопасен и находится на значительном удалении от места расположения вашего компьютера.
Компании, обеспечивающие создание резервных копий в режиме реального времени, используют профессиональные жёсткие диски и программное обеспечение, для того чтобы заверить вас в том, что ваши данные хранятся в безопасном и надёжном месте.
Программное обеспечение часто содержит разнообразные уязвимости из-за ошибок в коде программ.
Ошибки, допущенные при разработке программ, в некоторых ситуациях приводят к сбою программы, а, следовательно, нарушается работа программы: при этом часто возникает изменение и порча данных, останов программы или даже системы.
Большинство уязвимостей связано с неправильной обработкой данных, получаемых извне, или недостаточно строгой их проверкой.
Для выявления уязвимостей используют различные инструментальные средства, например, статические анализаторы.
Например, внедрив статический анализатор кода PVS-Studio в процесс разработки, вы сократите стоимость исправления множества ошибок.
Благодаря этому высвободится время на реализацию новой функциональности или для более тщательного высокоуровневого тестирования. Рисунки 32 — 38
Рисунок 32 – Этапа создания резервной копии
Рисунок 33 – Категории
Рисунок 34 – Разделы
Рисунок 35 – Создание образа
Рисунок 36 – Место хранения архива
Рисунок 37 – Подтверждение архивации
Рисунок 38 – Завершение процесса
7 Восстановление работоспособности локальной сети при сбоях
Очень часто интересует как исправить системные ошибки Windows, которые представляют собой синий экран с написанным кодом.
Обычному пользователю такой экран совершенно непонятен, более того, он пугает и настораживает, так как в большинстве случаев, при появлении синего экрана с кодом, компьютер не может работать.
Если система не загружается, а вместо окна загрузки вы видите синий экран с белым кодом, значит вы столкнулись со стоп-ошибкой Windows.
Часто даже такая ошибка не является достаточной причиной для переустановки операционной системы или удаления всех данных с компьютера.
Чтобы спасти систему от переустановки, нужно понять, а чем причина ошибки.
Проще всего это сделать, посмотрев на код сбоя, он указан после слова STOP на странице.
По этому коду можно понять, в чем причина сбоя и сможете быстро и безопасно его ликвидировать. Рисунок 39
Рисунок 39 — Код и тип ошибки
Помимо кода ошибки, на экране появляется имя системного модуля, который вызвал сбой программ и тип неполадки.
На изображении выше эти параметры указаны стрелочками. Для примера рассмотрим ситуацию на изображении.
В данном случае причиной ошибки является драйвер, который не смог правильно взаимодействовать с модулями операционной системы.
В следующих строках указаны стоп слова, которые возникли из-за ошибки, но они несут для нас мало информации.
В нижней строке написано имя драйвера, то есть в данной ситуации это tcpip.sys, имя интернет-протокола TCP/IP.
Чтобы исправить системную ошибку, не обязательно ставить новую операционную систему.
Достаточно поменять драйвер сетевой платы компьютера на более подходящий.
Выполните следующий порядок действий, чтобы исправить ошибку;
- Перезагрузить компьютер. Иногда это помогает, так как часто возникают временные сбои. Если появится доступ к Windows, то именно с временной проблемой столкнулись и после перезагрузки система начнёт работать нормально.
- Если после перезагрузки синий экран пропал, но в следующий раз появился снова, значит проблема с драйвером, который не соответствует системе. Возможно драйвер обновился и теперь несовместимы с системой. В этом случае нужно сделать откат драйвера до предыдущей версии, если ошибка появилась после обновления.
- Если обновлений не было, а синий экран время от времени появляется при запуске системы, значит драйвера устарели и нуждаются в обновлении. Не все обновления устанавливаются автоматически, поэтому следует обращать внимание на сообщения в центре поддержки и устанавливать все предложенные обновления. Это поможет также улучшить защиту компьютера от вирусов.
- Наиболее серьёзный случай, когда синий экран появляется при каждом запуске системы. В такой ситуации вам потребуется загрузочный диск или флешка, восстанавливающие компоненты ОС. Найти подробные инструкции можно в интернете, процесс установки компонентов будет зависеть от типа и кода ошибки. Но в большинстве случаев причиной появления синего экрана смерти является сбой загрузки файловой системы. В такой ситуации нужно загрузить систему с загрузочного диска Windows PE и запустить командную строку. Открыть командную строку можно через Пуск. Войдите в меню «Пуск», нажмите на «Выполнить» и «Команда CMD». В открывшейся строке вбиваем chkdsk C: /f и нажимаем на enter. Эта команда сканирует весь диск С на наличие ошибок, и когда находит автоматически их исправляет. После окончания процесса исправления ошибок, можно запускать компьютер в нормальном режиме.
Сканирование диска не всегда может спасти компьютер, но очень часто помогает восстановить нормальные параметры системы.
8 Ошибки пользователей и программного обеспечения и принятие мер по их исправлению
Программные сбои — результат неправильной работы программного обеспечения, от них всегда можно избавиться, причём разными путями.
Какого-то единого или универсального способа избавления от программных сбоёв нет и быть не может, поскольку разнообразие этих сбоёв ничем не ограничено: чем сложнее программа и используемые устройства, тем сложнее и разнообразнее сбои.
Тем не менее попробовать избавиться от сбоёв можно выполнением некоторых действий в такой последовательности.
- Анализ журнала событий. Любые события, несущие важные сведения, в том числе и ошибки программ, фиксируются в специальном системном журнале событий, который пользователь всегда может просмотреть и проанализировать. Чтобы получить к нему доступ, щёлкните правой кнопкой мыши на значке Компьютер и в появившемся меню выберите пункт Управление. Далее откроется окно, в левой части которого необходимо раскрыть ветвь дерева Просмотр событий Журналы Windows. Все события отсортированы и разделены на пять групп. Отследив порядок появления интересующего вас сбоя, можно вычислить его причину, а затем воспользоваться соответствующим способом его устранения.
- Исправление системного реестра. Чем сложнее программа, тем больше вероятность, что она активно работает с реестром: сохраняет в нем нужные ей данные, а также использует их для своей инициализации и работы. Поэтому, если какая-то из программ произвела некорректные изменения в той части реестра, в которой хранились нужные для первой программы данные, это может стать причиной неработоспособности или появления непонятных ошибок. Выход из ситуации — запуск специализированной утилиты, которая устранит все ошибки в реестре.
- Замена драйвера. Часть программных сбоёв способны вызвать устаревшие драйверы устройств либо драйверы, которые пытаются расширить стандартную функциональность устройства, например включив возможность разгона видеокарты путём разблокировки механизма управления частотами. Если оборудование довольно новое, «правильный» драйвер всегда можно скачать с веб-сайта производителя этого оборудования.
- Переустановка программы. Вычислив источник появления программного сбоя, то есть программу, которая его инициирует, можно попробовать переустановить. Это действие способно дать эффект, особенно если программа долго работала без сбоёв и проблемы начались лишь недавно. Если же программа сбоит постоянно, лучше отказаться от использования, либо найти новую версию или альтернативу.
- Апгрейд программы. Программа, написанная для работы в операционной системе Windows ХР или даже Windows 98, изначально не подготовлена к работе в Windows 7/8. Поэтому, даже если запуск программы не был отвергнут системой из-за несовместимости, правильное функционирование будет под вопросом. Если причина именно в этом, лучшим решением будет переход на более новую версию программы либо замена альтернативным по функциональности приложением.
- Запуск в режиме совместимости. Если вы перешли на операционную систему Windows 7/8, но по какой-то причине не можете купить другую версию программы, которая успешно работала в Windows ХР, а в новой системе отказывается это делать или функционирует со сбоями, можно попробовать запускать в специальном режиме. Так, начиная с версии Windows 7, операционная система позволяет запускать программу в режиме совместимости с более ранними операционными системами, вплоть до Windows 95, хотя полной совместимости добиться невозможно. Чтобы выбрать режим совместимости, щёлкните правой кнопкой мыши на ярлыке с программой, перейдите на вкладку Совместимость и выберите из списка нужную позицию.
- Изменение прав доступа. Часто программные сбои и разного рода ошибки возникают в процессе работы программ в составе сети с доменом, когда у пользователя имеется самый простой набор прав доступа к ресурсам компьютера и сети. Большая часть программ, особенно непрофессионального уровня, не рассчитаны на подобное стечение обстоятельств и требуют максимального доступа к ресурсам. Выходом из этой ситуации является расширение прав доступа, например перевод пользователя в группу опытные пользователи. Это может сделать только администратор сети или человек, знающий пароль администратора сети или локального администратора. Иногда Windows преднамеренно блокирует доступ к системному разделу диска, особенно к его корневой структуре. В этом случае в качестве рабочей папки программы можно использовать папку в любом другом, несистемном разделе диска.
- Перезапуск программы. Как ни странно, но закрытие программы с последующим открытием может устранить возникшую проблему. Например, при просмотре интернет-страниц, особенно активно использующих flash-технологии, браузер Internet Explorer (до 8-й версии программы) может настолько раздуть файл подкачки, что это будет мешать не только его работе, но и функционированию остальных запущенных программ.
Пример решения программного сбоя путём изменения прав доступа. Рисунок 40
Рисунок 40 — Разрешение для группы «пользователи»
9 Мониторинг сети
Мониторинг сети – это анализ трафика и его диагностика, загрузка сетевых устройств и соединений.
Перечисленные процессы способствуют: Получению эффективного контроля над возникающими проблемами в сети. К числу таких проблем относятся: сильная нагрузка узлов сети и снижение их пропускной способности.
ManegeEngine Vulnerability — Передовая технология, развернутая в сканере, способна обнаруживать аномальное поведение. Эта стратегия более эффективна при выявлении уязвимостей нулевого дня, чем обычные системы обнаружения на основе правил, основанные на базе данных угроз. Вы также получаете действия по снижению угрозы.
Включает в себя управление конфигурацией и Управление патчами функции, которые закрывают эти слабости. Сканирование уязвимостей выявит неправильно настроенные устройства и позволит вам развернуть стандартные политики конфигурации. Сканирование также проверяет версии программного обеспечения и позволяет автоматизировать установку исправлений. Вы можете выбрать, какие патчи развертывать, что позволит вам пропускать версии в тех случаях, когда важные обновления могут быть потеряны из-за автоматических обновлений программного обеспечения. Эти возможности конфигурации и мониторинга программного обеспечения распространяются на веб-серверы и брандмауэры. Рисунок 40
Рисунок 40 — Панель Missing Pathces
Системные администраторы получают на инструментальной панели специальные инструменты, которые позволяют им расширять базовые возможности менеджера уязвимостей. Они распространяются на интеграцию аутентификации Active Directory и специальных процедур для гостевого / BYOD-оборудования и мобильных устройств. Утилиты, доступные на панели инструментов, могут быть адаптированы в соответствии с ролью администратора, что позволяет менеджерам команд ограничивать функции, доступные отдельным специалистам.
10 Обеспечение сетевой безопасности
Предупреждение,
обнаружение, исправление ошибок,
обеспечение устойчивости к ошибкам.
Тестирование, доказательство, контроль,
испытание, аттестация, отладка.
ПРОВЕРКА
ПРАВИЛЬНОСТИ ПРОГРАММ.
Программу
нельзя использовать до тех пор, пока не
будет уверенности в ее надежности.
Надежность — это свойство программы,
более строгое, чем корректность, поскольку
программа может быть корректной, но не
быть надежной. Программа является
корректной, если удовлетворяет внешним
спецификациям, т.е. выдает ожидаемые
ответы на определенные комбинации
значений входных данных. Программа
является надежной, если она корректна,
приемлемо реагирует на неточные входные
данные и удовлетворительно функционирует
в необычных условиях.
В
процессе создания программы программист
старается предвидеть все возможные
ситуации и написать программу так, чтобы
она реагировала на них вполне
удовлетворительно. Этап тестирования
является последней попыткой определить
надежность и корректность программы.
Проверка надежности включает в себя
просмотр проектной документации и
текста программы, анализ текста программы,
тестирование и, наконец, демонстрацию
заказчику того, что программа работает
надежно.
Все
принципы и методы разработки надежного
программного обеспечения можно разбить
на четыре группы:
1.
Предупреждение ошибок.
2.
Обнаружение ошибок.
3.
Исправление ошибок.
4.
Обеспечение устойчивости к ошибкам.
Предупреждение
ошибок.
К этой группе относятся принципы и
методы, цель которых — не допустить
появление ошибок в готовой программе.
Большинство методов концентрируется
на отдельных процессах перевода и
направлено на предупреждение ошибок в
этих процессах (упрощение программ,
достижение большей точности при переводе,
немедленное обнаружение и устранение
ошибок).
Обнаружение
ошибок.
Если предполагать, что в программном
обеспечении какие-то ошибки все же
будут, то лучшая стратегия в этом случае
— включить средства обнаружения ошибок
в само программное обеспечение.
Немедленное обнаружение имеет два
преимущества: можно минимизировать как
влияние ошибки, так и последующие
затруднения для человека, которому
придется извлекать информацию об этой
ошибке, находить ее место и исправлять.
Исправление
ошибок.
После того, как ошибка обнаружена, либо
она сама, либо ее последствия должны
быть исправлены программным обеспечением.
Некоторые устройства способны обнаружить
неисправные компоненты и перейти к
использованию резервных. Другой метод
— восстановление информации (например,
при сбое питания).
Устойчивость
к ошибкам.
Методы этой группы ставят своей целью
обеспечит функционирование программной
системы при наличии в ней ошибок. Они
разбиваются на три подгруппы: динамическая
избыточность (методы голосования,
резервных копий); методы отступления
(когда необходимо корректно закончить
работу — например, закрыть базу данных);
изоляция ошибок (основная идея — не дать
последствиям ошибки выйти за пределы
как можно меньшей части системы
программного обеспечения, так, чтобы
если ошибка возникнет, то не вся система
оказалась бы неработоспособной).
8.1.
Основные определения.
Тестирование
— процесс выполнения программы с
намерением найти ошибки. Если Ваша цель
— показать отсутствие ошибок, Вы их
найдете не слишком много. Если же Ваша
цель — показать наличие ошибок, Вы найдете
значительную их часть.
Доказательство
— попытка найти ошибки в программе
безотносительно к внешней для программы
среде. Большинство методов доказательства
предполагает формулировку утверждений
о поведении программы и затем вывод и
доказательство математических теорем
о правильности программы. Доказательства
могут рассматриваться как форма
тестирования, хотя они и не предполагают
прямого выполнения программы.
Контроль
— попытка найти ошибки, выполняя программу
в тестовой, или моделируемой, среде.
Испытание
— попытка найти ошибки, выполняя программу
в заданной реальной среде.
Аттестация
— авторитетное подтверждение правильности
программы. При тестировании с целью
аттестации выполняется сравнение с
некоторым заранее определенным
стандартом.
Отладка
— не является разновидностью тестирования.
Хотя слова «отладка» и «тестирование»
часто используются как синонимы, под
ними подразумеваются разные виды
деятельности. Тестирование — деятельность,
направленная на обнаружение ошибок;
отладка направлена на установление
точной природы известной ошибки, а затем
— на исправление этой ошибки. Эти два
вида деятельности связаны — результаты
тестирования являются исходными данными
для отладки.
Тестирование
модуля, или автономное тестирование —
контроль отдельного программного
модуля, обычно в изолированной среде.
Тестирование модуля иногда включает
также математическое доказательство.
Тестирование
сопряжений — контроль сопряжений между
частями системы (модулями, компонентами,
подсистемами).
Тестирование
внешних функций — контроль внешнего
поведения системы, определенного
внешними спецификациями.
Комплексное
тестирование — контроль и испытание
системы по отношению к исходным целям.
Комплексное тестирование является
процессом испытания, если выполняется
в среде реальной, жизненной.
Тестирование
приемлемости — проверка соответствия
программы требованиям пользователя.
Тестирование
настройки — проверка соответствия
каждого конкретного варианта установки
системы с целью выявить любые ошибки,
возникшие в процессе настройки системы.
8.2.
Базовые правила тестирования.
Обсудим
некоторые из важнейших аксиом тестирования.
они приведены в настоящем разделе и
являются фундаментальными принципами
тестирования.
Хорош
тот тест, для которого высока вероятность
обнаружить ошибку, а не тот, который
демонстрирует правильную работу
программы. Поскольку невозможно показать,
что программа не имеет ошибок и, значит,
все такие попытки бесплодны, процесс
тестирования должен представлять собой
попытки обнаружить а программе прежде
не найденные ошибки.
Одна
из самых сложных проблем при тестировании
— решить, когда нужно закончить. Как уже
говорилось, исчерпывающее тестирование
(т.е. испытание всех входных значений)
невозможно. Таким образом, при тестировании
мы сталкиваемся с экономической
проблемой: как выбрать конечное число
тестов, которое дает максимальную отдачу
(вероятность обнаружения ошибок) для
данных затрат. Известно слишком много
случаев, когда написанные тесты имели
крайне малую вероятность обнаружения
новых ошибок, в то время как довольно
очевидные хорошие тесты оставались
незамеченными.
Невозможно
тестировать свою собственную программу.
Ни один программист не должен пытаться
тестировать свою собственную программу.
Тестирование должно быть в высшей
степени разрушительным процессом, но
имеются глубокие психологические
причины, по которым программист не может
относится к своей программе как
разрушитель.
Необходимая
часть всякого теста — описание ожидаемых
выходных данных или результатов. Одна
из самых распространенных ошибок при
тестировании состоит в том, что результаты
каждого теста не прогнозируются до его
выполнения. Ожидаемые результаты нужно
определять заранее, чтобы не возникла
ситуация, когда «глаз видит то, что
хочет увидеть». Чтобы совсем исключить
такую возможность, лучше разрабатывать
самопроверяющиеся тесты, либо пользоваться
инструментами тестирования, способными
автоматически сверять ожидаемые и
фактические результаты.
Избегайте
невоспроизводимых тестов, не тестируйте
«с лету». В условиях диалога
программист слишком часто выполняет
тестирование «с лету», т.е., сидя за
терминалом, задает конкретные значения
и выполняет программу, чтобы посмотреть,
что получится. Это -неряшливая и
нежелательная форма тестирования.
Основной ее недостаток в том, что такие
тесты мимолетны; они исчезают по окончании
их выполнения. Никогда не используйте
тестов, которые тут же выбрасываются.
Готовьте
тесты как для правильных, так и для
неправильных входных данных. Многие
программисты ориентируются в своих
тестах на «разумные» условия на
входе, забывая о последствиях появления
непредусмотренных или ошибочных входных
данных. Однако многие ошибки, которые
потом неожиданно обнаруживаются в
работающих программах, проявляются
вследствии никак не предусмотренных
действий пользователя программы. Тесты,
представляющие неожиданные или
неправильные входные данные, часто
лучше обнаруживают ошибки, чем «правильные»
тесты.
Детально
изучите результаты каждого теста. Самые
изощренные тесты ничего не стоят, если
их результаты удостаиваются лишь беглого
взгляда. Тестирование программы означает
большее, нежели выполнение достаточного
количества тестов; оно также предполагает
изучение результатов каждого теста.
По
мере того как число ошибок, обнаруженных
в некоторой компоненте программного
обеспечения увеличивается, растет также
относительная вероятность существования
в ней необнаруженных ошибок. Этот феномен
наблюдался во многих системах. Его
понимание способно повысить качество
тестирования, обеспечивая обратную
связь между результатами прогона тестов
и их проектированием. Если конкретная
часть системы окажется при тестировании
полной ошибок, для нее следует подготовить
дополнительные тесты.
Поручайте
тестирование самым способным программистам.
Тестирование, и в особенности проектирование
тестов, — этап в разработке программного
обеспечения, требующий особенно
творческого подхода. К сожалению, во
многих организациях на тестирование
смотрят совсем не так. Его часто считают
рутинной, нетворческой работой. Однако
практика показывает, что проектирование
тестов требует даже больше творчества,
чем разработка архитектуры и проектирование
программного обеспечения.
Считайте
тестируемость ключевой задачей Вашей
разработки. Хотя «тестируемость»
и не фигурировала явно в «проектных»
главах, сложность тестирования программы
напрямую зависит от ее структуры и
качества проектирования. Несмотря на
то, что эта связь осознана еще недостаточно
глубоко, можно утверждать, что многие
характеристики хорошего проекта
(например, небольшие, в значительной
степени независимые модули и независимые
подсистемы), улучшают и тестируемость
программы.
Никогда
не изменяйте программу, чтобы облегчить
ее тестируемость. Часто возникает
соблазн изменить программу, чтобы было
легче ее тестировать. Например,
программист, тестируя модуль, содержащий
цикл, который должен повторяться 100 раз,
меняет его так, чтобы цикл повторялся
только 10 раз.
8.3.
Отладка.
Рекомендуемый
подход к методам отладки аналогичен
особенностям проектирования и включает
в себя следующие этапы:
1.
Поймите задачу. Многие программисты
начинают процесс отладки бессистемно,
пропуская жизненно важный этап детального
анализа имеющихся данных. Первым делом
нужно тщательно исследовать, что в
программе выполнено правильно, а что —
неправильно, чтобы выработать одну или
несколько гипотез о природе ошибки.
Одна из самых распространенных причин
затруднений при отладке — не учтен
какой-нибудь существенный фактор в
выходных данных программы. Важно
исследовать данные в поисках противоречий
гипотезе (например, ошибка возникает
только в каждой второй записи), потому
что это поведет к уточнению гипотезы
или, возможно, покажет, что имеется не
одна причина ошибки.
2.
Разработайте план. Следующий шаг —
построить одну или несколько гипотез
об ошибке и разработать план проверки
этих гипотез.
3.
Выполните план. Следуя своему плану,
пытайтесь доказать гипотезу. Если план
включает несколько шагов, нужно проверить
каждый.
4.
Проверьте решение. Если кажется, что
точное местоположение ошибки обнаружено,
необходимо выполнить еще несколько
проверок, прежде чем пытаться исправить
ошибку. Проанализируйте, может ли
предполагаемая ошибка давать в точности
известные симптомы. Убедитесь, что
найденная причина полностью объясняет
все симптомы, а не только их часть.
Проверьте, не вызовет ли ее исправление
новой ошибки.
Главная
причина затруднений при отладке — такая
психологическая установка, когда разум
видит то, что он ожидает увидеть, а совсем
не то, что имеет место в действительности.
Один из способов преодоления такой
установки — скептицизм в отношении
всего, что Вы изучаете, в особенности
комментариев и документации. Опытные
специалисты по отладке, изучая модуль,
часто закрывают комментарии, поскольку
комментарии нередко описывают, что
программа делает, по мнению ее создателя.
Обратный просмотр (чтение программы в
обратном направлении) — еще один полезный
тактический прием, поскольку он помогает
по-новому взглянуть на алгоритм.
Еще
одна трудность при отладке — такое
состояние, когда все идеи зашли в тупик
и найти местоположение ошибки кажется
просто невозможно. Это означает, что Вы
либо смотрите не туда, куда нужно, и
следует еще раз изучить симптомы и
построить новую гипотезу, либо подозрения
правильные, но разум уже не способен
заметить ошибку. Если кажется, что именно
так и есть , то лучший принцип — «утро
вечера мудренее». Переключите внимание
на другую деятельность, и пусть над
задачей работает Ваше подсознание.
Многие программисты признают, что самые
трудные свои задачи они решают во время
бритья или по дороге на работу.
Когда
Вы найдете и проверите ошибку и убедитесь
в том, что нашли ее правильно, не забудьте
о том, что вероятность других ошибок в
этой части программы теперь выше. Изучите
программу в окрестности найденной
ошибки в поисках новых неприятностей.
Проверьте, не была ли сделана такая же
ошибка в других местах программы.
Исследования
методов отладки вначале концентрировались
на сравнении отладки в пакетном и
диалоговом режимах, причем большинство
исследований приходило к выводу, что
диалоговый режим предпочтительнее.
Однако более поздняя работа показала,
что, вероятно, наилучший способ отладки
— просто читать программу и изо всех сил
стараться вникнуть в алгоритм, хотя это
требует усердия и собранности.
Важно
подчеркнуть, что многие из методов
проектирования помогают и в процессе
отладки, такие методы, как структурное
программирование и хороший стиль
программирования не только уменьшают
исходное количество ошибок, но и облегчают
отладку, делая программу более простой
для понимания.
После
того, как точно установлено, где находится
ошибка, надо ее исправить. Самая большая
трудность на этом шаге — суметь охватить
проблему целиком; самая распространенная
неприятность — устранить только некоторые
симптомы ошибки. Избегайте «экспериментальных»
исправлений; они показывают, что Вы еще
недостаточно подготовлены к отладке
этой программы, поскольку не понимаете
ее.
В
деле исправления ошибок очень важно
понимать, что оно возвращает нас назад,
к стадии проектирования. Обидно, если
после завершения хорошо организованного
проектирования весь его строгий порядок
нарушается, когда вносятся поправки.
Исправления должны выполняться по
крайней мере так же строго, как
первоначальное выполнение программы.
Если необходимо, следует обновить
документацию, поправки должны проходить
сквозной структурный контроль или
другие формы контрольного чтения
программы. Ни одна поправка не «мала»
настолько, чтобы не нуждаться в
тестировании.
По
самой своей природе исправления всегда
имеют некоторое отрицательное влияние
на структуру программы и легкость ее
чтения. Тот факт, что они делаются в
условиях жесткого давления, усиливает
это влияние. Опыт показывает, что при
исправлении довольно высока вероятность
внесения в программу новой ошибки
(обычно от 20 до 50).
Из этого следует, что отладка должна
выполняться лучшими программистами
проекта.
Изучение
процесса отладки.
Один
из лучших способов повысить надежность
программного обеспечения в нынешних
или в будущих проектах — очевидный, но
часто упускаемый из виду процесс обучения
на сделанных ошибках. Каждую ошибку
следует внимательно изучить, чтобы
понять, почему она возникла и что должно
было бы сделано, чтобы ее предотвратить
или обнаружить раньше. Редко можно
встретить программиста или организацию,
которые выполняли бы такой полезный
анализ, а когда он проводится, то обычно
имеет поверхностный характер и сводится,
например, к классификации ошибок: ошибки
проектирования, логические ошибки,
ошибки сопряжения или другие, не имеющие
особого смысла категории.
Нужно
уделять время изучению природы каждой
обнаруженной ошибки. Необходимо
подчеркнуть, что анализ ошибок должен
быть в значительной мере качественным
и не сводиться просто к упражнению в
количественном подсчете. Чтобы понять
причины , лежащие в основе ошибок, и
усовершенствовать процессы проектирования
и тестирования, нужно ответить на
следующие вопросы:
1.
Почему возникла именно такая ошибка? В
ответе должны быть указаны как
первоисточник, так и непосредственный
источник ошибки. Например, ошибка могла
быть сделана при программировании
конкретного модуля, но в ее основе могла
лежать неоднозначность в спецификациях
или исправление другой ошибки.
2.
Как и когда ошибка была обнаружена?
Поскольку мы только что добились
значительного успеха, почему бы нам не
воспользоваться приобретенным опытом?
3.
Почему эта ошибка не была обнаружена
при проектировании, контроле или на
предыдущей фазе тестирования?
4.
Что следовало сделать при проектировании
или тестировании, чтобы предупредить
появление этой ошибки или обнаружить
ее раньше?
Собирать
эту информацию нужно не только для того,
чтобы учиться на ошибках. Официально
отчетность об ошибках и об их исправлении
необходима и для того, чтобы гарантировать,
что обнаруженные ошибки в работающих
или тестируемых системах не упущены и
что исправления выполнены в соответствии
с принятыми нормами.
Другой
способ обучения на ошибках в программном
обеспечении — учиться на опыте других
организаций. К сожалению, это не жизненный
вариант, поскольку даже в лучшие времена
научного книгоиздания, такие материалы
если и встречались то крайне редко.
Содержание
- Способы выявления и устранения программных сбоев
- Учебные материалы.. первая помощь в учебе.
- Устранение программных сбоев
- Первая помощь при сбоях: способы исправления
- Самостоятельно решать проблему?
Способы выявления и устранения программных сбоев
Как уже упоминалось, программные сбои — результат неправильной работы программного обеспечения, а это означает, что от них всегда можно избавиться, причем разными путями.
Какого-то единого или универсального способа избавления от программных сбоев нет и быть не может, поскольку разнообразие этих сбоев ничем не ограничено: чем сложнее программа и используемые устройства, тем сложнее и разнообразнее сбои.
Тем не менее попробовать избавиться от сбоев можно выполнением некоторых действий в такой последовательности.
- Анализ журнала событий. Любые события, несущие важные сведения, в том числе и ошибки программ, фиксируются в специальном системном журнале событий, который пользователь всегда может просмотреть и проанализировать. Чтобы получить к нему доступ, щелкните правой кнопкой мыши на значке Компьютер и в появившемся меню выберите пункт Управление. Далее откроется окно, в левой части которого необходимо раскрыть ветвь дерева Просмотр событий ► Журналы Windows. Все события отсортированы и разделены на пять групп, названия которых говорят сами за себя. Отследив порядок появления интересующего вас сбоя, можно вычислить его причину, а затем воспользоваться соответствующим способом его устранения.
- Исправление системного реестра. Чем сложнее программа, тем больше вероятность, что она активно работает с реестром: сохраняет в нем нужные ей данные, а также использует их для своей инициализации и работы. Поэтому, если какая-то из программ «случайно» произвела некорректные изменения в той части реестра, в которой хранились нужные для первой программы данные, это может стать причиной ее неработоспособности или появления непонятных ошибок. Выход из ситуации — запуск специализированной утилиты, которая устранит все ошибки в реестре.
- Замена драйвера. Немалую часть программных сбоев способны вызвать устаревшие драйверы устройств либо драйверы, которые пытаются расширить стандартную функциональность устройства, например включив возможность разгона видеокарты путем разблокировки механизма управления частотами. Если оборудование довольно новое, «правильный» драйвер всегда можно скачать с веб-сайта производителя этого оборудования.
- Переустановка программы. Вычислив источник появления программного сбоя, то есть программу, которая его инициирует, можно попробовать ее переустановить. Это действие способно дать эффект, особенно если программа долго работала без сбоев и проблемы начались лишь недавно. Если же программа сбоит постоянно, лучше отказаться от ее использования либо найти ее новую версию или альтернативу.
- Апгрейд программы. Программа, написанная для работы в операционной системе Windows ХР или даже Windows 98, изначально не подготовлена к работе в Windows 7/8. Поэтому, даже если запуск программы не был отвергнут системой из-за несовместимости, ее правильное функционирование будет под вопросом. Если причина именно в этом, лучшим решением будет переход на более новую версию программы либо замена ее альтернативным по функцио-нальности приложением.
- Запуск в режиме совместимости. Если вы перешли на операционную систему Windows 7/8, но по какой-то причине не можете купить другую версию программы, которая успешно работала в Windows ХР, а в новой системе отказывается это делать или функционирует со сбоями, можно попробовать запускать ее в специальном режиме. Так, начиная с версии Windows 7, операционная система позволяет запускать программу в режиме совместимости с более ранними операционными системами, вплоть до Windows 95, хотя полной совместимости добиться невозможно. Чтобы выбрать режим совместимости, щелкните правой кнопкой мыши на ярлыке с программой, перейдите на вкладку Совместимость и выберите из списка нужную позицию.
- Изменение прав доступа. Часто программные сбои и разного рода ошибки возникают в процессе работы программ в составе сети с доменом, когда у пользователя имеется самый простой набор прав доступа к ресурсам компьютера и сети. Большая часть программ, особенно непрофессионального уровня, не рассчитаны на подобное стечение обстоятельств и требуют максимального доступа к ресурсам. Выходом из этой ситуации является расширение прав доступа, например перевод пользователя в группу Опытные пользователи. Это может сделать только администратор сети или человек, знающий пароль администратора сети или локального администратора. Иногда Windows преднамеренно блокирует доступ к системному разделу диска, особенно к его корневой структуре. В этом случае в качестве рабочей папки программы можно использовать папку в любом другом, несистемном разделе диска.
- Перезапуск программы. Да, как ни странно, но закрытие программы с последующим ее открытием может устранить возникшую проблему. Например, при просмотре интернет-страниц, особенно активно использующих flash-технологии, браузер Internet Explorer (до 8-й версии программы) может настолько раздуть файл подкачки, что это будет мешать не только его работе, но и функционированию остальных запущенных программ.
В этом случае можно закрыть браузер и открыть его снова — должно помочь. Если же программа не реагирует на любые действия, в том числе на нажатия кнопки закрытия окна, следует открыть Диспетчер задач, найти проблемное приложение в списке программ на вкладке Процессы и нажать кнопку Завершить процесс, тем самым принудительно выгрузив его из памяти и освободив все ресурсы, которые программа на себя перетянула. К сожалению, другие интернет-браузеры также страдают подобным поведением, хотя и в меньшей степени.
Это далеко не полный список способов обнаружения и устранения причины, а следовательно, и самого программного сбоя. Решение той или иной проблемы часто возникает само собой, поскольку многие программы сами предлагают такие пути решения. Кроме того, элементарное закрытие и открытие программы также способно помочь. Не стоит забывать и об Интернете: форумные сообщества и просто любители пообщаться обязательно помогут решить возникшую проблему.
Источник
Учебные материалы.. первая помощь в учебе.
Введение
Данная работа посвящена описанию методов обнаружения и устранения ошибок, позволяющих существенно повысить качество программного обеспечения встраиваемых систем и сэкономить материально-временные ресурсы, затрачиваемые на отладку систем. Рассматриваемые методы без особого труда могут быть использованы при разработке самых разных проектов программного обеспечения встраиваемых систем, причем накопленный опыт полностью сохраняет свою ценность и при реализации других проектов и целевых технологий. Кроме того, они позволяют гарантировать простоту сопровождения, модификации и переноса созданных программ в устройства новых типов. Вкратце, рассматриваемые методы дают возможность не только совершенствовать существующие встроенные приложения и процессы разработки, но и гарантировать, что с распространением новых встраиваемых устройств у вас уже будет накоплен опыт, необходимый для разработки высокоэффективных приложений для этих технологий причем вовремя и в рамках выделенных средств.
Ни для кого не секрет, что отлаживать программы для встраиваемых систем чрезвычайно тяжело. Отладка сама по себе далеко не курорт, а отладка программного обеспечения встраиваемых систем предъявляет к тому же особые требования. Прежде всего, из встроенных систем очень трудно извлекать требуемую информацию. Процесс отладки, как правило, строится на основе выводимой приложением информации и соответствующей обратной связи со стороны программиста, а у программ встроенных систем нет возможности сделать распечатку изображений экрана, которой могут пользоваться разработчики другого типа программного обеспечения.
Из этой неприятной ситуации нужно как-то выходить. Одно из возможных решений подключение специального оборудования к модулю, представляющему собой набор аппаратных средств, для которых и пишется отлаживаемое программное обеспечение. Это специальное оборудование дает разработчику возможность увидеть, что происходит с его программным обеспечением. Например, так называемые мониторы памяти позволяют заносить информацию в отдельные области памяти, считывать в монитор содержимое памяти и использовать содержимое памяти монитора для анализа состояния системы в момент ее краха. Кроме того, встраиваемые системы могут отлаживаться с помощью систем моделирования, представляющих собой программные среды, в которых отлаживаемые программы исполняются так же, как они будут исполняться в целевой системе.
Системы моделирования обладают множеством достоинств. Обычно в их составе имеются отладчики и средства вывода информации на печать, однако системы моделирования это всего лишь имитаторы. Отлаживаемая программа может успешно исполняться в системе моделирования и быть полностью неработоспособной в реальных условиях. Так что системы моделирования это лишь частичное решение. Ошибки программного обеспечения вполне могут пройти мимо системы моделирования и всплыть в реальном оборудовании.
Именно в этом и скрыта главная проблема: как показано на рис. 1, исправление ошибок, которые выявляются не на этапе тестирования, а в процессе использования, обходится значительно дороже. Если ошибка найдена в программе для не-встраиваемых систем, то можно выпустить обновленную версию программы с исправлениями, стоимость таких обновлений, как правило, сравнительно невысокая. Если же ошибка найдена во встроенной системе, то для ее исправления необходим возврат и модификация самих устройств с этой системой. Стоимость такого возврата может достигать астрономических величин, и стать причиной разорения компаний.
Рис. 1. Стоимость устранения ошибок во встраиваемых системах
На мой взгляд, сроки и затраты на выявление и устранение ошибок для встраиваемых систем приблизительно удваиваются (из-за описанных выше трудностей). В свете таких немыслимых затрат любой метод, который изначально будет препятствовать появлению ошибок, имеет неоценимое значение. К счастью для разработчиков встраиваемых систем, для предотвращения ошибок можно использовать некоторые из новых технологий программной разработки. Наиболее рекомендуемые две из них: стандарты программирования и блочное тестирование.
Правда, оба этих метода сегодня не столько применяются, сколько прославляются. Практически каждый разработчик программного обеспечения согласен с их высокой ценностью, но пользуются ими единицы. Подобная непоследовательность объясняется в большинстве случаев двумя причинами. Прежде всего, многие считают следование стандартам программирования и блочное тестирование весьма утомительным делом. Учитывая, сколько времени и сил эти подходы позволяют сэкономить в будущем, разработчикам следовало бы немножко потерпеть и избежать огромных трудозатрат (и возможного отказа от проекта) впоследствии.
Разработчикам систем реального времени еще труднее они в дополнение ко всему должны решать проблемы, связанные с соблюдением различных временных зависимостей. В конце статьи мы рассмотрим трудности, возникающие при отладке систем реального времени, и познакомимся с некоторыми методами отладки, которые рассчитаны на преодоление этих трудностей и которые также могут быть использованы при разработке любого программного обеспечения.
Способы отладки программ
Отладка программ заключается в проверке правильности работы программы и аппаратуры. Программа, не содержащая синтаксических ошибок тем не менее может содержать логические ошибки, не позволяющие программе выполнять заложенные в ней функции. Логические ошибки могут быть связаны с алгоритмом программы или с неправильным пониманием работы аппаратуры, подключённой к портам микроконтроллера.
Встроенный в состав интегрированной среды программирования отладчик позволяет отладить те участки кода программы, которые не зависят от работы аппаратуры, не входящей в состав микросхемы микроконтроллера. Обычно это относится к вычислению математических выражений или преобразованию форматов представления данных.
Для отладки программ обычно применяют три способа: Пошаговая отладка программ с заходом в подпрограммы; Пошаговая отладка программ с выполнением подпрограммы как одного оператора; Выполнение программы до точки останова.
Пошаговая отладка программ заключается в том, что выполняется один оператор программы и, затем контролируются те переменные, на которые должен был воздействовать данный оператор.
Если в программе имеются уже отлаженные подпрограммы, то подпрограмму можно рассматривать, как один оператор программы и воспользоваться вторым способом отладки программ.
Если в программе существует достаточно большой участок программы, уже отлаженный ранее, то его можно выполнить, не контролируя переменные, на которые он воздействует. Использование точек останова позволяет пропускать уже отлаженную часть программы. Точка останова устанавливается в местах, где необходимо проверить содержимое переменных или просто проконтролировать, передаётся ли управление данному оператору.
Практически во всех отладчиках поддерживается это свойство (а также выполнение программы до курсора и выход из подпрограммы). Затем отладка программы продолжается в пошаговом режиме с контролем локальных и глобальных переменных, а также внутренних регистров микроконтроллера и напряжений на выводах этой микросхемы. Следуйте стандартам программирования!
Источник
Устранение программных сбоев
К сожалению, компьютерная техника часто подвергается поломкам, сбои в системе – не редкость, особенно у тех пользователей, которые работают в Интернете, где можно подхватить немало вирусов или шпионским программ – они могут значительно снизить работоспособность техники. Можно просто почитать статьи о настройке программного обеспечения – они больше расскажут вам о возможных проблемах. Существует несколько способов, благодаря которым можно наладить сбои программ, один из них — аутсорсинг программного обеспечения .
Первая помощь при сбоях: способы исправления
- Вначале следует проанализировать сбои для того, чтобы определить, какие из способов подойдут для решения данной проблемы. Так, например, есть программа-утилита WhatIsHang, благодаря которой можно узнать причину сбоя. Случается, что проблемы возникают из-за некорректного завершения рабочих процессов. Для этого также можно использоваться утилиту AppCrashView, которая просмотрит и проанализирует все отчеты об ошибках, которые выдаются системой.
- Отключение медленных и нестабильно работающих программ. Случается, что программа просто зависает – это не очень опасно, но если она тянет за собой всю ОС? Как известно, избыточное количество процессов просто тормозят систему, для чего следует применять утилиту Startup Booster. После этого можно удалить некоторые из процессов, которые, например, занимаются чисто обновлением программ. Есть такая программа, как AntiFreeze, которая необходима тогда, когда системный диспетчер задач перестает реагировать на ваши запросы. Правда, она не работает тогда, когда возникает некорректная работа драйверов.
- Убираем «остатки» драйверов и программ. Многие средства для удаления программ не очищают реестр, а потому эти «остатки» могут значительно тормозить все системы и используемые программы. Между прочим, Windows совершенно не заботит то, что многие применяемые ранее драйверы уже не имеют актуальности, а потому и не чистит их.
- Многие проблемы возникают из-за того, что установленные антивирусные программы не совместимы с системой. Это также возникает тогда, когда используются компоненты и утилиты от разных фирм, потому старайтесь устанавливать ПО одного производителя.
Самостоятельно решать проблему?
На самом деле, проблем по работе ПО может быть гораздо больше, как и причин, которые их вызывают – об этом в Интернете написаны статьи о настройке программного обеспечения. Именно потому так тяжело бывает порой найти основную из них, тем более что со временем такие сбои могут нарушить всю работу ПК, что в итоге может привести к ремонту. Именно потому многие предпочитают обращаться в специализированные компании, которые осуществляют услугу «аутсорсинг программного обеспечения».
Источник
Как уже упоминалось, программные сбои — результат неправильной работы программного обеспечения, а это означает, что от них всегда можно избавиться, причем разными путями.
Какого-то единого или универсального способа избавления от программных сбоев нет и быть не может, поскольку разнообразие этих сбоев ничем не ограничено: чем сложнее программа и используемые устройства, тем сложнее и разнообразнее сбои.
Тем не менее попробовать избавиться от сбоев можно выполнением некоторых действий в такой последовательности.
- Анализ журнала событий. Любые события, несущие важные сведения, в том числе и ошибки программ, фиксируются в специальном системном журнале событий, который пользователь всегда может просмотреть и проанализировать. Чтобы получить к нему доступ, щелкните правой кнопкой мыши на значке Компьютер и в появившемся меню выберите пункт Управление. Далее откроется окно, в левой части которого необходимо раскрыть ветвь дерева Просмотр событий ► Журналы Windows. Все события отсортированы и разделены на пять групп, названия которых говорят сами за себя. Отследив порядок появления интересующего вас сбоя, можно вычислить его причину, а затем воспользоваться соответствующим способом его устранения.
- Исправление системного реестра. Чем сложнее программа, тем больше вероятность, что она активно работает с реестром: сохраняет в нем нужные ей данные, а также использует их для своей инициализации и работы. Поэтому, если какая-то из программ «случайно» произвела некорректные изменения в той части реестра, в которой хранились нужные для первой программы данные, это может стать причиной ее неработоспособности или появления непонятных ошибок. Выход из ситуации — запуск специализированной утилиты, которая устранит все ошибки в реестре.
- Замена драйвера. Немалую часть программных сбоев способны вызвать устаревшие драйверы устройств либо драйверы, которые пытаются расширить стандартную функциональность устройства, например включив возможность разгона видеокарты путем разблокировки механизма управления частотами. Если оборудование довольно новое, «правильный» драйвер всегда можно скачать с веб-сайта производителя этого оборудования.
- Переустановка программы. Вычислив источник появления программного сбоя, то есть программу, которая его инициирует, можно попробовать ее переустановить. Это действие способно дать эффект, особенно если программа долго работала без сбоев и проблемы начались лишь недавно. Если же программа сбоит постоянно, лучше отказаться от ее использования либо найти ее новую версию или альтернативу.
- Апгрейд программы. Программа, написанная для работы в операционной системе Windows ХР или даже Windows 98, изначально не подготовлена к работе в Windows 7/8. Поэтому, даже если запуск программы не был отвергнут системой из-за несовместимости, ее правильное функционирование будет под вопросом. Если причина именно в этом, лучшим решением будет переход на более новую версию программы либо замена ее альтернативным по функцио-нальности приложением.
- Запуск в режиме совместимости. Если вы перешли на операционную систему Windows 7/8, но по какой-то причине не можете купить другую версию программы, которая успешно работала в Windows ХР, а в новой системе отказывается это делать или функционирует со сбоями, можно попробовать запускать ее в специальном режиме. Так, начиная с версии Windows 7, операционная система позволяет запускать программу в режиме совместимости с более ранними операционными системами, вплоть до Windows 95, хотя полной совместимости добиться невозможно. Чтобы выбрать режим совместимости, щелкните правой кнопкой мыши на ярлыке с программой, перейдите на вкладку Совместимость и выберите из списка нужную позицию.
- Изменение прав доступа. Часто программные сбои и разного рода ошибки возникают в процессе работы программ в составе сети с доменом, когда у пользователя имеется самый простой набор прав доступа к ресурсам компьютера и сети. Большая часть программ, особенно непрофессионального уровня, не рассчитаны на подобное стечение обстоятельств и требуют максимального доступа к ресурсам. Выходом из этой ситуации является расширение прав доступа, например перевод пользователя в группу Опытные пользователи. Это может сделать только администратор сети или человек, знающий пароль администратора сети или локального администратора. Иногда Windows преднамеренно блокирует доступ к системному разделу диска, особенно к его корневой структуре. В этом случае в качестве рабочей папки программы можно использовать папку в любом другом, несистемном разделе диска.
- Перезапуск программы. Да, как ни странно, но закрытие программы с последующим ее открытием может устранить возникшую проблему. Например, при просмотре интернет-страниц, особенно активно использующих flash-технологии, браузер Internet Explorer (до 8-й версии программы) может настолько раздуть файл подкачки, что это будет мешать не только его работе, но и функционированию остальных запущенных программ.
В этом случае можно закрыть браузер и открыть его снова — должно помочь. Если же программа не реагирует на любые действия, в том числе на нажатия кнопки закрытия окна, следует открыть Диспетчер задач, найти проблемное приложение в списке программ на вкладке Процессы и нажать кнопку Завершить процесс, тем самым принудительно выгрузив его из памяти и освободив все ресурсы, которые программа на себя перетянула. К сожалению, другие интернет-браузеры также страдают подобным поведением, хотя и в меньшей степени.
Это далеко не полный список способов обнаружения и устранения причины, а следовательно, и самого программного сбоя. Решение той или иной проблемы часто возникает само собой, поскольку многие программы сами предлагают такие пути решения. Кроме того, элементарное закрытие и открытие программы также способно помочь. Не стоит забывать и об Интернете: форумные сообщества и просто любители пообщаться обязательно помогут решить возникшую проблему.
Библиографическое описание:
Пивоваров, Д. О. Отладка и тестирование программного обеспечения / Д. О. Пивоваров. — Текст : непосредственный // Молодой ученый. — 2022. — № 25 (420). — С. 14-15. — URL: https://moluch.ru/archive/420/93470/ (дата обращения: 04.06.2023).
В статье описываются способы отладки и тестирования программного обеспечения.
Ключевые слова:
программное обеспечение, тестирование, функциональное тестирование, тип тестирования.
Отладка — это процесс поиска ошибок, т. е. ошибок в программном обеспечении или приложении, и их исправления. Любое программное обеспечение или продукт, который разрабатывается, проходит через различные этапы — тестирование, устранение неполадок, обслуживание в другой среде. Эти программные продукты содержат некоторые ошибки. Эти ошибки должны быть устранены из программного обеспечения. Отладка — это не что иное, как процесс, который многие тестировщики программного обеспечения использовали для поиска и устранения этих ошибок. Отладка — это поиск ошибок, их анализ и исправление. Этот процесс происходит, когда программное обеспечение дает сбой из-за некоторых ошибок или программное обеспечение выполняет нежелательные действия. Отладка выглядит просто, но это сложная задача, поскольку необходимо исправлять все ошибки на каждом этапе отладки [2].
Процесс отладки состоит из нескольких этапов:
– определение ошибки;
– определение местонахождения ошибки;
– анализ ошибки;
– автоматизация тестирования;
– покрытие ущерба.
Выявление ошибок на ранней стадии может сэкономить много времени. Если допускается ошибка при выявлении ошибки, это приведет к большим потерям времени. Определение правильной ошибки — это импорт, чтобы сэкономить время и избежать ошибок на стороне пользователя.
После выявления ошибки необходимо определить точное местоположение в коде, где происходит ошибка. Определение точного местоположения, которое приводит к ошибке, может помочь решить проблему быстрее.
На следующем этапе отладки нужно использовать соответствующий подход для анализа ошибки. Это поможет понять проблему. Этот этап очень важен, так как решение одной ошибки может привести к другой ошибке.
После того, как выявленная ошибка была проанализирована, необходимо сосредоточиться на других ошибках программного обеспечения. Этот процесс включает в себя автоматизацию тестирования, когда требуется написать тестовые примеры через тестовую среду.
На последнем этапе необходимо выполнить модульное тестирование всего кода, в котором вносятся изменения. Если не все тестовые примеры проходят тестирование, следует решить тестовый пример, который не прошел тест.
Ниже приведен список преимуществ отладки:
– экономия времени;
– создание отчетов об ошибках;
– простая интерпретация.
Для выявления и исправления ошибок использовались различные инструменты, отладочные средства — это программное обеспечение, которое используется для тестирования и отладки других программ. На рынке доступно множество инструментов отладки с открытым исходным кодом.
Существуют различные стратегии отладки:
– стратегия обучения;
– опыт;
– форвардный анализ;
– обратный анализ.
Перед обнаружением ошибки в программном обеспечении или продукте очень важно изучить его очень тщательно. Потому что без каких-либо знаний сложно найти ошибки. В этом заключается стратегия обучения.
Предыдущий опыт может помочь найти похожие типы ошибок, а также решение для устранения ошибок.
Прямой анализ программ включает в себя отслеживание программ вперед с использованием операторов печати или точек останова в разных точках. Это больше касается места, где получены неправильные результаты.
Обратный анализ программы включает в себя отслеживание программы назад от места, где происходят ошибки, чтобы идентифицировать область неисправного кода.
Тестирование — немаловажная часть разработки ПО, так как от него зависит, будут ли возникать ошибки в работе программы. Поэтому необходимо рассмотреть доступные варианты средств тестирования и выбрать подходящие.
Типы тестирования, зависящие от объекта тестирования:
– модульное/unit-тестирование — проверка корректной работы отдельных модулей;
– интеграционное тестирование — проверка взаимодействия между несколькими модулями;
– системное — проверка работы программного обеспечения целиком;
– приемное — оценка соответствия требованиям, указанным в техническом задании.
Все эти типы необходимы и используются в тестировании ПМ ОО.
В зависимости от цели тестирование делится на два типа: функциональное и нефункциональное. Функциональное тестирование направлено на проверку реализуемости функциональных требований. Такие тесты могут проводиться на всех уровнях тестирования. Преимуществом этого типа тестирования является имитация фактического пользования программой.
Нефункциональное тестирование — это тип тестирования программного обеспечения для проверки нефункциональных аспектов программного приложения: производительность, удобство использования, надежность и т. д. Он предназначен для проверки готовности системы по нефункциональным параметрам, которые никогда не учитываются при функциональном тестировании. Нефункциональное тестирование включает в себя:
– тестирование производительности — работа ПОпод сильной нагрузкой;
– тестирование пользовательского интерфейса — удобство пользователя при взаимодействии с разными параметрами интерфейса;
– тестирование UX — правильность логики использования;
– тестирование защищенности — определение безопасности ПО;
– инсталляционное тестирование — поиск возникновения проблем при установке;
– тестирование совместимости — тестирование работы ПО в определенном окружении;
– тестирование надежности — работа программы при длительной нагрузке;
– тестирование локализации — оценка правильности версии.
В зависимости от доступа к коду программы при тестировании различают:
– тестирование белого ящика;
– тестирование черного ящика;
– тестирование серого ящика.
Главная цель тестирования белого ящика — проверка кода, тестирование внутренней структуры и дизайна. Эта стратегия предполагает поиск и улучшение таких случаев как:
– нерабочие и неоптимизированные участки кода;
– безопасность;
– ввод данных;
– условные процессы;
– неправильная работа объектов;
– некорректное отображение информации.
Основным подходом в этой стратегии является анализ кода программы.
Во время тестирования черного ящика тестировщик не знает, что за программу он тестирует. Как правило, этот метод используется для функционального тестирования по техническому заданию.
Стратегия серого ящика — это комбинация подходов белого и черного ящиков. Суть этого подхода — найти все проблемы функционирования и ошибки в коде.
Литература:
- Гленфорд Майерс. Тестирование программного обеспечения. Базовый курс / Майерс Гленфорд, Баджетт Том, Сандлер Кори. — 3-е изд., 2022. — 298 c. — Текст: непосредственный.
- Отладка (debugging): что это. — Текст: электронный // Skillfactory: [сайт]. — URL: https://blog.skillfactory.ru/glossary/otladka-debugging/ (дата обращения: 22.06.2022).
Основные термины (генерируются автоматически): программное обеспечение, ошибка, тестирование, тип тестирования, функциональное тестирование, черный ящик, белый ящик, нефункциональное тестирование, серый ящик, техническое задание.