Реклама:

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

операция записи необходимой величины вообще отсутствует;

операция записи существует, но выполняется не на тот регистр;

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

Эти ошибки могут обнаруживаться не на всех маршрутах исполнения программы, а также при последовательном выполнении операций, разделенных большим числом промежуточных операций, не связанных с анализируемыми величинами. Задачу тестирования можно рассматривать как задачу обнаружения ошибочных сочетаний операций считывания — записи для каждой величины и адресов .(имен) регистров, с которыми производятся эти операции по маршрутам программы 150]. Для этого в явном виде необходима информация об именах (или номерах) регистров (гв) и наименованиях записываемых (Зп) и считываемых (Сч) величин (х,).

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

Ошибочные сочетания:

Зп гх) — Сч (х2, /"1) — между этими операциями отсутствуют операции Сч (хь г,) и Зп (х2, гх), вследствие ошибок в логике или искажены наименования переменных, или регистров;

Сч (хх, Гх) — Сч (х2, Гх) — пропущена операция Зп (лгг, гх) или искажены составляющие одной из операций;

Зп (Хх, Гх) — Зп (Хх, г2) — одна из операций лишняя, однако иногда такие записи делаются для удобства последующих вычислений;

Зп (хх, Гх) — Сч (л:2. г2) — пропущены операции Сч (Хх, гу) и Зп (дг2, г2) или имеются ошибки в составляющих этих операций.

Сомнительные сочетания:

Сч (Хх, Гх) — в пределах модуля на данном маршруте отсутствует операция Зп (х1з гх), однако может быть запись производится в другом модуле;

Сч (хи Гх) — Зп (Хх, г2)— причина может быть аналогична предыдущей, т. е. нет предварительной записи хх на гх и не ясна цель записи х1 на г2 без последующего считывания;

Зп (х1у Гх) — Зп (л;2, гх) — пропущена операция Сч (хи или искажены компоненты одной из операций;

Зп (х„ Гх) — Зп (хи Гх) — одна из операций на данном маршруте лишняя и может быть обусловлена формированием других маршрутов.

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


⇐ Предыдущая страница| |Следующая страница ⇒