- •Содержание
- •Введение
- •1 Предпроектная стадия
- •1.1 Сбор материалов обследования
- •1.1.1 Описание предметной области
- •1.1.2 Примеры разработок проектов для аналогичных систем
- •1.1.3 Описание выбранных методов проведения обследования
- •1.1.4 Описание выбранных методов сбора материалов обследования
- •1.1.5 Программа обследования
- •1.1.6 Разработка календарного плана-графика
- •1.1.7 Сбор и формализация материалов обследования
- •1.2 Анализ материалов обследования
- •1.2.1 Обоснование и список объектов автоматизации
- •1.2.2 Обоснование списка задач по объекту автоматизации
- •1.2.3 Обоснование выбора комплекса технических средств
- •1.2.4 Обоснование выбора операционной системы
- •1.2.5 Обоснование выбора и описание организации информационной базы и программного средства
- •1.2.6 Модели функционирования объекта
- •1.2.7 Разработка технико-экономического обоснования и технического задания
- •2 Стадия технического проектирования
- •2.1 Основные положения по проекту информационной системы
- •2.2 Описание организационной структуры
- •2.3 Описание функциональной структуры
- •2.4 Принципы организации информационного обеспечения
- •2.5 Постановки задач
- •2.5.1 Регистрация
- •2.5.2 Авторизация
- •2.5.3 Добавление товара
- •2.5.4 Добавление товара в корзину и редактирование корзины
- •2.5.5 Оформление заказа
- •Описание структур входных и выходных сообщений
- •2.6 Диаграммы прецедентов Use-case
- •2.6.1 Диаграммы последовательности uml
- •2.6.2 Диаграммы состояний uml
- •2.6.3 Диаграммы деятельности uml
- •2.6.4 Диаграммы сотрудничества uml
- •2.7 Разработка форм документов и системы их ведения
- •2.7.1 Определение состава результатных показателей
- •2.7.2 Определение состава первичных показателей
- •2.7.3 Разбиение показателей по формам документов
- •2.7.4 Проектирование форм документов
- •2.7.5 Определение способа нанесения информации на документы
- •2.8.4 Разработка инструктивных материалов по сбору и обработке данных
- •2.8.5 Сбор и обработка данных
- •2.9 Структуры входных и выходных сообщений
- •2.10 Описание состава и характеристик периферийной техники
- •2.11 Описание состава и характеристик аппаратной платформы проекта
- •2.12 Система защиты информации
- •2.13 Проектно-сметная документация и показатели эффективности
- •2.14 План мероприятий по внедрению информационной системы
- •3 Стадия рабочего проектирования (рабочий проект)
- •3.1 Описание программы
- •3.2 Результаты тестирования системы
- •3.3 Расчет экономической эффективности. Разработка проектно-сметной документации
- •3.4 Показатели экономической эффективности
- •Заключение
3.2 Результаты тестирования системы
Тестирование является одним из этапов жизненного цикла ПО, направленным на повышение качественных характеристик. Применительно к ПО тестирование – это процесс многократного выполнения программы с целью обнаружения ошибок.
Принципы тестирования:
процесс тестирования более эффективен, если проводится не автором программы;
описание предполагаемых значений результатов тестовых прогонов должно быть необходимой частью тестового набора данных;
необходимо досконально изучать результаты применения каждого теста;
тесты для неправильных и непредусмотренных входных данных должны разрабатываться также тщательно, как для правильных, предусмотренных;
необходимо проверять не только, делает ли программа то, для чего она предназначена, но и не делает ли она то, что не должна делать;
вероятность наличия необнаруженных ошибок в части программы пропорциональна числу ошибок, уже обнаруженных в этой части.
Методы тестирования:
статическое тестирование – наиболее формализованное, базируется на правилах структурного построения программ и обработки данных, проверка степени выполнения этих правил проводится без изменения объектного кода программы путем формального анализа текста программы на языке программирования;
детерминированное тестирование, которое требует многократного выполнения программы на ЭВМ с использованием определенных, специальным образом подобранных тестовых наборов данных; контролируется каждая комбинация исходных данных и соответствующие результаты, а также каждое утверждение в спецификации тестируемой программы;
стохастическое тестирование предполагает использование в качестве исходных данных множества случайных величин с соответствующими распределениями, а для сравнения полученных результатов используются также распределения случайных величин;
тестирование в реальном масштабе времени – проверяются результаты обработки исходных данных с учетом времени их поступления, длительности и приоритетности обработки, динамики использования памяти и взаимодействия с другими программами, при обнаружении отклонений результатов выполнения программ от ожидаемых для локализации ошибок приходится фиксировать время и переходить к детерминированному тестированию.
Детерминированное тестирование основывается на двух подходах: структурное тестирование и функциональное тестирование.
При построении тестовых наборов данных по принципу «белого ящика» (структурное тестирование) руководствуются следующими критериями:
покрытие операторов – предполагает выбор такого тестового набора данных, который вызывает выполнение каждого оператора в программе хотя бы один раз;
покрытие узлов ветвления (покрытие решений) – предполагает разработку такого количества тестов, чтобы в каждом узле ветвления был обеспечен переход по веткам «истина» и «ложь» хотя бы один раз;
покрытие условий – если узел ветвления содержит более одного условия, тогда нужно разработать число тестов, достаточное для того, чтобы возможные результаты каждого условия в решении выполнялись, по крайней мере, один раз каждой точке входа в программу должно быть передано управление при вызове;
комбинаторное покрытие условий – требует создания такого числа тестов, чтобы все возможные комбинации результатов условия в каждом решении и все точки входа выполнялись, по крайней мере, один раз;
метод эквивалентного разбиения – построение тестов методов эквивалентного разбиения;
анализ граничных значений – предполагает исследование ситуаций, возникающих на границах и вблизи границ эквивалентных разбиений;
метод функциональных диаграмм – заключается в преобразовании входной спецификации программы в функциональную диаграмму (диаграмму причинно-следственных связей) с помощью простейших булевских отношений, построения таблицы решений (методом обратной трассировки), которая является основой для написания эффективных тестовых наборов данных.
Критерии завершенности тестирования:
когда время, отведенное по графику на тестирование, истекло;
когда все тесты выполняются без выявления ошибок (т.е. оказались неудачными);
критерий, основанный в значительной степени на здравом смысле и информации о количестве ошибок, полученных в процессе тестирования (для этого строят график зависимости количества ошибок и времени их появления, по форме полученной кривой можно определить, стоит продолжать тестирование или нет);
подход, при котором для определения критерия завершенности тестирования используются количественные показатели надежности, рассчитываемые по моделям надежности.
Для тестирования разработанной системы применялись методы детерминированного тестирования. Тестовые данные подбирались с учетом критериев покрытия операторов, покрытия узлов ветвления, покрытия условий и анализа граничных значений.
Всякая достаточно большая система не может быть протестирована за один раз. Поэтому можно выделить следующие этапы тестирования:
тестирование модулей, которое производится в случае, если модуль может быть проверен автономно от других модулей. При этом необходимо убедительно продемонстрировать, что модуль работает корректно во всех граничных условиях;
тестирование подсистем, целью которого является проверка сопряжения между собой модулей, входящих в подсистему, корректную передачу данных между ними;
тестирование системы. На этом уровне выявляются ошибки сопряжения, сложные ошибки быстродействия и емкости, логические ошибки.
В качестве критериев полноты тестирования можно рекомендовать: число тестов, на которых была проверена программа; число часов правильного функционирования программы; процент модулей, проверенных при тестировании.
