3. Тестирование и отладка по. Основные принципы тестирования. Стратегии тестирования программных модулей. Методы структурного тестирования. (тп)
Тести́рование программного обеспечения — процесс выявления ошибок в программном обеспечении (ПО). К сожалению, существующие на сегодняшний день методы тестирования ПО не позволяют однозначно и полностью установить корректность функционирования анализируемой программы. Поэтому все существующие методы тестирования действуют в рамках формального процесса проверки исследуемого ПО.
Такой процесс формальной проверки или верификации может доказать, что дефекты отсутствуют, с точки зрения используемого метода. (Т.е. нет никакой возможности точно установить или гарантировать отсутствие дефектов в программном продукте с учётом человеческого фактора, присутствующего на всех этапах жизненного цикла ПО).
Существует множество подходов к решению задачи тестирования ПО, но эффективное тестирование сложных программных продуктов — это процесс в высшей степени творческий, не сводящийся к следованию строгим и чётким процедурам или созданию таковых.
Конечной целью любого процесса тестирования является обеспечение такого ёмкого (совокупного) понятия как Качество, с учётом всех или наиболее критичных для данного конкретного случая составляющих.
Если нет систематического способа выбора подмножества входных условий, то чаще всего формируется нерепрезентативный тестовый набор. Метод диаграмм причинно-следственных связей (метод функциональных диаграмм) позволяет сформировывать репрезентативные наборы тестовых данных и осуществлять систематическую генерацию высокорезультативных тестов. Построение тестов методом причинно-следственных связей происходит в несколько этапов:
Анализ спецификации. Определяются причины (классы эквивалентности) и следствия (выходное условие или преобразование системы), уточняются их отношения.
Построение булевого графа по результатам анализа. Визуализация причин, следствий и множества отношений между ними.
Формирование таблицы решений. Преобразование булевого графа в таблицу решений путём методического прослеживания состояний условий диаграммы.
Генерация тестового набора по столбцам таблицы решений.
Статическое и динамическое тестирование
При статическом тестировании программный код не выполняется — анализ программы происходит на основе исходного кода, который вычитывается вручную, либо анализируется специальными инструментами. В некоторых случаях, анализируется не исходный, а промежуточный код (такой как байт-код или код на MSIL).
Стати́ческий ана́лиз ко́да (англ. static code analysis) — анализ программного обеспечения, производимый без реального выполнения исследуемых программ (анализ, производимый с выполнением программ называется динамический анализ кода). В большинстве случаев анализ производится над какой-либо версией исходного кода, хотя иногда анализу подвергается какой-нибудь вид объектного кода, например P-код или код на MSIL. Термин обычно применяют к анализу, производимому специальным ПО, тогда как ручной анализ называют пониманием или постижением программы.
В зависимости от используемого инструмента, глубина анализа может варьировать — от определения поведения отдельных операторов до анализа, включающего весь имеющийся исходный код. Способы использования полученной в ходе анализа информации также различны — от выявления мест, возможно содержащих ошибки, до формальных методов, позволяющих математически доказать какие-либо свойства программы (например, соответствие поведения спецификации).
Динамический анализ кода — анализ программного обеспечения, выполняемый при помощи выполнения программ на реальном или виртуальном процессоре (анализ, выполняемый без запуска программ называется статический анализ кода). Утилиты динамического анализа могут требовать загрузки специальных библиотек или даже перекомпиляцию программного кода.
При тестировании белого ящика (структурное тестирование)(англ. white-box testing, также говорят — прозрачного ящика), разработчик теста имеет доступ к исходному коду и может писать код, который связан с библиотеками тестируемого ПО. Это типично для юнит-тестирования (англ. unit testing), при котором тестируются только отдельные части системы. Оно обеспечивает то, что компоненты конструкции — работоспособны и устойчивы, до определенной степени.
При тестировании системы как стеклянного ящика тестировщик имеет доступ не только к требованиям к системе, ее входам и выходам, но и к ее внутренней структуре - видит ее программный код.
Доступность программного кода расширяет возможности тестировщика тем, что он может видеть соответствие требований участкам программного кода и определять тем самым, на весь ли программный код существуют требования. Программный код, для которого отсутствуют требования, называют кодом, не покрытым требованиями. Такой код является потенциальным источником неадекватного поведения системы. Кроме того, прозрачность системы позволяет углубить анализ ее участков, вызывающих проблемы - часто одна проблема нейтрализует другую, и они никогда не возникают одновременно.
ЭКЗАМЕНАЦИОННЫЙ БИЛЕТ № 10
- 1. Автоматы и формальные языки. Классификация формальных языков и автоматов. Концепция порождения и распознавания. (та)
- 2. Технологические процессы изготовления печатных плат. (ктоп)
- 3. Прерывания в мпс. Типы прерываний. (мпс)
- 1. Регулярные языки и конечные автоматы. (та)
- 2. Индуктивные паразитные наводки в цепях эва. (ктоп)
- 3. Обмен информацией между микропроцессором и внешним устройством. (мпс)
- 1. Контекстно-свободные грамматики и магазинные автоматы. (та)
- 2. Эффективность электромагнитного экранирования. Расчёт электромагнитных экранов. (ктоп)
- 3. Система ввода-вывода. Параллельный порт. (мпс)
- 1. Произвольные автоматы и машина Тьюринга. (та)
- 2. Емкостные паразитные наводки в цепях эва. (ктоп)
- 3. Понятие «технология программирования». Характеристики качества программного обеспечения. Сложность по. Пути ограничения сложности. (тп)
- 1. Абстрактный синтез конечных автоматов. Минимизация и детерминация конечных автоматов. Автоматы Мили и Мура. (та)
- 2. Понятие надёжности электронного аппарата. Расчёт времени безотказной работы. (ктоп)
- 3. Модели жизненного цикла по. Методологии разработки сложных программных систем. Примеры «тяжелого» и «легкого» процесса. (тп)
- 1. Структурный автомат. Канонический метод структурного синтеза автоматов. Этапы синтеза. (та)
- 2. Конструкции корпусов эа и механизмы переноса тепла в них. (ктоп)
- 3. Универсальный язык моделирования uml, его назначение. Варианты использования. Диаграммы вариантов использования. Диаграммы классов. (тп)
- 1. Память структурного автомата. Элементы памяти. Триггеры. (та)
- 2. Роль стандартизации в технике конструирования. Применение ескд и естд. (ктоп)
- 3. Универсальный язык моделирования uml, его назначение. Диаграммы взаимодействия: последовательные и кооперативные. Применение этих диаграмм. (тп)
- Кооперативные диаграммы
- 1. Экспертный метод весовых коэффициентов важности. (моделирование)
- 2. Понятие вычислительного процесса и ресурса, классификация ресурсов, основные виды ресурсов. (спо)
- 3. Универсальный язык моделирования uml, его назначение. Диаграммы деятельности. Диаграммы состояний. Применение этих диаграмм. (тп)
- 1. Планирование и обработка результатов расслоенного (ступенчатого) эксперимента. (моделирование)
- 2. Процессы, состояния процесса, операции над процессами, планирование и диспетчеризация процессов. (спо)
- 3. Тестирование и отладка по. Основные принципы тестирования. Стратегии тестирования программных модулей. Методы структурного тестирования. (тп)
- 1. Полный факторный эксперимент (пфэ). (моделирование)
- 2. Параллельная обработка процессов, проблемы критических участков, взаимоисключения. Синхронизация параллельных процессов на низком уровне. (спо)
- 3. Тестирование по. Основные принципы тестирования. Структурное и функциональное тестирование. Методы функционального тестирования. (тп)
- 1. Модифицированный метод случайного баланса (ммсб). (моделирование)
- 2. Параллельная обработка процессов, проблемы критических участков, взаимоисключения. Синхронизация параллельных процессов на высоком уровне. (спо)
- 3. Эволюция технологий программирования. Структурное программирование. Объектно-ориентированное программирование. (тп)
- 1. Метод наименьших квадратов с предварительной ортогонализацией факторов (мнко). (моделирование)
- 2. Тупики, типы ресурсов для изучения тупиковых ситуаций, необходимые условия возникновения тупиков, стратегии предотвращения тупиков (спо)
- 3. Стадии разработки новой сапр и программного обеспечения сапр. (сапр)
- 1. Планирование второго порядка. Типы планов, их особенности.
- 2. Стратегии управления памятью: стратегии вталкивания, стратегии размещения, стратегии выталкивания. (спо)
- 3. Основная функция сапр. Классификация объектов сапр. (сапр)
- 1. Задача оптимизации. Метод крутого восхождения (Бокса-Уилсона). (моделирование)
- 2. Файловая система, функции файловой системы, состав файловой системы, архитектура, примеры современных файловых систем. (спо)
- 3. Виды и назначение составляющих компонентов сапр. Аннотация. (сапр)
- 1. Оптимизация в условиях ограничений. (моделирование)
- 2. Иерархия памяти. Эволюция видов организации памяти. Особенности страничной, сегментной и сегментно-страничной организации памяти. (спо) Иерархия памяти
- Эволюция видов организации памяти
- Сегментация
- Страничная организация памяти
- Комбинированная сегментно-страничная организация памяти
- 3. Моделирование в сапр. Виды моделей. Применение.
- 1. Цифровые интегральные микросхемы. Серии интегральных микросхем. Параметры цифровых имс. (схемотехника)
- 2. Концепция файловых систем fat32 и ntfs: структура логического диска, возможности, преимущества. (спо)
- 3. Метод конечных элементов. Особенности р- и h-версий. Применение. (сапр)
- 1. Базовые логические элементы (блэ). Параметры и характеристики блэ. (схемотехника)
- 2. Стандартный интерфейс ieее-1284. (ипу)
- 3. Графические стандарты сапр. Уровни связи. Международные организации, устанавливающие стандарты. (сапр)
- 1. Основные типы (технологии) базовых логических элементов. Сравнительная характеристика серий ттл, ттлш, кмоп, эсл, иил (схемотехника)
- 2. Стандартный интерфейс rs-232c. (ипу)
- 3. Основные концепции графического программирования в сапр. Краткий обзор (сапр)
- 2. Шина расширения eisa. (ипу)
- 3. Виртуальная инженерия. Понятие. Компоненты. (сапр)
- 1. Комбинационные схемы: шинный формирователь, схема сравнения, сумматоры. (схемотехника)
- 1) Шинный формирователь
- Сумматор Сумматор (англ. – adder) – цифровой узел, вычисляющий код арифметической суммы входных кодов. Сумматор с последовательным переносом
- 2. Организация стандартной шины pci. (ипу)
- 3. Типы данных сапр, поддерживаемых субд. Классификация. (сапр)
- 1. Триггеры. Принцип действия основных типов триггеров. (схемотехника)
- 2. Вид и организация устройств памяти. Интерфейсы устройств памяти. (ипу)
- 3. Базы данных сапр. Особенности хранения и применения. (сапр)
- 1. Счётчики. Основные типы счётчиков. (схемотехника)
- 2) Организация стандартной шины pci (ипу)
- 2. Интерфейсы графических адаптеров и мониторов. (ипу)
- 3. Общие принципы построения вычислительных сетей. Состав сети, квалификация вычислительных сетей. Топологии сетей. (сети)
- 1. Постоянное запоминающее устройство (пзу). Характеристика основных типов пзу. (схемотехника)
- 2. Параллельный интерфейс нжмд ата и его последовательная модернизация Serial ata. (ипу)
- 3. Модель osi. Уровни модели osi. Функции, выполняемые уровнями. (сети)
- 1. Оперативное запоминающее устройство (озу). Статическое и динамическое озу. (схемотехника)
- 2. Функциональное устройство звуковой карты, интерфейс midi, электромузыкальный цифровой синтезатор. (ипу)
- Стандарт на аппаратуру и программное обеспечение
- 3. Система передачи данных в сети. Типы линий связи. Основные характеристики каналов связи. (сети)
- 1. Буферная память типа fifo ("очередь") и lifo ("магазин"). (схемотехника)
- 2. Структура центрального процессора. Основные блоки. (мпс)
- 3. Кодирование информации. Виды кодов. Самосинхронизирующиеся коды. (сети)
- 1. Базовый принцип конструирования и конструктивные модули. (ктоп)
- 2. Традиционная архитектура мпс по принципам фон Неймана. (мпс)
- 3. Способы доступа к сети. Метод доступа опроса/выбора. Маркерный метод доступа. (сети)
- 1. Показатели качества конструкции. (ктоп)
- 2. Система ввода-вывода. Последовательный порт. (мпс)
- 3. Технологии локальных сетей. Сравнить особенности технологий Ethernet, Fast Ethernet, Gigabit Ethernet, Token Ring, fddi. Оборудование локальных сетей. (сети)
- 1. Влияние внешних факторов на работу эа и методы борьбы с ними. (ктоп)
- 2. Типы памяти микропроцессора. Подключение памяти. (мпс)
- 3. Технологии глобальных сетей X.25, Frame Relay, атм. Формат блока данных. Основные процедуры, используемые протоколы. (сети)