Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Консп лек Информатика профиль ФиК.doc
Скачиваний:
72
Добавлен:
24.11.2019
Размер:
3.65 Mб
Скачать
      1. Этапы решения задач на эвм

Без участия компьютера:

1 Постановка задачи: сбор информации о задаче, формулировка условия задачи, определение конечных целей решения задачи, определение формы выдачи результатов, описание данных (их типов, диапазонов величин, структуры и т.п). Постановка задачи состоит в четком формулировании целей работы. Необходимо четко определить, что является исходными данными, что требуется получить в качестве результата, каким должен быть интерфейс программы (т.е. каким путем будет осуществляться диалог с пользователем) и т.д.

2 Анализ и исследование задачи, модели: анализ существующих аналогов; анализ технических и программных средств; pазpаботка математической модели; разработка структур данных.

3 Разработка алгоритма: выбор метода проектирования алгоритма; выбор формы записи алгоритма (блок-схемы, псевдокод и др.); выбор тестов и метода тестирования; проектирование алгоритма.

С участием компьютера:

4 Программирование: выбор языка программирования; уточнение способов организации данных; запись алгоритма на выбранном языке пpогpаммиpования.

Разработка программы

5 Тестирование и отладка: синтаксическая отладка; отладка семантики и логической стpуктуpы; тестовые расчеты и анализ результатов тестирования; совершенствование пpогpаммы.

6 Анализ результатов решения задачи и уточнение в случае необходимости математической модели с повторным выполнением этапов 2 — 5.

7 Сопровождение программы: доработка программы для решения конкретных задач;

составление документации к решенной задаче, к математической модели, к алгоритму, к программе, к набору тестов, к использованию.

Отладка и тестирование.

Отладка — это поиск и устранение синтаксических и других элементарных ошибок в программах на этапах трансляции и сборки.

Отладчик (debugger) – модуль среды разработки или отдельное приложение, предназначенное для поиска ошибок в программе. Отладчик выполняет пошаговую трассировку, отслеживает, устанавливает или изменяет значение переменных в процессе выполнения программы, устанавливает и удаляет контрольные точки или условия остановки.

Тестирование — проверка правильности работы программы на заранее подготовленных тестах, для которых известен точный результат.

При тестировании программы важно проверить ее работоспособность как можно в большем числе ситуаций, например, при различных вариантах исходных данных. Бывает, что в 1000 случаях программа сработает нормально, а на 1001-й раз обнаружится ошибка. При написании серьезных программных продуктов для более полного их тестирования фирмы-разработчики часто распространяют их пробные версии (бета-версии) среди как можно большего числа пользователей, которые сообщают в фирму об обнаруженных ошибках, что позволяет исправить их в окончательных версиях программных продуктов.

Тестирование устанавливает факт наличия ошибок, а отладка выясняет ее причину.

Классификация тестирования программного обеспечения:

По объекту тестирования: Функциональное тестирование; Нагрузочное тестирование (Тестирование производительности; Тестирование стабильности); Тестирование удобства использования; Тестирование интерфейса пользователя; Тестирование безопасности; Тестирование локализации; Тестирование совместимости.

По знанию системы: тестирование чёрного ящика; тестирование белого ящика; тестирование серого ящика.

По степени автоматизированности: ручное тестирование; автоматизированное тестирование; полуавтоматизированное тестирование.

По степени изолированности компонентов: компонентное (модульное) тестирование; интеграционное тестирование; системное тестирование.

По времени проведения тестирования: альфа тестирование (тестирование при приёмке, тестирование новых функциональностей, регрессионное тестирование; тестирование при сдаче); бета тестирование.

По признаку позитивности сценариев: позитивное тестирование; негативное тестирование.

По степени подготовленности к тестированию: тестирование по документации; Эд Хок (интуитивное) тестирование.

Тестирование делится на статическое и динамическое.

Статическое тестирование – тестирование, при котором код программы не выполняется. Мы проверяем не работу программы, а сам код. Он вычитывается либо вручную, либо с помощью программ, которые анализируют код. На этом этапе можно найти неверные конструкции, неверные отношения объектов программы.

Когда говорят «тестирование», то это термин обычно употребляют применимо к динамическому тестированию.

Динамическое тестирование – это тестирование, при котором выполняется код программы. Оно делится на несколько подтипов. Например, тестирование «ящиков»: тестирование белого ящика, тестирование черного ящика, а иногда выделяют и тестирование серого ящика. Эта классификация уже относится к способам тестирования, т.е. как именно тестируют программу.

Стратегия тестирования по принципу «Белого ящика» (англ.black box) – также называемая стратегией тестирования управляемой логикой программы позволяет проверить внутреннюю структуру программы. Исходя из этой стратегии, тестировщик получает тестовые данные путем анализа логики работы программы.

Необходимо составить такое число тестов, при которых каждое условие в программе примет как истинное значение, так и ложное значение.

Тестирование белого ящика – тестирование, при котором тестировщик имеет доступ к коду. Его еще называют тестированием стеклянного ящика или тестированием прозрачного ящика. Кроме того, что тестировщик может просматривать код, он еще и сам может писать код, который использует библиотеки существующего программного продукта.

Цель этого вида тестирования в том, чтобы проверить каждую ветвь кода, каждый путь, каждый оператор, проверить сам код.

Тестирование черного ящика – тестирование, при котором тестировщик имеет доступ к программе только через интерфейс.

Тестировщик глазами пользователя смотрит на программу, не имея при этом доступа к коду. Но так как он всё-таки тестировщик, то проверяет программу не как пользователь, а с помощью своих стратегий и методов: либо вручную, либо с помощью инструментов тестирования. Он может что-то автоматизировать, либо применять какие-либо инструменты.

Преимущество такого вида тестирования в том, что оно не требует знания языков программирования. Но даже если тестировщик знает язык, на котором написана программа, но не видит код программы, тогда он не зацикливается на коде. Ты знаешь ожидаемый результат, знаешь требования пользователя и в соответствии с этим тестируешь, пользуясь интерфейсом.

Цель этого способа тестирования в том, чтобы проверить расхождение поведения программы с документацией. Есть требования в документации, мы видим, как работает программа, соответственно проверяем, где неточность.

В этой стратегии программа рассматривается как чёрный ящик. Целью тестирования ставится выяснение обстоятельств, в которых поведение программы не соответствует спецификации

В терминологии профессионалов тестирования, фразы «тестирование белого ящика» и «тестирование чёрного ящика» относятся к тому, имеет ли разработчик тестов доступ к исходному коду тестируемого ПО, или же тестирование выполняется через пользовательский интерфейс либо прикладной программный интерфейс, предоставленный тестируемым модулем.

Тестирование серого ящика – находится в пограничном состоянии между белым ящиком и черным, поэтому его и называют серым. Сочетание происходит таким образом: снаружи на продукт смотрим как на черный ящик, но выбор тестов основываем на знании внутреннего устройства программы, знании ее кода. Этот метод часто используется для тестирования Web Internet приложений.

Уровни тестирования:

  • Модульное тестирование (юнит-тестирование) — тестируется минимально возможный для тестирования компонент, например, отдельный класс или функция. Часто модульное тестирование осуществляется разработчиками ПО.

  • Интеграционное тестирование — тестируются интерфейсы между компонентами, подсистемами. При наличии резерва времени на данной стадии тестирование ведётся итерационно, с постепенным подключением последующих подсистем.

  • Системное тестирование — тестируется интегрированная система на её соответствие требованиям.

  • Альфа-тестирование — имитация реальной работы с системой штатными разработчиками, либо реальная работа с системой потенциальными пользователями/заказчиком. Чаще всего альфа-тестирование проводится на ранней стадии разработки продукта, но в некоторых случаях может применяться для законченного продукта в качестве внутреннего приёмочного тестирования.

  • Бета-тестирование — в некоторых случаях выполняется распространение версии с ограничениями (по функциональности или времени работы) для некоторой группы лиц, с тем чтобы убедиться, что продукт содержит достаточно мало ошибок. Иногда бета-тестирование выполняется для того, чтобы получить обратную связь о продукте от его будущих пользователей.