Читайте также: |
|
по дисциплине «Тестирование и отладка программного обеспечения»
«МОДУЛЬНОЕ ТЕСТИРОВАНИЕ»
Цель работы: закрепление практических навыков по проведению модульного тестирования.
Задание: в разработанном программном коде выделить модули и провести модульное тестирование согласно описанной последовательности.
Автор: студент гр. 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 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Данные для решения | | | Алгоритм модели |