|
Исчерпывающее тестирование программы неоправданно с экономической точки зрения и обычно неосуществимо на практике. Ни в какой нормальной программе нельзя проверить все возможные ситуации.
Предположим, мы имеем небольшую программу, схематически изображенную на рис. 5.1 и характеризующуюся двумя входными переменными и одной выходной. . ьсли бы мы могли проверить эту программу при всех возможных значениях X и У, то можно было бы с абсолютной точностью гарантировать ее правильность. Однако даже для такой простой программы подобная проверка неосуществима. Ведь" если, например, программа имеет дело с
32-разрядными двоичными числами, то существует 232 возможных значений для X и У и, следовательно,
  их различных сочетаний. При таком.количестве ситуаций программу, работающую одну миллисекунду, пришлось бы тестировать в течение 50 млрд. лет1}.
Мы убедились, таким образом, что проверка всех возможных комбинаций входов нереализуемая но можно ли проверить все логические ветви? Если обратиться, например, к блок-схеме, показанной на рис. 5.2, то здесь прослеживаются три самостоятельных логических пути. Совокупность двух таких сегментов (рис. 5.3) образует девять путей (отыщите их), а в случае, когда программа, соответствующая блок-схеме рис. 5.3, работает дважды, их будет уже 9X9. Если же предположить, что эта программа является частью цикла, выполняемого 10 раз, то количество возможных логических путей станет равным 910. Таким образом, даже в таком простом примере исчерпывающее тестирование неосуществимо. Наконец, следует иметь в виду, что если бы и удалось провести полное тестирование программы, то необходимое для этого машинное время оказалось бы потраченным зря, поскольку неизвестно, какими способами можно было бы вручную проверить достоверность всех выходных результатов.
Мало того, что даже в простом случае практически невозможно реализовать исчерпывающее испытание программы, но еще и в процессе ее эксплуатации имеет место лишь ограниченное число комбинаций входных данных. Поэтому необходимо тщательно подбирать контрольные примеры небольшого объема так, чтобы их значимость не вызывала сомнений. Всякий случайный выбор приводит к тому, что проверяются малозначительные ситуации.
Учитывая, что исчерпывающее тестирование невозможно, испытывайте программу разумно.
⇐5.4. Необходимая полнота тестирования || Оглавление || 5.6. Технические требования к тестированию⇒
Вот современные методы ремонта котлов отопления http://www.delta-ts.ru/ |