Страница125
регрессионноетестированиеизменившихсяфункцийэтойспецификации,атакжевсехфункций,
которыемоглибытьзатронутыпонеосторожности.
Впрограмменетошибок,крометех,которыемогливозникнутьиз‐заееизменения.
Тесты,применявшиесядлятестированияпредыдущихверсийпрограммногопродукта,доступны,
приэтомпротоколпрогонатестовсостоитизвходныхданных,выходныхданныхитраектории.
Дляпроведениярегрессионноготестированиясиспользованиемсуществующегонаборатестов
необходимохранитьинформациюорезультатахвыполнениятестовнапредыдущихэтапах
тестирования.
ПРИМЕРРЕГРЕССИОННОГОТЕСТИРОВАНИЯ
Получивотчетобошибке,программистанализируетисходныйкод,находитошибку,исправляетееи
модульноилиинтеграционнотестируетрезультат.
Всвоюочередьтестировщик,проверяявнесенныепрограммистомизменения,должен:
1. Проверитьиутвердитьисправлениеошибки.Дляэтогонеобходимовыполнитьуказанныйвотчете
тест,спомощьюкоторогобыланайденаошибка.
2. Попробоватьвоспроизвестиошибкукаким‐нибудьдругимспособом.
3. Протестироватьпоследствияисправлений.Возможно,чтовнесенныеисправленияпривнесли
ошибку(наведеннуюошибку)вкод,которыйдоэтогоисправноработал.
ФОРМИРОВАНИЕРЕГРЕССИОННОГОНАБОРАТЕСТОВ
КЛАССИФИКАЦИЯТЕСТОВПРИОТБОРЕ
Созданиенабороврегрессионныхтестовначинаютсмножестваисходныхтестов.Призаданномкритерии
регрессионноготестированияисходныетестыподразделяютсянаподмножества:
МНОЖЕСТВОТЕСТОВ,ПРИГОДНЫХДЛЯПОВТОРНОГОИСПОЛЬЗОВАНИЯ.Тесты,которые
ужезапускалисьипригодныкиспользованию,нозатрагиваюттолькопокрываемыеэлементы
программы,непретерпевшиеизменений.Приповторномвыполнениивыходныеданныетаких
тестовсовпадутсвыходнымиданными,полученныминаисходнойпрограмме.Следовательно,
такиетестынетребуютперезапуска.
МНОЖЕСТВОТЕСТОВ,ТРЕБУЮЩИХПОВТОРНОГОЗАПУСКА.Тесты,которыеужезапускались,
нотребуютперезапуска,т.к.затрагивают,покрайнеймере,одинизмененныйпокрываемый
элемент,подлежащийповторномутестированию.Приповторномвыполненииэтитестымогут
даватьрезультат,отличныйотрезультата,показанногонаисходнойпрограмме.Этитесты
обеспечиваютхорошеепокрытиеструктурныхэлементовдажеприналичииновыхфункциональных
возможностей.
МНОЖЕСТВОУСТАРЕВШИХТЕСТОВ.Тесты,неприменимыекизмененнойпрограммеи
непригодныедлядальнейшеготестирования,посколькуонизатрагиваюттолькопокрываемые
элементы,которыебылиудаленыприизменениипрограммы.Ониудаляютсяизнабора
регрессионныхтестов.
НОВЫЕТЕСТЫ,КОТОРЫЕЕЩЕНЕЗАПУСКАЛИСЬимогутбытьиспользованыдлятестирования.
НаРис.11.2[Котляров2006]показанжизненныйциклтеста.Послесозданиятествводитсявбазуданныхкак
новый.Послеисполненияновыйтестпереходитвкатегориютестов,пригодныхдляповторного
использованиялибоустаревших.Есливыполнениетестаспособствовалоувеличениютекущейстепени
покрытиякода,тестпомечаетсякакпригодныйдляповторногоиспользования.Впротивномслучаеон
помечаетсякакустаревшийиотбрасывается.Существующиетесты,повторнозапущенныепослевнесения