- •Введение
- •1. Постановка задачи
- •1.1 Обсуждение проблемы, предметная область, описание предметной области.
- •1.2 Определение цели и назначения продукта, потенциальных пользователей системы.
- •1.3. Определение цели и назначения продукта, потенциальных пользователей системы.
- •1.4 Предполагаемый эффект для пользователей
- •2. Требования к проектируемой системе
- •2.1 Построение модели прецедентов
- •2.2 Согласование с заказчиком возможностей системы и условий, которым она должна удовлетворять.
- •2.3 Определение ограничений на функционирование
- •2.4 Выбор конфигураций и потребляемых ресурсов.
- •3. Построение модели анализа проекта
- •3.1 Участники процесса разработки по
- •3.2 Выявление классов
- •4. Технико-экономическое обоснование проекта
- •4.1 Выбор экономической модели и типа программного проекта
- •4.2 Расчет трудоемкости и длительности разработки
- •4.2.1 Анализ и проектирование
- •4.2.2 Кодирование
- •4.2.3 Отладка и тестирование
- •4.3 Оценка стоимости разработки программного продукта
- •4.3.1 Затраты на материально-техническое обеспечение
- •4.3.2 Заработная плата
- •4.3.3 Накладные расход
- •4.3.4 Единый социальный налог
- •5. Проведение проектирования
- •5.1 Архитектура системы
- •5.2 Диаграмма деятельности
- •5.3 Диаграмма последовательности
- •5.4 Тестирование
- •Заключение
- •Список использованных источников
5.3 Диаграмма последовательности
Средство для обозначения очередности следования друг за другом различных сообщений (стимулов), с помощью которых объекты взаимодействуют между собой. Например, при необходимости проработки буквально по шагам очень важного участка выполнения программы. Главный акцент – порядок и динамика поведения, т.е. как и в каком порядке происходят события (рис. 4).
5.4 Тестирование
Для того чтобы протестировать программу, нужно попытаться заставить ее работать неверно.
В силу этого принципа процесс тестирования обретает цель: его единственная задача — найти ошибки, инициируя неудачное выполнение. Любое умозаключение по поводу качества относится к области гарантии качества, но никак не к области тестирования. Это определение также напоминает нам, что тестирование, в отличие от отладки, не связано с исправлением ошибок, — оно связано только лишь с их поиском.
Тестирование программного продукта производится очень долго, т.к. систему нельзя назвать стабильной. То есть предпочтительно регрессионное тестирование.
Регрессивное тестирование. Любое неудачное выполнение должно порождать тестовый случай, который навсегда становится частью тестового пакета данного проекта.
Этот принцип касается всех ошибок, возникших во время разработки и тестирования. Отсюда вытекает необходимость в инструментарии, позволяющем превращать неудачное исполнение в воспроизводимый тестовый случай.
Проверка исправления найденного ранее дефекта.
Проверка, что исправленный ранее и верифицированный дефект не воспроизводится в системе снова.
Проверка того, что не нарушилась работоспособность работающей ранее функциональности, если ее код мог быть затронут при исправлении некоторых дефектов в другой функциональности.
Обычно используемые методы регрессионного тестирования включают повторные прогоны предыдущих тестов, а также проверки, не попали ли регрессионные ошибки в очередную версию в результате слияния кода.
Функциональное тестирование — это тестирование ПО в целях проверки реализуемости функциональных требований, то есть способности ПО в определённых условиях решать задачи, нужные пользователям. Функциональные требования определяют, что именно делает ПО, какие задачи оно решает.
Модульное тестирование (юнит-тестирование) — тестируется минимально возможный для тестирования компонент, например, отдельный класс или функция. Часто модульное тестирование осуществляется разработчиками ПО.
Интеграционное тестирование — тестируются интерфейсы между компонентами, подсистемами. При наличии резерва времени на данной стадии тестирование ведётся итерационно, с постепенным подключением последующих подсистем.
Системное тестирование — тестируется интегрированная система на её соответствие требованиям.
Альфа-тестирование — имитация реальной работы с системой штатными разработчиками, либо реальная работа с системой потенциальными пользователями/заказчиком. Чаще всего альфа-тестирование проводится на ранней стадии разработки продукта, но в некоторых случаях может применяться для законченного продукта в качестве внутреннего приёмочного тестирования. Иногда альфа-тестирование выполняется под отладчиком или с использованием окружения, которое помогает быстро выявлять найденные ошибки. Обнаруженные ошибки могут быть переданы тестировщикам для дополнительного исследования в окружении, подобном тому, в котором будет использоваться ПО.
Бета-тестирование — в некоторых случаях выполняется распространение версии с ограничениями (по функциональности или времени работы) для некоторой группы лиц с тем, чтобы убедиться, что продукт содержит достаточно мало ошибок. Иногда бета-тестирование выполняется для того, чтобы получить обратную связь о продукте от его будущих пользователей
Эмпирические оценки стратегий тестирования. Оценивайте любую стратегию тестирования, однако, какой бы интересной она ни казалась, прибегайте к объективной оценке, используя точные критерии в воспроизводимом процессе тестирования.