Файл: Руководство пользователя Контрольный пример.rtf

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 04.02.2024

Просмотров: 143

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
=f (X, Z). Если X, Y, Z - real, то полное число тестов (232) 2 = 264×1031 Если на каждый тест тратить 1 мс, то 264 мс = 800 млн. лет. Следовательно:

· в любой нетривиальной программе на любой стадии ее готовности содержатся необнаруженные ошибки;

· тестирование - технико-экономическая проблема, основанная на компромиссе время - полнота. Поэтому нужно стремиться к возможно меньшему количеству хороших тестов с желательными свойствами.

Детективностъ: тест должен с большой вероятностью обнаруживать возможные ошибки

Покрывающая способность: один тест должен выявлять как можно больше ошибок.

Воспроизводимость: ошибка должна выявляться независимо от изменяющихся условий (например, от временных соотношений) - это труднодостижимо для времязависимых программ, результаты которых часто невоспроизводимы.

Только на основании выбранного критерия можно определить тот момент времени, когда конечное множество тестов окажется достаточным для проверки программы с некоторой полнотой (степень полноты, впрочем, определяется экспериментально). Используется два вида критериев (табл.2):

· функциональные тесты составляются исходя из спецификации программы;

· структурные тесты составляются исходя из текста программы.
Виды критериев и их функциональность



На рис.1, а видно отличие тестирования команд (достаточен один тест) от С1 (необходимы два теста как минимум). Рисунок 1, б иллюстрирует различие С1 (достаточно двух тестов, покрывающих пути 1, 4 или 2,3) от С2 (необходимо четыре теста для всех четырех путей). С2 недостижим в реальных программах из-за их цикличности, поэтому ограничиваются тремя путями для каждого цикла: 0, 1 и N повторений цикла.

Остаются проблемы назначения классов входных/выходных данных для функционального тестирования и проектирования тестов для структурного тестирования. Классы, как правило, назначаются исходя из семантики решаемой задачи. [2]


Траектории вычислений при структурном тестировании



Создание справочной системы



Если разработчик предполагает, что программой будут пользоваться другие, то он обязательно должен создать справочную систему и обеспечить пользователю удобный доступ к справочной информации во время работы с программой. В современных программах справочная информация представляется в форме СНМ - или HLP-файлов. Помимо справочной информации, доступ к которой осуществляется из программы во время ее работы, в состав справочной системы включают инструкцию по установке (инсталляции) программы, которую оформляют в виде Readme-файла в одном из форматов: TXT, DOC или НТМ.

Создание установочного диска



Установочный диск или CD-ROM создаются для того, чтобы пользователь мог самостоятельно, без помощи разработчика, установить программу на свой компьютер. Обычно помимо самой программы на установочном диске находятся файлы справочной информации и инструкция по установке программы (Readme-файл). Следует понимать, что современные программы, в том числе разработанные в Borland C++, в большинстве случаев (за исключением самых простых программ) не могут быть установлены на компьютер пользователя путем простого копирования, так как для своей работы требуют специальных библиотек и компонентов, которых может и не быть у конкретного пользователя. Поэтому установку программы на компьютер пользователя должна выполнять специальная программа, которая помещается на установочный диск. Как правило, установочная программа создает отдельную папку для устанавливаемой программы, копирует в нее необходимые файлы и, если надо, выполняет настройку операционной системы путем внесения дополнений и изменений в реестр. [2]





2. Математическая часть



Традиционную теорию (обычных) множеств можно рассматривать как частный случай теории нечетких подмножеств (почему нужно говорить "нечеткое подмножество" а не "нечеткое множество", понятно хотя бы из того, что область определения нечеткого подмножества - всегда обычное, а не нечеткое множество). Важно, что здесь мы имеем новое и очень полезное для нас расширение традиционного понятия. И тем не менее, все то, что можно описать или объяснить с помощью теории нечетких подмножеств, рассматривают и без этой теории, используя другие понятия. Всегда можно зеленить одно математическое понятие другим. Но будет ли это новое понятие настолько же понятным, как и старое, и будет ли оно порождать свойства, которые с его помощью было бы легче обнаружить, доказать и использовать


Пусть Е есть множество, А - подмножество Е: А Ì Е.

Тот факт, что элемент х множества Е есть элемент подмножества А, или, как еще говорят, принадлежит А, обычно обозначают с помощью символа ÎÎ А

Для выражения этой принадлежности можно использовать и другое понятие - характеристическую функцию mА (х), значения которой указывают, является ли (да или нет) х элементом А:

Напомним хорошо известные свойства булевой бинарной алгебры. Пусть А - дополнение А относительно Е, т.е. такое подмножество Е, для которого АÇА=Æ, АÈА=Е. Если хÎА, то хÏА, и можно записать mА (х) = 1, mА (х) = 0.
Для двух данных подмножеств А и В можно рассмотреть пересечение А Ç В.

Имеем





Это позволяет нам записать
mАÇВ (х) = mА (х) * mВ (х)
где операция * определена таблицей на рис.2 и называется булевым произведением.


Таким же образом для двух подмножеств А и В определяют объединение или соединение

обладающее свойством
mАÈВ (х) = mА (х) mВ (х)
где операция (булева сумма) определена таблицей на рис.3.

Дадим строгое определение понятия, нечеткого подмножества, введенного Заде.

Пусть Е есть множество, счетное или нет, их - элемент Е. Тогда нечетким подмножеством А множества Е называется множество упорядоченных пар
{ (x|mA (x)) }, " x Î E
где mA (x) - степень принадлежности x в А. Таким образом, если mA (x) принимает свои значения во множестве М значений функции принадлежности или, короче, во множестве принадлежностей, то можно сказать, что х принимает значение в М посредством функции