Составители:
Рубрика:
16
маршрутов невелика, поскольку после тестирования в программе окажет-
ся одна ошибка, т. е. программа неверна. Во-вторых, программа может
быть неверной в силу того, что пропущены некоторые маршруты. Исчер-
пывающее тестирование маршрутов не обнаружит их отсутствия. В-
третьих, исчерпывающее тестирование маршрутов не может обнаружить
ошибок, появление которых зависит от обрабатываемых
данных. Сущест-
вует множество примеров таких ошибок. Приведем один из них. Допустим,
в программе необходимо выполнить сравнение двух чисел на сходимость,
т. е. определить, является ли разность между двумя числами меньше пред-
варительно определенного числа. Может быть написано выражение
IF ((a – b) < epsilon)…
Безусловно, оно содержит ошибку, поскольку необходимо выполнить
сравнение абсолютных величин. Однако
обнаружение этой ошибки зависит
от значений, использованных для a и b, и ошибка не обязательно будет обна-
ружена просто путем исполнения каждого маршрута программы.
В заключение отметим, что, хотя исчерпывающее входное тестиро-
вание предпочтительнее исчерпывающего тестирования маршрутов, ни то,
ни другое не могут стать полезными стратегиями, потому что оба они не-
реализуемы.
Возможно, поэтому реальным путем, который позволит соз-
дать хорошую, но, конечно, не абсолютную стратегию, является сочетание
тестирования программы как черного и как белого ящиков. Вопрос выбора
методов тестирования и их описание будет рассмотрен в дальнейшем.
1.4. Принципы тестирования
Сформулируем основные принципы тестирования, используя глав-
ную предпосылку настоящей главы о том, что
наиболее важными в тес-
тировании программ являются вопросы психологии [4]. Эти принципы
интересны тем, что в основном они интуитивно ясны, но в то же время на
них часто не обращают должного внимания.
Описание предполагаемых значений выходных данных или ре-
зультатов должно быть необходимой частью тестового набора.
Нарушение этого очевидного принципа представляет одну из наибо-
лее распространенных ошибок. Ошибочные, но правдоподобные резуль-
таты могут быть признаны правильными, если результаты теста не были
заранее определены. Здесь мы сталкиваемся с явлением психологии: мы
видим то, что мы хотим увидеть. Другими словами, несмотря на то, что
тестирование по определению – деструктивный процесс
, есть подсозна-
тельное желание видеть корректный результат. Один из способов борьбы
с этим состоит в поощрении детального анализа выходных переменных
заранее при разработке теста. Поэтому тест должен включать две компо-
маршрутов невелика, поскольку после тестирования в программе окажет- ся одна ошибка, т. е. программа неверна. Во-вторых, программа может быть неверной в силу того, что пропущены некоторые маршруты. Исчер- пывающее тестирование маршрутов не обнаружит их отсутствия. В- третьих, исчерпывающее тестирование маршрутов не может обнаружить ошибок, появление которых зависит от обрабатываемых данных. Сущест- вует множество примеров таких ошибок. Приведем один из них. Допустим, в программе необходимо выполнить сравнение двух чисел на сходимость, т. е. определить, является ли разность между двумя числами меньше пред- варительно определенного числа. Может быть написано выражение IF ((a – b) < epsilon)… Безусловно, оно содержит ошибку, поскольку необходимо выполнить сравнение абсолютных величин. Однако обнаружение этой ошибки зависит от значений, использованных для a и b, и ошибка не обязательно будет обна- ружена просто путем исполнения каждого маршрута программы. В заключение отметим, что, хотя исчерпывающее входное тестиро- вание предпочтительнее исчерпывающего тестирования маршрутов, ни то, ни другое не могут стать полезными стратегиями, потому что оба они не- реализуемы. Возможно, поэтому реальным путем, который позволит соз- дать хорошую, но, конечно, не абсолютную стратегию, является сочетание тестирования программы как черного и как белого ящиков. Вопрос выбора методов тестирования и их описание будет рассмотрен в дальнейшем. 1.4. Принципы тестирования Сформулируем основные принципы тестирования, используя глав- ную предпосылку настоящей главы о том, что наиболее важными в тес- тировании программ являются вопросы психологии [4]. Эти принципы интересны тем, что в основном они интуитивно ясны, но в то же время на них часто не обращают должного внимания. Описание предполагаемых значений выходных данных или ре- зультатов должно быть необходимой частью тестового набора. Нарушение этого очевидного принципа представляет одну из наибо- лее распространенных ошибок. Ошибочные, но правдоподобные резуль- таты могут быть признаны правильными, если результаты теста не были заранее определены. Здесь мы сталкиваемся с явлением психологии: мы видим то, что мы хотим увидеть. Другими словами, несмотря на то, что тестирование по определению – деструктивный процесс, есть подсозна- тельное желание видеть корректный результат. Один из способов борьбы с этим состоит в поощрении детального анализа выходных переменных заранее при разработке теста. Поэтому тест должен включать две компо- 16
Страницы
- « первая
- ‹ предыдущая
- …
- 12
- 13
- 14
- 15
- 16
- …
- следующая ›
- последняя »