Страница 1 из 2
Тема: «Системы и закономерности их функционирования и развития»
1. Совокупность всех объектов, изменение свойств которых влияет на системы, а также тух объектов, чьи свойства меняются в результате поведения системы, это:
a) среда;b) подсистема;
c) компоненты.
2. Простейшая, неделимая часть системы, определяемая в зависимости от цели построения и анализа системы:
a) компонент;b) наблюдатель;
c) элемент;
d) атом.
3. Компонент системы- это:
a) часть системы, обладающая свойствами системы и имеющая собственную подцель;b) предел членения системы с точки зрения аспекта рассмотрения;
c) средство достижения цели;
d) совокупность однородных элементов системы.
4. Ограничение системы свободы элементов определяют понятием
a) критерий;b) цель;
c) связь;
d) страта.
5. Способность системы в отсутствии внешних воздействий сохранять своё состояние сколь угодно долго определяется понятием
a) устойчивость;b) развитие;
c) равновесие;
d) поведение.
6. Объединение некоторых параметров системы в параметре более высокого уровня - это
a) синергия;b) агрегирование;
c) иерархия.
7. Сетевая структура представляет собой
a) декомпозицию системы во времени;b) декомпозицию системы в пространстве;
c) относительно независимые, взаимодействующие между собой подсистемы;
d) взаимоотношения элементов в пределах определённого уровня;
8. Уровень иерархической структуры, при которой система представлена в виде взаимодействующих подсистем, называется
a) стратой;b) эшелоном;
c) слоем.
9. Какого вида структуры систем не существует
a) с произвольными связями;b) горизонтальной;
c) смешанной;
d) матричной.
- Tutorial
Недавно был на собеседовании на Middle QA на проект, который явно превышает мои возможности. Уделил много времени тому, чего не знал вообще и мало времени повторению простой теории, а зря.
Ниже основы основ для повторения перед собеседованием для Trainee and Junior: определение тестирования, качество , верификация / валидация , цели, этапы, тест план, пункты тест плана, тест дизайн, техники тест дизайна, traceability matrix , test case, чек-лист, дефект, error/deffect/failure , баг репорт, severity vs priority, уровни тестирования, виды / типы, подходы к интеграционному тестированию , принципы тестирования, статическое и динамическое тестирование, исследовательское / ad-hoc тестирование, требования, жизненный цикл бага, стадии разработки ПО, decision table, qa/qc/test engineer, диаграмма связей.
Все замечания, корректировки и дополнения очень приветствуются.
Тестирование программного обеспечения - проверка соответствия между реальным и ожидаемым поведением программы, осуществляемая на конечном наборе тестов, выбранном определенным образом. В более широком смысле, тестирование - это одна из техник контроля качества, включающая в себя активности по планированию работ (Test Management), проектированию тестов (Test Design), выполнению тестирования (Test Execution) и анализу полученных результатов (Test Analysis).
Качество программного обеспечения (Software Quality) - это совокупность характеристик программного обеспечения, относящихся к его способности удовлетворять установленные и предполагаемые потребности.
Верификация (verification)
- это процесс оценки системы или её компонентов с целью определения удовлетворяют ли результаты текущего этапа разработки условиям, сформированным в начале этого этапа. Т.е. выполняются ли наши цели, сроки, задачи по разработке проекта, определенные в начале текущей фазы.
Валидация (validation)
- это определение соответствия разрабатываемого ПО ожиданиям и потребностям пользователя, требованиям к системе .
Также можно встретить иную интерпритацию:
Процесс оценки соответствия продукта явным требованиям (спецификациям) и есть верификация (verification), в то же время оценка соответствия продукта ожиданиям и требованиям пользователей - есть валидация (validation). Также часто можно встретить следующее определение этих понятий:
Validation - ’is this the right specification?’.
Verification - ’is the system correct to specification?’.
Цели тестирования
Повысить вероятность того, что приложение, предназначенное для тестирования, будет работать правильно при любых обстоятельствах.
Повысить вероятность того, что приложение, предназначенное для тестирования, будет соответствовать всем описанным требованиям.
Предоставление актуальной информации о состоянии продукта на данный момент.
Этапы тестирования:
1. Анализ продукта
2. Работа с требованиями
3. Разработка стратегии тестирования
и планирование процедур контроля качества
4. Создание тестовой документации
5. Тестирование прототипа
6. Основное тестирование
7. Стабилизация
8. Эксплуатация
Тест план (Test Plan)
- это документ, описывающий весь объем работ по тестированию, начиная с описания объекта, стратегии, расписания, критериев начала и окончания тестирования, до необходимого в процессе работы оборудования, специальных знаний, а также оценки рисков с вариантами их разрешения.
Отвечает на вопросы:
Что надо тестировать?
Что будете тестировать?
Как будете тестировать?
Когда будете тестировать?
Критерии начала тестирования.
Критерии окончания тестирования.
Основные пункты тест плана
В стандарте IEEE 829 перечислены пункты, из которых должен (пусть - может) состоять тест-план:
a) Test plan identifier;
b) Introduction;
c) Test items;
d) Features to be tested;
e) Features not to be tested;
f) Approach;
g) Item pass/fail criteria;
h) Suspension criteria and resumption requirements;
i) Test deliverables;
j) Testing tasks;
k) Environmental needs;
l) Responsibilities;
m) Staffing and training needs;
n) Schedule;
o) Risks and contingencies;
p) Approvals.
Тест дизайн
– это этап процесса тестирования ПО, на котором проектируются и создаются тестовые сценарии (тест кейсы), в соответствии с определёнными ранее критериями качества и целями тестирования.
Роли, ответственные за тест дизайн:
Тест аналитик - определяет «ЧТО тестировать?»
Тест дизайнер - определяет «КАК тестировать?»
Техники тест дизайна
Эквивалентное Разделение (Equivalence Partitioning - EP) . Как пример, у вас есть диапазон допустимых значений от 1 до 10, вы должны выбрать одно верное значение внутри интервала, скажем, 5, и одно неверное значение вне интервала - 0.
Анализ Граничных Значений (Boundary Value Analysis - BVA). Если взять пример выше, в качестве значений для позитивного тестирования выберем минимальную и максимальную границы (1 и 10), и значения больше и меньше границ (0 и 11). Анализ Граничный значений может быть применен к полям, записям, файлам, или к любого рода сущностям имеющим ограничения.
Причина / Следствие (Cause/Effect - CE). Это, как правило, ввод комбинаций условий (причин), для получения ответа от системы (Следствие). Например, вы проверяете возможность добавлять клиента, используя определенную экранную форму. Для этого вам необходимо будет ввести несколько полей, таких как «Имя», «Адрес», «Номер Телефона» а затем, нажать кнопку «Добавить» - это «Причина». После нажатия кнопки «Добавить», система добавляет клиента в базу данных и показывает его номер на экране - это «Следствие».
Предугадывание ошибки (Error Guessing - EG). Это когда тестировщик использует свои знания системы и способность к интерпретации спецификации на предмет того, чтобы «предугадать» при каких входных условиях система может выдать ошибку. Например, спецификация говорит: «пользователь должен ввести код». Тестировщик будет думать: «Что, если я не введу код?», «Что, если я введу неправильный код? », и так далее. Это и есть предугадывание ошибки.
Исчерпывающее тестирование (Exhaustive Testing - ET) - это крайний случай. В пределах этой техники вы должны проверить все возможные комбинации входных значений, и в принципе, это должно найти все проблемы. На практике применение этого метода не представляется возможным, из-за огромного количества входных значений.
Попарное тестирование (Pairwise Testing) - это техника формирования наборов тестовых данных. Сформулировать суть можно, например, вот так: формирование таких наборов данных, в которых каждое тестируемое значение каждого из проверяемых параметров хотя бы единожды сочетается с каждым тестируемым значением всех остальных проверяемых параметров.
Допустим, какое-то значений (налог) для человека рассчитывается на основании его пола, возраста и наличия детей - получаем три входных параметра, для каждого из которых для тестов выбираем каким-то образом значения. Например: пол - мужской или женский; возраст - до 25, от 25 до 60, более 60; наличие детей - да или нет. Для проверки правильности расчётов можно, конечно, перебрать все комбинации значений всех параметров:
№ | пол | возраст | дети |
---|---|---|---|
1 | мужчина | до 25 | детей нет |
2 | женщина | до 25 | детей нет |
3 | мужчина | 25-60 | детей нет |
4 | женщина | 25-60 | детей нет |
5 | мужчина | старше 60 | детей нет |
6 | женщина | старше 60 | детей нет |
7 | мужчина | до 25 | дети есть |
8 | женщина | до 25 | дети есть |
9 | мужчина | 25-60 | дети есть |
10 | женщина | 25-60 | дети есть |
11 | мужчина | старше 60 | дети есть |
12 | женщина | старше 60 | дети есть |
А можно решить, что нам не нужны сочетания значений всех параметров со всеми, а мы хотим только убедиться, что мы проверим все уникальные пары значений параметров. Т.е., например, с точки зрения параметров пола и возраста мы хотим убедиться, что мы точно проверим мужчину до 25, мужчину между 25 и 60, мужчину после 60, а также женщину до 25, женщину между 25 и 60, ну и женщину после 60. И точно так же для всех остальных пар параметров. И таким образом, мы можем получить гораздо меньше наборов значений (в них есть все пары значений, правда некоторые дважды):
№ | пол | возраст | дети |
---|---|---|---|
1 | мужчина | до 25 | детей нет |
2 | женщина | до 25 | дети есть |
3 | мужчина | 25-60 | дети есть |
4 | женщина | 25-60 | детей нет |
5 | мужчина | старше 60 | детей нет |
6 | женщина | старше 60 | дети есть |
Такой подход примерно и составляет суть техники pairwise testing - мы не проверяем все сочетания всех значений, но проверяем все пары значений.
Traceability matrix - Матрица соответствия требований
- это двумерная таблица, содержащая соответсвие функциональных требований (functional requirements) продукта и подготовленных тестовых сценариев (test cases). В заголовках колонок таблицы расположены требования, а в заголовках строк - тестовые сценарии. На пересечении - отметка, означающая, что требование текущей колонки покрыто тестовым сценарием текущей строки.
Матрица соответсвия требований используется QA-инженерами для валидации покрытия продукта тестами. МСТ является неотъемлемой частью тест-плана.
Тестовый сценарий (Test Case)
- это артефакт, описывающий совокупность шагов, конкретных условий и параметров, необходимых для проверки реализации тестируемой функции или её части.
Пример:
Action Expected Result Test Result
(passed/failed/blocked)
Open page «login» Login page is opened Passed
Каждый тест кейс должен иметь 3 части:
PreConditions Список действий, которые приводят систему к состоянию пригодному для проведения основной проверки. Либо список условий, выполнение которых говорит о том, что система находится в пригодном для проведения основного теста состояния.
Test Case Description Список действий, переводящих систему из одного состояния в другое, для получения результата, на основании которого можно сделать вывод о удовлетворении реализации, поставленным требованиям
PostConditions Список действий, переводящих систему в первоначальное состояние (состояние до проведения теста - initial state)
Виды Тестовых Сценариев:
Тест кейсы разделяются по ожидаемому результату на позитивные и негативные:
Позитивный тест кейс использует только корректные данные и проверяет, что приложение правильно выполнило вызываемую функцию.
Негативный тест кейс оперирует как корректными так и некорректными данными (минимум 1 некорректный параметр) и ставит целью проверку исключительных ситуаций (срабатывание валидаторов), а также проверяет, что вызываемая приложением функция не выполняется при срабатывании валидатора.
Чек-лист (check list)
- это документ, описывающий что должно быть протестировано. При этом чек-лист может быть абсолютно разного уровня детализации. На сколько детальным будет чек-лист зависит от требований к отчетности, уровня знания продукта сотрудниками и сложности продукта.
Как правило, чек-лист содержит только действия (шаги), без ожидаемого результата. Чек-лист менее формализован чем тестовый сценарий. Его уместно использовать тогда, когда тестовые сценарии будут избыточны. Также чек-лист ассоциируются с гибкими подходами в тестировании.
Дефект (он же баг) – это несоответствие фактического результата выполнения программы ожидаемому результату. Дефекты обнаруживаются на этапе тестирования программного обеспечения (ПО), когда тестировщик проводит сравнение полученных результатов работы программы (компонента или дизайна) с ожидаемым результатом, описанным в спецификации требований.
Error
- ошибка пользователя, то есть он пытается использовать программу иным способом.
Пример - вводит буквы в поля, где требуется вводить цифры (возраст, количество товара и т.п.).
В качественной программе предусмотрены такие ситуации и выдаются сообщение об ошибке (error message), с красным крестиком которые.
Bug (defect)
- ошибка программиста (или дизайнера или ещё кого, кто принимает участие в разработке), то есть когда в программе, что-то идёт не так как планировалось и программа выходит из-под контроля. Например, когда никак не контроллируется ввод пользователя, в результате неверные данные вызывают краши или иные «радости» в работе программы. Либо внутри программа построена так, что изначально не соответствует тому, что от неё ожидается.
Failure
- сбой (причём не обязательно аппаратный) в работе компонента, всей программы или системы. То есть, существуют такие дефекты, которые приводят к сбоям (A defect caused the failure) и существуют такие, которые не приводят. UI-дефекты например. Но аппаратный сбой, никак не связанный с software, тоже является failure.
Баг Репорт (Bug Report)
- это документ, описывающий ситуацию или последовательность действий приведшую к некорректной работе объекта тестирования, с указанием причин и ожидаемого результата.
Шапка
Короткое описание (Summary) Короткое описание проблемы, явно указывающее на причину и тип ошибочной ситуации.
Проект (Project) Название тестируемого проекта
Компонент приложения (Component) Название части или функции тестируемого продукта
Номер версии (Version) Версия на которой была найдена ошибка
Серьезность (Severity) Наиболее распространена пятиуровневая система градации серьезности дефекта:
S1 Блокирующий (Blocker)
S2 Критический (Critical)
S3 Значительный (Major)
S4 Незначительный (Minor)
S5 Тривиальный (Trivial)
Приоритет (Priority) Приоритет дефекта:
P1 Высокий (High)
P2 Средний (Medium)
P3 Низкий (Low)
Статус (Status) Статус бага. Зависит от используемой процедуры и жизненного цикла бага (bug workflow and life cycle)
Автор (Author) Создатель баг репорта
Назначен на (Assigned To) Имя сотрудника, назначенного на решение проблемы
Окружение
ОС / Сервис Пак и т.д. / Браузера + версия /… Информация об окружении, на котором был найден баг: операционная система, сервис пак, для WEB тестирования - имя и версия браузера и т.д.
…
Описание
Шаги воспроизведения (Steps to Reproduce) Шаги, по которым можно легко воспроизвести ситуацию, приведшую к ошибке.
Фактический Результат (Result) Результат, полученный после прохождения шагов к воспроизведению
Ожидаемый результат (Expected Result) Ожидаемый правильный результат
Дополнения
Прикрепленный файл (Attachment) Файл с логами, скриншот или любой другой документ, который может помочь прояснить причину ошибки или указать на способ решения проблемы
Severity vs Priority
Серьезность (Severity) - это атрибут, характеризующий влияние дефекта на работоспособность приложения.
Приоритет (Priority) - это атрибут, указывающий на очередность выполнения задачи или устранения дефекта. Можно сказать, что это инструмент менеджера по планированию работ. Чем выше приоритет, тем быстрее нужно исправить дефект.
Severity выставляется тестировщиком
Priority – менеджером, тимлидом или заказчиком
Градация Серьезности дефекта (Severity)
S1 Блокирующая (Blocker)
Блокирующая ошибка, приводящая приложение в нерабочее состояние, в результате которого дальнейшая работа с тестируемой системой или ее ключевыми функциями становится невозможна. Решение проблемы необходимо для дальнейшего функционирования системы.
S2 Критическая (Critical)
Критическая ошибка, неправильно работающая ключевая бизнес логика, дыра в системе безопасности, проблема, приведшая к временному падению сервера или приводящая в нерабочее состояние некоторую часть системы, без возможности решения проблемы, используя другие входные точки. Решение проблемы необходимо для дальнейшей работы с ключевыми функциями тестируемой системой.
S3 Значительная (Major)
Значительная ошибка, часть основной бизнес логики работает некорректно. Ошибка не критична или есть возможность для работы с тестируемой функцией, используя другие входные точки.
S4 Незначительная (Minor)
Незначительная ошибка, не нарушающая бизнес логику тестируемой части приложения, очевидная проблема пользовательского интерфейса.
S5 Тривиальная (Trivial)
Тривиальная ошибка, не касающаяся бизнес логики приложения, плохо воспроизводимая проблема, малозаметная посредствам пользовательского интерфейса, проблема сторонних библиотек или сервисов, проблема, не оказывающая никакого влияния на общее качество продукта.
Градация Приоритета дефекта (Priority)
P1 Высокий (High)
Ошибка должна быть исправлена как можно быстрее, т.к. ее наличие является критической для проекта.
P2 Средний (Medium)
Ошибка должна быть исправлена, ее наличие не является критичной, но требует обязательного решения.
P3 Низкий (Low)
Ошибка должна быть исправлена, ее наличие не является критичной, и не требует срочного решения.
Уровни Тестирования
1. Модульное тестирование (Unit Testing)
Компонентное (модульное) тестирование проверяет функциональность и ищет дефекты в частях приложения, которые доступны и могут быть протестированы по-отдельности (модули программ, объекты, классы, функции и т.д.).
2. Интеграционное тестирование (Integration Testing)
Проверяется взаимодействие между компонентами системы после проведения компонентного тестирования.
3. Системное тестирование (System Testing)
Основной задачей системного тестирования является проверка как функциональных, так и не функциональных требований в системе в целом. При этом выявляются дефекты, такие как неверное использование ресурсов системы, непредусмотренные комбинации данных пользовательского уровня, несовместимость с окружением, непредусмотренные сценарии использования, отсутствующая или неверная функциональность, неудобство использования и т.д.
4. Операционное тестирование (Release Testing).
Даже если система удовлетворяет всем требованиям, важно убедиться в том, что она удовлетворяет нуждам пользователя и выполняет свою роль в среде своей эксплуатации, как это было определено в бизнес моделе системы. Следует учесть, что и бизнес модель может содержать ошибки. Поэтому так важно провести операционное тестирование как финальный шаг валидации. Кроме этого, тестирование в среде эксплуатации позволяет выявить и нефункциональные проблемы, такие как: конфликт с другими системами, смежными в области бизнеса или в программных и электронных окружениях; недостаточная производительность системы в среде эксплуатации и др. Очевидно, что нахождение подобных вещей на стадии внедрения - критичная и дорогостоящая проблема. Поэтому так важно проведение не только верификации, но и валидации, с самых ранних этапов разработки ПО.
5. Приемочное тестирование (Acceptance Testing)
Формальный процесс тестирования, который проверяет соответствие системы требованиям и проводится с целью:
определения удовлетворяет ли система приемочным критериям;
вынесения решения заказчиком или другим уполномоченным лицом принимается приложение или нет.
Виды / типы тестирования
Функциональные виды тестирования
Функциональное тестирование (Functional testing)
Тестирование пользовательского интерфейса (GUI Testing)
Тестирование безопасности (Security and Access Control Testing)
Тестирование взаимодействия (Interoperability Testing)
Нефункциональные виды тестирования
Все виды тестирования производительности:
o нагрузочное тестирование (Performance and Load Testing)
o стрессовое тестирование (Stress Testing)
o тестирование стабильности или надежности (Stability / Reliability Testing)
o объемное тестирование (Volume Testing)
Тестирование установки (Installation testing)
Тестирование удобства пользования (Usability Testing)
Тестирование на отказ и восстановление (Failover and Recovery Testing)
Конфигурационное тестирование (Configuration Testing)
Связанные с изменениями виды тестирования
Дымовое тестирование (Smoke Testing)Регрессионное тестирование (Regression Testing)
Повторное тестирование (Re-testing)
Тестирование сборки (Build Verification Test)
Санитарное тестирование или проверка согласованности/исправности (Sanity Testing)
Функциональное тестирование рассматривает заранее указанное поведение и основывается на анализе спецификаций функциональности компонента или системы в целом.
Тестирование пользовательского интерфейса (GUI Testing) - функциональная проверка интерфейса на соответствие требованиям - размер, шрифт, цвет, consistent behavior.
Тестирование безопасности - это стратегия тестирования, используемая для проверки безопасности системы, а также для анализа рисков, связанных с обеспечением целостного подхода к защите приложения, атак хакеров, вирусов, несанкционированного доступа к конфиденциальным данным.
Тестирование взаимодействия (Interoperability Testing) – это функциональное тестирование, проверяющее способность приложения взаимодействовать с одним и более компонентами или системами и включающее в себя тестирование совместимости (compatibility testing) и интеграционное тестирование
Нагрузочное тестирование - это автоматизированное тестирование, имитирующее работу определенного количества бизнес пользователей на каком-либо общем (разделяемом ими) ресурсе.
Стрессовое тестирование (Stress Testing) позволяет проверить насколько приложение и система в целом работоспособны в условиях стресса и также оценить способность системы к регенерации, т.е. к возвращению к нормальному состоянию после прекращения воздействия стресса. Стрессом в данном контексте может быть повышение интенсивности выполнения операций до очень высоких значений или аварийное изменение конфигурации сервера. Также одной из задач при стрессовом тестировании может быть оценка деградации производительности, таким образом цели стрессового тестирования могут пересекаться с целями тестирования производительности.
Объемное тестирование (Volume Testing). Задачей объемного тестирования является получение оценки производительности при увеличении объемов данных в базе данных приложения
Тестирование стабильности или надежности (Stability / Reliability Testing). Задачей тестирования стабильности (надежности) является проверка работоспособности приложения при длительном (многочасовом) тестировании со средним уровнем нагрузки.
Тестирование установки направленно на проверку успешной инсталляции и настройки, а также обновления или удаления программного обеспечения.
Тестирование удобства пользования
- это метод тестирования, направленный на установление степени удобства использования, обучаемости, понятности и привлекательности для пользователей разрабатываемого продукта в контексте заданных условий. Сюда также входит:
User eXperience (UX) - ощущение, испытываемое пользователем во время использования цифрового продукта, в то время как User interface - это инструмент, позволяющий осуществлять интеракцию «пользователь - веб-ресурс».
Тестирование на отказ и восстановление (Failover and Recovery Testing) проверяет тестируемый продукт с точки зрения способности противостоять и успешно восстанавливаться после возможных сбоев, возникших в связи с ошибками программного обеспечения, отказами оборудования или проблемами связи (например, отказ сети). Целью данного вида тестирования является проверка систем восстановления (или дублирующих основной функционал систем), которые, в случае возникновения сбоев, обеспечат сохранность и целостность данных тестируемого продукта.
Конфигурационное тестирование (Configuration Testing) - специальный вид тестирования, направленный на проверку работы программного обеспечения при различных конфигурациях системы (заявленных платформах, поддерживаемых драйверах, при различных конфигурациях компьютеров и т.д.)
Дымовое (Smoke) тестирование рассматривается как короткий цикл тестов, выполняемый для подтверждения того, что после сборки кода (нового или исправленного) устанавливаемое приложение, стартует и выполняет основные функции.
Регрессионное тестирование - это вид тестирования направленный на проверку изменений, сделанных в приложении или окружающей среде (починка дефекта, слияние кода, миграция на другую операционную систему, базу данных, веб сервер или сервер приложения), для подтверждения того факта, что существующая ранее функциональность работает как и прежде. Регрессионными могут быть как функциональные, так и нефункциональные тесты.
Повторное тестирование
- тестирование, во время которого исполняются тестовые сценарии, выявившие ошибки во время последнего запуска, для подтверждения успешности исправления этих ошибок.
В чем разница между regression testing и re-testing?
Re-testing - проверяется исправление багов
Regression testing - проверяется то, что исправление багов, а также любые изменения в коде приложения, не повлияли на другие модули ПО и не вызвало новых багов.
Тестирование сборки или Build Verification Test - тестирование направленное на определение соответствия, выпущенной версии, критериям качества для начала тестирования. По своим целям является аналогом Дымового Тестирования, направленного на приемку новой версии в дальнейшее тестирование или эксплуатацию. Вглубь оно может проникать дальше, в зависимости от требований к качеству выпущенной версии.
Санитарное тестирование - это узконаправленное тестирование достаточное для доказательства того, что конкретная функция работает согласно заявленным в спецификации требованиям. Является подмножеством регрессионного тестирования. Используется для определения работоспособности определенной части приложения после изменений произведенных в ней или окружающей среде. Обычно выполняется вручную.
Подходы к интеграционному тестированию:
Снизу вверх (Bottom Up Integration)
Все низкоуровневые модули, процедуры или функции собираются воедино и затем тестируются. После чего собирается следующий уровень модулей для проведения интеграционного тестирования. Данный подход считается полезным, если все или практически все модули, разрабатываемого уровня, готовы. Также данный подход помогает определить по результатам тестирования уровень готовности приложения.
Сверху вниз (Top Down Integration)
Вначале тестируются все высокоуровневые модули, и постепенно один за другим добавляются низкоуровневые. Все модули более низкого уровня симулируются заглушками с аналогичной функциональностью, затем по мере готовности они заменяются реальными активными компонентами. Таким образом мы проводим тестирование сверху вниз.
Большой взрыв («Big Bang» Integration)
Все или практически все разработанные модули собираются вместе в виде законченной системы или ее основной части, и затем проводится интеграционное тестирование. Такой подход очень хорош для сохранения времени. Однако если тест кейсы и их результаты записаны не верно, то сам процесс интеграции сильно осложнится, что станет преградой для команды тестирования при достижении основной цели интеграционного тестирования.
Принципы тестирования
Принцип 1
– Тестирование демонстрирует наличие дефектов (Testing shows presence of defects)
Тестирование может показать, что дефекты присутствуют, но не может доказать, что их нет. Тестирование снижает вероятность наличия дефектов, находящихся в программном обеспечении, но, даже если дефекты не были обнаружены, это не доказывает его корректности.
Принцип 2
– Исчерпывающее тестирование недостижимо (Exhaustive testing is impossible)
Полное тестирование с использованием всех комбинаций вводов и предусловий физически невыполнимо, за исключением тривиальных случаев. Вместо исчерпывающего тестирования должны использоваться анализ рисков и расстановка приоритетов, чтобы более точно сфокусировать усилия по тестированию.
Принцип 3
– Раннее тестирование (Early testing)
Чтобы найти дефекты как можно раньше, активности по тестированию должны быть начаты как можно раньше в жизненном цикле разработки программного обеспечения или системы, и должны быть сфокусированы на определенных целях.
Принцип 4
– Скопление дефектов (Defects clustering)
Усилия тестирования должны быть сосредоточены пропорционально ожидаемой, а позже реальной плотности дефектов по модулям. Как правило, большая часть дефектов, обнаруженных при тестировании или повлекших за собой основное количество сбоев системы, содержится в небольшом количестве модулей.
Принцип 5
– Парадокс пестицида (Pesticide paradox)
Если одни и те же тесты будут прогоняться много раз, в конечном счете этот набор тестовых сценариев больше не будет находить новых дефектов. Чтобы преодолеть этот “парадокс пестицида”, тестовые сценарии должны регулярно рецензироваться и корректироваться, новые тесты должны быть разносторонними, чтобы охватить все компоненты программного обеспечения,
или системы, и найти как можно больше дефектов.
Принцип 6
– Тестирование зависит от контекста (Testing is concept depending)
Тестирование выполняется по-разному в зависимости от контекста. Например, программное обеспечение, в котором критически важна безопасность, тестируется иначе, чем сайт электронной коммерции.
Принцип 7
– Заблуждение об отсутствии ошибок (Absence-of-errors fallacy)
Обнаружение и исправление дефектов не помогут, если созданная система не подходит пользователю и не удовлетворяет его ожиданиям и потребностям.
Cтатическое и динамическое тестирование
Статическое тестирование отличается от динамического тем, что производится без запуска программного кода продукта. Тестирование осуществляется путем анализа программного кода (code review) или скомпилированного кода. Анализ может производиться как вручную, так и с помощью специальных инструментальных средств. Целью анализа является раннее выявление ошибок и потенциальных проблем в продукте. Также к статическому тестированию относится тестирования спецификации и прочей документации.
Исследовательское / ad-hoc тестирование
Простейшее определение исследовательского тестирования - это разработка и выполнения тестов в одно и то же время. Что является противоположностью сценарного подхода (с его предопределенными процедурами тестирования, неважно ручными или автоматизированными). Исследовательские тесты, в отличие от сценарных тестов, не определены заранее и не выполняются в точном соответствии с планом.
Разница между ad hoc и exploratory testing в том, что теоретически, ad hoc может провести кто угодно, а для проведения exploratory необходимо мастерство и владение определенными техниками. Обратите внимание, что определенные техники это не только техники тестирования.
Требования
– это спецификация (описание) того, что должно быть реализовано.
Требования описывают то, что необходимо реализовать, без детализации технической стороны решения. Что, а не как.
Требования к требованиям:
Корректность
Недвусмысленность
Полнота набора требований
Непротиворечивость набора требований
Проверяемость (тестопригодность)
Трассируемость
Понимаемость
Жизненный цикл бага
Стадии разработки ПО - это этапы, которые проходят команды разработчиков ПО, прежде чем программа станет доступной для широко круга пользователей. Разработка ПО начинается с первоначального этапа разработки (стадия «пре-альфа») и продолжается стадиями, на которых продукт дорабатывается и модернизируется. Финальным этапом этого процесса становится выпуск на рынок окончательной версии программного обеспечения («общедоступного релиза»).
Программный продукт проходит следующие стадии:
анализ требований к проекту;
проектирование;
реализация;
тестирование продукта;
внедрение и поддержка.
Каждой стадии разработки ПО присваивается определенный порядковый номер. Также каждый этап имеет свое собственное название, которое характеризует готовность продукта на этой стадии.
Жизненный цикл разработки ПО:
Пре-альфа
Альфа
Бета
Релиз-кандидат
Релиз
Пост-релиз
Таблица принятия решений (decision table) – великолепный инструмент для упорядочения сложных бизнес требований, которые должны быть реализованы в продукте. В таблицах решений представлен набор условий, одновременное выполнение которых должно привести к определенному действию.
3. ТЕСТЫ ПО УЧЕБНОМУ КУРСУ «СИСТЕМНЫЙ АНАЛИЗ»
1. Что подразумевается под составом элементов и связями между ними?
Структура
Целостность
Элемент
Эмерджентность
1. Поведение
2. Развитие
3. Состояние
4. Функционирование
3. Что такое термы?
1. Имена и члены предложений, определенные объекты исследования
2. Состав свойств системы
3. То, что связывает элементы в системе
4. Часть объекта, обладающая определенной самостоятельностью по отношению к всему объекту
4. Что из ниже перечисленного не входит в динамическое описание системы?
1. Процесс
2. Функторы
3. Система
5. Какой из принципов системного подхода предполагает необходимость исследования объекта как сложной совокупности составляющих его элементов?
1. Принцип цели
2. Принцип сложности
3. Принцип целостности
4. Принцип историзма
6. Что не является стадией жизненного цикла?
1. Функционирование
2. Создание
3. Развитие
4. Управление
7. Что такое системный анализ?
1. Методология решения проблем
2. Передача функций управления техническим средствам
3. Общая теория систем
4. Совокупность научных методов и практических приемов решения разнообразных проблем на основе системного подхода
8. Что является научной основой автоматизации?
1. Теория автоматов
2. Философия
3. Информатика
4. Общая теория систем
9. Что такое принципы?
1. Система знаний о некоторой области реального мира
2. Совокупность свойств системы
3. Установление соответствия между требованиями объективных законов и субъективной деятельностью
4. Состав элементов системы и связей между ними
10. Что такое система?
1. Целостная совокупность связанных элементов
2. Часть объекта, обладающая определенной самостоятельностью по отношению ко всему объекту
3. Множество объектов
4. Целостная совокупность связанных объектов
11. Какие виды связей бывают?
1. Существенные и несущественные
2. С управлением, без управления
3. Динамические, статические
4. Внутренние, внешние
12. Что такое абстрактные системы?
1. Системы с материальными элементами
2. Системы, состоящие из абстрактных элементов, не имеющих аналогов в реальном мире
3. Системы, состоящие из абстрактных элементов, и имеющие аналоги в реальном мире
4. Системы с биологическими элементами
13. На какие группы делятся системы по отношению к среде?
1. Естественные, искусственные
2. Статические, динамические
3. Открытые, замкнутые
4. Активные, пассивные
14. Какие основные этапы жизненного цикла системы Вы знаете?
1. Создание, рост зрелость, разрушение
2. Создание, функционирование, разрушение
3. Создание, отладка, функционирование, разрушение
4. Создание, отладка, функционирование
15. В рамках какой научной дисциплины решаются хорошо структуризованные проблемы?
1. Теория принятия решений
3. Исследование операций
4. Теория игр
16. В рамках какой научной дисциплины решаются слабо структуризованные проблемы?
1. Теория принятия решений
2. Системный анализ
3. Исследование операций
4. Теория эффективности
17. Что является атрибутом проблемы?
1. Место и время возникновения проблемы
2. Сложность
3. Масштаб (размеры несоответствия)
4. Важность
18. В системном анализе система строится для:
1. Изучения состава входящих в нее элементов
2. Выявления проблемы
3. Определения взаимодействия с другими системами
4. Выделения подсистем системы
19. Технологическая схема системного исследования включает в себя:
1. Определение назначения системы, построение системы, анализ системы
2. Определение цели исследования, выявление проблемы, решение проблемы
3. Общий анализ исследуемой системы, выявление проблемы, определение направлений и путей решения проблемы
4. Выявление подсистем системы, выделение системы, анализ системы
20. Необходимыми компонентами системного анализа выступают:
1. Надежность, проблемность, решаемость, целостность
2. Целостность, качество, структурированность, модель
3. Цель, альтернативы, ресурсы, критерий, модель
4. Множество решений, ресурсы, модель
21. Какие из аксиом являются аксиомами теории управления?
1. Наличие наблюдаемости и управляемости объекта управления
2. Наличие свободы действий управляющего органа при выработке управляющих воздействий
3. Наличие свободы выбора управляющих воздействий из множества допустимых альтернатив и ресурсов для реализации принятых решений
4. Наличие цели и критерия эффективности управления
22. Система с управлением это:
1. Система принятия решений
2. Система, в которой реализуется управление
3. Кибернетическая система
4. Система выработки управляющих воздействий
23. Принципами управления являются:
1. Оперативное управление, регулирование, планирование
2. Иерархическое управление, текущее управление, формальное управление
3. Централизованное управление, децентрализованное управление, комбинированное управление
4. Планирование, оперативное управление, контроль
24. Функциями управления являются:
1. Учет, контроль, планирование, оперативное управление
2. Регулирование, прогнозирование, организация, оценка
3. Оценивание, прогнозирование, регулирование, формализация
4. Планирование, оперативное управление, организация, прогнозирование, учет, контроль
25. Принцип необходимого разнообразия У.Р.Эшби формулируется следующим образом:
1. Разнообразие объекта управления должно быть больше разнообразия управляющей системы
2. Разнообразие управляющей системы должно быть больше разнообразия объекта управления
3. Разнообразие управляющей системы должно быть не меньше разнообразия объекта управления
4. Разнообразие управляющей системы должно быть меньше разнообразия объекта управления
26. Задача анализа это:
1. Оптимизация системы
2. Оценка эффективности функционирования системы
3. Выявление структуры системы и принципов ее функционирования
4. Определение состава параметров и элементов системы
27. Задача синтеза это:
1. Определение структуры и параметров системы, исходя из заданных требований к показателям эффективности ее функционирования
2. Выявление принципов построения системы
3. Определение оптимальных значений параметров системы
4. Отыскание оптимальных принципов построения системы
28. Определить назначение шкал измерений
1. Сопоставление значений качественных и количественных характеристик объектов
2. Отождествление альтернатив
3. Измерение состояний объектов, процессов, явлений
4. Установление предпочтений характеристик сравниваемых объектов
29. Понятие «измерение» это:
1. Операция, которая данному наблюдаемому состоянию объекта, процесса, явления ставит в соответствие определенное обозначение
2. Совокупность действий по сбору исходных данных для оценивания объектов
3. Получение исходных данных об объекте с использованием прибора
4. Совокупность правил по сбору сведений о состояниях объектов
30. Сущность задачи парного сравнения состоит в:
1. Определение качественных характеристик сравниваемых объектов
2. Выявлении объекта с большей полезностью
3. Выявлении лучшего из двух сравниваемых объектов
4. Определение параметров сравниваемых объектов
31. Задача ранжирования заключается в:
1. Упорядочении объектов системы по убыванию (возрастанию) значения некоторого признака
2. Присвоении объектам системы ранга
3. Расстановке объектов системы по месту и времени их возникновения
4. Сортировке объектов системы по увеличению частости обращения к ним
32. Сущность задачи классификации заключается в:
1. Измерении параметров системы с помощью шкалы классификации
2. Отнесении заданного элемента системы к одному из подмножеств
3. Упорядочении объектов системы
4. Присвоении объектам системы определенного количественного признака
33. Сущность задачи численной оценки состоит в:
1. Сопоставлении системе одного или нескольких чисел
2. Измерении качественных характеристик объектов системы
3. Оценке существенных характеристик системы
4. Оптимизации параметров системы по выбранному критерию
34. Задача оценивания называется экспертизой, если она:
1 . Решается с помощью специалистов в исследуемой области
2. Решается с помощью консультантов
3. Решается с помощью лица, принимающего решение
4. Решается с помощью экспертов
35. Какие из перечисленных этапов являются этапами проведения экспертизы?
1. Упорядочение множества исходов операции по их предпочтительности
2. Определение полезности каждого исхода
3. Проверка полученных оценок на непротиворечивость путем сравнения оценок предпочтительности полезностей исходов
4. Устранение противоречий в оценках путем корректировки любого варианта упорядочения исходов, либо полезностей, либо того и другого вместе
36. Какие из перечисленных методов являются методами качественного оценивания систем?
1. Морфологические методы
2. Методы векторной оптимизации
3. Методы типа сценариев
4. Метод типа «дерева целей»
37. Какие из перечисленных правил необходимо соблюдать при использовании метода типа «мозговая атака»?
1. Не допускать критики любой идеи, не объявлять ее ложной и не прекращать обсуждение
2. Желательно не высказывать нетривиальные идеи
3. Обеспечить большую свободу мышления участников «мозгового штурма» и высказывания ими новых идей
4. Приветствовать любые идеи, даже если вначале они кажутся сомнительными или абсурдными
38. Метод типа сценариев позволяет:
1. Помочь исследователю составить представление о проблеме
2. Помочь исследователю решить проблему
3. Получить исследователю содержательные рассуждения о проблеме
4. Изучить исследователем проблему с использованием ЭВМ
39. Какие проблемы решаются с использованием методов экспертных оценок?
1. Проблемы, в отношении которых имеется достаточное обеспечение информацией
2. Проблемы, в отношении которых не имеется достаточное обеспечение информацией
3. Проблемы, в отношении которых знаний для уверенности и справедливости указанных гипотез не достаточно
4. Проблемы, в отношении которых знаний для уверенности и справедливости указанных гипотез достаточно
40. Какие из перечисленных этапов не являются этапами экспертизы?
1. Формирование цели и разработка процедуры экспертизы
2. Формирование группы экспертов и проведение опроса
3 . Сбор экспертами статистических данных
4. Анализ и обработка информации
41. Какие из перечисленных процедур не являются процедурами экспертных измерений?
1. Метод Черчмена-Акоффа
2. Метод фон Неймана-Моргенштерна
3. Метод Лагранжа
4. Метод Терстоуна
42. Какие из перечисленных процедур не являются процедурами Дельфи-метода?
1. Последовательность циклов «мозговой атаки»
2. Разработка индивидуальных опросов типа «сценарий»
3. Введение коэффициентов значимости мнений экспертов
4. Разработка программы последовательных индивидуальных опросов
43. Какие из перечисленных процедур не являются составляющими метода ^ PATTERN ?
1. Развертывание дерева целей с рядом критериев для каждого уровня
2. Определение экспертами весов критериев и коэффициентов значимости целей
3. Выявление связей между уровнями дерева целей
4. Определение коэффициента связи целей
44. В чем состоит сущность морфологических методов качественного оценивания систем?
1. Систематическое нахождение всех мыслимых вариантов решения проблемы комбинированием выделенных элементов или их признаков
2. Систематическое нахождение всех мыслимых вариантов реализации системы комбинированием выделенных элементов или их признаков
3. Систематическое нахождение наиболее существенных вариантов решения проблемы или реализации системы комбинированием выделенных элементов или их признаков
4. Систематическое нахождение всех мыслимых вариантов построения системы комбинированием выделенных элементов или их признаков
45. Что является предметом изучения теории принятия решений?
1. Закономерности построения сложных систем
2. Закономерности выделения и принятия решений
3. Закономерности переработки командной (управляющей) информации
4. Закономерности переработки информации состояния в командную информацию
46. Определить основную задачу исследования операций
1. Количественное и качественное обоснование решений
2. Качественное обоснование решений
3. Предварительное количественное обоснование решений
4. Предварительное качественное обоснование решений
47. Операция в теории принятия решений это:
1. Процесс выполнения последовательности действий в системе
2. Этап функционирования системы, ограниченный выполнением определенной цели
3. Совокупность правил построения системы
4. Этап функционирования системы
48. Неуправляемые характеристики системы это:
1. Часть характеристик, которые управляющий орган может менять с помощью объекта управления и должен учитывать при выборе решений
2. Часть характеристик, которые управляющий орган может менять с помощью объекта управления
3. Часть характеристик, которые может изменять объект управления
4. Часть характеристик, которые управляющий орган не может менять с помощью объекта управления, но должен учитывать при выборе решений
49. Управляемые характеристики системы это:
1. Характеристики системы, которые могут меняться управляющим органом
2. Характеристики системы, которые могут меняться объектом управления
3. Выбираемые характеристики
4. Задаваемые характеристики
50. Принятие решения это:
1. Акт задания значений управляемых характеристик
2. Определение состава управляемых и неуправляемых характеристик системы
3. Определение управляющим органом количества, качества, места и времени использования ресурсов для достижения цели
4. Акт задания значений неуправляемых характеристик
51. Допустимыми называются решения:
1. Для которых определены неуправляемые характеристики
2. Принимаемые управляющим органом
3. Удовлетворяющие наложенным ограничениям
4. Для которых определены управляемые характеристики
52. Оптимальным называется решение, которое:
1. Предпочтительнее других решений в области допустимых решений
2. Предпочтительнее других решений с точки зрения определенного признака
3. Является лучшим с точки зрения использования ресурсов системы
4. Имеет лучшие значения неуправляемых характеристик
53. Стратегией в теории принятия решений называется:
1. Совокупность неуправляемых характеристик, принимаемых для выполнения операции
2. Совокупность управляемых характеристик, принимаемых для выполнения операции
3. Совокупность решений, принимаемых для выполнения операции
4. Решение, принимаемое для выполнения операции
54. Сатисфакционный выбор в теории принятия решений это:
1. Выбор множества решений из области допустимых решений
2. Выбор любого решения из области допустимых решений
3. Выбор оптимального решения
4. Выбор допустимых решений
55. Исход операции это:
1. Результат достижения цели операции
2. Реализация того или иного решения
3. Ситуация, сложившаяся (прогнозируемая) на момент завершения операции
4. Заключительный этап реализации операции
56. Эффективность решения это:
1. Свойство решения соответствовать цели операции
2. Свойство системы соответствовать цели, поставленной перед системой
3. Свойство решения, заключающееся в достижении цели операции
4. Совокупность действий по выделению значений управляемых параметров
57. Какие из терминов являются синонимами термина «эффективность»?
1. Результативность
2. Оптимальность
3. Приспособленность
4. Действенность
58. Показатель эффективности решения это:
1. Параметр, значение которого удовлетворяет допустимому решению
2. Показатели исходов операции, на основе которых формируется критерий эффективности
3. Функции показателей исходов операции, на основе которых формируется критерий эффективности
4. Критерий эффективности решения
59. Полезность исхода операции это:
1. Числовая ограниченная функция
2. Действительное число, приписываемое исходу операции и характеризующее его предпочтительность по сравнению с другими показателями относительно цели
3. Показатель исхода операции, служащий для сравнения исходов
4. Действительное число, приписываемое исходу операции
60. Функция полезности это:
1. Линейная функция для определения вида критерия эффективности
2. Числовая ограниченная функция, определенная на множестве исходов
3. Пороговая функция для определения вида критерия эффективности
4. Ограниченная функция, применяемая для оценки эффективности решений
61. Процедура определения функции полезности включает следующие этапы:
1. Выявление показателей исходов операции
2. Определение множества допустимых исходов операции
3. Определение полезностей исходов операции
4. Определение полезности системы
62. Способами определения функции полезности являются следующие:
1. Анализ влияния исходов исследуемой операции на операцию более высокого уровня иерархии
2. Экспертные оценки
3. Аппроксимация
4. Интерпретация
63. Критерий эффективности это:
1. То, по чему сравнивают решения при выборе
2. Параметр, с помощью которого сравниваются решения при выборе
3. Мера, выражающая количественно эффективность каждого решения и служащая основой для выбора одного из них
4. Характеристика, выражающая количественно эффективность каждого решения и служащая основой для выбора одного из них
64. Целевая функция это:
1. Эффективность решения
2. Математическое выражение критерия эффективности решений
3. Один из способов записи критерия эффективности решения
4. Результаты оценки эффективности решения
65. Детерминированная операция это:
1. Операция в которой для каждого решения существует множество исходов операции с известными законами распределения
2. Операция, в которой для каждого решения существует множество исходов операции
3. Операция, в которой для каждого решения существует один вполне определенный исход операции
4. Операция в которой для каждого решения существует один исход операции с известным законом распределения
66. Вероятностная операция это:
1. Операция, в которой каждому решению ставится в соответствие множество исходов операции
2. Операция, в которой каждому решению ставится в соответствие множество исходов операции с известными законами распределения вероятностей на исходах
3. Операция, в которой каждому решению ставится в соответствие множество исходов операции с неизвестными законами распределения вероятностей на исходах
4. Операция в условиях риска
67. Неопределенная операция это:
1. Операция, в которой каждому решению соответствует определенный исход с неизвестным законом распределения вероятностей
2. Операция, в которой каждому решению могут соответствовать различные исходы
3. Операция, в которой каждому решению ставится в соответствие множество исходов операции с известными законами распределения вероятностей на исходах
4. Операция, в которой каждому решению могут соответствовать различные исходы с неизвестными законами распределения вероятностей на исходах
68. Какие из перечисленных этапов составляют процесс выработки решения?
1. Анализ условий проведения операции
2. Построение модели функционирования системы при проведении операции
3. Выбор оптимального решения в рамках построенной модели
4. Формирование принимаемого решения
69. В чем сущность метода комиссий?
1. В организации работы группы экспертов путем открытой дискуссии
2. В организации работы группы экспертов путем закрытой дискуссии
3. В проведении «мозгового штурма»
4. Во всесторонней оценке изучаемого явления, события, процесса
70. Основными свойствами экспертов при проведении групповой экспертизы должны быть:
1. Порядочность
2. Компетентность
3. Креативность
Система - слово греческое, буквально означает целое, составленное из частей. В другом значении - порядок, определенный правильным расположением частей и их взаимосвязями.
Система есть множество связанных между собой элементов, которое рассматривается как целое.
Системой является любой объект, имеющий какие-то свойства, находящиеся в некотором заранее заданном отношении .
Система - обособленная сознанием часть реальности, элементы которой обнаруживают свою общность в процессе взаимодействия .
Структура - относительно устойчивая фиксация связей между элементами системы.
Целостность системы - это ее относительная независимость от среды и других аналогичных систем.
Эмерджентность - несводимость (степень несводимости) свойств системы к свойствам элементов системы.
Под поведением (функционированием) системы будем понимать ее действие во времени. Изменение структуры системы во времени можно рассматривать как эволюцию системы.
Цель системы - предпочтительное для нее состояние.
Целенаправленное поведение - стремление достичь цели.
Обратная связь - воздействие результатов функционирования системы на характер этого функционирования.
Кибернетика (древнегреч. kybernetike - «искусство управления») - отрасль знания, суть которого была сформулирована Н. Винером как наука «о связи, управлении и контроле в машинах и живых организмах» в книге «Кибернетика, или управление и связь в животном и машине» (1948).
Кибернетика занимается изучением систем любой природы, способных воспринимать, хранить и перерабатывать информацию и использовать ее для управления и регулирования. При этом кибернетика широко пользуется математическим методом и стремится к получению конкретных специальных результатов, позволяющих как анализировать такого рода системы (восстанавливать их устройство на основании опыта обращения с ними), так и синтезировать их (рассчитывать схемы систем, способных осуществлять заданные действия).
В рамках кибернетики Винера произошло дальнейшее развитие системных представлений, а именно:
1) типизация моделей систем;
2) выявление значения обратных связей в системе;
3) подчеркивание принципа оптимальности в управлении и синтезе систем;
4) понятие информации как всеобщего свойства материи, осознание возможности ее количественного описания;
5) развитие методологии моделирования вообще и в особенности машинного эксперимента , т.е. математическая экспертиза с помощью ЭВМ.
ОТКРЫТЫЕ СИСТЕМЫ 3
Устойчивость 4
МОДЕЛИ, ФОРМАЛИЗАЦИЯ – 23
3. КЛАССИФИКАЦИЯ СИСТЕМ
В системном анализе классификация занимает особое место, учитывая множество критериев, которые характеризуют структуру системы, ее назначение, особенности функционирования и т.д. Наиболее часто применяются при классификации систем такие критерии.
По субстациональныму признаку системы делятся на три класса:
естественные, которые существуют в объективной действительности (неживая и живая природа, общество). Примеры систем - атом, молекула, живая клетка, организм, популяция, общество;
концептуальные, или идеальные системы, которые отображают реальную действительность, объективный мир. Сюда относят научные теории, литературные произведения, т.е. системы, которые с разной степенью полноты отображают объективную реальность;
искусственные, которые созданы человеком для достижения конкретной цели (технические или организационные).
При использовании системного анализа для задач синтеза и анализа сложных систем управления используют классификацию систем по:
виду объекта - технические, биологические, организационные и др.;
научным направлением - математические, физические, химические и др.;
виду формализации - детерминированные, стохастические;
типу - открытые и закрытые;
сложности структуры и поведения - простые и сложные;
степени организованности - хорошо организованные, плохо организованные (диффузные), с самоорганизацией.
Хорошо организованные системы - это такие, для которых можно определить отдельные элементы, связи между ними, правила объединения в подсистемы и оценить связи между компонентами системы и ее целями. В этом случае проблемная ситуация может описываться в виде математических зависимостей, которые связывают цель и средства ее достижения, так называемых критериев эффективности или оценок функционирования. Решение задач анализа и синтеза в хорошо организованных системах осуществляется аналитическими методами. Примеры: описание работы электронного устройства с помощью системы уравнений, которые учитывают особенности работы; аналитические модели объектов управления и др.
Для отображения исследуемого объекта в виде хорошо организованной системы выделяют наиболее существенные факторы и отбрасывают второстепенные. В хорошо организованных системах используется, в основном, количественная информация. Плохо организованные системы. Для таких систем характерным является отображения и исследование не всех компонентов, а лишь некоторых наборов макропараметров и закономерностей с помощью определенных правил выборки. Например, при получении статистических закономерностей их переносят на поведение систем с некоторыми показателями вероятности. Характерным для этих систем есть использования
многокритериальных задач с многочисленными предположениями и ограничениями. Примеры: системы массового обслуживания, экономические и организационные системы.
В плохо организованных системах используется, в основном, качественная информация, в частности нечеткие множества.
Системы с самоорганизацией. Такие системы имеют признаки диффузных систем: стохастичностьсть поведения и нестационарность параметров. В тоже время они имеют четко определенную возможность адаптации к смене условий работы. Частным случаем системы с самоорганизацией для управления техническими объектами являются адаптивные системы с эталонными моделями или идентификатором, которые рассматриваются в дисциплине «Теория автоматического управления».
Существует ряд подходов к выделению систем по сложности и масштабу. Например, для систем управления удобно пользоваться классификацией по числу (количеству) элементов:
малые (10-103 элементов);
сложные (104107 элементов);
ультрасложные (108 - 1030 элементов);
суперсистемы (1030 - 10200 элементов).
Большая система - это всегда совокупность материальных и энергетических ресурсов, средств получения, передачи и обработки информации, людей, которые принимают решение на разных уровнях иерархии.
В настоящее время для понятий «сложная система» и «большая система» используют такие определения:
сложная система - упорядоченное множество структурно взаимосвязанных и функционально взаимодействующихразнотипных систем, которые объединены структурно в целостный объект функционально разнородными взаимосвязями для достижения заданных целей в определенных условиях;
большая система объединяет разнотипные сложные системы.
Тогда определение системы можно записать как Система - упорядоченное множество структурно взаимосвязанных и функционально
взаимодействующих однотипных элементов любой природы, объединенных в целостный объект, состав и границы которого определяются целями системного исследования. Характерные особенности больших систем:
значительное количество элементов;
взаимосвязь и взаимодействие между элементами;
иерархичность структуры управления;
наличие человека в контуре управления и необходимость принятия решений в условиях неопределенности.
Модель и моделирование систем: типы,
классификация моделей
Модель объект или описание объекта, системы для замещения (при определенных условиях предложениях, гипотезах) одной системы (т.е. оригинала) другой системой для лучшего изучения оригинала или воспроизведения каких либо его свойств.
Модель результат отображения одной структуры (изученной) на другую (малоизученную).
Типы моделей 1) Познавательная модель форма организации и представления знаний, средство
соединения новых и старых знаний. Познавательная модель, как правило,
подгоняется под реальность и является теоретической моделью.
2) Прагматическая модель средство организации практических действий, рабочего представления целей системы для ее управления. Реальность в них подгоняется под некоторую прагматическую модель. Это, как правило, прикладные модели.
3) Инструментальная модель средство построения, исследования и/или использования прагматических и/или познавательных моделей. Познавательные отражают существующие, а прагматические хоть и не существующие, но желаемые и, возможно, исполнимые отношения и связи. По уровню, "глубине" моделирования модели бывают:
эмпирические на основе эмпирических фактов, зависимостей;теоретические на основе математических описаний;
смешанные, полуэмпирические на основе эмпирических зависимостей и математических описаний.
Моделирование – универсальный метод получения описания и использования знаний.
Проблема моделирования состоит из трех задач:
построение модели (эта задача менее формализуема и конструктивна, в том смысле, что нет алгоритма для построения моделей);исследование модели (эта задача более формализуема, имеются методы исследования различных классов моделей);
использование модели (конструктивная и конкретизируемая задача).
Лекция 9: Классификация видов моделирования систем
Классификация видов моделирования может быть проведена по разным основаниям. Один из вариантов классификации приведен на рисунке.
Рис. - Пример классификации видов моделирования
В соответствии с классификационным признаком полноты моделирование делится на: полное, неполное, приближенное.
При полном моделировании модели идентичны объекту во времени и пространстве.
Для неполного моделирования эта идентичность не сохраняется.
В основе приближенного моделирования лежит подобие, при котором некоторые стороны реального объекта не моделируются совсем. Теория подобия утверждает, что абсолютное подобие возможно лишь при замене одного объекта другим точно таким же. Поэтому при моделировании абсолютное подобие не имеет места. Исследователи стремятся к тому, чтобы модель хорошо отображала только исследуемый аспект системы. Например, для оценки помехоустойчивости дискретных каналов передачи информации функциональная и информационная модели системы могут не разрабатываться. Для достижения цели моделирования вполне достаточна событийная модель,
описываемая матрицей условных вероятностей переходов i-го символа алфавита в j-й.
В зависимости от типа носителя и сигнатуры модели различаются следующие виды моделирования: детерминированное и стохастическое, статическое и динамическое, дискретное, непрерывное и дискретно-непрерывное.
Детерминированное моделирование отображает процессы, в которых предполагается отсутствие случайных воздействий.
Стохастическое моделирование учитывает вероятностные процессы и события.
Статическое моделирование служит для описания состояния объекта в фиксированный момент времени, а динамическое - для исследования объекта во времени. При этом оперируют аналоговыми (непрерывными), дискретными и смешанными моделями.
В зависимости от формы реализации носителя и сигнатуры моделирование классифицируется на мысленное и реальное.
Мысленное моделирование применяется тогда, когда модели не реализуемы в заданном интервале времени либо отсутствуют условия для их физического создания (например, ситуация микромира). Мысленное моделирование реальных систем реализуется в виде наглядного, символического и математического. Для представления функциональных, информационных и событийных моделей этого вида моделирования разработано значительное количество средств и методов.
При наглядном моделировании на базе представлений человека о реальных объектах создаются наглядные модели, отображающие явления и процессы, протекающие в объекте. Примером таких моделей являются учебные плакаты, рисунки, схемы, диаграммы.
В основу гипотетического моделирования закладывается гипотеза о закономерностях протекания процесса в реальном объекте, которая отражает уровень знаний исследователя об объекте и базируется на причинноследственных связях между входом и выходом изучаемого объекта. Этот вид моделирования используется, когда знаний об объекте недостаточно для построения формальных моделей. Аналоговое моделирование основывается на применении аналогий различных уровней. Для достаточно простых объектов наивысшим уровнем является полная аналогия. С усложнением системы используются аналогии последующих уровней, когда аналоговая модель отображает несколько (или только одну) сторон функционирования объекта.
Макетирование применяется, когда протекающие в реальном объекте процессы не поддаются физическому моделированию или могут предшествовать проведению других видов моделирования. В основе построения
мысленных макетов также лежат аналогии, обычно базирующиеся на причинноследственных связях между явлениями и процессами в объекте.
Символическое моделирование представляет собой искусственный процесс создания логического объекта, который замещает реальный и выражает его основные свойства с помощью определенной системы знаков и символов.
В основе языкового моделирования лежит некоторый тезаурус, который образуется из набора понятий исследуемой предметной области, причем этот набор должен быть фиксированным. Под тезаурусом понимается словарь, отражающий связи между словами или иными элементами данного языка, предназначенный для поиска слов по их смыслу.
Традиционный тезаурус состоит из двух частей: списка слов и устойчивых словосочетаний, сгруппированных по смысловым (тематическим) рубрикам; алфавитного словаря ключевых слов, задающих классы условной эквивалентности, указателя отношений между ключевыми словами, где для каждого слова указаны соответствующие рубрики. Такое построение позволяет определить семантические (смысловые) отношения иерархического (род/вид) и неиерархического (синонимия, антонимия, ассоциации) типа.
Между тезаурусом и обычным словарем имеются принципиальные различия. Тезаурус - словарь, который очищен от неоднозначности, т.е. в нем каждому слову может соответствовать лишь единственное понятие, хотя в обычном словаре одному слову может соответствовать несколько понятий.
Если ввести условное обозначение отдельных понятий, т.е. знаки, а также определенные операции между этими знаками, то можно реализовать знаковое моделирование и с помощью знаков отображать набор
понятий - составлять отдельные цепочки из слов и предложений. Используя операции объединения, пересечения и дополнения теории множеств, можно в отдельных символах дать описание какого-то реального объекта.
Математическое моделирование - это процесс установления соответствия данному реальному объекту некоторого математического объекта, называемого математической моделью. В принципе, для исследования характеристик любой системы математическими методами, включая и машинные, должна быть обязательно проведена формализация этого процесса, т.е. построена математическая модель. Вид математической модели зависит как от природы реального объекта, так и от задач исследования объекта, от требуемой достоверности и точности решения задачи. Любая математическая модель, как и всякая другая, описывает реальный объект с некоторой степенью приближения.
Для представления математических моделей могут использоваться различные формы записи. Основными являются инвариантная, аналитическая, алгоритмическая и схемная (графическая).
Инвариантная форма - запись соотношений модели с помощью традиционного математического языка безотносительно к методу решения уравнений модели. В этом случае модель может быть представлена как совокупность входов, выходов, переменных состояния и глобальных уравнений системы. Аналитическая форма - запись модели в виде результата решения исходных уравнений модели. Обычно модели в аналитической форме представляют собой явные выражения выходных параметров как функций входов и переменных состояния.
Для аналитического моделирования характерно то, что в основном моделируется только функциональный аспект системы. При этом глобальные уравнения системы, описывающие закон (алгоритм) ее функционирования, записываются в виде некоторых аналитических соотношений (алгебраических, интегродифференциальных, конечноразностных и т.д.) или логических условий. Аналитическая модель исследуется несколькими методами:
аналитическим, когда стремятся получить в общем виде явные зависимости, связывающие искомые характеристики с начальными условиями, параметрами и переменными состояния системы;
численным, когда, не умея решать уравнения в общем виде, стремятся получить числовые результаты при конкретных начальных данных (напомним, что такие модели называются цифровыми);
качественным, когда, не имея решения в явном виде, можно найти некоторые свойства решения (например, оценить устойчивость решения).
В настоящее время распространены компьютерные методы исследования характеристик процесса функционирования сложных систем. Для реализации математической модели на ЭВМ необходимо построить соответствующий моделирующий алгоритм.
Алгоритмическая форма - запись соотношений модели и выбранного численного метода решения в форме алгоритма. Среди алгоритмических моделей важный класс составляют имитационные модели, предназначенные для имитации физических или информационных процессов при различных внешних воздействиях. Собственно имитацию названных процессов называют имитационным моделированием.
При имитационном моделировании воспроизводится алгоритм функционирования системы во времени - поведение системы, причем имитируются элементарные явления, составляющие процесс, с сохранением их логической структуры и последовательности протекания, что позволяет по исходным данным получить сведения о состояниях процесса в определенные моменты времени, дающие возможность оценить характеристики системы. Основным преимуществом имитационного моделирования по сравнению с аналитическим является возможность решения более сложных задач. Имитационные модели позволяют достаточно просто учитывать такие факторы,
как наличие дискретных и непрерывных элементов, нелинейные характеристики элементов системы, многочисленные случайные воздействия и другие, которые часто создают трудности при аналитических исследованиях. В настоящее время имитационное моделирование - наиболее эффективный метод исследования систем, а часто и единственный практически доступный метод получения информации о поведении системы, особенно на этапе ее проектирования.
В имитационном моделировании различают метод статистических испытаний (Монте-Карло) и метод статистического моделирования.
Метод Монте-Карло - численный метод, который применяется для моделирования случайных величин и функций, вероятностные характеристики которых совпадают с решениями аналитических задач. Состоит в многократном воспроизведении процессов, являющихся реализациями случайных величин и функций, с последующей обработкой информации методами математической статистики.
Если этот прием применяется для машинной имитации в целях исследования характеристик процессов функционирования систем, подверженных случайным воздействиям, то такой метод называется методом статистического моделирования.
Метод имитационного моделирования применяется для оценки вариантов структуры системы, эффективности различных алгоритмов управления системой, влияния изменения различных параметров системы. Имитационное моделирование может быть положено в основу структурного, алгоритмического и параметрического синтеза систем, когда требуется создать систему с заданными характеристиками при определенных ограничениях.
Комбинированное (аналитико-имитационное) моделирование позволяет объединить достоинства аналитического и имитационного моделирования. При построении комбинированных моделей производится предварительная декомпозиция процесса Функционирования объекта на составляющие подпроцессы, и для тех из них, где это возможно, используются аналитические модели, а для остальных подпроцессов строятся имитационные модели. Такой подход дает возможность охватить качественно новые классы систем, которые не могут быть исследованы с использованием аналитического или имитационного моделирования в отдельности.
Информационное (кибернетическое ) моделирование связано с исследованием моделей, в которых отсутствует непосредственное подобие физических процессов, происходящих в моделях, реальным процессам. В этом случае стремятся отобразить лишь некоторую функцию, рассматривают реальный объект как «черный ящик», имеющий ряд входов и выходов, и моделируют некоторые связи между выходами и входами. Таким образом, в основе информационных (кибернетических) моделей лежит отражение некоторых информационных процессов управления, что позволяет оценить поведение
реального объекта. Для построения модели в этом случае необходимо выделить исследуемую функцию реального объекта, попытаться формализовать эту функцию в виде некоторых операторов связи между входом и выходом и воспроизвести данную функцию на имитационной модели, причем на совершенно другом математическом языке и, естественно, иной физической реализации процесса. Так, например, экспертные системы являются моделями ЛПР.
Структурное моделирование системного анализа базируется на некоторых специфических особенностях структур определенного вида, которые используются как средство исследования систем или служат для разработки на их основе специфических подходов к моделированию с применением других методов формализованного представления систем (теоретико-множественных, лингвистических, кибернетических и т.п.). Развитием структурного моделирования является объектно-ориентированное моделирование.
Структурное моделирование системного анализа включает:
методы сетевого моделирования;
сочетание методов структуризации с лингвистическими;
структурный подход в направлении формализации построения и исследования структур разного типа (иерархических, матричных, произвольных графов) на основе теоретико множественных представлений и понятия номинальной шкалы теории измерений.
При этом термин «структура модели» может применяться как функциям, так и к элементам системы. Соответствующие структуры называются функциональными и морфологическими. Объектно-ориентированное моделирование объединяет структуры обоих типов в иерархию классов, включающих как элементы, так и функции.
В структурном моделировании за последнее десятилетие сформировалась новая технология CASE. Аббревиатура CASE имеет двоякое толкование, соответствующее двум направлениям использования CASE-систем. Первое из них - Computer-Aided Software Engineering - переводится как автоматизированное проектирование программного обеспечения. Соответствующие CASE-системы часто называют инструментальными средами быстрой разработки программного обеспечения (RAD - Rapid Application Development). Второе - Computer-Aided System Engineering - подчеркивает направленность на поддержку концептуального моделирования сложных систем, преимущественно слабоструктурированных. Такие CASE-системы часто называют системами BPR (Business Process Reengineering). В целом
CASE-технология представляет собой совокупность методологий анализа, проектирования, разработки и сопровождения сложных автоматизированных систем, поддерживаемую комплексом взаимосвязанных средств автоматизации. CASE - это инструментарий для системных аналитиков, разработчиков и
МОСКОВСК ий ГОСУДАРСТВЕНН ый университет технологий и управления
(образован в 1953 году)
Кафедра физики и высшей математики
А.Р. Садыкова
ТЕОРИЯ ПРИНЯТИЯ РЕШЕНИЯ.
ТЕОРИЯ СИСТЕМ И СИСТЕМНЫЙ АНАЛИЗ
Учебно - практическое пособие
для студентов специальности 2202
всех форм обучения
www . msta . ru
Москва – 2004 4093
© Садыкова А.Р. Теория принятия решения. Теория систем и системный анализ. Учебное пособие для студентов специальности 2202, всех форм обучения. –МГУТУ, 2004 г.
Пособие содержит краткое изложение основных теоретических сведений и конкретных методов принятие решений, необходимых для практического применения в профессиональной деятельности.
Рассматриваемые вопросы соответствуют государственным образовательным стандартам.
Конкретные вопросы и тесты предложенные в пособии помогут студентам самостоятельно изучить разделы «Методы принятия решений» и «Теория систем и системный анализ».
Пособие предназначено для студентов обучающихся по специальности 2202.
Рецензенты: Доц. К.Т.Н. Латышева Е.И., Доц. К.Т.Н. Денискин Ю.Д.
Редактор: Свешникова Н.И.
© Московский государственный университет технологий и управления, 2004
109004, Москва, Земляной вал, 73
Цели и задачи дисциплины 4
Глава I. Основные понятия и определения 4
1.1 Принятие решений как вид человеческой деятельности 4
1.2 Математические модели принятия решений 6
вопросы для самопроверки по главе 9
Тест по главе 9
2. Глава II . Математические модели оптимизации ресурсов и
принятия решений 10
2.1 Общий случай математической постановки задачи оптимизации 10
2.2 Методы оптимизации и распределение ресурсов на основе задачи
линейного программирования 11
2.3 Методы многопараметрической оптимизации в процессах
планирования, управления и принятия решения 12
2.4 Задачи линейного программирования в оперативном управлении
производством и принятии решений 14
вопросы для самопроверки по главе 17
Тест по главе 17
3. Глава III . Задачи нелинейного программирования в процессе оптимизации
ресурсов принятия решений 18
3.1 Аналитические методы решения задач безусловной оптимизации 19
3.2 Задачи условной оптимизации и методы их решений 20
вопросы для самопроверки по главе 21
Тест по главе 21
4. Глава IV . Теоретико – игровые модели принятия решений 22
4.1 Матричные игры 22
4.2 Позиционные игры 25
4.3 Биматричные игры 27
вопросы для самопроверки по главе 30
Тест по главе 31
5. Глава V . Исследование операций 31
5.1 Динамическое программирование 31
5.2 Элементы теории управления запасами 35
5.3 Теория массового обслуживания 37
вопросы для самопроверки по главе 42
Тест по главе 42
6. тест по дисциплине 42
7. Вопросы для самопроверки 43
8. Словарь основных понятий 44
9. Литература 45
10. Ответы к тестам 46
Цели и задачи дисциплины.
Теория принятия решений .
Цели – ознакомление студентов с содержанием задачи принятия решений, его места и роли в процессе управления. Наряду с освоением основных понятий, они изучат базовые, классические задачи теории принятия решений и методы их решения, которые являются фундаментом для дальнейшего развития методов принятия решений, а также служат практическим инструментом при решении многих прикладных задач управления.
Задачи: Иметь представление о понятиях – функция принятия решения; процесс принятия решения; общая задача принятия решения и ее содержание; методы изменения в теории принятия решений; основные задачи; методы решения основных задач.
Знать – основные понятия, методы и правила решения задач принятия решения. Приобрести навыки решения задач и оценки правильности полученных результатов.
Теория систем и системный анализ.
Цели – изучение и освоение основных понятий и законов теории систем и системного анализа.
Студент должен знать:
Основные принципы составления математических моделей принятия оптимальных решений в условиях конфликта;
Математический аппарат теории систем и системного анализа: методы решения дифференциальных и интегральных уравнений; комбинаторику; теорию вероятности и математическую статистику;
Виды и положения теории игр.
Исследовать простейшие задачи теории систем;
Находить связь в задачах анализе систем с методами понятия кибернетики и информатики;
Сводить простейшие задачи теории игр к задачам линейного программирования.