Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции по программированию.doc
Скачиваний:
233
Добавлен:
02.05.2014
Размер:
1.64 Mб
Скачать

5.6. Аксиомы тестирования

Тестирование программных систем в настоящее время остается в большей мере искусством, чем наукой. При проведении тестов рекомендуется придерживаться так называемых аксиом тес­тирования, представляющих собой эвристические приемы. Вот не­которые из них:

  1. хорошим считается тот тест, в котором высока вероятность обнаружения ошибок;

  2. тестирование собственной программы существенно ослож­няется психологическими причинами;

  3. необходимой частью тестов считается описание выходных результатов;

  4. нужно готовить тесты как для правильных, так, и для непра­вильных данных; ,

  1. нельзя тестировать «с лету», наскоком;

  2. необходимо тщательно изучать результаты каждого теста;

  1. по мере обнаружения все большего числа ошибок в про­грамме, возрастает вероятность обнаружения в ней еще большего числа ошибок;

  2. тестирование программ должны осуществлять самые лучшие и опытные программисты;

  3. одной из главных задач разработчиков программы является возможность осуществления ее тестирования;

  1. нельзя изменять программу только с целью облегчить про­цесс ее тестирования;

  1. чем раньше спроектирован тест, тем выше вероятность вы­явления ошибок. Лучше всего готовить тесты еще на этапе проек­тирования системы;

  2. процесс тестирования должен быть документирован и пол­ностью управляем, хаотичность недопустима;

  3. необходимы повторяемость и завершенность тестов;

  4. следует избегать добавления новых тестов уже в процессе тестирования.

5.7. Классификация тестов

По условиям их поведения тесты могут быть класси­фицированы следующим образом:

Доказательство (proof) - попытки найти ошибки в программе путем доказательств на основе математических теорем о правиль­ности программы, безотносительно к внешней программной среде.

Верификация программы (program verification) - попытка найти ошибки, выполняя программу в тестовой или моделируемой среде.

Испытание (validation) - попытка найти ошибки, выполняя программу в заданной программной среде.

Приемо-сдаточные испытания - проверка пригодности про­граммы для эксплуатации; такие испытания обычно проводят под контролем поставщика системы.

По назначению тесты классифицируются:

тестирование модуля (автономное тестирование) (module testing) — контроль, отдельного модуля в изолированной среде (например, с помощью ведущей программы), инспекция текста модуля на сес­сии программистов, которая иногда дополняется математическим доказательством правильности модуля;

тестирование сопряжений (integration testing) - контроль со­пряжений между частями программной системы, как между ком­понентами в комплексе, так и между модулями отдельного компо­нента (например, у заглушки);

комплексное тестирование (system testing) — контроль и испы­тание системы по отношению к исходным целям. Осуществляется с целью проверки правильной совместной работы составных час­тей программы. При комплексном тестировании особое внимание обычно уделяется взаимодействию компонентов. Комплексное тес­тирование является процессом контроля, если оно выполняется в условиях моделируемой среды, и процессом испытания при вы­полнении в реальной среде;

системное тестирование - при системном тестировании вся система в целом обычно рассматривается как некоторый «черный ящик»; поведение этой системы исследуют, не вникая в подробно­сти отдельных ее компонентов и взаимодействий между ними;

тестирование приемлемости (acceptance testing) - проверка соответствия программы требованиям пользователя.