Тестирование и отладкапрограммного комплекса — КиберПедия 

Семя – орган полового размножения и расселения растений: наружи у семян имеется плотный покров – кожура...

Двойное оплодотворение у цветковых растений: Оплодотворение - это процесс слияния мужской и женской половых клеток с образованием зиготы...

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

2017-12-12 406
Тестирование и отладкапрограммного комплекса 0.00 из 5.00 0 оценок
Заказать работу

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

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

Детерминированное тестирование требует многократного выполнения программы с использованием специально подобранных тестовых наборов данных.

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

Для проведения тестирования необходимо разработать тестовый набор данных. Разработка тестовых наборов основывается на двух основных подходах: структурное тестирование (тестирование по стратегии белого ящика) и функциональное тестирование (тестирование по стратегии черного ящика).

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

1. Покрытие операторов. Выбирается тестовый набор данных, который вызывает выполнение каждого оператора программы ровно один раз

2. Покрытие решений. Требуется создать тестовый набор данных, в котором в каждом узле ветвления, должен быть обеспечен проход по веткам «истина-ложь» как минимум один раз.

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

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

Задача функционального тестирования проверить соответствие реализованных функций требованиям, а также определить способность программного средства решать поставленные задачи [6].Тестирование черного ящика является тестированием по входу и выходу, то есть тестирование происходит непосредственно через интерфейс программного средства без доступа к его коду.

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

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

Метод эквивалентного разбиения заключается, в разбиении на конечное число групп (классы эквивалентности) по каждому параметру область всех возможных наборов входных данных. Затем по принципу обнаружения схожих ошибок происходит объединение наборов данных. Соответственно, в случае если набор какого-либо класса обнаружит ошибку, то тогда все остальные тесты этого класса эквивалентности также обнаружат данную ошибку. Выделение классов эквивалентности опирается на следующие правила:

· если некоторый параметр может принимать значения в заданном интервале, то выделяется один правильный класс, соответствующий этому интервалу и два неправильных;

· если условие описывает множество входных значений, то для каждого значения выделяется по одному правильному классу эквивалентности и один неправильный;

· если условие описывает конкретное значение, то определяется один неправильный и один правильный классы эквивалентности.

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

· форма регистрации пользователей

· форма создания заявки пациента

· доступность разделов интерфейса по ролям пользователей

· алгоритм оптимизации маршрута по заявкам пациентов

Для разработки тестовых наборов данных были построены классы эквивалентности, представленные в таблице 2.3:

Таблица 2.3

Классы эквивалентности

Объект тестирования Правильный класс эквивалентности Неправильные класс эквивалентности
Форма регистрации пользователей
Электронная почта Формат строки соответствует шаблону: <имя>@<доменное имя>. Не соответствует шаблону: <имя>@<доменное имя>.
Пароль Длина не менее 6 символов и не более 255 Длина менее 6 символов или более 255
Подтверждение пароля Совпадает с полем «Пароль» Не совпадает с полем «Пароль»
Фамилия Имя Отчество Формат строки соответствует шаблону: <Фамилия><Имя> [Отчество] Длина строки не более 255 символов Длина строки более 255 символов или не соответствует шаблону: <Фамилия><Имя> [Отчество]
Адрес Обязательно для заполнения Длина строки не более 255 символов Не заполнено или длина строки более 255 символов
Телефон Обязательно для заполнения Формат строки соответствует шаблону: +X(XXX)XXX-XX-XX Содержит только цифры Не заполнено или не соответствует шаблону: +X(XXX)XXX-XX-XX Или содержит недопустимые символы
Создание/отмена заявки пациента
Выбор врача Врач выбран Врач не выбран
Комментарий Длина строки не более 255 символов Длина строки более 255 символов
       

 

Продолжение таблицы 2.3

Оптимизация маршрута врача при создании/отмены заявки Маршрут врача оптимизируется Маршрут врача не оптимизируется
Доступность разделов интерфейса по ролям
Врач Доступны разделы: «Сводка», «Планирование», «Маршрут» Недоступны разделы: «Запись», «Управление» Доступны один или несколько разделов: «Запись», «Управление» Недоступен один или несколько разделов: «Сводка», «Планирование», «Маршрут»
Пациент Доступны разделы: «Запись» Недоступныразделы: «Планирование», «Маршрут», «Сводка», «Управление», «Статистика» Доступны один или несколько разделов: «Сводка», «Планирование», «Маршрут», «Управление», «Статистика» Недоступен один или несколько разделов: «Запись»
Администратор Доступны разделы: «Управление», «Статистика» Недоступныразделы: «Планирование», «Маршрут», «Сводка», «Запись» Доступны один или несколько разделов: «Планирование», «Маршрут», «Сводка», «Запись» Недоступен один или несколько разделов: «Управление», «Статистика»

 

Далее, на основании построенных классов эквивалентности, разработаны тестовые наборы данных представление в таблице 2.4:

Таблица 2.4

Результаты тестирования

Входныеданные Предполагаемые выходные данные
Форма регистрации пользователей
  Электронная почта: [email protected] Пароль: 123456 Подтверждение пароля: 123456 ФИО: Тишкин Дмитрий Сергеевич Адрес:. Богданова 48к1, кв. 42 Телефон: +7(999)999-99-99 Верно Верно Верно Верно Верно Верно Данные сохранены, пользователь зарегистрирован.

Продолжение таблицы2.4

  Электронная почта: dmitrymaulru Пароль: 12345 Подтверждение пароля: 123 ФИО: Адрес: Телефон: +7(999)999-99-99-999999 Неверный адрес почты Длина пароля должна быть минимум 6 символов Пароли не совпадают Поле «ФИО» обязательно для заполнения Поле «Адрес» обязательно для заполнения Неверный номер телефона Ошибка, неверный ввод данных
  Электронная почта: dmitrymaulru Пароль: (более 255 символов) Подтверждение пароля: (строка 255 символов) ФИО: (более 255 символов) Адрес: (более 255 символов) Телефон: +7(999)TEL-TT-TT Неверный адрес почты Длина пароля должна быть не более 255 символов Пароли совпадают   Поле «ФИО» не должно превышать 255 символов Поле «Адрес» не должно превышать 255 символов Неверный номер телефона Ошибка, неверный ввод данных
Создание/отмена заявки пациента
  Выбор врача: (выбран врач из списка) Комментарий: высокая температура Верно Верно Заявка зарегистрирована Маршрут выбранного врача перестроен и оптимизирован
  Выбор врача: Комментарий: (более 255 символов) Необходимо выбрать врача Комментарий не должен превышать 255 символов Ошибка. Заявка не зарегистрирована
Доступные разделы интерфейса по ролям
  Авторизация под пользователем с ролью «Пациент». Переход в разделы: «Запись» «Сводка» «Планирование» «Маршрут» «Управление» «Статистика»     Доступен Недоступен Недоступен Недоступен Недоступен Недоступен
  Авторизация под пользователем с ролью «Врач». Переход в разделы: «Запись» «Сводка» «Планирование» «Маршрут» «Управление» «Статистика» Недоступен Доступен Доступен Доступен Недоступен Недоступен
  Авторизация под пользователем с ролью «Администратор» Переход в разделы: «Запись» «Сводка» «Планирование» «Маршрут» «Управление» «Статистика» Недоступен Недоступен Недоступен Недоступен Доступен Доступен
       

 

В ходе тестирования были выявлены различные ошибки. В таблице 2.5 представлен анализ выявленных ошибок и их исправление.

Таблица 2.5

Анализ выявленных ошибок

Ошибка Тип ошибки Коррекция
  elem = matrix.elements[j].rows[i] Ошибка манипулирования данными elem = matrix.rows[i].elements[j]
  Record.findOne {id_patient: user.id} Ошибка манипулирования данными Record.findOne {id_patient: req.user.get "id"}
  bestAnt.ribs.feromon = @p * feromon + sum Ошибка манипулирования данными bestAnt.ribs[reb].feromon = @p * feromon + sum
  Math.random() * (min - max) + min Ошибка вычисления Math.random() * (max - min) + min
  sum = (@q / ants[item].timePath) Ошибка вычисления sum += (@q / ants[item].timePath)
  if req.body.email or req.body.password or req.body.login or req.body.address or req.body.latLng or req.body.phone or Ошибка логики if not req.body.email or not req.body.password or not req.body.login or not req.body.address or not req.body.latLng or not req.body.phone or not
  if (currentVarisnt j) and not (j in path) and (iisntitem.was) Ошибка логики if (currentVar is j) and not (j in path) and (i is item.was)
  if elem.timePath>bestAnt.timePath then bestAnt = elem Ошибка логики if elem.timePath<bestAnt.timePath then bestAnt = elem
  elem = arr.filter (item) -> rand <= item.min and rand >= item.max Ошибка логики elem = arr.filter (item) -> rand >= item.min and rand <= item.max
  if worker._doc.patients.length< 4 Ошибка логики if worker._doc.patients.length< 3

 

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

· Регистрация пользователей осуществляется без ошибок и с проверкой правильности данных.

· Обработка заявок выполняется успешно. Маршрут врача перестраивается при появлении новых пациентов

· Достигается безопасность за счет запрета на переход и получения данных из недоступных разделов пользователю

 

 

Инструкция пользователю

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

Минимальные требования для полноценной работы с веб-комплексом:

· Процессор с частотой 1 ГГц

· Объем оперативной памяти 512 МБ

· Свободное дисковое пространство 100 МБ

· Интернет соединение – 256 Кбит/с

Состав программного обеспечения:

· БраузерGoogleChrome42илиSafari10 (а также мобильные версии)

· Операционная система – iOS 7, Android 5, WindowsVistaили MacOSLion

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

· Пациент – возможность создавать и отменять ранее созданный вызов врача, оставлять комментарий с причиной вызова

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

· Администратор – изменять роли пользователей, назначать врачей и новых администраторов, наблюдать за статистикой и сравнивать сходимость фактического и оптимизированного времени потраченного врачами на обход пациентов

Навигация. На рисунке 2.10 отображены все разделы для навигации по веб-комплексу для каждой группы пользователей.

Рисунок 2.10. Навигация по веб-комплексу

Авторизация – предлагает вход или регистрацию для посетителей веб-комплекса.

Профиль – включает раздел «Редактирование», где пользователь может изменить личные данные (почту, пароль, адрес, ФИО и так далее).

Запись – раздел предоставляет форму создания заявки на вызов врача. В выпадающем списке (рисунок 2.11) пользователь может выбрать, работающего на текущий день, врача с подходящим временем прибытия на дом.

Рисунок 2.11. Список врачей

Далее заполнив поле «Комментарий» пользователю необходимо нажать кнопку «Записаться» для подтверждения заявки. Для отмены заявки нажать кнопку «Отменить».

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

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

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

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

Управление – раздел управления пользователями, предоставляет возможность задавать и изменять роли пользователей.

 

 

Выводы по второй главе

В данной главе выпускной квалификационной работыбыли рассмотрены и определены программные и аппаратные средства, с помощью которых был реализован программный комплекс построения оптимального маршрута обхода пациентов на основе веб-технологий. Серверная часть программного средства разработана на основе Nodeв архитектуре REST. Клиентская часть построена как одностраничное приложение (SPA) с помощьюJavaScriptфреймворкаReact. В роле базы данных применяется не реляционная СУБД MongoDB. Затем были разработаны архитектура веб-комплекса и алгоритм оптимизации маршрута обхода пациентов, а также приведено подробное описание компонентов программного средства и их назначение. После завершения разработки системы было проведено тестирование методом эквивалентного разбиения с последующей отладкой и повторным завершающим тестированием, результат которого не показал дополнительныхошибок, что подтвердило возможность полноценного использования программного средства. Таким образом, программное средство готово для проведения дальнейших испытаний и оценки надежности и эффективности.

 


Поделиться с друзьями:

Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов (88‰)...

Таксономические единицы (категории) растений: Каждая система классификации состоит из определённых соподчиненных друг другу...

Механическое удерживание земляных масс: Механическое удерживание земляных масс на склоне обеспечивают контрфорсными сооружениями различных конструкций...

Эмиссия газов от очистных сооружений канализации: В последние годы внимание мирового сообщества сосредоточено на экологических проблемах...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.033 с.