Тестирование

Тестирование и отладка программ тесно взаимосвязаны. Тестирование — это, по существу, следующий этап отладки, на котором правильность работы программы проверяется на подходящих тестовых наборах. Некоторые из тестовых наборов, разумеется, будут совпадать с наборами, использованными в процессе отладки (например, все нули); кроме того, следует осуществить проверку ка различных специальных наборах.

Вместе с тем тестирование программы — это не простое повторение выполнения программы на нескольких наборах исходных данных. Исчерпывающая проверка всех возможных ситуаций является наилучшим решением, но такая проверка практически никогда не осуществима. Для простой программы, которая обрабатывает 16-битные наборы исходных данных и дает 16-битный результат, имеется 4 млрд. возможных комбинаций входов и выходов. Существуют некоторые формальные методы верификации, но они применимы только к очень простым программам. Итак, для тестирования программы следует выбрать тестовые наборы. Ситуация осложняется еще и тем, что работа многих программ для микро-ЭВМ зависит от входов реального времени, которые сложно контролировать или имитировать. Нередко микропроцессор должен очень точно взаимодействовать с большой и сложной системой. Каким же образом можно сгенерировать и подать в микро-ЭВМ необходимые данные?

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

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

2. Внутрисхемные эмуляторы (рис. 6.16), позволяющие подключать для тестирования прототипы системы непосредственно к системе разработки или пульту управления.

3. Имитаторы ПЗУ, позволяющие использовать для хранения программ оперативную память, обеспечивая временные характеристики тех ПЗУ, которые будут использоваться в окончательном варианте системы.

4. Операционные системы или мониторы реального времени, которые могут управлять событиями в реальном времени, формировать прерывание и реализовывать в реальном времени трассировку программ и контрольные точки.

5. Эмуляторы на микропрограммных ЭВМ, которые могут выполнять команды из системы команд микро-ЭВМ со скоростями, близкими к реальным, и имеют программируемые средства ввода-вывода.

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

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

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

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

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

3. Выбирайте тестовые данные случайным образом. Такой способ позволит исключить любую закономерность, которая возникла бы при выборе тестовых данных человеком. Таблицы случайных чисел широко распространены* а в большинстве ЭВМ имеются датчики случайных чисел.

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

5. Используйте в качестве тестовых значений максимальные и минимальные значения исходных-данных. Экстремальные значения нередко являются источниками особых ошибок.

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


 



http://kservis-it.ru/ WS-C2960X-48TS-L.