ТЕСТИРОВАНИЕ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ МИКРОПРОЦЕССОРНЫХ КАРТ

Научная статья
Выпуск: № 7 (7), 2012
PDF

Тихонюк А.В.

Студент, кафедра информатики и программного обеспечения вычислительных систем

Национальный исследовательский университет «МИЭТ»

 Тестирование программного обеспечения микропроцессорных карт

  Аннотация В статье изложены основные проблемы тестирования микропроцессорных карт и методы их решения, описан подход к тестированию, основанный на использовании сценариев. Рассмотрены основные этапы процесса тестирования и вопрос применимости использования сценариев в процессах тестирования. Ключевые слова: микропроцессорная карта, тестирование, сценарий. Keywords: smart card, testing, script.   Проблемы тестирования системного программного обеспечения микропроцессорных карт В настоящее время наблюдается рост автоматизации в различных сферах человеческой деятельности. Одним из средств автоматизации является микропроцессорная карта. Наибольшую популярность микропроцессорные карты приобрели при развитии GSM-связи, которая использует SIM-карты. Сейчас спектр применения микропроцессорных карт достаточно широк: банковские карты, электронные пропуска, карты проезда в транспорте и т.д. К микропроцессорным картам предъявляются повышенные требования по надежности и безопасности функционирования. Основным методом измерения качества, определения корректности и реальной надежности функционирования программ[1] является тестирование. Поэтому возникает вопрос о применимости классических методов тестирования ПО микропроцессорных карт. В русскоязычной литературе превалируют описания методик тестирования вычислительных систем общего назначения, в области же тестирования микропроцессорных карт существует определенный информационный вакуум. Перечислим классические задачи при тестировании ПО [1, 2]:
  • тестирование функциональности (тестирование "черного ящика"): проверка функциональности системы на соответствие требованиям;
  • тестирование производительности: определение характеристик производительности, поиск "узких мест";
  • стрессовое тестирование системы при предельной нагрузке на различные ресурсы;
  • проверка устойчивости системы к неполадкам и безопасного оперативного восстановления при сбоях: оценка эффективности защиты от аппаратных сбоев, последствий проявления невыявленных дефектов и ошибок программ и данных;
  • тестирование совместимости ПО со всеми модификациями аппаратуры, для которых оно предназначено;
  • анализ исходных текстов (просмотр экспертом и автоматический анализ);
  • оценка удобства использования системы;
  • тестирование способности модулей системы к взаимодействию, в том числе перераспределения нагрузки.
Несмотря на многообразие методов и инструментов тестирования, как правило, некоторые ошибки все равно остаются невыявленными. Основной проблемой является невозможность формирования полного набора тестов для подтверждения правильности реализации программы. Применительно к микропроцессорной карте процесс тестирования разделяется на следующие задачи:
  • тестирование функциональности карты;
  • тестирование устойчивости;
  • тестирование граничных условий.
При тестировании функциональности необходимо проверить правильность ответа на все возможные комбинации входных данных. Стоит отдельно рассмотреть проверку криптографических функций. Если для большинства команд операционной системы существует возможность просто задать значения подаваемых на карту данных, то для проверки криптографических функций необходимо подать карте команду, содержащую зашифрованные данные. При тестировании на устойчивость для каждой из команд необходимо проверить наибольшее количество различных комбинаций входных данных. При тестировании граничных значений следует рассматривать следующие параметры микропроцессорной карты:
  • размер оперативной памяти;
  • размер EEPROM;
  • ограничения на размер файлов и записей.
Структура процесса тестирования с использованием сценариев Процесс тестирования микропроцессорных карт подразделяется на следующие этапы. 1) Авторская отладка и тестирование программного обеспечения карты. 2) Полное тестирование ПО. 3) Тестирование в процессе производства. Далее рассмотрим достоинства использования сценариев в каждом из этих процессов. Авторская отладка и тестирование При написании программного обеспечения всегда появляется необходи­мость отладки и тестирования. Автор должен иметь возможность быстрой про­верки всех возможных состояний, в которых может находиться программа. При использовании сценария автор имеет возможность написания сценария тестиро­вания параллельно с написанием программы. При использовании подпрограмм и циклов написания сценария требует гораздо меньших затрат времени. Поэтому программист уже на этапе написания программы получает возможность тестиро­вать всю реализованную функциональность программы. Полное тестирование ПО Тестирование программного продукта начинается задолго до окончания его разработки. Как правило, при достижении программным обеспечением некоторого уровня функциональности, промежуточная версия передается для тестирования. Таких промежуточных версий может появиться достаточно большое количество, и они могут отличаться по составу выполняемых функций. Поэтому целесообразно изначально создать сценарий тестирования на основе требований ТЗ и имеющейся информации, а далее лишь вносить в него изменения. Алгоритм тестирования программного продукта включает следующие дей­ствия. Для каждого типа ПО:
  • Разработка методики испытаний
  • Разработка сценария соответствующего этой методике
Далее для каждой версии:
  • Изменение параметров сценария в соответствии с новой версией
  • Выявление ошибок
  • Коррекция ошибок
  • Переход к пункту 2.1 или конец при отсутствии ошибок.
Помимо этого в сценарий можно внести константные значения параметров микропроцессорной карты. При переносе программы на другую микропроцессор­ную карту, отличающуюся параметрами можно использовать уже написанный сценарий тестирования, изменив константные параметры. На данный момент существует множество стандартов на команды, подавае­мые на карту. Часть команд описана в стандарте IS07816. Поэтому множество команд в различных картах работают одинаково. Подпрограммы тестирующие такие команды можно объединить в библиотеки и использовать при написании новых сценариев. Тестирование в процессе производства Тестирование в процессе производства делятся на:
  1. Тесты на годность кристалла.
  2. Периодические испытания.
    1. Испытания накопителя
    2. Температурные испытания.
Тесты на годность производятся на каждом микроконтроллере, для опреде­ления является ли он бракованным. Данные тесты включают проверку функцио­нальности изделия при различных значениях напряжения питания. Описываемая программа не может быть использована на данном этапе, так как при тестирова­нии используются очень специфическое оборудование. Периодические испытания - это испытания, производимые над случайной выборкой изделий через определенные промежутки времени. Эти испытания про­водятся для проверки соответствия изделий установленным нормам. Для периодических испытаний в программе предусмотрен специальный ре­жим. Для тестирования составляется сценарий, подающий команды на все под­ключенные карты и выдающий результаты в журнал испытаний и таблицу тестов. Любые периодические испытания характеризуются периодической подачей одинаковых команд. В данном случае использование сценариев позволяет:
  1. Тестировать криптографические команды. Часто в микропроцессор­ных картах используется специальный сопроцессор для криптогра­фических операций.
  2. Оперативно выявлять причину отказа карты. При выявлении отказа карты. Она переводится в сервисный режим. И подается команда на выдачу причины отказа.

Литература

  1. Липаев В.В. Надежность программных средств. Серия «Информатизация России на пороге XXI века». М.: СИНТЕГ, 1998. 232 с.
  2. Бейзер Б.  Технологии функционального тестирования программного обеспечения и систем.  СПб, Питер, 2004.  320 с.