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

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

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

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

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

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

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

Итак, и приемочные, и регрессионные наборы тестов выполняются по многу раз — они так и просятся, чтобы их автоматизировали. Это вполне возможно. Задача состоит в том, чтобы объяснить компьютеру, как выполнить тест, собрать результаты, сравнить их с заранее известными правильными ре­зультатами и сообщить вам, чем все кончилось. В этой главе главным образом рассматривается автоматизация регрессионного тестирования, но все сказан­ное в равной мерс справедливо и для приемочного.

Глава 11: Инструментальные средства тестировщика 269

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

Откуда берутся регрессионные тесты

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

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

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

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

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

Снабжение программы входными данными

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