русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

ОТЛАДКА


Дата добавления: 2014-02-04; просмотров: 1177; Нарушение авторских прав


КЛАССИФИКАЦИЯ ТЕСТОВ

АКСИОМЫ ТЕСТИРОВАНИЯ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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



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

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

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

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

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

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

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

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

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

Процесс тестирования нельзя путать с процессом от­ладки (debugging). Первый служит лишь для обнаружения факта существования ошибок, а не для их локализации и устранения.

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

Существуют несколько способов отладки программы.

Распечатка текущего состоя н и я . Используется с це­лью фиксации фактических значений переменных для проверки хода вычислений. Для этого во время отладки программы в места, которые программист считает критическими, помещают процеду­ры распечатки текущего состояния переменных. После окончания теста вызовы этих процедур удаляются, и программа снова пере­компилируется.

Точки останова. Используются в случае разного рода за­цикливаний, когда программа в какой-то момент «зависает». В текст программы включают процедуры останова программы. Например, можно поместить процедуру вывода обычного сообщения вроде «Достигнута точка #ппп» и инициировать паузу до нажатия на лю­бую клавишу. При таком подходе программист точно знает, до ка­кой точки дошла программа перед зацикливанием.

Метод деления п о п о л а м . Этот метод используют свя­зисты, когда ищут обрыв в кабеле, закопанном в землю. Например, если приблизительно известно до какого момента программа ус­пешно выполняется, то в этом месте программы ставят точку ос­танова. Затем ставят точку в конце «подозреваемой» процедуры и посредине - между первой и последней точками. Снова компили­руют и выполняют программу. Если программа дошла до второй точки, то зацикливание произошло где-то между второй и третьей точками, если не дошла - между первой и второй. После этого вставляется новая точка останова в локализованный участок и про­грамма снова компилируется. Таким образом, постоянно сжимая район поисков, можно найти ошибочный участок.

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



<== предыдущая лекция | следующая лекция ==>
МЕТОДЫ ТЕСТИРОВАНИЯ | ОПТИМИЗАЦИЯ


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.648 сек.