Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ПРАКТИЧЕСКИЕ РАБОТЫ ПО ОСНОВАМ ИНЖЕНЕРИИ.doc
Скачиваний:
133
Добавлен:
09.02.2016
Размер:
1.51 Mб
Скачать

2.6.4. Цели тестирования

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

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

Тестирование часто неправильно воспринимается как процесс подтверждения корректно­сти кода, что можно выразить таким высказыванием: «Протестируй это, чтобы убедиться, что тут все правильно». Главная цель тестирования далека от подтверждения корректно­сти. Цель тестирования не в том, чтобы показать удовлетворительную работу программы, а в том, чтобы четко определить, в чем работа программы неудовлетворительна! Тестирование требует значительных затрат, и нужно стараться получить от этих затрат максимальную отдачу. Для данной тестируемой программы, чем больше дефектов будет найдено на каждый человеко-час тестирования, тем выше выигрыш от вложений в тести­рование.

Целью тестирования является обнаружение как можно большего числа дефектов, как можно более серьезных и как можно раньше.

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

2.6.5. Верификация, валидация и системное тестирование

Верификация позволяет определить, правильно ли мы создаем приложение.

Другими словами, действительно ли мы на текущей фазе создаем именно те артефакты, что были специфицированы? Это проверяется с помощью инспектирования, обзоров и модульного тестирования.

Валидация позволяет выяснить, правильный ли результат у нас получается.

Другими словами, удовлетворяет ли наш продукт требованиям? Это проверяется с помо­щью системного тестирования.

Системное тестирование - это тестирование все системы в целом.

Существует несколько видов системного тестирования.

  • Контекстное модульное тестирование. После того как система собрана, становится возможным повторно протестировать модули (например, паке­ты) в контексте системы.

  • Тестирование интерфейсов подразумевает повторную валидацию интер­фейсов между модулями.

  • Цель регрессионного тестирования заключается в проверке того, что добав­ления к системе не уменьшили ее возможностей. Другими словами, при до­бавлении в систему нового модуля, следует сначала убедиться, что все ста­рые модули не потеряли работоспособность. Только когда новый модуль прошел регрессионное тестирование, можно тестировать его работу в кон­тексте системы.

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

  • Тестирование удобства и простоты использования валидирует приемле­мость программы для ее конечных пользователей.

  • Тестирование инсталляции выполняется при установке программы на целе­вых платформах.

  • Приемосдаточные испытания выполняются клиентом для валидации при­емлемости программы.