
- •2015 Г.
- •1. Тестирование программного обеспечения
- •1.1 Модульное тестирование
- •1.2 Интеграционное тестирование
- •1.3 Системное тестирование
- •1.4 Регрессионное тестирование
- •1.5 Ручное и автоматизированное тестирование
- •2. Автоматизация тестирования программного обеспечения
- •2.1 Основные аспекты автоматического тестирования
- •2.2 Преимущества и недостатки автоматического тестирования
- •3. Практическая часть
- •3.1 Постановка задачи
- •3.2 Описание тестируемой программы
- •3.3 Выполнение тестирования
- •3.4 Листинг тестов
- •3.5 Листинг тестируемой программы
1.4 Регрессионное тестирование
Тестирование программной системы выполняется на протяжении всего процесса разработки, в течение которого система постоянно меняется: либо в результате исправления ошибок и устранения дефектов, либо в результате расширения ее функциональных возможностей. Очевидно, что каждое изменение исходного кода программы может привести к возникновению новых ошибок и дефектов, отсутствующих или не выявленных ранее. В связи с этим после каждого изменения программного кода необходимо выполнять тестирование, чтобы удостовериться, что очередная модификация не вызвала нежелательных побочных эффектов и система по-прежнему функционирует в соответствии с заданными требованиями. Такое тестирование называется регрессионным. Соответственно, ошибки системы, возникающие после ее модификации (когда после внесения изменений перестает работать то, что должно было продолжать работать), называются регрессионными.
Регрессионное тестирование включает в себя следующие стадии:
1) анализ изменений в системе;
2) выбор тестовых примеров для проверки системы;
3) выполнение тестовых примеров;
4) анализ результатов выполнения тестов;
5) модификация тестового окружения, тестовых примеров или уведомление разработчиков о дефекте системы.
Благодаря повторяемости тестирования разработчики и тестировщики всегда обладают актуальной информацией о текущем состоянии программной системы и корректности изменений, вносимых в процессе разработки.
Регрессионное тестирование, по сути, представляет собой повторное выполнение обычного тестирования, поэтому виды регрессионного тестирования совпадают с видами обычного тестирования.
Тестирование измененной версии программы «П'» в тех же условиях, в которых выполнялось тестирование предыдущей версии программы «П», называется управляемым регрессионным тестированием. Для обеспечения управляемости регрессионного тестирования должны выполняться следующие условия:
1) И при модульном, и при интеграционном регрессионном тестировании в качестве модулей, вызываемых тестовым модулем, должны использоваться реальные модули программной системы.
2) Должна быть обеспечена корректность информации о модификации системы. Информация о модификации указывает на измененные модули и разделы спецификации требований, не подразумевая при этом корректность самих изменений. При изменении спецификации требований необходимо усиленное тестирование изменившихся функций этой спецификации и всех функций, изменение которых могло быть побочным эффектом.
3) В программе не должно быть ошибок, кроме тех, которые возникли вследствие модификации системы.
4) Должны быть доступны тесты, использовавшиеся для предыдущих версий системы.
5) Должна быть доступна информация о результатах выполнения существующего набора тестов для предыдущей версии программной системы.
Считается хорошей практикой при исправлении каждой ошибки создавать соответствующий тест и регулярно выполнять его при последующих изменениях программы с целью убедиться в отсутствии регрессионных ошибок в системе. Регрессионное тестирование может быть выполнено вручную, однако чаще всего оно проводится с помощью специализированных программ, позволяющих выполнять все регрессионные тесты автоматически.