Лабораторная работа 8

2017-12-22СтудИзба

Описание файла

Документ из архива "Лабораторная работа 8", который расположен в категории "". Всё это находится в предмете "технология проектирования" из 10 семестр (2 семестр магистратуры), которые можно найти в файловом архиве МГТУ им. Н.Э.Баумана. Не смотря на прямую связь этого архива с МГТУ им. Н.Э.Баумана, его также можно найти и в других разделах. Архив можно найти в разделе "лабораторные работы", в предмете "технология проектирования" в общих файлах.

Онлайн просмотр документа "Лабораторная работа 8"

Текст из документа "Лабораторная работа 8"

Верификация и тестирование программного обеспечения

Учебно-методические материалы «Верификация и тестирование программного обеспечения» представляют собой методические указания к лабораторной работе по дисциплинам «Технолоогии разработки программного обеспечения» (по направлению магистерской подготовки) и «Технологии проектирования» (по направлению инженерной подготовки).

В материалах рассмотрены принципы проведения тестирования программного обеспечения. Приведены методы проведения автоматического тестирования в среде MS Visual Studio. Рассмотрены примеры тестов. В заключительной части методических указаний приведены контрольные вопросы, список рекомендуемой литературы и пример задания.

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

Оглавление

Теоретическая часть 2

Ручное тестирование 2

Драйвер тестирования 5

Автоматическое модульное тестирование 9

Покрытие кода тестами 16

Упорядоченные тесты 18

Задание 23

Контрольные вопросы 24

Литература 24

Теоретическая часть

Ручное тестирование



Ручное тестирование в MVSTE представляет собой сценарий выполнения теста.

Рассмотрим процесс создания ручного теста. Сначала создадим новый тестовый проект. Для этого зайдем в File->New->Project… (можно также нажать Ctrl+Shift+N или нажать на иконке на панели Standart)

В появившемся диалоговом окне New Project выберем тип проекта Visual C#->Test-> Test Project (если язык C# не выбран по умолчанию в MVSTE, то выберите Test Project->Test Documents-> Test Project). В поле Name зададим имя нашего проекта (например, ManualTestProject). Нажмем ОК. (рис. 5.4)


Рис. 5.4.  Диалоговое окно New Project

Новый тестовый проект создан.

Теперь посмотрим на окно Solution Explorer (рис.5.5). Созданный тестовый проект содержит три файла, связанных с тестированием:

AuthoringTest.txt

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

UnitTest1.cs

Пустая структура unit test класса, куда помещаются дополнительные тесты.

ManualTest1.mht

Шаблон в формате Word, который заполняется инструкциями при ручном тестировании.


Рис. 5.5.  Окно Solution Explorer

Замечание. Файл UnitTest1.cs нам не понадобится для ручного тестирования, поэтому его можно удалить из проекта. Для этого в Solution Explorer щелкнем по нему правой кнопкой мыши и нажмем в появившемся контекстном меню Delete. В появившемся окошке подтверждаем удаление, нажав OK.

Замечание. Если на вашем компьютере не установлен Microsoft Office 2003, то файл ManualTest1.mht не будет создан. Для добавления в проект шаблона для ручного тестирования нужно в меню Test выбрать New Test. В появившемся диалоговом окне Add New Test выбрать Manual Test(text format). В поле Test Name нужно ввести название теста, например ManualTest1.mtx. Ни в коем случае нельзя менять разрешение этого файла. В поле Add to Test Project выберем созданный нами ранее ManualTestProject. Нажмем OK. (рис. 5.6) В наш тестовый проект будет добавлен файл с ручным тестом ManualTest1.mtx.


Рис. 5.6.  Диалоговое окно Add New Test

Теперь убедимся, что ручной тест добавлен и готов к выполнению. В меню Test нажмем на пункт Windows и в открывшемся подменю выберем Test View. Откроется окно Test View, в котором виден тест MyManualTest (рис. 5.7).

Р
ис. 5.7.
  Окно Test View

Новый ручной тест добавлен, и теперь все готово к его редактированию. Необходимо открыть шаблон теста (например, сделав двойной клик мышкой по ManualTest1.mht (ManualTest1.mtx) в Solution Explorer). Далее, следуя инструкции, вводим информацию о тесте в шаблон. Шаблон включает в себя название теста (Test Title), описание теста (Test Details), функциональность, которую надо проверить (Test Target), действия, которые необходимо совершить для проведения теста (Test Steps), и описание истории изменений теста (Revision History). После завершения редактирования необходимо сохранить шаблон.

Следующий этап – выполнение теста тестировщиком.

В окне Test View нажмем правой кнопкой мыши по созданному нами ручному тесту (ManualTest1) и выберем Run Selection (или нажмем в окне Test View на кнопку ).

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

Откроется окно Test Results, в котором наш тест будет помечен как Pending (выполняется), и окно MyManualTest[Running], начинающее выполнение теста. Следуя сценарию теста и оставляя свои комментарии в верхней части окна, тестировщик выполняет тест, после чего указывает, пройден тест или нет (Pass/Fail), и нажимает Apply в верхней части экрана. В окне Test Results отобразятся изменения, то есть вместо Pending будет Passed или Failed (в зависимости от того, что вы указали в окне MyManualTest[Running] после выполнения ручного теста).

Замечание. Результаты выполнения тестов можно экспортировать в отдельный файл. Для этого в окне Test Result надо нажать на кнопку Export Test Run Results , указать имя и местоположение файла.

Драйвер тестирования

Тестовое окружение для программного кода на структурных языках программирования состоит из двух компонентов – драйвера, который обеспечивает запуск и выполнение тестируемого модуля, и заглушек, которые моделируют функции, вызываемые из данного модуля. Разработка тестового драйвера представляет собой отдельную задачу тестирования, сам драйвер должен быть протестирован, дабы исключить неверное тестирование. Драйвер и заглушки могут иметь различные уровни сложности, требуемый уровень сложности выбирается в зависимости от сложности тестируемого модуля и уровня тестирования. Так, драйвер может выполнять следующие функции:

  • Вызов тестируемого модуля

  • 1 + передача в тестируемый модуль входных значений и прием результатов

  • 2 + вывод выходных значений

  • 3 + протоколирование процесса тестирования и ключевых точек программы

Заглушки могут выполнять следующие функции:

  • Не производить никаких действий (такие заглушки нужны для корректной сборки тестируемого модуля и

  • Выводить сообщения о том, что заглушка была вызвана

  • 1 + выводить сообщения со значениями параметров, переданных в функцию

  • 2 + возвращать значение, заранее заданное во входных параметрах теста

  • 3 + выводить значение, заранее заданное во входных параметрах теста

  • 3 + принимать от тестируемого ПО значения и передавать их в драйвер

Тестовое окружение для объектно-ориентированного ПО выполняет те же самые функции, что и для структурных программ (на процедурных языках). Однако, оно имеет некоторые особенности, связанные с применением наследования и инкапсуляции.

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

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

  • Драйвер создает один или больше объектов тестируемого класса, все обращения к объектам происходят только с использованием их внешнего интерфейса. Текст драйвера в этом случае представляет собой т.н. тестирующий класс, который содержит по одному методу для каждого тестового примера. Процесс тестирования заключается в последовательном вызове этих методов. Вместо заглушек в состав тестового окружения входит программный код реальной системы, соответственно, отсутствует изоляция тестируемого класса. Именно такой подход к тестированию принят сейчас в большинстве методологий и сред разработки. Его классическое название – unit testing (тестирование модулей).

  • Аналогично предыдущему подходу, но для всех классов, которые использует тестируемый класс, создаются заглушки

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

  • Используются специальные средства доступа к закрытым данным и методам класса на уровне объектного или исполняемого кода – скрипты отладчика или accessors в Visual Studio.

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

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

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

На этом семинаре мы сами напишем простой тестовый драйвер на C# для тестирования функций "Калькулятора", используя спецификацию второго семинара.

Для начала рассмотрим функцию деления. Для простоты будем пользоваться лишь четырьмя общими тест- требованиями.

  • Оба входных параметра принадлежат допустимой области, и выходное значение принадлежит допустимой области.

  • Первый входной параметр принадлежит допустимой области, второй не принадлежит допустимой области

  • Первый входной параметр не принадлежит допустимой области, второй принадлежит допустимой области

  • Оба входных параметров принадлежат допустимой области, а значение функции не принадлежит допустимой области.

Составим программу:

private void buttonStartDel_Click(object sender, EventArgs e)

{

try

{

richTextBox1.Text = "";

richTextBox1.Text += "Test Case 1\n";

richTextBox1.Text += "Входные данные: a= 78508, b = -304\n";

richTextBox1.Text += "Ожидаемый результат: res = 78204 &&

error = \"\""+"\n";

int res = CalcClass.Add(78508, -304);

string error = CalcClass.lastError;

richTextBox1.Text += "Код ошибки: " + error + "\n";

richTextBox1.Text += "Получившийся результат: " +"res = "+

res.ToString() +" error = "+error.ToString() +"\n";

if (res == 78204 && error == "")

{

richTextBox1.Text += "Тест пройден\n\n";

}

else

{

richTextBox1.Text += "Тест не пройден\n\n";

}

Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5167
Авторов
на СтудИзбе
437
Средний доход
с одного платного файла
Обучение Подробнее