Основы тестирования программного обеспечения


Пример регрессионного тестирования


Получив отчет об ошибке, программист анализирует исходный код, находит ошибку, исправляет ее и модульно или интеграционно тестирует результат.

В свою очередь тестировщик, проверяя внесенные программистом изменения, должен:

  • Проверить и утвердить исправление ошибки. Для этого необходимо выполнить указанный в отчете тест, с помощью которого была найдена ошибка.
  • Попробовать воспроизвести ошибку каким-нибудь другим способом.
  • Протестировать последствия исправлений. Возможно, что внесенные исправления привнесли ошибку (наведенную ошибку) в код, который до этого исправно работал.

Например, при тестировании класса TСommandQueue запускаем тесты (пример 7.2):

// Тест проверяет, создается ли объект // типа TCommand и добавляется ли он // в конец очереди. private void TCommandQueueTest1() // Тест проверяет добавление команд // в очередь на указанную позицию. // Также проверяется правильность // удаления команд из очереди. private void TCommandQueueTest2() Пример 7.4. Набор тестов класса TСommandQueue// Тест проверяет, создается ли объект // типа TCommand и добавляется ли он // в конец очереди. void TCommandQueueTest1() // Тест проверяет добавление команд // в очередь на указанную позицию. // Также проверяется правильность // удаления команд из очереди. void TCommandQueueTest2() Пример 7.4.1. Набор тестов класса TСommandQueue (C++)

При этом первый тест выполняется успешно, а второй нет, т.е. команда добавляется в конец очереди команд успешно, а на указанную позицию - нет. Разработчик анализирует код, который реализует тестируемую функциональность:

...

if ((Position<-1)&& (Position<=this.Items.Count)) { this.Items.Insert(Position, Command); } else { if (Position==-1) { this.Items.Add(Command); } } Пример 7.5. Фрагмент кода с зафиксированным при тестировании дефектомif ((Position <-1)&&(Position<=this.Items.Count)) { this.Items.Insert(Position, Command); } else { if (Position==-1) { this.Items.Add(Command); } } Пример 7.5.1. Фрагмент кода с зафиксированным при тестировании дефектом

Анализ показывает, что ошибка заключается в использовании неверного знака сравнения в первой строке фрагмента (помечено светлым тоном).


- Начало -  - Назад -  - Вперед -



Книжный магазин