Содержание

Слайд 2

Стандартизация и стандарты

По происхождению программные продукты бывают двух типов: заказные (под заказ

Стандартизация и стандарты По происхождению программные продукты бывают двух типов: заказные (под
конкретного потребителя) и коробочные (для массовой продажи на рынке). Для заключения контракта заказчик должен быть уверен, что разработчик справится и не завалит проект. Вопрос: как его в этом убедить?
В мировой практике промышленного производства ответы на эти вопросы дают стандарты на производство продуктов и услуг и сертификация производителей на соответствие этим стандартам.

Слайд 3

Профессиональный стандарт

SWEBOK (Стандарт ISO/IEC TR 19759 IEEE, 15.09.2005) – дает представление о

Профессиональный стандарт SWEBOK (Стандарт ISO/IEC TR 19759 IEEE, 15.09.2005) – дает представление
знаниях программного инженера, имеющего степень бакалавра и четырехлетний опыт работы

Слайд 4

SWEBOK (SoftWare Engineering Body Of Knowledge)

Содержит описания состава знаний по следующим 10

SWEBOK (SoftWare Engineering Body Of Knowledge) Содержит описания состава знаний по следующим
разделам (областям знаний) программной инженерии:
Software Requirements – требования к ПО
Software Design – проектирование ПО
Software Construction – конструирование ПО
Software Testing – тестирование ПО
Software Maintenance – сопровождение ПО

Слайд 5

Software Configuration Management – управление конфигурациями
Software Engineering Management – управление IT проектом

Software Configuration Management – управление конфигурациями Software Engineering Management – управление IT

Software Engineering Process – процесс программной инженерии
Software Engineering Tools and Methods – методы и инструменты
Software Quality – качество ПО
Подробнее: Guide to the Software Engineering Body of Knowledge - http://www.swebok.org/

SWEBOK (SoftWare Engineering Body Of Knowledge)

Слайд 6

Определение требований к программной системе

Существуют функциональные и нефункциональные требования. Функциональные требования регламентируют

Определение требований к программной системе Существуют функциональные и нефункциональные требования. Функциональные требования
функционирование или поведение системы, они должны отвечать на вопрос: «что должна делать система», абстрагируясь от вопроса «как она это должна делать».
Нефункциональные требования, соответственно, регламентируют внутренние и внешние условия или атрибуты функционирования системы (примеры: ограничения, атрибуты качества, внешние интерфейсы).

Слайд 7

Общая модель формирования и анализа требований

Общая модель формирования и анализа требований

Слайд 8

Тестирование программ

Тестирование программ

Слайд 9

Тестирование программ

Тестирование – это проверка соответствия между реальным поведением программы и ее ожидаемым

Тестирование программ Тестирование – это проверка соответствия между реальным поведением программы и
поведением в специально заданных, искусственных условиях. 

Слайд 10

Виды тестирования

Модульное тестирование - тестируется отдельный модуль, в отрыве от остальной системы. Самый

Виды тестирования Модульное тестирование - тестируется отдельный модуль, в отрыве от остальной
распространенный случай применения – тестирования модуля самим разработчиком, проверка того, что отдельные модули, классы, методы делают действительно то, что от них ожидается. 

Слайд 11

Интеграционное тестирование – два и более компонентов тестируются на совместимость. Это очень важный

Интеграционное тестирование – два и более компонентов тестируются на совместимость. Это очень
вид тестирования, поскольку разные компоненты могут создаваться разными людьми, в разное время, на разных технологиях. Этот вид тестирования, безусловно, должен применяться самими программистами, чтобы, как минимум, удостовериться, что все живет вместе в первом приближении..

Виды тестирования

Слайд 12

Системное тестирование – это тестирование всей системы в целом, как правило, через ее

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

Виды тестирования

Слайд 13

Нагрузочное тестирование – тестирование системы на корректную работу с большими объемами данных. Например,

Нагрузочное тестирование – тестирование системы на корректную работу с большими объемами данных.
проверка баз данных на корректную обработку большого (предельного) объема записей, исследование поведение серверного ПО при большом количестве клиентских соединений, эксперименты с предельным трафиком для сетевых и телекоммуникационных систем, одновременное открытие большого числа файлов, проектов и т.д.

Виды тестирования

Слайд 14

Тестирование по принципу «черного ящика»

Под «чёрным ящиком» понимается объект исследования, внутреннее устройство

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

Слайд 15

Основная задача тестировщика для данного метода тестирования состоит в последовательной проверке соответствия

Основная задача тестировщика для данного метода тестирования состоит в последовательной проверке соответствия
поведения системы требованиям. Кроме того, тестировщик должен проверить работу системы в критических ситуациях - что происходит в случае подачи неверных входных значений.

Тестирование по принципу «черного ящика»

Слайд 16

Тестирование по принципу «черного ящика». Пример

Работаем с программой, которая реализует поиск в

Тестирование по принципу «черного ящика». Пример Работаем с программой, которая реализует поиск
заданном массиве серии нулевых элементов минимальной длины.
Тесты «черного ящика»:
по входным данным: некорректная длина массива, нечисловые значения в массиве.
по работе основного алгоритма: массив без нулевых элементов; массив, в котором ТОЛЬКО нулевые элементы; массив, содержащий несколько серий нулевых элементов минимальной длины; массив, содержащий несколько серий максимальной длины и т.д.

Слайд 17

Эквивалентное разбиение (метод «черного ящика»)

Основу метода составляют два положения:
Исходные данные необходимо разбить

Эквивалентное разбиение (метод «черного ящика») Основу метода составляют два положения: Исходные данные
на конечное число классов эквивалентности. В одном классе эквивалентности содержатся такие тесты, что, если один тест из класса эквивалентности обнаруживает некоторую ошибку, то и любой другой тест из этого класса эквивалентности должен обнаруживать эту же ошибку.
Каждый тест должен включать, по возможности, максимальное количество классов эквивалентности, чтобы минимизировать общее число тестов.

Слайд 18

Пример эквивалентного разбиения

Тесты для правильного класса:
N=5, N=8, N=32000.
Тесты для неправильных классов:
N-нецелое число:

Пример эквивалентного разбиения Тесты для правильного класса: N=5, N=8, N=32000. Тесты для
N=4.8, N=“str”, N=1234567889;
N – целое отрицательное число: N=-345, N=-2, N=-1234;
N=0: N=0.

Слайд 19

Анализ граничных условий (метод «черного ящика»)

В тестовых примерах, прямо соответствующих тест-требованиям, обычно

Анализ граничных условий (метод «черного ящика») В тестовых примерах, прямо соответствующих тест-требованиям,
используются входные значения, находящиеся заведомо внутри допустимого диапазона. Один из способов проверки устойчивости системы на значениях, близких к предельным, - создавать для каждого входа как минимум пять тестовых примеров:
Значение внутри диапазона
Минимальное значение
Максимальное значение
Минимальное значение -1
Максимальное значение +1

Слайд 20

Пример анализа граничных условий

N – длина массива (целое число), соответствующие пять тестов:
N=20,

Пример анализа граничных условий N – длина массива (целое число), соответствующие пять
N=145, N=540;
N=1;
N= 32767;
N=0;
N= 32768.

Слайд 21

Тестирование по принципу “белого ящика”

При тестировании методами “белого ящика” код программ доступен тестировщикам

Тестирование по принципу “белого ящика” При тестировании методами “белого ящика” код программ
и используется в качестве источника информации о работе программы.

Слайд 22

Метод покрытия операторов («белый ящик»)

Критерий покрытия операторов подразумевает выполнение каждого оператора программы

Метод покрытия операторов («белый ящик») Критерий покрытия операторов подразумевает выполнение каждого оператора
хотя бы один раз. Это необходимое, но не достаточное условие для приемлемого тестирования.

Слайд 24

Метод покрытия переходов

Критерий покрытия переходов подразумевает поиск тестов для прохода по каждому

Метод покрытия переходов Критерий покрытия переходов подразумевает поиск тестов для прохода по
переходу хотя бы один раз. Это также необходимое, но не достаточное условие.

Слайд 26

Отладка программ

Отладка программ

Слайд 27

Отладка программы — это специальный этап в разработке программы, состоящий в

Отладка программы — это специальный этап в разработке программы, состоящий в выявлении
выявлении и устранении программных ошибок, факт существования которых уже установлен. Программные ошибки, как правило, делятся на три вида:
- Синтаксическая ошибка. Неправильное употребление синтаксических конструкций, например употребление оператора цикла For без то или Next.

Слайд 28

Семантическая ошибка. Нарушение семантики той или иной конструкции, например передача функции параметров,

Семантическая ошибка. Нарушение семантики той или иной конструкции, например передача функции параметров,
не соответствующих ее аргументам.
Логическая ошибка . Нарушение логики программы, приводящее к неверному результату. Это наиболее трудный для "отлова" тип ошибки, ибо подобного рода ошибки, как правило, кроются в алгоритмах и требуют тщательного анализа и всестороннего тестирования.

Слайд 29

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

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

Слайд 30

Точки останова программы

При отладке широко используется метод, который называют методом точек останова.

Точки останова программы При отладке широко используется метод, который называют методом точек
В программировании, точка остано́ва (breakpoint) — это преднамеренное прерывание выполнения программы, при котором выполняется вызов отладчика (одновременно с этим, программа сама может использовать точки останова для своих нужд).

Слайд 31

Суть метода заключается в том, что программист помечает некоторые инструкции программы

Суть метода заключается в том, что программист помечает некоторые инструкции программы (ставит
(ставит точки останова), при достижении которых программа приостанавливает свою работу, и программист может начать трассировку или проконтролировать значения переменных.

Слайд 32

Задача. В одномерном массиве найти серию нулей и посчитать количество элементов

Задача. В одномерном массиве найти серию нулей и посчитать количество элементов в
в серии

#include
#include
#include
#define MAX_N 100
int main() {
setlocale(LC_ALL, "rus");
int n;
printf ("введите количество элементов массива:\n");
do {
scanf("%d",&n);
} while (n<=0 || n>MAX_N);
int arr[MAX_N];

Слайд 33

for (int i=0;i printf("arr[%d]=", i+1);
scanf("%d", &arr[i]);
}
int

for (int i=0;i printf("arr[%d]=", i+1); scanf("%d", &arr[i]); } int pos = -1,
pos = -1, len = 0;
int maxpos = -1, maxlen = 0;
for(int i = 0; i < n; i++) {
if(arr[i] == 0) {
if(pos == -1) {
pos = i;
}
len++;
}

Слайд 34

else {
if(len > maxlen) {
maxlen = len;
maxpos =

else { if(len > maxlen) { maxlen = len; maxpos = pos;
pos;
}
pos = -1;
len = 0;
}
}
if(maxpos == -1) {
printf("Серий нулей нет!\n");
} else {
printf("Самая длинная серия нулей начинается с позиции %d и равна %d",
maxpos+1, maxlen);
}
system ("pause");
return 0;
}

Слайд 36

Контрольные значения

Контрольные значения – это набор переменных/полей/свойств, значения которых наблюдаются при

Контрольные значения Контрольные значения – это набор переменных/полей/свойств, значения которых наблюдаются при
отладке (т.е. при пошаговом выполнении программы).

Слайд 37

Пошаговое выполнение

Одной из наиболее распространенных процедур отладки является пошаговое выполнение.
При пошаговом

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

Слайд 38

Пошаговое выполнение

Пошаговое выполнение

Слайд 39

Пошаговое выполнение

Шаг отладки - это переход с текущей строки, на которой остановилась

Пошаговое выполнение Шаг отладки - это переход с текущей строки, на которой
программа, на следующую.
Отладчик фактически осуществляет пошаговое выполнение операторов кода, а не физических строк.

Слайд 40

Пошаговое выполнение
если мы используем шаг с обходом, то мы просто переходим по

Пошаговое выполнение если мы используем шаг с обходом, то мы просто переходим
коду на след строку;
если используем шаг с заходом, то, если текущая строка - это вызов функции, мы переходим на 1 строку этой функции (заходим в функцию);
если мы находимся внутри функции (какой-то своей, или main) и используем шаг с выходом, мы возвращаемся "вверх", т.е. к месту, где эта функция была вызвана, и переходим к след за вызовом строке;

Слайд 41

Отладка приложения в Visual Studio

Существуют два способа запуска режима отладки в Visual

Отладка приложения в Visual Studio Существуют два способа запуска режима отладки в
Studio:
запуск из меню Debug;
запуск с помощью соответствующей панели инструментов.
Оба способа - предоставляют доступ к запуску сеансов отладки, пошаговому прохождению кода, управлению точками останова, а также и ко многим функциональным возможностям отладки в Visual Studio.

Слайд 42

Имеются два состояния меню отладки (Debug):
Состояние покоя (неактивное);
Режим отладки.
Рассмотрим

Имеются два состояния меню отладки (Debug): Состояние покоя (неактивное); Режим отладки. Рассмотрим
меню Debug в режиме отладки. Когда отладчик запущен, то состояние меню Debug изменяется, в нем становятся активными несколько дополнительных опции. Эти опции включают: функции перемещения по коду, перезапуск сеанса и доступ к дополнительным окнам отладки и т.д.

Слайд 43

Элементы меню Debug в режиме отладки
Windows | Break points Позволяет открыть

Элементы меню Debug в режиме отладки Windows | Break points Позволяет открыть
окно Breakpoints во время сеанса отладки.
Windows | Output Открывает окно Output во время активного сеанса отладки для того, чтобы можно было читать выходные сообщения, выдаваемые компилятором и отладчиком.

Слайд 44

Элементы меню Debug в режиме отладки

Windows | Watch Открывает одно из

Элементы меню Debug в режиме отладки Windows | Watch Открывает одно из
нескольких окон контрольных значений интегриро ванной среды. Окна контрольных значений представляют элементы и выражения, за которыми вы наблюдаете в течение сеанса отладки.
Windows | Autos Открывает окно Autos. Это окно показывает переменные (и их значе ния) в текущей и предыдущей строках кода.

Слайд 45

Элементы меню Debug в режиме отладки

Windows | Locals Открывает в интегрированной среде

Элементы меню Debug в режиме отладки Windows | Locals Открывает в интегрированной
окно Locals, которое показывает переменные в локальной области действия (функции).
Windows | Immediate Открывает окно Immediate, в котором вы можете выполнить команду.

Слайд 46

Элементы меню Debug в режиме отладки

Windows | Call Stack Открывает список функций,

Элементы меню Debug в режиме отладки Windows | Call Stack Открывает список
которые имеются в стеке. Также указывает текущий кадр стека (функцию). Выделенный элемент - это то, что определяет содержимое окон Locals. Autos и окон контрольных значений.
Windows | Registers Открывает окно Registers, чтобы вы могли видеть изменения значений регистров при прохождении по коду. Данная функция работает только при включенной (в диалоговом окне Options) отладке на уровне адресов.

Слайд 47

Элементы меню Debug в режиме отладки

Continue Продолжает выполнение приложения после выхода в

Элементы меню Debug в режиме отладки Continue Продолжает выполнение приложения после выхода
интегрированную среду разработки. Приложение продолжает выполняться с активной строки кода.
Break All Позволяет прервать приложение вручную (без использования точки останова) во время сеанса отладки Приложение прервется на сле дующей исполняемой строке. Эта возможность полезна в том случае, когда нужно получить доступ к отладочной информации.

Слайд 48

Элементы меню Debug в режиме отладки

Stop Debugging Останавливает режим отладки. Прерывает также

Элементы меню Debug в режиме отладки Stop Debugging Останавливает режим отладки. Прерывает
и отлаживаемый процесс.
Restart Останавливает и перезапускает его сеанс отладки. Аналогично после- довательному нажатию кнопок Stop Debugging и Start Debugging.

Слайд 49

Элементы меню Debug в режиме отладки

Exceptions Активирует диалог Exceptions, который позволяет управлять

Элементы меню Debug в режиме отладки Exceptions Активирует диалог Exceptions, который позволяет
выходом в IDE по конкретным типам исключительных состояний .NET Framework и других библиотек. Step Into Приводит к продвижению отладчика на одну строку. Step Over Работает точно так же, как Step Into, но с одной важной разницей: если используете пропуск функции по Step Over, то строка вызова функции будет выполнена (и функция тоже), и отладчик установит следующую строку за вызовом функции в качестве следующей отлаживаемой строки.

Слайд 50

Элементы меню Debug в режиме отладки

Step Out Указывает отладчику выполнить текущую функцию,

Элементы меню Debug в режиме отладки Step Out Указывает отладчику выполнить текущую
а затем выйти на зад в отладчик (после выполнения функции). Эта функция полезна тогда, когда осуществляется вход в функцию, а затем нужно, чтобы эта функция выполнилась и вернула в отладчик после ее завершения. QuickWatch Активирует окно QuickWatch. Это окно отображает значение одной, конкретной переменной (или выражения).

Слайд 51

Элементы меню Debug в режиме отладки

Toggle Breakpoint Включает и выключает активную точку

Элементы меню Debug в режиме отладки Toggle Breakpoint Включает и выключает активную
останова. New Breakpoint Активирует диалоговое окно New Breakpoint. Delete All Breakpoints Удаляет все точки останова в вашем решении

Слайд 52

Установка точки останова

Приостановка выполнения программы в точке останова называется режимом приостановки.

Установка точки останова Приостановка выполнения программы в точке останова называется режимом приостановки.

Вход в режим приостановки выполнения не приводит к прекращению или завершению работы программы, поэтому выполнение программы может быть продолжено в любое время.
В Visual Studio можно помещать на любую строку кода, которая выполняется.

Слайд 53

Существуют три способа расстановки точек останова в Visual Studio 2010:
С помощью

Существуют три способа расстановки точек останова в Visual Studio 2010: С помощью
клавиши F9;
Через пункт меню Debug - Toggle Breakpoint;
И самый простой способ - это щелкнуть дважды левой кнопкой мыши на нужной строке, в окне редактора кода внутри затененной области вдоль левого края окна документа.

Слайд 54

Точка останова обозначается большим кружком слева от соответствующей строки в окне

Точка останова обозначается большим кружком слева от соответствующей строки в окне редактора кода.
редактора кода.

Слайд 55

Run to Cursor (Ctrl + F10) (Выполнить до курсора)

Установите курсор на

Run to Cursor (Ctrl + F10) (Выполнить до курсора) Установите курсор на
строке кода до которой вы хотите выполнить приложение, а затем нажмите вместе Ctrl + F10. Это приведет к выполнению приложения до этой строки и переходу в режим отладки сохраняя время которое могло быть потрачено на множественные нажатия F10/F11.
Это работает даже в тех случаях, когда код в который вы хотите попасть находится в отдельном методе или классе по отношению к тому месту которое вы в данный момент отлаживаете.

Слайд 56

Conditional Breakpoints (Условные точки останова)

Условные точки останова позволяют вам переходить в

Conditional Breakpoints (Условные точки останова) Условные точки останова позволяют вам переходить в
режим отладки только, если какое-то определенное условие, которое было назначено, достигнуто.
Условные точки останова помогают избежать ручного изучения кода с его дальнейшим выполнением, а также могут сделать весь процесс отладки не требующим ручного вмешательства.

Слайд 57

Как включить Conditional Breakpoint (Условную точку останова)

Нажмите в коде F9, чтобы установить

Как включить Conditional Breakpoint (Условную точку останова) Нажмите в коде F9, чтобы
точку на определенной строке;
Затем щелкните правой кнопкой мыши на красном кружке точки останова слева от окна редактора и выберите контекстное меню «Condition...» («Условие...»);
Это приведет к появлению диалогового окна, которое позволяет указать, что точка останова должна срабатывать только, если определенное условие истинно.

Слайд 58

Функция Hit Count (Число попаданий)

Иногда нужно, чтобы происходила остановка отладчика только

Функция Hit Count (Число попаданий) Иногда нужно, чтобы происходила остановка отладчика только
при условии, что условие истинно N-раз.
Включить такое поведение можно правым щелчком на точке останова и выбором пункта меню «Hit count...» («Количество попаданий...»).
Это приведет к появлению диалогового окна, которое позволяет указать, что точка останова должна быть достигнута только N-раз, когда достигнуто условие или каждые N-раз, когда оно достигнуто, или каждый раз после N вхождений.

Слайд 59

Фильтрация по Machine/Thread/Process (Имя машины/Поток/Процесс)

Можно также щелкнуть правой кнопкой на точке

Фильтрация по Machine/Thread/Process (Имя машины/Поток/Процесс) Можно также щелкнуть правой кнопкой на точке
останова и выбрать пункт «Filter...» («Фильтр...») из контекстного меню, чтобы указать, что точка останова должна быть достигнута, если процесс отладки происходит на определенной машине или в определенном процессе или в определенной потоке.

Слайд 60

Точки трассировки (TracePoints) – пользовательские события при попадании в точку останова

Одной

Точки трассировки (TracePoints) – пользовательские события при попадании в точку останова Одной
из функций отладчика является возможность использовать TracePoints (Точки трассировки).
Точка трассировки это точка останова при достижении которой срабатывает пользовательское событие. Эта функциональность особенно полезна, когда вам нужно отследить поведение в вашем приложении без остановки в отладке.

Слайд 61

Установка точки трассировки (TracePoint)

Можно включить точки трассировки воспользовавшись клавишей F9 для

Установка точки трассировки (TracePoint) Можно включить точки трассировки воспользовавшись клавишей F9 для
установки точки останова в строке кода и затем щелкнув правой кнопкой на точке останова и выбрав пункт «When Hit...» («Когда Попадает...») из контекстного меню.
Это приведет к появлению диалогового окна, которое позволяет вам указать, что должно произойти когда достигнута точка останова

Слайд 62

Пошаговое выполнение программы

При выполнении пошаговой отладки, разработчик может использовать следующие окна

Пошаговое выполнение программы При выполнении пошаговой отладки, разработчик может использовать следующие окна
для просмотра значение переменных или если приложение многопоточное, то просматривать состояние потоков или переключаться между ними:
Autos;
Locals;
Watch;
Immediate;
Threads;
Parallel Task;
Parallel Stacks.

Слайд 63

Окно Autos

Окно Autos используется для того чтобы, просматривать значения, связанные с

Окно Autos Окно Autos используется для того чтобы, просматривать значения, связанные с
той строкой кода, на которой находится курсор отладки. Это окно отображает значения всех переменных и выражений, имеющихся в текущей выполняющейся строке кода или в предыдущей строке кода. Содержит следующие столбцы:
Name - название переменной;
Value - значение переменной;
Type - тип переменной.

Слайд 65

Окно Locals

Окно Locals отображает все переменные и их значения для текущей

Окно Locals Окно Locals отображает все переменные и их значения для текущей
области видимости отладчика, что дает представление обо всех переменных, которые используются в текущем выполняющемся методе. Переменные в этом окне автоматически настраиваются отладчиком. Данное окно содержит следующие столбцы:
Name - название переменной;
Value - значение переменной;
Type - тип переменной.

Слайд 67

Окно Watch

Окно Watch или окно контрольных значений - позволяет настраивать собственный

Окно Watch Окно Watch или окно контрольных значений - позволяет настраивать собственный
список переменных и выражений, которые необходимо отслеживать. Всего доступно четыре окна Watch (Watch 1, Watch 2, Watch 3 и Watch 4), что позволяет выделить в четыре списка переменные и выражения, данную возможность удобно использовать в том случае, если каждый список относится к отдельной области видимости приложения.

Слайд 68

Переменные или выражение в окно Watch добавляются или из редактора кода,

Переменные или выражение в окно Watch добавляются или из редактора кода, или
или из окна QuickWatch. Если нужно добавить в окно Watch элемент из редактора кода, то нужно выделить нужную переменную или выражение, щелкнуть по ней правой кнопкой мыши и выбирать пункт Add Watch.
Также можно перетаскивать, с помощью мыши, выделенный элемент в окно Watch. Данное окно содержит следующие столбцы:
Name - название переменной;
Value - значение переменной;
Type - тип переменной.

Слайд 70

Окно Immediate

Окно Immediate или непосредственное выполнение - предназначено для ручного ввода

Окно Immediate Окно Immediate или непосредственное выполнение - предназначено для ручного ввода
и выполнения команд. Это окно появляется автоматически при прерывании работы программы в точках останова программы.
Для выполнения команды или оператора необходимо написать команду и нажать клавишу .

Слайд 72

Отладка однопоточного приложения в Visual Studio 2010


Рассмотрим процесс создания и

Отладка однопоточного приложения в Visual Studio 2010 Рассмотрим процесс создания и отладки
отладки однопоточного приложения с использованием Visual Studio 2010.
1. Создадим Windows приложение с названием "WindowsDebugApplication"

Слайд 74

2. Создадим простейший калькулятор. Для этого разместим на форме 4 элемента (2

2. Создадим простейший калькулятор. Для этого разместим на форме 4 элемента (2
TextBox, 1 ComboBox, 1 Button):

Слайд 75

3. Добавим в программу код.
4. Теперь, расставим точки останова (breakpoints) в программе.

3. Добавим в программу код. 4. Теперь, расставим точки останова (breakpoints) в
В примере точки останова расставлены напротив методов математических операций и в событии кнопки:

Слайд 77

5. Запускаем отладку приложения с помощью пункта "Start Debugging" - меню "Debug"

5. Запускаем отладку приложения с помощью пункта "Start Debugging" - меню "Debug"
или с помощью клавиши "F5":

Слайд 78

6. После ввода значений в поля программы и выбора соответствующей операции (сложение,

6. После ввода значений в поля программы и выбора соответствующей операции (сложение,
вычитание и т.д), жмем кнопку "Рассчитать", тем самым вызовется метод ResulButton_Click():

Слайд 79

Запустится пошаговый процесс отладки приложения с точки останова (Breakpoint) в методе

Запустится пошаговый процесс отладки приложения с точки останова (Breakpoint) в методе ResulButton_Click():
ResulButton_Click():

Слайд 80

7. Добавим для просмотра значений переменных - переменные arraysymbol (коллекция), и переменную

7. Добавим для просмотра значений переменных - переменные arraysymbol (коллекция), и переменную
"с". Для этого щелкните на нужной переменной правой кнопкой мыши и выберите из списка "Add Watch":

Слайд 81

8. Используйте кнопку "F10" для пошаговой отладки приложения. В процессе пошаговой отладки,

8. Используйте кнопку "F10" для пошаговой отладки приложения. В процессе пошаговой отладки,
курсор отладчика будет заходить в те методы, которые вызываются в методе ResulButton_Click(), в нашем случае это метод Plus() (т.к была выбрана операция сложения - "+"):

Слайд 82

В процессе отладки приложения, значения переменных, в списке Watch, будут изменяться

В процессе отладки приложения, значения переменных, в списке Watch, будут изменяться в зависимости от шага:
в зависимости от шага:

Слайд 83

10. После завершения отладки (и если не возникло не каких ошибок) программа

10. После завершения отладки (и если не возникло не каких ошибок) программа выдаст результаты:
выдаст результаты:

Слайд 84

11. Повторно запустим отладку приложения и намеренно введем значения, вызывающие исключение. В

11. Повторно запустим отладку приложения и намеренно введем значения, вызывающие исключение. В
нашем случае это "1a" и "2":

Слайд 85

Если в программе не обрабатываются исключения, отладчик выдаст ошибку, на строке,

Если в программе не обрабатываются исключения, отладчик выдаст ошибку, на строке, где
где возникает исключение. В нашем случае исключение, связанное с преобразованием формата типа string в формат double: