Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
1-100(Петренко Модуль).doc
Скачиваний:
4
Добавлен:
01.04.2025
Размер:
3 Мб
Скачать
☆

82. Принципы тестирования пс.

Хорош тот тест, для которого высока вероятность обнару­жить ошибку. Эта аксиома является фундаментальным принци­пом тестирования. Поскольку невозможно показать, что програм­ма не имеет ошибок и, значит, все такие попытки бесплодны, процесс тестирования должен представлять собой попытки об­наружить в программе прежде не найденные ошибки.

Одна из самых сложных проблем при тестировании — решить, когда нужно его закончить. Как уже говорилось, исчерпывающее тестирование (т. е. испытание всех входных значений) невозмож­но.

Не нужно тестировать свою собственную программу. Ни один программист не должен пытаться тестировать свою собственную программу.

Тестирование всегда должна выполнять внешняя группа, ко­торая в некотором смысле стоит особняком от программиста и проекта.

Необходимая часть всякого теста — описание ожидаемых выходных данных или результатов. Одна из самых распростра­ненных ошибок при тестировании состоит в том, что результаты каждого теста не прогнозируются до его выполнения.

Избегайте невоспроизводимых тестов, не тестируйте «слету». Использование диалоговых систем иногда мешает хорошему тес­тированию.

Готовьте тесты как для правильных, так и для неправильных входных данных

Детально изучите результаты каждого теста. По всей веро­ятности, это наиболее очевидный принцип, но и ему часто не уде­ляется должного внимания.

По мере того как число ошибок, обнаруженных в некотором компоненте программного обеспечения, увеличивается, растетотносительная вероятность существования в нем необнаружен­ных ошибок. 

Поручайте тестирование самым способным программистам. 

Считайте тестируемость ключевой задачей вашей разработки.

Проект системы должен быть таким, чтобы каждый модуль подключался к системе только один раз

Тестирование, как почти всякая другая деятельность, должно начинаться с постановки целей. 

Приведем еще раз три наиболее важных принципа тестирования.

1. Тестирование — это процесс выполнения программ с целью обнаружения ошибок.

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

3. Удачным считается тест, который обнаруживает еще не выявленную ошибку.

83. Тестирование модулей пс.

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

Цель тестирования модулей — сравнение функций, реализуе­мых модулем, со спецификациями его функций или интерфейса.

Тестирование модулей в основном ориентировано на прин­цип «белого ящика». Это объясняется прежде всего тем, что прин­цип «белого ящика» труднее реализовать при переходе в после­дующем к тестированию более крупных единиц, например про­грамм в целом. Кроме того, последующие этапы тестирования ориентированы на обнаружение ошибок различного типа, т. е. ошибок, не обязательно связанных с логикой программы, а воз­никающих, например, из-за несоответствия программы требова­ниям пользователя.

Имеется большой выбор возможных подходов, которые мо­гут быть использованы для слияния модулей в более крупные еди­ницы. В большинстве своем они могут рассматриваться как ва­рианты шести основных подходов, описанных ниже