
- •Обозначение документа
- •Содержание
- •1 Виды тестирования. Порядок разработки тестов.
- •2 Обслуживание жестких дисков
- •3 Компиляторы и интерпретаторы
- •4 Регистры общего назначения
- •5 Косвенная базовая индексная адресация со смещением
- •6 Команды обмена данными (работа со стеком)
- •7 Программирование типовых управляющих
Федеральное агентство связи
Государственное образовательное учреждение
высшего профессионального образования
«САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ТЕЛЕКОММУНИКАЦИЙ ИМ. ПРОФ. М.А. БОНЧ-БРУЕВИЧА»
«Архангельский колледж телекоммуникаций (филиал) Санкт – Петербургского государственного университета телекоммуникаций им. проф. М.А. Бонч-Бруевича»
контрольная работа
ПО ДИСЦИПЛИНЕ
Системное программирование
Обозначение документа
Студент ПКС-205 207 В.С. Привалов
группа шифр И. О. Ф
Преподаватель А.А. Зубарев
оценка подпись И. О. Ф
Архангельск 2014
Содержание
1. Виды тестирования. Порядок разработки тестов.
Методы тестирования 3
2. Обслуживание жестких дисков (дефрагментация диска,
утилита Defrag) 8
3. Компиляторы и интерпретаторы 9
4. Регистры общего назначения (регистры указатели стека и
базы кадра стека) 11
5. Косвенная базовая индексная адресация со смещением 13
6. Команды обмена данными (работа со стеком) 15
7. Программирование типовых управляющих структур
(оператор выбора switch) 17
Список сокращённых слов 20
Список использованных источников 21
1 Виды тестирования. Порядок разработки тестов.
Методы тестирования
Тестирование программного обеспечения — процесс выявления ошибок в программном обеспечении (ПО). Существующие на сегодняшний день методы тестирования (ПО) не позволяют однозначно и полностью устранить все дефекты и ошибки и установить корректность функционирования анализируемой программы особенно в закрытых частных программах. Поэтому все существующие методы тестирования действуют в рамках формального процесса проверки исследуемого или разрабатываемого (ПО).
Такой процесс формальной проверки или верификации может доказать, что дефекты отсутствуют, с точки зрения используемого метода. (То есть нет никакой возможности точно установить или гарантировать отсутствие дефектов в программном продукте с учётом человеческого фактора, присутствующего на всех этапах жизненного цикла ПО).
Существует множество подходов к решению задачи тестирования и верификации (ПО), но эффективное тестирование сложных программных продуктов — это процесс в высшей степени творческий, не сводящийся к следованию строгим и чётким процедурам или созданию таковых.
Тестирование (ПО) — попытка определить, выполняет ли программа то, что от неё ожидают. Как правило, никакое тестирование не может дать абсолютной гарантии работоспособности программы в будущем.
Для наглядности: почти все производители коммерческого (ПО) исправляют ошибки в своих продуктах.
Например: Корпорация Microsoft выпускает пакеты обновлений («Service Pack»), для своих операционных систем. Разработчики игр регулярно выпускают «патчи» для своих продуктов. Большинство разработчиков (ПО) после устранения ошибок выпускают обновлённую (новую) версию своей программы.
Виды тестирования программного обеспечения
Существует несколько признаков по которым принято производить классификацию видов тестирования. Обычно выделяют следующие признаки.
По объекту тестирования:
- Функциональное тестирование (functional testing).
Нагрузочное тестирование:
- Тестирование производительности (perfomance/stress testing);
- Тестирование стабильности (stability/load testing);
- Тестирование удобства использования (usability testing);
- Тестирование интерфейса пользователя (UI testing);
- Тестирование безопасности (security testing);
- Тестирование локализации (localization testing);
- Тестирование совместимости (compatibility testing).
По знанию системы:
- Тестирование чёрного ящика (black box);
- Тестирование белого ящика (white box);
- Тестирование серого ящика (gray box);
- По степени автоматизированности:
- Ручное тестирование (manual testing);
- Автоматизированное тестирование (automated testing);
- Полуавтоматизированное тестирование (semiautomated testing).
По степени изолированности компонентов:
- Компонентное (модульное) тестирование (component/unit testing);
- Интеграционное тестирование (integration testing);
- Системное тестирование (system/end-to-end testing);
- По времени проведения тестирования:
- Альфа тестирование (alpha testing);
- Тестирование при приёмке (smoke testing);
- Тестирование новых функциональностей (new feature testing);
- Регрессионное тестирование (regression testing);
- Тестирование при сдаче (acceptance testing);
- Бета тестирование (beta testing).
По признаку позитивности сценариев:
- Позитивное тестирование (positive testing);
- Негативное тестирование (negative testing).
По степени подготовленности к тестированию:
- Тестирование по документации (formal testing);
- Эд Хок (интуитивное) тестирование (ad hoc testing).
Методы тестирования программного обеспечения
Существует несколько методов тестирования:
- Тестирование программ методом "чёрного ящика" (Black box testing);
- Тестирование софта методом "белого ящика" (White box);
- Тестирование ПО методом "серого ящика" (Grey box);
- Тестирование не функциональных аспектов программы;
- Тестирование программы как "белого ящика" и "чёрного ящика".
В терминологии профессионалов тестирования (программного и некоторого аппаратного обеспечения) фразы "тестирование белого ящика" и "тестирование черного ящика" относятся к тому, имеет ли разработчик тестов и тестирощик доступ к исходному коду тестируемого ПО, или же тестирование выполняется через пользовательский интерфейс либо прикладной программный интерфейс, предоставленный тестируемым модулем.
При тестировании белого ящика (англ. white-box testing, также говорят — прозрачного ящика), разработчик теста имеет доступ к исходному коду и может писать код, который связан с библиотеками тестируемого ПО. Это типично для юнит-тестирования (англ. unit testing), при котором тестируются только отдельные части системы. Оно обеспечивает то, что компоненты конструкции — работоспособны и устойчивы, до определенной степени.
При тестировании чёрного ящика (англ. black-box testing), тестировщик имеет доступ к ПО только через те же интерфейсы, что и заказчик или пользователь, либо через внешние интерфейсы, позволяющие другому компьютеру либо другому процессу подключиться к системе для тестирования. Например, тестирующий модуль может виртуально нажимать клавиши или кнопки мыши в тестируемой программе с помощью механизма взаимодействия процессов, с уверенностью в том, все ли идет правильно, что эти события вызывают тот же отклик, что и реальные нажатия клавиш и кнопок мыши. Как правило, тестирование чёрного ящика ведётся с использованием спецификаций или иных документов, описывающих требования к системе.
Если «альфа-» и «бета-тестирование» относятся к стадиям до выпуска продукта (а также, неявно, к объёму тестирующего сообщества и ограничениям на методы тестирования), тестирование «белого ящика» и «черного ящика» имеет отношение к способам, которыми тестировщик достигает цели.
Бета-тестирование в целом ограничено техникой чёрного ящика (хотя постоянная часть тестировщиков обычно продолжает тестирование белого ящика параллельно бета-тестированию). Таким образом, термин «бета-тестирование» может указывать на состояние программы (ближе к выпуску чем «альфа»), или может указывать на некоторую группу тестировщиков и процесс, выполняемый этой группой. Итак, тестировщик может продолжать работу по тестированию белого ящика, хотя ПО уже «в бете» (стадия), но в этом случае он не является частью «бета-тестирования» (группы/процесса).
Тестирование нефункциональных параметров программы
Существуют специальные методы для тестирования аспектов программ, не являющихся функциональными, т.е. не относящихся к работоспособности самих программ. Это тестирование:
- Тестирование производительности программного обеспечения - посмотреть работоспособность, если программа управляет большим количеством данных или имеет большое число пользователей. Это напрямую относится к понятию масштабируемости приложений.
- Тестирование "Usability" - тестирование интерфейса пользователя, его удобности, практичности и лёгкости для освоения обычным пользователем.
Тестирование безопасности программ важно для программ, имеющих дело с конфиденциальными данными для предотвращения использования уязвимостей хакерами.
Тестирование качества интернационализации и локализации программного обеспечения.