- •1.Назовите цель разбиения исходных данных программ на классы эквивалентности. Приведите пример выделения классов эквивалентности для какой-либо задачи (в виде дерева разбиения). * *
- •2.Дайте определение структуры данных. Приведите пример структуры данных. Дайте пояснения относительно ее частей.*
- •3.Дайте определение схемы. Приведите пример. Какие группы символов используются в Вашем примере (согласно гост 19.701-90).*
- •4.Дайте определение таблицы решений. Приведите пример.*
- •5.Дайте определение модели жизненного цикла пп. Приведите какую-либо модель жц и дайте необходимые пояснения.*
- •6.Дайте определение нотации. Приведите пример.*
- •7.Дайте определение спецификациям по, назовите известные Вам внешние
- •8. Назовите группы символы, которые используются в схемах проектов по согласно гост, и приведите примеры таких символов. *
- •11. Назовите нотации и приведите пример нотации для изображения структурных алгоритмов.*
- •12.Дайте определение прочности модуля и приведите примеры модулей с разными классами прочности.*
- •13. Дайте определение сцепления модулей и приведите примеры модулей с разными видами сцепления.*
- •14.Дайте определение технологии программирования. Какие технологии Вы знаете и к каким периодам относится появление этих технологий? *
- •15. Дайте определение объектно-ориентированного программирования (ооп). Назовите и охарактеризуйте основные свойства ооп.*
- •16. Блочно-иерархический подход к созданию программных систем.*
- •17. Проблемы разработки сложных программных систем.*
- •18. Дайте определение модели жизненного цикла (жц) программного продукта (пп). Каскадная модель жц пп. Область применения, достоинства и недостатки.*
- •19. Этапы жизненного цикла (жц) программных продуктов (пп). Схема жц пп.*
- •20. Функциональное и структурное тестирование программ: цели, отличия стратегий, рекомендации по применению.*
- •21. Этапы тестирования программ. Стадии тестирования в процессе разработки программного обеспечения. Методы, используемые на каждой стадии.*
- •22. Ручной контроль как метод тестирования.* *
- •23. Методы структурного тестирования. Общий недостаток методов.* //белый ящик
- •24. Методы функционального тестирования. Области применения.* //черный ящик
- •25. Основные положения метода эквивалентного разбиения.*
- •26. Основные положения метода граничных значений.*
- •27. Пошаговое тестирование модульных программ. Достоинства и недостатки подходов.*
- •28. Стихийное программирование. Этапы совершенствования архитектуры программ.*
- •29. Структурное программирование. Определение подхода, цель и принципы.*
- •30. Нисходящая стратегия разработки программ.*
- •31. Принципы модульного программирования.* *
- •32. Основные понятия объектно-ориентированного программирования.*
- •33. Достоинства и недостатки объектно-ориентированного программирования.*
- •35. Сравнение этапов жизненного цикла в case-технологиях и при традиционной разработке по.*
- •36. Спиральная модель жизненного цикла программных продуктов.*
- •37. Дайте определение модели жизненного цикла пп. Приведите каскадную и спиральную модели жц и дайте краткие пояснения. *
19. Этапы жизненного цикла (жц) программных продуктов (пп). Схема жц пп.*
Анализ( по средствам к-го осущ-я опис-е требований ПП)
Проектирование (включ. Разработку иерархич. Структуры разработки ПО)
Программирование
Тестирование и отладка( в процессе к-х выявлен в соответствии ПП и его спецификации
Эксплуатация и сопровождение
20. Функциональное и структурное тестирование программ: цели, отличия стратегий, рекомендации по применению.*
Структурное тестирование (белого ящика) применяют на ранних стадиях кодирования и тестирования для выявления и устранения в основном алгоритмических ошибок.
Функциональное тестирование (черного ящика) применяют на более поздних стадиях тестирования для выявления и устранения ошибок интерфейса, а также некорректных и отсутствующих функций обработки данных.
Структурный подход базируется на том, что известна структура тестируемого программного обеспечения, в том числе его алгоритмы («стеклянный ящик»). В этом случае тесты строят так, чтобы проверить правильность реализации заданной логики в коде программы.
Критерий исчерпывающего тестирования - это выполнение каждого пути программы (т.е. последовательности инструкций от начала до конца программы). Реально тестирование всех путей программы практически неосуществимо, так как число путей при наличии циклов может быть бесконечно большим. Поэтому вместо полного тестирования реализуемый и достаточно надежный критерий тестирования ветвей: каждая ветвь алгоритма должна быть пройдена хотя бы один раз.
Исходными тестовыми наборами данных при структурном тестировании могут служить функциональные тесты. Вначале тестирование ветвей проводим для этих тестовых наборов данных. Если в результате проверки не все ветви пройдены, то следует добавить соответствующие тестовые наборы данных.
Тестовые наборы данных готовятся, как правило, вручную. Подготовка программы для тестирования зависит от метода тестирования.
Функциональный подход основывается на том, что структура программного обеспечения не известна («черный ящик»). В этом случае тесты строят, опираясь на функциональные спецификации. Этот подход называют также подходом, управляемым данными, так как при его использовании тесты строят на базе различных способов декомпозиции множества данных. Наборы тестов, полученные в соответствии с методами этих подходов, обычно объединяют, обеспечивая всестороннее тестирование программного обеспечения.
Цель функционального тестирования - найти расхождение между программой и ее внешними спецификациями. Необходимым условием успешного функционального тестирования является наличие четких и точных внешних спецификаций. При функциональном подходе исчерпывающее тестирование реальных задач невозможно из-за огромного числа комбинаций входных и выходных данных. Задачей тестирования является выделение наиболее реальных ситуаций и пренебрежение малозначительными ситуациями. Тесты должны строиться для всех входных условий, а также на границах, всех областей допустимых значений на входе и областей изменения на выходе. Тесты должны проверять поведение программы у функциональных границ также в случаях ввода недопустимых или непредусмотренных данных.
При проектировании функциональных тестов, надлежит выполнить следующие рекомендации
1) Просматривая разделы "Входные данные". "Аномалии" принимать во внимание область определения входных данных. Тесты рекомендуется строить для допустимых, граничных и недопустимых значений входных данных.
2) Просматривая раздел "Выходные данные", установить функциональные границы, которые будут определяться областью значений результатов. Построить тесты, учитывая эти функциональные границы.