- •3. Виды программ, программной и эксплуатационной документации по еспд.
- •Общие сведения о еспд
- •4. Перечень, содержание и приемы выполнения работ на этапе разработки программного изделия.
- •Использование схем
- •Основные символы
- •Специфические символы
- •Символы процесса
- •Специальные символы
- •Краткие теоретические сведения
- •Изолированное тестирование
- •Промежуточное тестирование
- •Комплексное тестирование
- •Стратегии тестирования
- •III. Разработка программного продукта и сопровождающей его документации
- •Постановка задачи
- •Метод тестирования программы Эквивалентное разбиение
- •Спецификация программы. Спецификация переменных.
- •Алгоритм программы и его описание.
- •Описание программы.
- •Тестирование программы.
- •Контрольный пример.
- •Инструкция пользователю.
- •Заключение
- •Структура предприятия муз омсч «Севрыба».
- •Приложение 1
- •Лист 002
Краткие теоретические сведения
Тестирование процесс выполнения программы с целью обнаружения допущенных в ней ошибок.
Тестирование не является иллюстрацией работоспособности программы. Такой подход в значительной мере обеспечивает успех тестирования, обусловленный психологическим настроем обнаружить ошибки, а не продемонстрировать их отсутствие.
Тестирование должно быть организовано по следующим принципам (согласно Майерсу):
каждый тест должен включать описание ожидаемых результатов работы программы, чтобы можно было быстро выяснить наличие или отсутствие ошибок в ней;
желательно, чтобы кроме автора тестирование проводили и другие люди. Т.к. обнаружение недостатков в своей деятельности противоречит человеческой психологии, восприятие человека "со стороны" ближе к восприятию пользователя, чем психология автора, однако отладка программы эффективнее всего выполняется именно автором программы;
по тем же соображениям организация - разработчик программного обеспечения - не должна "единолично " его тестировать (должны существовать организации, специализирующиеся на тестировании программных средств);
результаты каждого теста должны быть документированы и детально изучены, чтобы не пропустить малозаметную на поверхностный взгляд ошибку в программе;
тесты для неправильных (непредусмотренных) данных должны подбираться так же тщательно, как и для правильных (предусмотренных) входных данных;
при анализе результатов каждого теста необходимо проверять, не делает ли программа того, что она не должна делать;
следует сохранять использованные тесты (для повышения эффективности повторного тестирования программы после ее модификации или установки у заказчика);
тестирования не должно планироваться исходя из предположения, что в программе не будут обнаружены ошибки (в частности, следует выделять для тестирования достаточные временные и материальные ресурсы);
следует учитывать так называемый "принцип скопления ошибок": вероятность наличия не обнаруженных ошибок в некоторой части программы прямо пропорциональна числу ошибок, уже обнаруженных в этой части;
следует всегда помнить, что тестирование - творческий процесс, а не относиться к нему как к рутинному занятию.
По степени охвата проекта различают:
изолированное тестирование
промежуточное тестирование
комплексное тестирование
Изолированное тестирование
Изолированное тестирование тестирование отдельных частей проекта. Применяется, если компоненты проекта образуют дерево и между ними нет циклических зависимостей.
Тестирование можно разбить по слоям, сначала оттестировав самый низкий слой компонент, зависящий только от внешних библиотек и не зависящий от каких-либо других компонент программы. Потом на слой выше - зависящих от внешних библиотек и от компонент самого низкого слоя. Так можно вести тестирование до тех пор, пока компонента имеет достаточно узкий диапазон применения, и заранее легко можно рассчитать, какой результат должен быть после работы этой компоненты. Таким тестированием удается реально выловить большинство мелких ошибок, серьезно нарушающих работу программы, также можно определить эффективность интерфейса и алгоритмов, реализованных в программе. Для выполнения тестирования можно использовать специальные программы тестеры.
Второй вариант: вместо неготовых компонент можно использовать так называемые программы-заглушки и программы-драйверы. Заглушка не несет серьезной функциональности, а как правила просто выдает сообщение на экран. Программа драйвер передает тестируемому компоненту необходимые тестовые данные и отображает результаты.
Другая проблема, которую необходимо решать при нисходящем тестировании, - форма представления тестов в программе, так как, как правило, главный модуль получает входные данные не непосредственно, а через специальные модули ввода, которые при тестировании в начале заменяются заглушками. Для передачи в главный модуль разных тестов нужно или иметь несколько разных заглушек, или записать эти тесты в файл во внешней памяти и с помощью заглушки считывать их.
Модули, содержащие операции ввода-вывода, а так же критические модули (т.е. наиболее важные для программы в целом) должны тестироваться как можно раньше.