Модели жизненного цикла

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

Модели -Каскадная модель жизненного цикла («модель водопада», англ. waterfall model) была предложена в 1970 г. Уинстоном Ройсом. Она предусматривает последовательное выполнение всех этапов проекта в строго фиксированном порядке. Переход на следующий этап означает полное завершение работ на предыдущем этапе. Требования, определенные на стадии формирования требований, строго документируются в виде технического задания и фиксируются на все время разработки проекта. Каждая стадия завершается выпуском полного комплекта документации, достаточной для того, чтобы разработка могла быть продолжена другой командой разработчиков.

Этапы проекта в соответствии с каскадной моделью: Формирование требований; Проектирование; Реализация; Тестирование; Внедрение; Эксплуатация,сопровождение.

- Спиральная модель (англ. spiral model) была разработана в середине 1980-х годов Барри Боэмом. Она основана на классическом цикле Деминга PDCA (plan-do-check-act). При использовании этой модели ПО создается в несколько итераций (витков спирали) методом прототипирования.

Прототип — действующий компонент ПО, реализующий отдельные функции и внешние интерфейсы. Каждая итерация соответствует созданию фрагмента или версии ПО, на ней; уточняются цели и характеристики проекта, оценивается качество полученных результатов и планируются работы следующей итерации.

На каждой итерации оцениваются: риск превышения сроков и стоимости проекта; необходимость выполнения еще одной итерации; степень полноты и точности; понимания требований к системе; целесообразность прекращения проекта.

- Итерационная модель (инкрементая)

Итеративная модель предполагает разбиение жизненного цикла проекта на: последовательность итераций, каждая из которых напоминает "мини-проект", включая все фазы: жизненного цикла в применении к созданию меньших фрагментов функциональности, по сравнению с проектом, в целом Цель каждой итерации - получение работающей версии программной системы, включающей функциональность, определенную интегрированным содержанием всех предыдущих и текущей итерации. Результата финальной итерации содержит всю требуемую функциональность продукта. Таким образом, с завершением каждой итерации, продукт развивается инкрементально.

42 Методы тестирования программ

Тестирование – это процесс выполнения программы с целью обнаружения ошибок. Существует 2 методики тестирования ПО:

1. По принципу белого ящика

2. По принципу черного ящика.

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

Хорошим считается тестовый вариант с высокой вероятностью обнаружения еще нераскрытой ошибки.

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

1. Обнаружение ошибок.

2. Демонстрацию соответствия требований к характеристикам программ.

3. Демонстрацию реализаций функций и соответствие их назначению программы.

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

При тестировании по принципу белого ящика известна внутренняя структура программы. При таком тестировании проверяется корректность построения программы, элементы программы и связи. Исчерпывающее тестирование также затруднительно.

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

Количество независимых маршрутов вычисляется по формуле.

n – количество ветвей, к – количество раз выполнения.

Тестирование по принципу белого ящика позволяет учесть особенности программных ошибок.

Нисходящее тестипрование. тестирование начинается с главного (или верхнего) модуля программы, а выбор следующего подключаемого модуля происходит из числа модулей, вызываемых из уже протестированных. Одна из основных проблем, возникающих при нисходящем тестировании, -создание заглушек.

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


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: