Cтраница 2
При этом подходе порядок программирования и тестирования модулей определяется их расположением в схеме иерархии. Сначала программируются и тестируются все модули одного уровня, после чего происходит переход на уровень ниже. На рис. 3.1 этот подход иллюстрируется на примере обработки запросов ( операции), о котором уже шла речь в гл. Числа над прямоугольниками указывают порядок разработки модулей. В этом поуровневом методе сначала программируется и тестируется головной модуль с применением заглушек для модулей второго уровня. Каждая заглушка - это упрощенная схема будущего модуля, содержащая все необходимое для того, чтобы было возможно пропустить полный тест модуля более высокого уровня. [16]
Число ошибок, обнаруженных в процессе тестирования модулей, должны быть небольшим. Это следует из всей совокупности принципов, изложенных в этой книге. Функциональное проектирование приводит к простым модулям, а в результате сквозного структурного контроля ошибки обнаруживаются до этапа машинного тестирования. Дисциплина программирования, базирующаяся на разумных управляющих структурах, приводит к более тщательно продуманной программе и, следовательно, к меньшему количеству ошибок. [17]
При нисходящей разработке - программа, необходимая для тестирования модулей или сегментов более высокого уровня. Заглушки обычно невелики, требуются лишь для выдачи сообщений об ошибке или порождении данных, необходимых для указанного тестирования. [18]
Весьма похожее по своим концепциям средство - Система тестирования модулей ( MTS - Module Testing System), распространяемая на рынке фирмой Management Systems and Programming Ltd. MTS может работать на большинстве систем IBM / 360, 370 и ICL и тестирует модули, написанные на языке ассемблера, Коболе, PL / I или Фортране. [19]
В процессе планирования также определяют, какие заглушки необходимы для тестирования модулей и какие требования необходимо предъявлять к заглушкам. Здесь возможны случаи, когда программирование заглушки сложно, и поэтому целесообразно использовать сам модуль. Результат такого шага также целесообразно отразить в соответствующей таблице. [20]
До начала программирования модулей необходимо сравнить различные последовательности программирования и тестирования модулей. [21]
Сотрудник, ответственный за определение сроков реализации проекта и устанавливающий порядок программирования и тестирования модулей. [22]
Сложность заглушки колеблется от простого оператора возврата до заготовки будущего модуля, порождающей данные для тестирования вышестоящего модуля. Модули нужно добавлять по одному, возникающие несоответствия обнаруживать и исправлять до перехода на следующий уровень. Когда заглушка расширяется до модуля, возникает потребность в новых заглушках уровнем ниже и процесс повторяется. И все время повторяется тестирование. Каждый новый раздел программы нужно тестировать вместе с ранее подключенными и выполнять в обстановке, максимально приближенной к реальной. [23]
К началу этапа отладки программной системы должен быть готов одновременно с разрабатываемыми модулями комплект программ и информационных массивов для тестирования модулей. Состав тестов в сочетании с эффективной диагностикой дает ответ на вопрос: в какой степени можно рассчитывать на корректность разработанных программ. Тесты обычно представляют собой примеры, иллюстрирующие способы использования программных модулей. [24]
Работа над созданием модуля в определенном смысле завершается компиляцией, но это уже и следующий этап разработки - начало тестирования модуля, так как компилятор проведет контроль синтаксиса и частично семантики исходной программы. [25]
Целью тестирования модуля является обнаружение различий между логической схемой модуля и его интерфейсом и их внешними спецификациями. Тестирование модуля начинается после его отладки. [26]
Более сложные варианты тестов может выполнять универсальный функциональный тестер Graduate фирмы Marconi ( США) [103], в котором применен 24-разрядный секционный процессор с адресацией 1 Мслово. Тестирование модулей производится в этом тестере путем подачи на их входы цифровых и аналоговых тестерных сигналов и исследования реакции модулей. В тестере применена сенсорная программируемая клавиатура, совмещенная с графическим дисплеем ( подробнее эта клавиатура описана в § 4.1), которая дает пользователю широкие возможности по организации различных конфигураций тестируемых систем и различных последовательностей тестовых процедур. После этого оператор может получить на программируемой клавиатуре мнемосхему тестирования, ввести свои обозначения узлов и клавиш. При таком подходе оказывается возможным с помощью небольшого числа стандартных модулей тестера обеспечить испытания в широком диапазоне частот для большой гаммы тестируемой аппаратуры. Универсальный тестер предназначен для контроля печатных схем, автоматических телефонных коммутаторов, электронной аппаратуры ракет и пр. [27]
Кодирование сверху вниз подразумевает использование нисходящего тестирования вновь закодированных модулей с уже отлаженными модулями верхних уровней, при этом еще не разработанные модули нижних уровней имитируются специальными подыгрывающими подпрограммами - заглушками. Тестированием последнего модуля завершается комплексное тестирование всего ПО. [28]
На рис. 3.5 показаны все основные этапы планирования и реализации при разработке программы. На стадии планирования устанавливается порядок разработки и тестирования модулей. Этот порядок может не следовать строго ни уровням схемы иерархии, ни порядку исполнения - это обычно комбинация иерархического и операционного подходов. [29]
Принципы определения этих двух ресурсов - и личного, и машинного времени - будут рассмотрены ниже в разделе Выводы для руководства. Кроме ресурсов, следует планировать также и порядок программирования и тестирования модулей. [30]