Файл: Руководство пользователя Контрольный пример.rtf

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 04.02.2024

Просмотров: 158

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.


Широкое проникновение ПЭВМ в практику повседневной жизни выдвигает простоту пользования программ в число важнейших характеристик. Эта характеристика определяет наличие четко определенных условий и области применения данной программы с ясно оговоренными ограничениями и пояснениями, облегчающими и ускоряющими использование программы, но исключающими неправильное ее применение. В пояснениях должны быть четко оговорены входные и выходные данные, форматы ввода данных. Программы, обладающие этой характеристикой, облегчают взаимодействие пользователя с ЭВМ, расширяют сферу применения и предотвращают неправильное ее применение.

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

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

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

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


Характеристика, связанная с испытуемостью, предполагает наличие возможности достаточно просто оценивать правильность функционирования программы в условиях конкретной среды (технические и программные средства, реальные исходные данные).

Улучшение перечисленных характеристик сказывается на стоимости программы. В связи с этим должен достигаться компромисс между степенью улучшения интересующей нас характеристики и увеличением стоимости программы.

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

Разработка программ регламентируется Единой системой программной документации (ЕСПД). Введение стандартов в процесс создания программ упрощает процесс разработки, облегчает чтение и понимание их пользователями, упрощает пользование и эксплуатацию, улучшает испытуемость, мобильность, документируемость.

ЕСПД представляет собой комплекс взаимосвязанных государственных стандартов, определяющих общие положения, виды программ и программных документов, правила разработки, оформление программ, распространение документации, сопровождение программ независимо от назначения и области использования.

Рассмотрим какой-нибудь простой пример, например всем знакомый мотоцикл. С помощью каких инструментов он сделан? Он сделан на заводе с помощью станков и приспособлений - они и являются инструментами для создания мотоцикла.

А как сделаны станки и приспособления? Они сделаны на другом заводе - с помощью других станков и приспособлений. А как сделаны эти станки и приспособления? У каждого станка есть свой предок - другой станок, сделанный до него и, как правило, более примитивный. Если проследить историю появления на свет любого станка, мы дойдем до простейших инструментов - молота и наковальни в какой-нибудь средневековой кузнице. А теперь заметьте, что и нам иногда приходится обращаться к таким "примитивным" инструментам, как молоток и напильник, чтобы обслужить мотоцикл в случае поломки.



Вернемся к программам. Инструментами программиста являются тоже программы. Именно с помощью программ создают новые программы. А как создавали эти инструментальные программы? Ответ очевиден - с помощью других инструментальных программ, хотя и более примитивных. И так далее. Прослеживая историю создания одних программ с помощью других, мы непременно дойдем до "молота и наковальни" - до того момента, когда никаких программ в распоряжении программистов не было, а имели они дело непосредственно с процессором, понимающим только определенный числовой код. Этот код называется машинным кодом. Каждый процессор понимает только свой собственный машинный код. Совокупность кодов, которые понимает и исполняет процессор, называется его системой команд. В системе команд процессоров семейства х86 (на базе которых собраны компьютеры IBM PC) порядка тысячи всевозможных команд. Из этих команд и состоят компьютерные программы.

А инструменты программирования - это на самом деле специальные программы, которые читают то, что написал программист в удобном ему виде, и переводят его записи в тот самый машинный код, необходимый процессору. Но иногда программисту все-таки приходится обращаться к "молотку и напильнику" и какую-то часть программы записывать в том самом машинном коде, понятном процессору. [1]



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



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

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

В целом разработчики различают дефекты программного обеспечения и сбои. В случае сбоя программа ведет себя не так, как ожидает пользователь. Дефект - это ошибка/неточность, которая может быть (а может и не быть) следствием сбоя.

Общепринятая практика состоит в том, что после завершения продукта и до передачи его заказчику независимой группой тестировщиков проводится тестирование ПО. Эта практика часто выражается в виде отдельной фазы тестирования (в общем цикле разработки ПО), которая часто используется для компенсирования задержек, возникающих на предыдущих стадиях разработки. Другая практика состоит в том, что тестирование начинается вместе с началом проекта и продолжается параллельно созданию продукта до завершения проекта. Второй путь обычно требует больших трудозатрат, но качество тестирования при этом будет выше.

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

· модульное тестирование. Тестируется минимально возможный для тестирования компонент, например отдельный класс или функция;

· интеграционное тестирование. Проверяется, есть ли какие-либо проблемы в интерфейсах и взаимодействии между интегрируемыми компонентами, например, не передается информация, передается некорректная информация;

· системное тестирование.


Тестируется интегрированная система на ее соответствие исходным требованиям:

· альфа-тестирование - имитация реальной работы с системой штатными разработчиками либо реальная работа с системой потенциальными пользователями/заказчиком на стороне разработчика. Часто альфа-тестирование применяется для законченного продукта в качестве внутреннего приемочного тестирования.

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

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

Выполнение программы с целью обнаружения ошибок называется тестированием. Виды ошибок и способы их обнаружения приведены в табл. 1.
Виды программных ошибок и способы их обнаружения


Эффективность контроля 1-го вида зависит и от языка, и от компилятора. Контроль 2-го вида осуществляется с помощью исключений - Exceptions и весьма полезен для проверки правдоподобности промежуточных результатов. Тест - это набор контрольных входных данных совместно с ожидаемыми результатами. В число входных данных время зависимых программ входят события и временные параметры. Ключевой вопрос - полнота тестирования: какое количество каких тестов гарантирует, возможно, более полную проверку программы? Исчерпывающая проверка на всем множестве входных данных недостижима. Пример: программа, вычисляющая функцию двух переменных: Y