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

UptoLike

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

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

                     1.4. Принципы тестирования
    Сформулируем основные принципы тестирования, используя глав-
ную предпосылку настоящей главы о том, что наиболее важными в тес-
тировании программ являются вопросы психологии [4]. Эти принципы
интересны тем, что в основном они интуитивно ясны, но в то же время на
них часто не обращают должного внимания.

 Описание предполагаемых значений выходных данных или ре-
 зультатов должно быть необходимой частью тестового набора.
     Нарушение этого очевидного принципа представляет одну из наибо-
лее распространенных ошибок. Ошибочные, но правдоподобные резуль-
таты могут быть признаны правильными, если результаты теста не были
заранее определены. Здесь мы сталкиваемся с явлением психологии: мы
видим то, что мы хотим увидеть. Другими словами, несмотря на то, что
тестирование по определению – деструктивный процесс, есть подсозна-
тельное желание видеть корректный результат. Один из способов борьбы
с этим состоит в поощрении детального анализа выходных переменных
заранее при разработке теста. Поэтому тест должен включать две компо-
                                   16