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