Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Тестирование программных продуктов

Двоичные потоки

Двоичные файлы, хранят данные в том же виде, в котором они представлены в оперативной памяти, т.е. во внутренней форме представления. Выходной поток BinaryWriter. т.е. имеется возможность выполнять запись в произвольную позицию, двоичного файла. Двоичный файл открывается на основе базового потока в качестве которого чаще всего FileStream. Наиболее важные элементы класса BinaryWriter.

BaseStream – базовый поток с которым работает объект BinaryWriter.

Close – закрыть

Flush – отчистить буфер

Seek – установить позицию, в текущем потоке

Write – записать значение в текущий поток

Наиболее важные элементы класса BinaryReader

BaseStream - базовый поток с которым работает объект BinaryReader.

Close – закрыть поток

PeekChar – возвратить следующий символ без перемещения внутреннего указателя в потоке

Read – считать поток байтов или символов и сохранить в массиве передаваемом как входной параметр

ReadXXXX – считать из потока данные определенного типа

ReadBoolean, ReadInt32.

При создании базового потока в него передается объект базового потока. В указателе текущей позиции в файле учитывается длина значения определенного типа.

 

Тестирование это процесс выполнения программы, целью которого является выявление ошибок. Никакое тестирование не может доказать отсутствие ошибок в сложном программном продукте. Соблюдение основных правил тестирования, и научно обоснованный подбор тестов, может уменьшить их количество. Процесс разработки программного обеспечения, предполагает 3 стадии тестирования:

1) автономное тестирование компонентов программного обеспечения

2) комплексное тестирование разрабатываемого программного обеспечения

3) системное или оценочное тестирование на соответствие основным критериям качества

Для повышения качества тестирования, рекомендуется соблюдать следующие принципы:

1) Следует избегать тестирования программ автором

2) Предполагаемые результаты должны быть известны до тестирования

3) Необходимо досконально изучать результата каждого теста

4) Необходимо проверять действие программы на неверных данных

5) Необходимо проверять программу на неожиданные побочные эффекты на неверных данных

Формирование тестовых наборов

Существует два принципиально различных подхода к формированию тестовых наборов:

Структурный и функциональный

Наборы тестов, полученные в соответствии с методами этих подходов обычно объединяют, обеспечивая всестороннее, тестирование программного обеспечения.

Структурное тестирование

Структурное тестирование называется так же тестированием по маршруту, так как тестовые наборы в этом случае, формируют путем анализов маршрутов предусмотренных алгоритмом. Под маршрутами понимают последовательность операторов программы, которые выполняются при конкретном варианте исходных данных. При структурном тестировании нужно предусмотреть, максимально полное тестирование всех маршрутов программы. Считается, что программа проверена полностью, если с помощью тестов удается осуществлять выполнение программы по всем возможным маршрутам передач управления. Структурный подход к тестированию имеет ряд недостатков. Тестовые наборы, построенные в соответствии со структурным подходом, не обнаруживают пропущенных маршрутов, не обнаруживают ошибок, зависящих от обрабатываемых данных, и не дают гарантий, что программа правильна. Если вместо сортировки по убыванию реализована сортировка по возрастанию.

Формирование тестовых наборов может осуществляться по критерию, покрытие операторов, покрытие решений, покрытие условий, комбинаторное покрытие условий.

Функциональное тестирование

Функциональное тестирование это тестирование по управлению по данным или по принципу «черного ящика». Программа рассматривается как черный ящик, и целью тестирования является выяснение обстоятельств, в которых поведение программы не соответствуют спецификации. Функциональное тестирование не дает гарантий отсутствия отклонений от спецификаций. При функциональном тестировании различают, следующие методы формирования тестовых наборов:

1) Эквивалентное разбиение

2) Анализ граничных значений

3) Анализ причинно-следственных связей

4) Предположение об ошибке

Эквивалентное разбиение – область всех возможных наборов входных данных программы, по каждому параметру, разбивают, на конечное число групп, классов эквивалентности. Наборы данных такого класса объединяют по признаку обнаружения одних и тех же ошибок. Если набор, какого либо класса, обнаруживает некоторую ошибку, то предполагается что все другие тесты этого класса эквивалентности тоже обнаружат эту ошибку и наоборот. Разработка тестов методом эквивалентного разбиения осуществляют в 2 этапа:

На первом выделяют классы эквивалентности

На втором формируют тесты

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

Если некоторый параметр X принимает значения, в промежутке [1, 999] то выделяется один правильный класс, 1<=X<=999, и два не правильных X>999 и X<1

Если входное условие определяет диапазон значений порядкового типа «В автомобиле могут ехать от 1 до 6 человек», то выделяется правильный класс и два не правильных

Если входное условие описывает множество входных значений и каждое значение программист трактует особо, например: Типы графических файлов: BMP, jpeg, PNG… То определяют правильный класс для каждого значения и один не правильный класс (txt).

Если входное условие описывает ситуацию должно быть например, первым символом идентификатора должна быть буква, то определяется один правильный класс эквивалентности 1-й символ буква, и один не правильный 1-й символ не буква.

Если есть основание считать, что различные элементы класса эквивалентности трактуются программой неодинаково, то данный класс разбивается на меньшие классы эквивалентности.

<== предыдущая лекция | следующая лекция ==>
Стадия разработки программ и программной документации | Предположение об ошибке
Поделиться с друзьями:


Дата добавления: 2014-01-07; Просмотров: 525; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.016 сек.