Автор работы: Пользователь скрыл имя, 24 Декабря 2012 в 14:24, курсовая работа
Надежность невозможно внести в программу в результате тестирования, она определяется правильностью этапов проектирования. Наилучшее решение проблемы надежности — с самого начала не допускать ошибок в программе. Однако вероятность того, что удастся безупречно спроектировать большую программу, бесконечно мала. Роль тестирования состоит как раз в том, чтобы определить местонахождение немногочисленных ошибок, оставшихся в хорошо спроектированной программе. Попытки с помощью тестирования достичь надежности плохо спроектированной программы, совершенно бесплодны.
Введение………………………………………………………………………..........
Основные понятия тестирования и отладки программного обеспечения…...
Тестирование и отладка программного обеспечения…………………….
Стратегия тестирования программного обеспечения ……………………
Цели испытания программного обеспечения……………………………..
Уровни тестирования программного обеспечения……………………….
Методы тестирования программного обеспечения……………………………
Восходящее и нисходящее тестирование…………………………………
Метод сандвича……………………………………………………………..
Метод белого и черного ящика…………………………………………….
Регрессионное тестирование……………………………………………….
Верификационные тесты…………………...…………………………
Тесты регрессии ……………………….………………………………
Тесты регрессии на "закрытых" багах………………………………..
Каскадное тестирование…………………………………………………….
Заключение…………………………………………………………………………...
Глоссарий……………………………………………………………………………
Список использованных источников………………………………………………
Приложение…………………………………………………………………
Версия шаблона |
1.1 |
Филиал |
Волжский |
Вид работы |
Курсовая работа |
Название дисциплины |
Информационные технологии |
Тема |
Тестирование и отладка программного обеспечения |
Фамилия студента |
Алейников |
Имя студента |
Виктор |
Отчество студента |
Константинович |
№ контракта |
14000060602010 |
Файл титульного листа |
|
Содержание
Введение…………………………………………………………
Заключение…………………………………………………… Глоссарий……………………………………………………… Список использованных источников……………………………………………… Приложение…………………………………………………… |
3 5 5 5 7 8 10 10 13 13 15 15 16 17 17 20 21 23 24 |
Введение
Многие организации, занимающиеся созданием программного обеспечения, до 50% средств, выделенных на разработку программ, тратят на тестирование, что составляет миллиарды долларов по всему миру в целом. Эти цифры могут вызвать целую дискуссию, но, оставив вопрос точности оценки в стороне и основываясь на том, что тестирование является важным этапом в создании программного продукта. И всё же, несмотря на громадные капиталовложения, знаний о сути тестирования явно не хватает и большинство программных продуктов неприемлемо ненадежно даже после «основательного тестирования». На самом деле тестирование программ освещено, пожалуй, меньше, чем любой другой аспект разработки программного обеспечения. К тому же тестирование является до сих пор «немодным» предметом, если иметь в виду спорность публикаций по этому вопросу.
«Тестирование — процесс, подтверждающий правильность программы и демонстрирующий, что ошибок в программе нет».
Основной недостаток подобного определения заключается в том, что оно совершенно неправильно; фактически это почти определение антонима слова «тестирование». Читатель с некоторым опытом программирования уже, вероятно, понимает, что невозможно продемонстрировать отсутствие ошибок в программе. Поэтому определение описывает невыполнимую задачу, а так как тестирование зачастую все же выполняется с успехом, по крайней мере, с некоторым успехом, то такое определение логически некорректно. [3, c. 2-5]
Надежность невозможно внести в программу в результате тестирования, она определяется правильностью этапов проектирования. Наилучшее решение проблемы надежности — с самого начала не допускать ошибок в программе. Однако вероятность того, что удастся безупречно спроектировать большую программу, бесконечно мала. Роль тестирования состоит как раз в том, чтобы определить местонахождение немногочисленных ошибок, оставшихся в хорошо спроектированной программе. Попытки с помощью тестирования достичь надежности плохо спроектированной программы, совершенно бесплодны.
Тестирование оказывается довольно необычным процессом (вот почему оно и считается трудным), так как этот процесс разрушительный. Ведь цель проверяющего (тестовика) — заставить программу сбиться. Он доволен, если это ему удается; если же программа на его тесте не сбивается, он не удовлетворен. [5, c. 2-4]
«Тестирование - это любая деятельность, направленная на обнаружение ошибок в программном продукте».
Тестирование проводится для того, чтобы найти ошибки в программе и тем самым повысить ее надежность, а следовательно, ценность.
Невозможно гарантировать отсутствие ошибок в нетривиальной программе; в лучшем случае можно попытаться показать наличие ошибок. Если программа правильно ведет себя для солидного набора тестов, нет основания, утверждать, что в ней нет ошибок; со всей определенностью можно лишь утверждать, что не известно, когда эта программа не работает. Конечно, если есть причины считать данный набор тестов способным с большой вероятностью обнаружить все возможные ошибки, то можно говорить о некотором уровне уверенности в правильности программы, устанавливаемом этими тестами. [10]
Стратегия тестирования, или методы тестирования — это систематические методы, используемые для отбора и/или создания тестов, которые должны быть включены в тестовый комплект. Это могут быть случайные вводы, тест, направленный на проверку подозрений; тест, направленный на проверку соответствия требованиям; тест, направленный на проверку искаженности; тесты, который мы выполняли последний раз, тесты, которые отличаются от тестов, которые мы выполняли последний раз. Тестировщик выбирает стратегию, по которой он можем определить, удовлетворяет данный тест стратегии или не удовлетворяет. Сама стратегия должна быть программируемой.
Стратегия является эффективной, если тесты, включенные в нее, с большой вероятностью обнаружат ошибки тестируемого объекта. Эффективность стратегии зависит от комбинации природы тестов и природы ошибок, на поиск которых эти тесты направлены. Существуют эффективные и неэффективные стратегии. Более того, так как объект изменяется с целью исправления ошибок и увеличения его возможностей, типы ошибок, находимые у объекта, меняются со временем, и, следовательно, меняется эффективность стратегии. В то время как теоретически возможно, что стратегия по отношению к специфическим объектам совершенствуется во времени, на самом деле эффективность большинства стратегий со временем убывает.
Стратегия поведенческого теста основана на технических требованиях. Например: тест всех характеристик, упомянутых в спецификации, выполнение всех грязных тестов, вытекающих из требований. Тестирование, выполняемое с помощью стратегии поведенческого теста, называется поведенческим тестированием. Поведенческое тестирование называется также тестированием черного ящика. Для поведенческого тестирования также используется термин функциональное тестирование. При поведенческом тестировании (в принципе, но не на практике) не обязательно знать, как объект сконструирован.
Стратегия структурного теста определяется структурой тестируемого объекта Например: выполнение каждого оператора по меньшей мере один раз, выполнение каждой ветви по меньшей мере один раз, тестирование использования всех объектов данных, выполнение каждой команды объектной программы, полученной при компиляции. Тестирование, выполненное с помощью стратегии структурного теста, называется также тестированием прозрачного ящика или тестированием белого ящика. Стратегия структурного теста требует полного доступа к структуре объекта — то есть к исходному коду.
Стратегия гибридного теста является комбинацией поведенческой и структурной стратегий. Поведенческая, структурная и гибридная стратегии не противоречат друг другу, и ни про одну из них нельзя сказать, что она лучше других. Модули и низкоуровневые компоненты часто тестируются с помощью структурной стратегии. Большие компоненты и системы в основном тестируются с помощью поведенческой стратегии. Гибридная стратегия полезна на всех уровнях. Не существует лучшей стратегии, так как полезность стратегии зависит от природы тестируемого объекта, природы ошибок объекта и уровня ваших знаний. [7, c. 15-23]
Для проведения тестирования программного обеспечения есть несколько весомых причин.
Информация, необходимая для выполнения пункта 2, определяется степенью, до которой объект действует правильно (то есть количеством подтестов, пройденных и не пройденных), и некоторыми рамками, в пределах которых объект не может быть искажен. То есть пределом, до которого объект не взломан, и пределом, до которого он работает. Тот предел, до которого объект считается свободным от ошибок, является также границей, до которой он соответствует требованиям и не искажен. Таким образом, есть три основных задачи: хорошее проектирование, искаженность, проверка соответствия.
Все, что пишут программисты, содержит ошибки. Программист не может думать обо всем — в особенности обо всех возможных взаимодействиях между различными характеристиками и между различными частями программы. Попытка взломать программу - такой путь обеспечит нас уверенностью в том, что продукт готов к использованию.
Другая задача тестирования — это накопление информации для менеджмента. При наличии необходимой информации и достаточного количества тестов можно с уверенностью утверждать, что программа готова к использованию. В конечном счете - это работа тестировщика, — помощь в создании полезной программы.
Наивысшая цель тестирования — обеспечение качества: накопление информации, которая, вернувшись к программисту, поможет избежать ему прошлых ошибок и улучшить качество программного обеспечения в будущем. [4, c. 8-13]
Информация о работе Тестирование и отладка программного обеспечения