КАТЕГОРИИ:
АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника
|
Необходимость тестирования.
- Отдельные программы следует тестировать сразу после их написания, чтобы убедиться, что каждая из них удовлетворяет своей спецификации.
Для разработки тестов на данном этапе применяется метод "ситуация-эффект". Под ситуацией понимают условие или совокупность условий, а под эффектом - действия, которые должна выполнить программа при выполнении этого условия. Задача: программа получает на входе 3 значения, воспринимает их как стороны треугольника и выводит его вид. Ситуация
| Эффект
| 3, 3, 3
| равносторонний треугольник
| 4, 4, 3
| равнобедренный
| 4, 3, 5
| прямоугольный
| -
- Тестирование модулей.
- Тестирование межмодульных связей.
- Системный тест - это тест законченного продукта.
- Пользователь выполняет свой собственный тест - тест приемлемости.
Причины необходимости тестирования:
- Сложность программ
- Возможны отклонения от правильного понимания спецификации программы.
- Пользователь может вносить изменения в постановку задачи.
Методы тестирования.
- Метод "черного ящика". Основан на принципе "вход-выход". Программе подаются некоторые данные на вход и проверяются результаты, в надежде найти несоответствия. При этом как именно работает программа считается несущественным. При таком подходе необходимо иметь спецификацию программы для того, чтобы было с чем сравнивать результаты.
- Метод "белого ящика". В этом методе тестовые данные получают путем анализа логики программы.
Категории тестовых данных. Существует методология относящаяся к методу ящика, которая называется эквивалентным разбиением. Согласно ей:
- Выделяют классы эквивалентности.
- Строят тесты.
Различают 2 типа классов эквивалентности:
- правильные (представляющие правильные входные данные)
- неправильные (ошибочные входные данные)
Необходимо сосредоточить внимание на неправильных и неожиданных условиях.
- если входное условие описывает область значений, то определяется один правильный класс и 2 неправильных.
- если входное условие описывает множество входных значений, каждый из которых программа трактует особо, то определяется правильный класс эквивалентности для каждого значения и один неправильный класс.
- если входное условие описывает ситуацию "должна быть", то определяется 1 правильный и 1 неправильный классы.
- если есть основание считать, что различные элементы класса эквивалентности трактуются программой неодинаково, то данный класс разбивается на меньшие классы.
Построение тестов включает в себя:
- Назначение каждому классу эквивалентности уникального №
- Проектирование новых тестов, каждый из которых покрывает как можно большее количество неоткрытых правильных классов.
- Запись тестов, каждый из которых покрывает 1 и только 1 из непокрытых неправильных классов.
Данные для тестирования.
- В качестве некоторых тестовых данных используют экстремальные значения. Например, если целая величина должна находиться в диапазоне от a до b, то следует проверить: a-1, a, a+1, b-1, b, b+1.
- Используют специальные значения. К ним относятся: константы, 0, 1, пустая строка, пустой файл, строка из одного символа и т.д.
- Для циклов, организованных с помощью оператора Do, выбрать значения, при которых цикл выполняется 0, 1 и максимальное число раз.
3.4. Пошаговое и монолитное тестирование.
Монолитное тестирование заключается в том, что сначала по отдельности тестируется каждый модуль, а затем все они комбинируются в рабочую программу и она тестируется. Пошаговый метод состоит в том, что каждый модуль для тестирования подключается к набору ранее отсортированных модулей. Рассмотрим пример:
При монолитном подходе сначала тестируются модули, каждый независимо от других, затем они собираются в программу. Для тестирования каждого модуля требуется специальный модуль-драйвер и 1 или несколько модулей-заглушек. Модуль-драйвер - модуль, который содержит фиксированные тестовые данные, вызывает тестируемый модуль и отображает выходные результаты. Заглушка - программа, имитирующая работу модуля нижнего уровня. Она может не содержать ничего, кроме сообщения о том, что произошел вход в этот модуль, и возврата управления. Выводы:
- Монолитное тестирование требует больших затрат труда.
- При пошаговом тестировании раньше обнаруживаются ошибки в межмодульных связях.
- При пошаговом тестировании ошибки в межмодульных связях обнаруживаются легче.
- Монолитный способ применяется чтобы ускорить сроки сдачи программы.
- При монолитном - меньше расход машинного времени.
Категории тестов системных испытаний.
- Тестирование удобства использования. Сравниваются цели с содержанием пользовательской документации.
- Тестирование на предельных объемах.
- Тестирование на предельных нагрузках. Означает поступление пикового объема данных в течение короткого интервала времени.
- Тестирование удобства эксплуатации:
- Справка
- Значимость входных сообщений программы
- Понятна ли диагностика ошибок
- Единообразие стиля пользовательских интерфейсов
- Содержит ли система опции, число которых чрезмерно или использование которых маловероятно
- Выдает ли система какие-либо подтверждения на все входные сообщения
- Тестирование защиты (от несанкционированного доступа).
- Тестирование производительности.
- Тестирование требований к памяти.
- Тестирование конфигураций оборудования.
- Тестирование удобства установки (настройки, инсталляции).
- Тестирование надежности.
- Тестирование восстановления.
- Тестирование удобства обслуживания.
- Тестирование документации.
- Тестирование процедур.
- Выполнение проверки системы непрограммистами.
Принципы тестирования.
- Тестирование - это процесс выполнения программ с целью обнаружения ошибок.
- Хорошим считается тест, который имеет высокую вероятность обнаружения еще не выявленной ошибки.
- Удачным считается тест, который обнаруживает еще не выявленную ошибку.
- Описание предполагаемых значений выходных данных или результатов должно быть необходимой частью тестового набора.
- Следует избегать тестирования программы ее автором.
- Тесты для неправильных и непредусмотренных входных данных следует разрабатывать также тщательно как для правильных и предусмотренных.
- Необходимо проверять не только, делает ли программа то, для чего она предназначена, но и не делает ли она того, чего не должна делать.
- Тестирование - это процесс творческий.
Методы ручного тестирования:
- Инспекции исходного текста.
- Сквозные просмотры.
- Проверка за столом.
Автоматические средства тестирования:
- Профилировщик.
- Отладочный компилятор (слежение за ходом выполнения программы, контроль за определенными переменными, возможность изменения значения переменных)
- Компаратор.
- Тестовый драйвер.
- Пакет подпрограмм, вставляемых в рабочую программу.
Компаратор - это программа, считывающая 2 файла, сравнивающая их и печатающая различающиеся элементы. Профилировщики дают информацию о том, какие операторы и сколько раз выполнялись. Они позволяют накапливать статистические данные о работе тестируемой программы. Тестовый драйвер - это программа, пересылающая нужные данные на вход тестируемого модуля и накапливающая выходные данные. Самопроверкой называется проверка результатов тестирования самой тестируемой программой.
Средства защиты программ. Средства защиты программ можно рассматривать в двух направлениях:
- Защитное программирование.
- Меры предупреждения компьютерных преступлений.
Меры предупреждения компьютерных преступлений можно разделить на 3 группы:
- Технические:
- защита от несанкционированного доступа к системе
- резервирование особо важных компьютерных подсистем
- Организационные:
- охрана вычислительного центра
- тщательный подбор персонала
- выбор места расположения центра
- Правовые:
- разработка норм, устанавливающих ответственность за компьютерные преступления
- защита авторских прав программиста
- совершенствование уголовного и гражданского законодательства
Информационная безопасность должна обеспечивать:
- Конфиденциальность информации.
- Целостность данных.
- Доступность для всех авторизованных пользователей.
Под понятием целостность данных подразумевается защита от сбоев, ведущих к потере информации, защита от неавторизованного создания или уничтожения информации. Компьютерные преступления можно условно разделить на группы:
- Преступления, использующие компьютеры как необходимые технические средства.
- Преступления, связанные с вмешательством в работу компьютера:
- несанкционированный доступ
- ввод в ПО логических бомб
- разработка и распространение компьютерных вирусов
- хищение компьютерной информации
- подделка компьютерной информации
Людей, осуществляющих несанкционированный доступ в чужие информационные сети для забавы называют электронными корсарами или компьютерными пиратами. Логическая бомба - это программа, которая срабатывает при выполнении определенных условий и частично или полностью выводит из строя компьютерную систему. Временная бомба - разновидность логической бомбы, которая срабатывает по достижении определенного момента времени. Способ "троянского коня" состоит в тайном введении в чужую программу таких команд, которые позволяют осуществлять новые, не планировавшиеся владельцем программы функции. Компьютерные вирусы можно разделить на:
- Вульгарный. Вирус, написанный единым блоком.
- Раздробленный. Вирус, программа которого разделена на части, на первый взгляд не имеющие между собой связи. Эти части содержат инструкции, которые указывают, как собрать их воедино, чтобы воссоздать и размножить вирус.
Антивирусные средства делятся на фильтрующие и противовирусные. Для защиты ПО наиболее часто используются: пароли, назначение прав доступа (людям и программам), методы шифрования.
3.5. Предпродажная подготовка. Лицензии и контракты.
Лицензии и контракты - это лучшее средство установления прав собственности на программное изделие. Они используются для указания гарантийных обязательств, а также помощи, которая будет оказана заказчику. Например, ввод в действие, освоение и обучение, модификация, консультации по использованию. При составлении лицензий и контрактов необходимо учесть:
- Объем работы.
- Цена.
- Поставка (точная дата и место передачи).
- Право собственности (кто является владельцем каждого компонента).
- Гарантия (срок действия гарантии).
- Ответственность.
- Обязательства.
- Лицензия.
- Окончание работ.
При составлении лицензии и контракта и даже при их изменении следует получить квалифицированную консультацию юриста по вопросу о праве собственности.
3.6. Сопровождение и эксплуатация. Виды обслуживания.
Группа сопровождения выполняет обязанности, связанные с исправлением дефектов изготовленных программных изделий (корректирующее сопровождение) или незначительными изменениями (адаптивное сопровождение). Изменения, проводимые на этапе сопровождения, бывают корректирующими и расширяющими. Корректирующие изменения вызываются переменами, происходящими в окружающей среде. Расширяющие изменения не являются обязательными и направлены лишь на улучшение характеристик ПО. Сопровождение как вид деятельности заключается в обработке запросов на исправление, проверку и расширение. На численность персонала группы сопровождения влияют характер и сроки взятых гарантийных обязательств. Уровень 1. Периодический выпуск новых редакций (только корректирующие изменения) и новых версий, содержащих дополнительно расширяющие изменения. Уровень 2. Периодический выпуск только новых редакций. Уровень 3. Выпуск новых версий или редакций не производится. На заявки отправляются ответы, которые могут содержать или не содержать решения поставленных проблем. Чем больше изделий приходится сопровождать на уровне 1 или 2 гарантийного обслуживания, тем многочисленнее должна быть группа соповождения.
|