Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Тестирование программного обеспечения. Фундамен...docx
Скачиваний:
3
Добавлен:
01.05.2025
Размер:
936 Кб
Скачать
☆

Глава 7: Разработка тестов 205

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

Регрессионное тестирование: стандартная серия тестов

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

Лучше всего, если тесты полностью автоматизированы. В этом случае псе равно придется затратить некоторое время, но вся процедура тестиро­вания гораздо менее трудоемка.

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

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

Проводить регрессионные тесты обычно не хочется, поскольку вероят­ность выявления ими ошибок не особенно велика. При первом выполне­нии некоторые из этих тестов могут выявить ошибки, но после их окончательного исправления проводить их снова и снова кажется пустой потерей времени. Если ошибки больше нет, какова вероятность, что она появится снова? А как быть с тестами, которые проводились уже по не­скольку раз и ни разу не выявили ошибок? В некоторых компаниях такие тесты исключают из библиотеки, оставляя только те, в которых проявля­лись ошибки.

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

206 Часть II: Приемы и технологии тестирования

• Удалите тесты, которые эквивалентны другим тестам библиоте­ки. В идеале такие тесты вообще не должны попадать в библиотеку. Но когда она создается несколькими сотрудниками, подобные на­кладки вполне возможны.

• Уменьшите количество тестов, объектом которых является уже исправленная ошибка. Если ошибка или некоторые ее разновидно­сти проявляются в течение целого ряда циклов тестирования, в биб­лиотеку стоит добавить достаточное количество тестов для их выявления. Это вполне нормально и уместно. Соответствующую часть программы необходимо тщательнейшим образом тестировать до тех пор, пока в ней не останется и следа ошибки. Однако после этого большую часть тестов, направленных на поиск исправленной ошибки, можно удалить из библиотеки.

• Комбинируйте тесты. Если 15 тестов, которые программа, скорее всего, пройдет, можно объединить в один — сделайте это. В начале тестирования так поступать не стоит, но в дальнейшем объединение тестов позволит значительно ускорить работу.

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

• Выделите часть тестов для периодического выполнения. Вместо того чтобы проводить все тесты регрессионной библиотеки после каждого изменения программы, можно выполнять их реже — на каждом втором или третьем цикле. На последней стадии тестирова­ния лучше выполнить максимально возможное количество тестов, чтобы убедиться, что программа готова к выпуску. Но до этого в каждом цикле можно выполнять треть или половину всех тестов.

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

Выполнение тестов

Придумать хороший тест — это только половина дела, ведь его еще нужно правильно выполнить. Вот несколько примеров.