Методы тестирования программного обеспечения. Степанченко И.В. - 8 стр.

UptoLike

Составители: 

10
смотренные функции», «Тестированиеэто процесс, позволяющий убе-
диться в том, что программа выполняет свое назначение».
Эти определения описывают нечто противоположное тому, что сле-
дует понимать под тестированием, поэтому они неверны. Оставив на
время определения, предположим, что если мы тестируем программу, то
нам нужно добавить к ней некоторую новую стоимость (так
как тестиро-
вание стоит денег и нам желательно возвратить затраченную сумму, а это
можно сделать только путем увеличения стоимости программы). Увели-
чение стоимости означает повышение качества или возрастание надежно-
сти программы, в противном случае пользователь будет недоволен платой
за качество. Повышение качества или надежности программы связано с
обнаружением и удалением
из нее ошибок. Следовательно, программа тес-
тируется не для того, чтобы показать, что она работает, а скорее наоборот
тестирование начинается с предположения, что в ней есть ошибки (это
предположение справедливо практически для любой программы), а затем
уже обнаруживается их максимально возможное число. Таким образом,
сформулируем наиболее приемлемое и простое определение:
Тестирование
это процесс исполнения программы с целью
обнаружения ошибок.
Пока все наши рассуждения могут показаться тонкой игрой семан-
тик, однако практикой установлено, что именно ими в значительной мере
определяется успех тестирования. Дело в том, что верный выбор цели да-
ет важный психологический эффект, поскольку для человеческого созна-
ния характерна целевая направленность. Если поставить целью демонст-
рацию отсутствия ошибок, то мы
подсознательно будем стремиться к
этой цели, выбирая тестовые данные, на которых вероятность появления
ошибки мала. В то же время, если нашей задачей станет обнаружение
ошибок, то создаваемый нами тест будет обладать большей вероятностью
обнаружения ошибки. Такой подход заметнее повысит качество про-
граммы, чем первый.
Из приведенного определения тестирования вытекает несколько
следствий. Например, одно из них состоит в том, что тестирование
процесс деструктивный (т. е. обратный созидательному, конструктив-
ному). Именно этим и объясняется, почему многие программисты и тес-
тировщики считают его трудным. Большинство людей склонны к конст-
руктивному процессу созидания объектов и в меньшей степеник дест-
руктивному процессу разделения на части
. Из определения следует так-
же, как нужно строить набор тестовых данных и кто должен (а кто не
должен) тестировать данную программу.
Для усиления определения тестирования проанализируем два поня-
тия «удачный» и «неудачный» и, в частности, их использование руково-
смотренные функции», «Тестирование – это процесс, позволяющий убе-
диться в том, что программа выполняет свое назначение».
     Эти определения описывают нечто противоположное тому, что сле-
дует понимать под тестированием, поэтому они неверны. Оставив на
время определения, предположим, что если мы тестируем программу, то
нам нужно добавить к ней некоторую новую стоимость (так как тестиро-
вание стоит денег и нам желательно возвратить затраченную сумму, а это
можно сделать только путем увеличения стоимости программы). Увели-
чение стоимости означает повышение качества или возрастание надежно-
сти программы, в противном случае пользователь будет недоволен платой
за качество. Повышение качества или надежности программы связано с
обнаружением и удалением из нее ошибок. Следовательно, программа тес-
тируется не для того, чтобы показать, что она работает, а скорее наоборот –
тестирование начинается с предположения, что в ней есть ошибки (это
предположение справедливо практически для любой программы), а затем
уже обнаруживается их максимально возможное число. Таким образом,
сформулируем наиболее приемлемое и простое определение:

      Тестирование – это процесс исполнения программы с целью
                       обнаружения ошибок.

     Пока все наши рассуждения могут показаться тонкой игрой семан-
тик, однако практикой установлено, что именно ими в значительной мере
определяется успех тестирования. Дело в том, что верный выбор цели да-
ет важный психологический эффект, поскольку для человеческого созна-
ния характерна целевая направленность. Если поставить целью демонст-
рацию отсутствия ошибок, то мы подсознательно будем стремиться к
этой цели, выбирая тестовые данные, на которых вероятность появления
ошибки мала. В то же время, если нашей задачей станет обнаружение
ошибок, то создаваемый нами тест будет обладать большей вероятностью
обнаружения ошибки. Такой подход заметнее повысит качество про-
граммы, чем первый.
     Из приведенного определения тестирования вытекает несколько
следствий. Например, одно из них состоит в том, что тестирование –
процесс деструктивный (т. е. обратный созидательному, конструктив-
ному). Именно этим и объясняется, почему многие программисты и тес-
тировщики считают его трудным. Большинство людей склонны к конст-
руктивному процессу созидания объектов и в меньшей степени – к дест-
руктивному процессу разделения на части. Из определения следует так-
же, как нужно строить набор тестовых данных и кто должен (а кто не
должен) тестировать данную программу.
     Для усиления определения тестирования проанализируем два поня-
тия «удачный» и «неудачный» и, в частности, их использование руково-
                                    10