Другое: Тестирование программного обеспечения
Описание
Характеристики учебной работы
Список файлов
- ReadMe.txt 276 b
- Тестирование программного обеспечения
- 01.jpg 1,71 Mb
- 02.jpg 1,48 Mb
- 03.jpg 1,97 Mb
Файлы скачаны со студенческого портала для студенты "Baumanki.net"
Файлы представлены исключительно для ознакомления
Не забывайте, что Вы можете зарабатывать, выкладывая свои файлы на сайт
Оценивайте свой ВУЗ в различных голосованиях, в том числе в досье на преподавателей!
Распознанный текст из изображения:
Тестирование программного обеспечения.
Тестирование проводится с целью обеспечить качество разрабатываемого
программного продукта. Стандарт 1Я0-8402, посвященный описанию систем
обеспечения качества программного обеспечения, под качеством понимает
"совокупность характеристик программного продукта, относящихся к его
способности удовлетворять установленные и предполагаемые потребности
клиента". Основным параметром качества программы является надежность.
Надежность определяется как вероятность его работы без отказов в течении
определенного периода времени, рассчитанная с учетом стоимости для
пользователя каждого отказа. Отказ программного обеспечения - это
проявление ошибки в нем. Отсюда тестирование ПΠ— это процесс
выполнения программы с целью обнаружения в ней ошибок. "Удачным"
тестом является такой, на котором выполнение программы завершилось с
ошибкой. Напротив, "неудачным" называется тест, не позволивший выявить
ошибку в программе. Основные принципы организации тестирования:
1. Необходимой частью каждого теста должно являться описание
ожидаемых результатов работы программы;
2. Программе не должна тестироваться ее автором;
3. Организация — разработчик программного обеспечения не должна
"единолично " его тестировать;
4. Необходимо подбирать тесты не только для правильных
(предусмотренных) входных данных, но и для неправильных
(непредусмотренных);
5. При анализе результатов каждого теста необходимо проверять, не
делает ли программа того, что она не должна делать;
б, "Принцип скопления ошибок" — вероятность наличия не обнаруженных
ошибок в некоторой части программы прямо пропорциональна числу
ошибок, уже обнаруженных в этой части;
Процесс тестирования состоит из трех этапов:
1. Проектирование тестов.
2. Исполнение тестов.
3. Анализ полученных результатов.
На первом этапе решается вопрос о выборе некоторого подмножества
Распознанный текст из изображения:
множества тестов, которое сможет найти наибольшее количество ошибок за
наименьший промежуток времени. На этапе исполнения тестов проводят,
запуск тестов и отлавливают ошибки в тестируемом программном продукте.
Существует две методологии тестирования — "черного" и "белого" ящика.
— "Черный ящик" — тестирование функционального поведения программы с
точки зрения внешнего мира (текст программы не используется).
— "Белый ящик" — тестирование кода на предмет логики работы программы
и корректности ее работы с точки зрения компилятора того языка на
котором она писалась.
Полученные результаты тестирования позволяют сделать вывод о
надежности программного продукта. Они служат основой его сертификации
и гарантией качества.
Чтобы облегчить и ускорить процесс тестирования широко применяют
автоматизацию одного или ряда сложных этапов тестирования. На рынке
программного обеспечения (ПО) существует множество фирм,
предлашгающих свои автоматизированные средства тестирования. Ниже
приведен список наиболее известных среди них:
— Сотри и аге Согрогайоп (Ве~Раг1пег 5)
— Кайопа1 Бо~Ьчаге1гот 1ВМ
— 6сог (ореп иоигсе ргодгат~ог ТгиеСоюегаде)
— Различные редакторы и средства облегчающие редактирование
текста(Ейг1Р1ии 2, И'гпЕЙН и т.д.)
Автоматизированные средства разрабатываются в основном для следующих
этапов процесса тестирования:
- Тестирование функциональных требований
— Тестирование пользовательского интерфейса
— Тестирование отдельных модулей
- Комплексное тестирование
— Анализ сложности программных модулей
— Тестирование покрытия программного кода
Распознанный текст из изображения:
— Тестирование скорости загрузки системы
— Тестирование граничных условий
— Тестирование утечки памяти
Существует два основных вида тестирования: функциональное и
структурное. При функциональном тестировании программа рассматривается
как "черный ящик" (то есть ее текст не используется). Происходит проверка
соответствия поведения программы ее внешней спецификации. Критерием
полноты тестирования в этом случае является перебор всех возможных
значений входных данных, что невыполнимо. Поскольку исчерпывающее
функциональное тестирование невозможно, речь может идти о разработки
методов, позволяющих подбирать тесты не "вслепую", а с большой
вероятностью обнаружения ошибок в программе.
При структурном тестировании программа рассматривается как "белый
ящик" (т.е. ее текст открыт для пользования). Происходит проверка логики
программы. Полным тестированием в этом случае будет такое, которое
приведет к перебору всех возможных путей на графе передач управления
программы (ее управляющем графе). Если ограничиться перебором только
линейных не зависимых путей, то и в этом случае исчерпывающее
структурное тестирование практически невозможно, т. к. неясно, как
подбирать тесты, чтобы обеспечить "покрытие" всех таких путей. Поэтому
при структурном тестировании необходимо использовать другие критерии
его полноты, позволяющие достаточно просто контролировать их
выполнение, но не дающие гарантии полной проверки логики программы. Но
даже если предположить, что удалось достичь полного структурного
тестирования некоторой программы, в ней тем не менее могут содержаться
ошибки, т.к.
1) программа может не соответствовать своей внешней спецификации, что в частности, может привести к тому, что в ее управляющем графе окажутся пропущенными некоторые необходимые пути;
2) не будут обнаружены ои ибки, появление которых зависит от
обрабатываемых данных (т.е. на одних исходных данных программа
работает правильно, а на других — с оилибкой).
Таким образом, ни структурное, ни функциональное тестирование не может
быть исчерпывающим. Чтобы увеличить процент обнаружения ошибок при
проведении функционального и структурного тестирования используют
средства автоматизации тестирования.
Начать зарабатывать