Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Лабораторная работа №2

Читайте также:
  1. A) работает со всеми перечисленными форматами данных
  2. Be on the make - продолжать работать
  3. E) Работа в цикле
  4. I. Самостоятельная работа
  5. I. Самостоятельная работа
  6. I. Самостоятельная работа
  7. I.11. РАБОТА БЕЗ КАКОЙ-ЛИБО МОТИВАЦИИ

по дисциплине «Тестирование и отладка программного обеспечения»

«МОДУЛЬНОЕ ТЕСТИРОВАНИЕ»

 

 

Цель работы: закрепление практических навыков по проведению модульного тестирования.

 

Задание: в разработанном программном коде выделить модули и провести модульное тестирование согласно описанной последовательности.

 

Автор: студент гр. 107329 Дашкевич Д.Г.

 

Проверил: доцент кафедры ПОВТиАС, к.т.н. Попова Ю.Б.

 

1. Провести обзор разработанного программного кода. Сделать отчет о найденных в процессе обзора ошибках в таблицу:

 

№ Ошибки Название модуля Описание ошибки Важность ошибки (низкая, средняя, высокая) Ошибка исправлена Да/Нет
      public ViewResult Index() public ViewResult sorts() public ViewResult sorts1() public ViewResult sorts2() public ViewResult sorts3() public ActionResult Search() public ViewResult Details() public ActionResult About() protected override void Dispose()   Отсутствуют комментарии перед описанием метода     низкая     Да
         
    changePassword()   Отсутствует код обработки ошибок (try/catch)     средняя     Да
         
      public ActionResult Search()   Отсутствие преобразование одного базового типа данных к другому базовому типу   высокая   Да
         
      public class ProductController   Отсутствие поиска в контролере     высокая     Да
         
    public class ProductController   Объявлена переменная, не используемая в программе     средняя     Да
         
    Public ActionResult Edit()   Функция не возвращает результат проверки     средняя     Да
         
      public ViewResult sorts4()     Присутствует обработчик не используемый в программе     средняя     Да
         
    public class ChangePassword Model0 public class LogOnModel() public class RegisterModel()   Отсутствует проверка на корректность введенных данных   высокая   Да
         
           

 

2. Построить графы для каждого модуля (как минимум 5) и привести в отчете соответствующий им программный код.

 

Метод ViewResult Details() класса ProductController;

В данном методе последовательное выполнение.

 

Product1 product = db.Product1.Single(p => p.ID == id);

return View(product);

 

 

Метод ActionResult Edit() класса ProductController;

В данном методе используются конструкция if.

if (ModelState.IsValid)

{

db.Product1.Attach(product);

db.ObjectStateManager.ChangeObjectState(product, EntityState.Modified);

db.SaveChanges();

return RedirectToAction("Index");

}

return View(product);

 

 

Метод ActionResult Create () класса ProductController;

В данном методе используются конструкции if.

 

if (ModelState.IsValid)

{

db.Product1.AddObject(product);

db.SaveChanges();

return RedirectToAction("Index");

}

 

return View(product);

 

Метод ActionResult Register() класса AccountController;

В данном методе используются конструкции if, if-else.

 

if (ModelState.IsValid)

{

// Attempt to register the user

MembershipCreateStatus createStatus;

Membership.CreateUser(model.UserName, model.Password, model.Email, null, null, true, null, out createStatus);

 

if (createStatus == MembershipCreateStatus.Success)

{

FormsAuthentication.SetAuthCookie(model.UserName, false);

return RedirectToAction("Index", "Home");

}

else

{

ModelState.AddModelError("",ErrorCodeToString(createStatus));

}

}

return View(model);

 

 

Метод ActionResult LogOn() класса AccountController;

В данном методе используются конструкции if, if-else.

 

if (ModelState.IsValid)

{

if (Membership.ValidateUser(model.UserName, model.Password))

{

FormsAuthentication.SetAuthCookie(model.UserName, model.RememberMe);

if (Url.IsLocalUrl(returnUrl) && returnUrl.Length > 1 && returnUrl.StartsWith("/")

&&!returnUrl.StartsWith("//") &&!returnUrl.StartsWith("/\\"))

{

return Redirect(returnUrl);

}

else

{

return RedirectToAction("Index", "Home");

}

}

else

{

ModelState.AddModelError("", "The user name or password provided is incorrect.");

}

}

return View(model);

 

3. Вычислить цикломатические числа для построенных графов.

Цикломатическое число процедуры вычисляется по формуле:

G = R-V+2, где

 

R – количество ребер графа;

V – количество вершин графа

 

1) G = 1-2+2=1

 

2) G=6-6+2 =2

 

3) G = 5-5+2=2

 

4) G=10-9+2 =3

5) G = 10-8+2=4

 

4. Разработать тестовые случаи для ручного модульного тестирования.

Тестовые случаи для каждого графа представить в виде таблицы:

 

Метод ViewResult Details() класса ProductController;

  G № сце-нария Описание прохода Контрольные примеры, позволяющие реализовать описанную ситуацию Тест пройден Да/Нет
G=1   1-2 Нажать на кнопку ” Details ” для отображения деталей Нет

 

 

Метод ActionResult Edit() класса ProductController;

  G № сце-нария Описание прохода Контрольные примеры, позволяющие реализовать описанную ситуацию Тест пройден Да/Нет
G=2   1-2-3-4-5-6 При изменении введены корректные данные, изменения добавлены Да
  1-6 Введены не корректные данные Да

 

Метод ActionResult Create () класса ProductController;

  G № сце-нария Описание прохода Контрольные примеры, позволяющие реализовать описанную ситуацию Тест пройден Да/Нет
G=2   1-2-3-4-5 Введены корректные данные и новый продукт добавлен Да
  1-5 Введены не корректные данные Да

 

Метод ActionResult Register() класса AccountController;

  G № сце-нария Описание прохода Контрольные примеры, позволяющие реализовать описанную ситуацию Тест пройден Да/Нет
G=3   1-2-3-4-5-6-7-8-9 Данные введены корректно, новый пользователь зарегистрирован Да
  1-2-3-4-7-8-9 При регистрации указан уже зарегистрированный логин Да
  1-9 При регистрации введены не корректные данные Да

 

 

Метод ActionResult LogOn() класса AccountController;

  G № сце-нария Описание прохода Контрольные примеры, позволяющие реализовать описанную ситуацию Тест пройден Да/Нет
G=4   1-2-3-4-5-6-7-8 Введены корректные данные, пользователь авторизован, и данные сохранены Да
  1-2-4-5-6-7-8 Введены корректные данные, пользователь авторизован Да
  1-2-7-8 Введены не корректные данные, пользователя с введенным логином и паролем не существует Да
  1-8 Введены не корректные данные Да

 

 

5. Провести запуски модулей согласно разработанным тестовым

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

№ Ошибки Назва-ние модуля Описа-ние прохода Контрольные примеры, позволяющие реализовать описанную ситуацию Описание ошибки Важность ошибки (низкая, средняя, высокая) Ошибка исправлена Да/Нет
    ViewResult Details() 1-2 Нажать на кнопку ” Details ” для отображения деталей   Не отображаются детали     высокая     Да
             
                   

6. Построить схему взаимодействия модулей (или объектов).

 

Схема 1 – Взаимодействие модулей в программном продукте

7. Разработать последовательности подключения модулей (объектов) для интеграционного тестирования:

 

№ в после- дователь-ности Описание последователь-ности Контрольные примеры, позволяющие реализовать описанную ситуцию Тест пройден Да/Нет
  Home/Index.cshtml -> HomeController.cs -> Product -> Product/Index.cshtml -> Product Controller.cs -> Details -> Product/Details.cshtml ->   Просмотр данных о продукте Нет
  Home/Index.cshtml -> AccountController.cs -> LogOn() -> Register() -> Регистрация нового пользователя Да
  Home/Index.cshtml -> AccountController.cs -> LogOn() -> Авторизация: Login=”admin” Password=”123456”   Да

 

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

 

№ Ошибки Описание последователь-ности Контрольные примеры, позволяющие реализовать описанную ситуацию Описание ошибки Важность Ошибки Ошибка исправлена Да/Нет
  Product/Index.cshtml -> Product Controller.cs -> Details -> Product/Details.cshtml -> Просмотр данных о продукте Не происходит просмотр Важная Да
                   

 

9. Сделать выводы по работе.

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


Дата добавления: 2015-10-26; просмотров: 126 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
Данные для решения| Алгоритм модели

mybiblioteka.su - 2015-2024 год. (0.015 сек.)