- •Пояснительная записка
- •«Разработка программного средства эмуляции pos-терминала»
- •Содержание
- •Специальный раздел
- •Технологический раздел
- •Организационно-экономический раздел
- •Раздел по производственной и экологической безопасности
- •Перечень сокращений
- •Введение
- •Специальный раздел
- •1.Специальный раздел
- •1.1.Исследовательская часть
- •1.1.1.Типы программных средств эмуляции
- •1.1.2.Обзор программных средств эмуляции Microsoft Device Emulator и Android Emulator
- •Системные требования Microsoft Device Emulator
- •1.1.3.Эмуляция аппаратных модулей pos-терминала
- •Сравнительная характеристика программных средств эмуляции
- •1.2.Конструкторская часть
- •1.2.1.Состав выполняемых функций
- •1.2.2.Требования к надежности
- •1.2.3.Требования к информационной и программной совместимости
- •1.2.4.Требования к составу и параметрам технических средств
- •1.2.5.Организация входных и выходных данных
- •1.2.6.Выбор платформы для разработки
- •1.2.7.Выбор среды разработки
- •Сравнительная характеристика средств разработки
- •1.2.8.Алгоритмы работы программного средства
- •1.2.9.Иерархия классов прикладной программы пс эт
- •1.2.10.Описание логической структуры программного средства
- •Список создаваемых специальных файлов устройств
- •1.2.11.Пользовательский интерфейс. Экранные формы
- •1.2.12.Методика и результаты испытаний программного средства
- •Технологический раздел
- •2.Технологический раздел
- •2.1.Технология программирования пс эт
- •2.1.1.Основные определения
- •2.1.2.Этапы разработки и использованная модель жизненного цикла
- •2.1.3.Объектно-ориетированный подход
- •2.2.1.Обзор возможностей языка Си
- •2.3.Разработка драйверов в ос Linux
- •2.3.1.Особенности ос Linux
- •2.3.2.Принципы работы драйверов в ос Linux
- •2.3.3.Специальные файлы устройств
- •2.3.4.Структура, инициализация и выгрузка драйверов
- •2.3.5.Отладка драйверов
- •2.4.Сценарии в ос Linux
- •2.4.1.Основы разработки сценариев на языке оболочки bash
- •2.4.2.Переменные и области видимости
- •Стандартные переменные окружения и оболочки bash
- •2.4.3.Средства ввода-вывода
- •2.4.4.Команды ветвления if-else, case
- •2.4.5.Организация циклов
- •2.4.6.Определение функций
- •2.4.7.Отладка сценариев
- •Опции запуска сценариев
- •2.4.8.Makefile – управление компиляцией
- •2.5.Использование библиотек в ос Linux
- •2.5.1.Статические и динамические библиотеки
- •2.5.2.Графическая библиотека fltk
- •Элементы библиотеки fltk
- •2.5.3.Библиотека pcsc для работы с электронными картами
- •2.5.4.Библиотека TinyXml для работы с xml-файлами
- •Основные классы библиотеки TinyXml
- •2.6.Средства отладки в ос Linux
- •2.6.1.Технологии отладки
- •2.6.2.Отладочные сообщения
- •2.6.3.Стандарт syslog
- •2.6.4.Удаленная отладка с помощью gdbserver
- •2.6.5.Отладка в среде SlickEdit 2009
- •2.7.Виды тестирования
- •2.7.1.Классификация видов тестирования
- •2.7.2.Уровни тестирования
- •2.7.3.Тестирование методом «белого» ящика
- •2.7.4.Тестирование методом «черного» ящика
- •Организационно-экономический раздел «Определение целевого сегмента рынка pos-терминалов»
- •3.Организационно-экономический раздел
- •3.1.Сегментация рынка и позиционирование товара
- •3.1.1.Разделение рынка на сегменты
- •3.1.2.Принципы рыночной сегментации
- •3.1.3.Методы выделения сегментов
- •3.1.4.Критерии рыночной сегментации
- •3.1.5.Выбор целевого рынка
- •3.1.6.Выбор целевого сегмента
- •3.1.7.Позиционирование товара
- •3.1.8.Метод Чекановского
- •3.2.Сегментация рынка платежных pos-терминалов
- •3.2.1.Особенности рынка pos-терминалов
- •3.2.2.Выделение групп конечных пользователей
- •3.2.3.Выделение основных характеристик pos-терминала «ярус»
- •3.2.4.Диаграмма Чекановского
- •3.2.5.Выбор целевого сегмента и позиционирование pos-терминала «ярус»
- •Раздел по производственной и экологической безопасности «Инженерный расчет воздухообмена на рабочем месте инженера-программиста»
- •4.Раздел по производственной и экологической безопасности
- •4.1.Введение
- •4.2.Рабочее место инженера-программиста
- •4.2.1.Особенности и характеристики
- •4.2.2.Основные опасности и вредности
- •4.2.3.Оценка тяжести труда
- •Классы условий труда по показателям тяжести трудового процесса
- •4.3.Воздухообмен в помещении
- •4.3.1.Классификация систем вентиляции
- •4.3.2.Инженерный расчет воздухообмена в зависимости от числа людей в помещении
- •4.3.3.Инженерный расчет воздухообмена по избыткам тепла
- •Значения коэффициента Кост
- •Плотность теплового потока солнечной радиации в июле, Вт/м2
- •4.3.4.Выбор вентиляционной системы
- •4.4.Пожарная безопасность
- •4.5.Экологическая безопасность (утилизация компьютеров)
- •Заключение
- •Список литературы
- •Введение
- •Назначение и условия применения пс эт
- •Состав выполняемых функций
- •Требования к надежности
- •Требования к составу и параметрам технических средств
- •Характеристика пс эт
- •Обращение к пс эт
- •Входные и выходные данные пс эт
- •Сообщения
2.7.3.Тестирование методом «белого» ящика
В случае тестирования конечного продукта методом «белого» ящика [26, c. 69-80] тестировщик (обычно им в данной ситуации является программист) разрабатывает тесты, основываясь на полном знании исходного кода. Это дает ему ряд преимуществ:
направленность тестирования – возможность тестирования отдельных малых компонентов программы;
полный охват кода – программист всегда может определить, какие участки программы работают при выполнении каждого теста, что в случае появления ошибки значительно упрощает ее локализацию;
управление потоком – программист всегда может вставлять в участки программы отладочные сообщения и пользоваться отладчиком для пошагового выполнения программы в случае возникновения ошибки;
отслеживание целостности данных – программист, зная какая часть программы изменяет каждый элемент данных, может выявить такие ошибки, как изменение каких-либо данных не теми модулями программы, которыми эти данные должны обрабатываться;
Внутренние граничные точки. В исходном коде видны те граничные точки программы, которые скрыты от взгляда "извне". Например, для выполнения определенного действия может быть использовано несколько различных алгоритмов, и, не заглянув в код, невозможно определить, какой из них выбрал программист;
тестирование, определяемое выбранным алгоритмом – для тестирования обработки данных, использующей очень сложные вычислительные алгоритмы, могут понадобиться специальные технологии.
Т.о. тестирование методом «белого» ящика неразрывно связано непосредственно с процессом программирования. Данный метод был использован для тестирования ПС ЭТ с помощью программного обеспечения диагностики аппаратных модулей POS-терминала (см. п. 1.2.12).
2.7.4.Тестирование методом «черного» ящика
Тестирование методом «черного» ящика [26, c. 80-82] применяется в том случае, когда о тестируемой системе (программе) ничего неизвестно, т.е. она рассматривается как «черный» ящик и тестируется на различных наборах входных данных. Идеальное тестирование подразумевает перебор всех возможных входных данных, что на практике, как правило, оказывается не реализуемо.
При тестировании «чёрного» ящика, тестировщик имеет доступ к ПО только через те же интерфейсы, что и заказчик или пользователь, либо через внешние интерфейсы, позволяющие другому компьютеру либо другому процессу подключиться к системе для тестирования.
Тестирование методом «черного» ящика состоит из нескольких этапов:
Планирование, т.е. определение стратегии, разработка серии тестов, распределение их между сотрудниками задания. Этап планирования может начинаться сразу после получения требований, предъявляемых к разрабатываемому продукту.
Приемочное тестирование. При поступлении на тестирование каждой новой версии тестировщики проверяют, достаточно ли стабильна данная версия. Такая проверка включает в себя выполнение простейших тестов, проверяющих базовую функциональность.
Проверка стабильности программы. На данном этапе выявляются самые ненадежные места программы и выполняются тесты, на которых, по предположению тестировщика, программа может дать сбой.
Функциональное и системное тестирование, сверка и аттестация продукта. Когда продукт готов и протестирован на стабильность и работоспособность, необходимо выполнять ряд тестов, проверяющих соответствие продукта предъявляемым в спецификации или техническом задании требованиям.
Бета-тестирование. После того как программа протестирована, с ней работают ее потенциальные пользователи и составляют список неточностей, ошибок и замечаний.
Тестирование целостности готового продукта и тестирование распространяемых копий. На данном этапе тестирование проходит непосредственно тот продукт, который будет отправлен пользователю, а также тестирование целостности – прогнозирование критических замечаний и жалоб, которые могут возникнуть у пользователей (как правило, осуществляется специалистом, не участвовавшим в разработке продукта).
Окончательная приемка и сертификация.
Выводы
В данном технологическом разделе рассмотрены основные понятия технологии программирования, связанные с разработкой ПС ЭТ и моделью его жизненного цикла.
Для разработки драйверов, входящих в состав программного средства были использованы отработанные технологии разработки драйверов в ОС Linux на языке программирования Си. Определение набора системных вызовов для каждого эмулируемого аппаратного модуля POS-терминала позволяет обеспечить необходимую функциональность для работы с данным модулем.
Прикладная программа ПС ЭТ разработана на языке программирования Си++ с использованием объектно-ориентированного подхода, что обеспечивает модульность программы, а также возможность использования таких библиотек как FLTK и TinyXML, предоставляющих интерфейс Си++.
Для корректного запуска и останова ПС ЭТ написаны сценарии на языке оболочки bash, которые позволяют оперативно выполнить все необходимые действия по загрузке драйверов, созданию специальных файлов устройств, запуску прикладной программы, корректной выгрузки драйверов и удалению специальных файлов устройств.
Рассмотрены возможные методы отладки и тестирования в ОС Linux. При разработке драйверов, входящих в состав ПС ЭТ был применен метод отладки, заключающийся в выводе отладочных сообщений в буфер ядра. Для отладки прикладной программы ПС ЭТ были использованы методы вывода отладочных сообщений и пошаговой отладки с использованием GDB.