- •1 ) Виды обеспечения вс. Понятия программы, программной системы (комплекса), программного продукта (средства, изделия), программного обеспечения.
- •2 ) Причины сложности разработки по.
- •3 ) Процессы жизненного цикла программного продукта по стандарту iso/iec 12207 (гост р исо/мэк 12207).
- •4 ) Основные процессы разработки программного продукта.
- •Анализ;
- •Проектирование;
- •Программирование (кодирование, реализация);
- •Тестирование;
- •Документирование.
- •5 ) Основные модели и методологии разработки по.
- •6 ) Задачи и проблемы планирования разработки.
- •7 ) Понятие конфигурации и управления конфигурацией, задачи управления конфигурацией.
- •8 ) Модель зрелости возможностей cmm.
- •9 ) Задачи анализа требований. Основные виды работ при анализе.
- •Исходная постановка задачи
- •Сбор и исследование информации
- •Выбор приоритетных критериев качества
- •Определение входных, хранимых и выходных данных
- •Формализация требований
- •10 ) Варианты использования: определение, роль в жизненном цикле.
- •11 ) Цель и объекты проектирования. Архитектурное и детальное
- •12 ) Виды декомпозиции системы. Основные структурные методы проектирования (по направлению декомпозиции).
- •13 ) Понятие модуля. Критерии качества проектирования модулей и классов.
- •14 ) Проектирование интерфейса пользователя (определение, классификации)
- •15 ) Проектирование интерфейса пользователя (определение, требования).
- •16 ) Повышение информативности программ: цели, основные методы.
- •Основные методы сводятся к четырем группам:
- •17 ) Безопасное программирование. Различают два подхода к программированию:
- •Основные принципы:
- •18)Цели тестирования и отладки. Объекты и особенности процесса тестирования.
- •Объектами тестирования являются:
- •Три принципа тестирования:
- •Основные проблемы организации тестирования программы:
- •19. Виды тестирования
- •20. Критерии качества тестирования
- •21. Метод ручной инспекции кода; метод эквивалентов и граничных условий.
- •22. Тесты и тестовые процедуры (определения, принципы создания)
- •23. Классификация ошибок с точки зрения процесса разработки
- •24. Основные программные и эксплуатационные документы
- •25. Общее и детальное планирование испытаний
- •26. Методы оценки свойств программного продукта
- •27. Основные факторы качества программного продукта (по гост р исо/мэк 912693)
Основные проблемы организации тестирования программы:
нередко отсутствует эталон, которому должны соответствовать результаты;
невозможно создать набор тестов для исчерп.-ей проверки сложной системы;
отсутствуют практически пригодные формальные критерии качества тест.-ия.
Исправление ошибки, внесенной на стадии анализа требований и обнаруженной на стадии окончательной проверки, строит в среднем в 100 раз дороже, чем исправление этой же ошибки на стадии анализа. Для исправления проблем, выявленных при сопровождении продукта, программисты по статистике тратят до 60 % времени, пытаясь понять документацию и логику программы.
Тестирование является затратной деятельностью. Поэтому в большинстве случаев разработчики заранее формулируют какой-либо критерий качества создаваемых программ, добиваются его выполнения и после этого выпускают продукт на рынок. Такой подход получил название Good Enough Quality в противовес Best Possible Quality.
Концепция GEQ вовсе не эквивалентна отказу от полноценного тестирования. Выпуск с задержкой лучше, чем плохое качество выпущенного продукта.
19. Виды тестирования
Дымовое тестирование
Термином дымовое тестирование (smoke testing) обозначают быстрое тестирование системы, при котором проверяют несколько ключевых возможностей. Такое тестирование проводят, если нет времени или ресурсов на более тщательное тестирование или в таковом нет объективной необходимости. Для проведения дымового тестирования надо заранее определить набор дымовых тестов.
Автономное и комплексное тестирование
Автономное тестирование, или тестирование модулей (unit testing), заключается в изолированной проверке каждого отдельного элемента программной системы: компонента, модуля, подпрограммы.
Этот вид тестирования чаще всего выполняется самим программистом, создавшим соответствующий код, и является в цикле тестирования самым ранним.
После успешного завершения тестирования и отладки отдельных модулей начинается процесс сборки их в группы и системы, появляются новые объекты для тестирования. При этом сложность объектов и продолжительность тестирования гораздо выше.
Цель комплексного тестирования, или тестирования интеграции (integration testing) – исследование программы целиком (в сборе, в интеграции). Проверяется взаимодействие частей программы и их взаимное влияние.
Тестирование белого и черного ящика
При тестировании «белого ящика» (white-box testing) тестер осуществляет формирование теста с учетом знания об испытываемом объекте. Напротив, при тестировании «черного ящика» (black-box testing) о внутреннем устройстве тестируемого объекта неизвестно ничего, и тестирование осуществляется только на основе внешней спецификации.
Чаще всего автономное тестирование является тестированием «белого ящика», поскольку оно выполняется программистом, знающим устройство своего кода. Комплексное же тестирование может быть и тестированием «белого ящика», и тестированием «чёрного ящика».
Альфа- и бета-тестирование
Термином альфа-тестирование традиционно обозначают всю деятельность организации-разработчика по тестированию данного продукта, которую она выполняет своими силами.
Бета-тестирование выполняется силами большого количества пользователей, которые не являются сотрудниками организации, — бета-тестеров. За счёт массовости этого процесса выявляются ошибки, упущенные штатными тестерами.
Регрессионное тестирование
Регрессионное тестирование {regression testing) — это повторное тестирование всей программы после внесения изменений в её часть.
Принцип регрессионного тестирования предписывает тестировать при внесении изменений даже те части системы, которые непосредственно не изменились. Оправданность такого подхода доказана длительным опытом. Взаимовлияние частей программы друг на друга весьма велико.
Регрессионное тестирование требует много ресурсов. Снижение за тратности этого подхода возможно при внедрении средств автоматизации тестирования. При малой степени автоматизации частоту перетестирования системы приходится снижать.
Функциональное тестирование
Функциональным называют такой вид тестирования, при котором проверяются только функциональные возможности системы, то есть полнота и правильность реализации функциональных требований. Нефункциональные характеристики (надёжность, эффективность, защищённость и т. д.) целенаправленно не проверяются. Поскольку функциональные возможности системы обычно наиболее важны, этот вид тестирования является основным.
Нагрузочное тестирование
При таком тестирование система подвергается предельным нагрузкам за счёт повышения интенсивности поступления входных данных и (или) за счёт ограничения системных ресурсов (процессорного времени, памяти, дискового пространства и т. д.).
Цели: 1) оценить способность системы правильно функционировать при высокой интенсивности поступления входных данных и при недостатке системных ресурсов, 2)точно определить минимальные и оптимальные требования к системные ресурсам.
Тестирование уязвимости
Встречается нечасто. Тестирование уязвимости, или тестирование безопасности, направлено на проверку безопасности и защищённости программных продуктов. Оно проводится с целью проверки эффективности используемых в программах механизмов защиты информации, их устойчивости к атакам, а также к ошибкам персонала.