Тестирование программы
Лекция 10 Отладка и тестирование. Вопросы удобства использования среды разработки (usability) Сегодня мы с вами пройдем путь от разработки программы до проверки результата своей работы (тестирования). При выборе средств разработки программного продукта важную роль играет usability среды, то есть набор различных вспомогательных компонентов, расположение кнопок и меню, удобство работы с редактором (подсветка зарезервированных слов) и т.д. Компоненты среды разработки. IntelliSense — технология автодополнения Microsoft – дописывает название функции при вводе начальных букв (слайд). Если же функция уже записана, то IntelliSense «подсказывает» сколько входных параметров ей необходимо и какого типа они должны быть (слайд). Вероятно Intelli от intelligence, а Sense – обнаруживать, распознавать. Срабатывает при обнаружении точки или открытой скобки после имени функции и показывает пользователю всплывающее окно со списком подходящих параметров или функций. Выбор подходящего элемента из этого окна осуществляется щелчком мыши. Если пользователь вводит дополнительные символы, то IntelliSense фильтрует свои результаты (слайд), выводя пользователю лишь те члены, которые начинаются на уже введённые буквы. (слайд) Если вы начинатете набор имени функции, но IntelliSense не срабатывает, значит: · в имени допущена синтаксическая ошибка · строка, в которой осуществляется набор, находится в пределах комментария (слайд) Таким образом, процесс написания программного кода ускоряется и облегчается, поскольку программисту нет необходимости помнить точное название функции. Кроме того, назначение функции понятно на интуитивном уровне по её имени. IntelliSense первый раз появилась в Visual Basic 5.0 Control Creation Edition в 1996 году. В настоящее время IntelliSense поддерживается в Visual Studio для таких языков, как C++, C#, J#, Visual Basic, XML, HTML, XSLT и других. Кроме Visual Studio IntelliSense также используют и другие продукты Microsoft, такие как FrontPage, Expression Web, IDE Visual Basic for Applications в Microsoft Office и другие.SQL Server 2008 Management Studio включает автодополнение для SQL синтаксиса.
Отладчик (Debugger) Компонент, с помощью которого можно прерывать или приостанавливать выполнение программы с целью проверки кода, вычислять и редактировать значения переменных программы, отслеживать состояние регистров процессора, просматривать инструкции, созданные из исходного кода, а также просматривать область памяти, используемую приложением. С помощью отладчика можно начинать, продолжать, прерывать или останавливать выполнение программы, выполнять приложение по шагам, выполнять приложение до указанной точки и задавать точку выполнения. Тест (Test) Тестирование – это процесс исполнения программы с целью обнаружения ошибок. Тест может производиться как в автоматическом, так и в ручном режиме. В ручном режиме тест проводят тестеровщики (tester), составляя сценарий проведения теста и описывая все свои действия. Такие тесты могут выявить узкие места в программе, когда она реагирует на действия пользователя не так, как ожидалось, зависает и т.д. Кроме того используются автоматизированные тесты, которые помогают выявить несоответствие типов, некорректную работу функций и т.д. В среде предусмотрены автоматические средства тестирования программы. Описание использования отладчика для управления выполнением приложения. Точки останова Точка останова — это сигнал, который указывает отладчику временно остановить выполнение программы в определенной точке. Таким образом происходит лишь приостановка программы, которая может быть продолжена в любое время.
В этом режиме все элементы, например переменные, сохраняются в памяти, но их активность приостанавливается. Во время режима приостановки выполнения можно осуществить поиск ошибок и нарушений целостности данных, просматривая их содержимое в специальной вкладке. В режиме приостановки в программу можно вносить коррективы. Например, можно изменить значение переменной или арифметическое выражение. В таком случае программа отработает с новым значением переменной или вычисляя новое арифметическое выражение. Можно перемещать точку выполнения, изменяя оператор, который будет выполняться следующим при возобновлении выполнения программы. Красной точкой в левом поле текстового редактора Visual Studio отображается точка останова выполнения программы. Добавить новую точку можно щелчком левой клавиши мыши. (слайд) При условии, что программа запущена в режиме отладки, нажатие на клавишу F5 позволяет «прогонять» программный код от одной такой точки до другой. При этом во вкладке «Точки останова» отображаются все выставленные точки, а во вкладке «Видимые» ‑ содержимое памяти, то есть значения переменных. В процессе отладки в этой вкладке можно отслеживать изменения значений переменных и таким образом выявить возможные ошибки. Точка останова снимается повторным щелчком мышью на месте её расположения. Для точек останова могут быть заданы некоторые параметры (правый щелчок мыши на точке останова): · Параметр «Число попаданий» позволяет задать количество попаданий в точку останова перед тем, как отладчик прерывает выполнение программы. По умолчанию отладчик прерывает выполнение программы при попадании в точку останова. Можно сделать так, чтобы отладчик прерывал выполнение программы, если число попаданий будет больше одного (любое число). Это удобно для поиска ошибки в цикле. К примеру, можно выполнить цикл без остановки определенное число раз когда ошибка маловероятна и остановить выполнение в такой момент, когда переменная, участвующая в цикле, могла получить некорректное значение. · «Условие» — это выражение, определяющее, захватывается ли точка останова, или пропускается.При достижении отладчиком точки останова выполняется оценка условия.Попадание в точку останова будет лишь в том случае, если условие выполняется.
Рассмотрим пример задания условия, при котором срабатывает точка останова (слайд). Например, в этом примере задано условие с целью «отловить» критическую ситуацию «деление на ноль». Эта точка останова сработает, только если переменная num2 будет равна 0. То есть программа остановит свою работу в этой точке. В противном случае программа отработает без остановок. Представленная здесь программа конечно проста для такого рода точек останова, однако позволяет увидеть нам пользу различного рода условий для точек останова. Если бы программа была более громоздкой, а значение num2 было задано не с клавиатуры, а, скажем, являлось бы результатом предыдущих вычислений, то представленным образом легко было бы выявить ошибку «деление на ноль». Без отладчика пришлось пересчитывать все выражения в программе «вручную». Желтая стрелка в левом поле редактора В отладчике Visual Studio можно перемещать точку выполнения для задания следующего оператора кода, который должен быть выполнен. Желтая стрелка на границе исходного текста отмечает текущее расположение оператора, который должен быть выполнен следующим. Посредством перемещения этой стрелки можно пропустить часть кода или вернуться к строке, выполненной ранее (слайд). Это можно использовать при возникновении таких ситуаций, как пропуск раздела кода, содержащего известную ошибку. Нажатием на F5 при условии активного окна среды Visual Studio выполняется инструкция, на которую указывает стрелка (слайд) и стрелка перемещается дальше. Есть некоторые критические ситуации, связанные с заданием следующей инструкции для выполнения: · Инструкции между старой и новой точками не выполняются. · При перемещении точки выполнения обратно, промежуточные инструкции не отменяются. Тестирование программы Программа тестируется не для того, чтобы показать, что она работает, а скорее наоборот – тестирование начинается с предположения, что в ней есть ошибки. После тестирования эти ошибки либо исправляются, либо нет, если это, например, сказывается на эффективности её работы.
Существуют различные стратегии тестирования программы. Например, тестирование программы как черного ящика. Рассматриваются выходные данные программы при некоторых входных данных, а сама программа рассматривается как черный ящик, обрабатывающий эти данные. Здесь тестирование выявляет неожиданное поведение программы при определенных входных данных. При этом используются все, но лишь возможные (определенные в спецификации программы) входные данные. Структура самой программы не учитывается. Например, можно «прогнать» программу для минимальных и максимальных значений входных данных. Если мы тестируем калькулятор, то можно проверить все арифметические операции с различными входными данными (целыми и вещественными), проверить вариант, когда вместо числа вводится буква или вместо знака операции какой-либо другой симво, случай неверной последовательности ввода чисел и знака операции и т.д.. Однако число таких тестов будет бесконечным, поскольку бесконечно число таких входных данных. В связи с этим лучше бы придумать тест, который мог бы выявить максимально возможное число ошибок. Но для этого при создании теста необходимо учитывать логику работы программы. То есть теперь мы говорим о тестировании программы как белого ящика. При этом тестеровщик делает некоторые разумные предположения, например, о возможных входных данных. Например, при тестировании калькулятора разумно предположить, что если программа разделила 4 на 2, то она разделит и другие числа отличные от нуля. Отметим некоторые принципы, которых следует придерживать при проведении тестирования программы: 1. Необходимо предварительно определить входные и ожидаемые выходные данные. В противном случае по окончании проведения теста может быть неясно получены ошибочные или правильные результаты. 2. Необходимо фиксировать все действия от задания входных данных до получения результата. При возникновении ошибки это поможет восстановить условия, при которых возникла такая критическая ситуация. 3. Необходимо проверять не только, делает ли программа то, для чего она предназначена, но и не делает ли она то, что не должна делать. Кроме выходных результатов работы программы проводится тестирование интерфейса: нет ли грамматических ошибок? Выводятся ли сообщение об ошибке при вводе некорректных данных? Предусмотрены ли подсказки для пользователя? И т.д.
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|