Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ПЗ_А.Парамонов.doc
Скачиваний:
18
Добавлен:
08.09.2019
Размер:
7.82 Mб
Скачать

2.7.3.Тестирование методом «белого» ящика

В случае тестирования конечного продукта методом «белого» ящика [26, c. 69-80] тестировщик (обычно им в данной ситуации является программист) разрабатывает тесты, основываясь на полном знании исходного кода. Это дает ему ряд преимуществ:

  • направленность тестирования – возможность тестирования отдельных малых компонентов программы;

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

  • управление потоком – программист всегда может вставлять в участки программы отладочные сообщения и пользоваться отладчиком для пошагового выполнения программы в случае возникновения ошибки;

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

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

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

Т.о. тестирование методом «белого» ящика неразрывно связано непосредственно с процессом программирования. Данный метод был использован для тестирования ПС ЭТ с помощью программного обеспечения диагностики аппаратных модулей POS-терминала (см. п. 1.2.12).

2.7.4.Тестирование методом «черного» ящика

Тестирование методом «черного» ящика [26, c. 80-82] применяется в том случае, когда о тестируемой системе (программе) ничего неизвестно, т.е. она рассматривается как «черный» ящик и тестируется на различных наборах входных данных. Идеальное тестирование подразумевает перебор всех возможных входных данных, что на практике, как правило, оказывается не реализуемо.

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

Тестирование методом «черного» ящика состоит из нескольких этапов:

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

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

  3. Проверка стабильности программы. На данном этапе выявляются самые ненадежные места программы и выполняются тесты, на которых, по предположению тестировщика, программа может дать сбой.

  4. Функциональное и системное тестирование, сверка и аттестация продукта. Когда продукт готов и протестирован на стабильность и работоспособность, необходимо выполнять ряд тестов, проверяющих соответствие продукта предъявляемым в спецификации или техническом задании требованиям.

  5. Бета-тестирование. После того как программа протестирована, с ней работают ее потенциальные пользователи и составляют список неточностей, ошибок и замечаний.

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

  7. Окончательная приемка и сертификация.

Выводы

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

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

Прикладная программа ПС ЭТ разработана на языке программирования Си++ с использованием объектно-ориентированного подхода, что обеспечивает модульность программы, а также возможность использования таких библиотек как FLTK и TinyXML, предоставляющих интерфейс Си++.

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

Рассмотрены возможные методы отладки и тестирования в ОС Linux. При разработке драйверов, входящих в состав ПС ЭТ был применен метод отладки, заключающийся в выводе отладочных сообщений в буфер ядра. Для отладки прикладной программы ПС ЭТ были использованы методы вывода отладочных сообщений и пошаговой отладки с использованием GDB.