Тестирование мейнфреймов – полное руководство
Прежде чем изучать концепции тестирования мэйнфреймов, давайте изучим
Что такое мейнфрейм?
Мейнфрейм представляет собой высокопроизводительную и высокоскоростную компьютерную систему. Он используется для крупномасштабных вычислительных целей, требующих высокой доступности и безопасности. В основном он используется в таких секторах, как финансы, страхование, розничная торговля и других важных областях, где огромные данные обрабатываются многократно.
Тестирование мейнфреймов
Тестирование мейнфреймов — это процесс тестирования программных приложений и сервисов на базе мейнфреймов. Целью тестирования мэйнфреймов является обеспечение производительности, надежности и качества программного приложения или услуги с помощью методов проверки и проверки, а также проверка готовности к развертыванию.
При выполнении тестирования мэйнфрейма тестировщику необходимо знать только о навигации по экранам CICS. Они изготавливаются по индивидуальному заказу для конкретных приложений. При любых изменениях в коде на COBOL, JCL и т. д. тестировщику не придется беспокоиться об эмуляторе, установленном на машине. Изменения, которые работают на одном эмуляторе терминала, будут работать и на других.
- Приложение для мэйнфрейма (также называемое пакетом заданий) тестируется на основе тестовых примеров, разработанных с использованием требований.
- Тестирование мэйнфрейма обычно выполняется для развернутого кода с использованием различных комбинаций данных, заданных во входном файле.
- Доступ к приложениям, работающим на мейнфрейме, можно получить через эмулятор терминала. Эмулятор — единственное программное обеспечение, которое необходимо установить на клиентский компьютер.
Атрибуты мейнфрейма
- Виртуальное хранилище
- Это метод, который позволяет процессору моделировать объем основной памяти, превышающий фактический объем реальной памяти.
- Это метод эффективного использования памяти для хранения и выполнения задач различного размера.
- Он использует дисковое хранилище как расширение реального хранилища.
- Мультипрограммирование
- Компьютер одновременно выполняет более одной программы. Но в любой момент времени только одна программа может контролировать процессор.
- Это средство, предназначенное для эффективного использования процессора.
- Пакетная обработка
- Это метод, с помощью которого любая задача выполняется в единицах, известных как задания.
- Задание может вызывать последовательное выполнение одной или нескольких программ.
- Планировщик заданий принимает решение о порядке выполнения заданий. Чтобы максимизировать среднюю пропускную способность, задания планируются в соответствии с их приоритетом и классом.
- Необходимая информация для пакетной обработки предоставляется через JCL (JOB CONTROL LANGUAGE). JCL описывает пакетное задание: необходимые программы, данные и ресурсы.
- Совместное времяпровождение
- В системе с разделением времени каждый пользователь имеет доступ к системе через терминальное устройство. Вместо отправки заданий, запланированных для последующего выполнения, пользователь вводит команды, которые обрабатываются немедленно.
- Следовательно, это называется «Интерактивная обработка». Это позволяет пользователю напрямую взаимодействовать с компьютером.
- Обработка с разделением времени известна как «передняя обработка», а обработка пакетных заданий — как «фоновая обработка».
- намоточные
- SPOOLing означает Одновременная периферия Operaции онлайн.
- Устройство SPOOL используется для хранения выходных данных программы/приложения. Буферный вывод направляется на устройства вывода, такие как принтер (при необходимости).
- Это средство, использующее преимущества буферизации для эффективного использования устройств вывода.
Классификация ручного тестирования в мейнфреймах
мэйнфреймов Ручное тестирование можно разделить на два типа:
1. Тестирование пакетного задания –
- Процесс тестирования предполагает выполнение пакетных заданий для функциональности, реализованной в текущей версии.
- Результаты теста, извлеченные из выходных файлов и базы данных, проверяются и записываются.
2. Онлайн-тестирование –
- Онлайн-тестирование — это тестирование экранов CICS, которое аналогично тестированию веб-страницы.
- Функциональность существующих экранов может быть изменена или добавлены новые экраны.
- Различные приложения могут иметь экраны запросов и экраны обновлений. Функциональность этих экранов необходимо проверить в рамках онлайн-тестирования.
Как проводить тестирование мейнфреймов
- Бизнес-команда готовит необходимые документы. Это определяет, как конкретный элемент или процесс будет изменен в цикле выпуска.
- Группа тестирования и разработчики получают документ с требованиями. Они выяснят, на сколько процессов повлияют изменения. Обычно в релизе только 20-25% приложения напрямую затрагиваются настроенными требованиями. Остальные 75% релиза будут посвящены готовым функциям, таким как тестирование приложений и процессов.
- Итак, приложение для мэйнфрейма необходимо тестировать в двух частях:
- Требования к тестированию – Тестирование приложения на предмет функциональности или изменения, упомянутого в документе с требованиями.
- Тестирование интеграции – Тестирование всего процесса или другого приложения, которое получает или отправляет данные в затронутое приложение. Регрессионное тестирование является основным направлением этой деятельности по тестированию.
Инструменты автоматизации тестирования мэйнфреймов
Ниже приведен список инструментов, которые можно использовать для мэйнфрейма. Автоматизация тестирования.
- REXX
- Excel
- QTP
Методология тестирования мэйнфреймов
Давайте рассмотрим пример: страховая компания XYZ имеет модуль регистрации участников. Он берет данные как с экрана регистрации участников, так и с офлайн-регистрации. Как мы обсуждали ранее, для тестирования мэйнфреймов используются два подхода: онлайн-тестирование и пакетное тестирование.
- Онлайн-тестирование делается на экране регистрации участника. Как и веб-страница, база данных проверяется на основе данных, вводимых через экраны.
- Оффлайн регистрация Это может быть бумажная регистрация или регистрация на стороннем веб-сайте. Автономные данные (также называемые пакетными) будут введены в базу данных компании посредством пакетных заданий. Входной плоский файл подготавливается в соответствии с заданным форматом данных и передается в последовательность пакетных заданий. Итак, для тестирования приложений для мэйнфреймов мы можем использовать следующий подход.
- Первое задание в строке пакетных заданий проверяет введенные данные. Скажем, например, специальный символ, алфавиты только в числовых полях и т. д.
- Второе задание проверяет согласованность данных на основе бизнес-условий. Например, регистрация ребенка не должна содержать зависимые данные, почтовый индекс участника (который недоступен для обслуживания в рамках зарегистрированного плана) и т. д.
- Третье задание изменяет данные в формате, который можно ввести в базу данных. Например, удаление названия плана (в базе данных будет храниться только идентификатор плана и название плана страхования), добавление даты записи и т. д.
- Четвертое задание загружает данные в базу данных.
- Пакетное тестирование заданий Этот процесс осуществляется в два этапа –
- Каждое задание проверяется отдельно, и
- Интеграция между заданиями проверяется путем предоставления входного плоского файла для первого задания и проверки базы данных. (Промежуточные результаты должны быть проверены для дополнительной осторожности)
Ниже приведен метод тестирования мэйнфрейма:
Шаг 1) Вымогательство/Дымовые испытания
Основное внимание на этом этапе уделяется проверке того, находится ли развернутый код в правильной тестовой среде. Это также гарантирует отсутствие критических проблем с кодом.
Шаг 2) Тестирование системы
Ниже приведены типы тестирования, проводимые в рамках системного тестирования.
- Пакетное тестирование – Это тестирование будет проводиться путем проверки результатов тестирования выходных файлов и изменений данных, выполненных пакетными заданиями в рамках тестирования, и их записи.
- Онлайн тестирование – Это тестирование будет проводиться во внешней части приложения для мэйнфрейма. Здесь приложение проверяется на правильность полей ввода, таких как план страхования, проценты по плану и т. д.
- Пакетное онлайн-тестирование интеграции – Это тестирование будет проводиться на системах с пакетными процессами и онлайн-приложением. Проверяются поток данных и взаимодействие между онлайн-экранами и пакетными заданиями.
(Пример такого типа тестирования – Рассмотрите возможность обновления деталей плана, таких как повышение процентной ставки. Изменение процентов осуществляется на экране обновления, а сведения о балансе затронутых счетов будут изменены только с помощью ночного пакетного задания. Тестирование в этом случае будет осуществляться путем проверки экрана сведений о плане и запуска пакетного задания для обновления всех учетных записей).
- Тестирование базы данных – Базы данных, в которых данные из приложения мэйнфрейма (IMS, IDMS, DB2, VSAM/ISAM, последовательные наборы данных, GDG) проверяются на предмет их структуры и хранения данных.
Шаг 3) Система Интеграционное тестирование
Основная цель этого тестирования — проверка функциональности систем, взаимодействующих с тестируемой системой.
На эти системы требования не влияют напрямую. Однако они используют данные тестируемой системы. Важно протестировать интерфейс и различные типы сообщений (например, задание выполнено успешно, задание не выполнено, база данных обновлена и т. д.), которые могут передаваться между системами, а также результирующие действия, предпринимаемые отдельными системами.
Виды тестирования, проводимые на этом этапе:
- Пакетное тестирование
- Онлайн тестирование
- Онлайн – пакетное интеграционное тестирование
Шаг 4) Регрессионное тестирование
Регрессионное тестирование — это обычный этап любого проекта тестирования. Такое тестирование на мейнфреймах гарантирует, что пакетные задания и онлайн-экраны, которые не взаимодействуют напрямую с тестируемой системой (или не входят в объем требований), не будут затронуты текущей версией проекта.
Чтобы провести эффективное регрессионное тестирование, необходимо составить определенный набор тестовых примеров в зависимости от их сложности и создать регрессионное ложе (репозиторий тестовых примеров). Этот набор следует обновлять всякий раз, когда в выпуске появляется новая функциональность.
Шаг 5) Тестирование производительности
Это тестирование проводится для выявления узких мест в наиболее востребованных областях, таких как внешние данные, обновление онлайн-баз данных, а также для прогнозирования масштабируемости приложения.
Шаг 6) Тестирование безопасности
Это тестирование проводится для оценки того, насколько хорошо приложение спроектировано и разработано для противодействия атакам на систему безопасности.
В системе необходимо провести двойное тестирование безопасности: безопасность мейнфрейма и безопасность сети.
Функции, которые необходимо протестировать:
- Integrity
- Конфиденциальность
- Авторизация
- Аутентификация
- Доступность
Шаги пакетного тестирования
- После того как группа контроля качества получит одобренный пакет (пакет содержит процедуры, JCL, контрольные карты, модули и т. д.), тестировщик должен просмотреть и извлечь содержимое в PDS по мере необходимости.
- Преобразуйте производственный JCL или JCL разработки в JCL QA, иначе называемый JOB SETUP.
- Копирование производственного файла и подготовка тестовых файлов.
- Для каждой функции будет определена последовательность работ. (Как объяснено в примере в разделе «Методология в мейнфрейме»). Задания следует отправлять с помощью команды SUB с файлами тестовых данных.
- Проверьте промежуточный файл, чтобы определить причины отсутствия или ошибок в данных.
- Проверьте окончательный выходной файл, базу данных и спул, чтобы проверить результаты теста.
- В случае сбоя задания в спуле будет указана причина сбоя задания. Устраните ошибку и повторите задание.
Отчет об испытаниях – дефект следует фиксировать, если фактический результат отличается от ожидаемого.
Шаги онлайн-тестирования
- Выберите экран «Онлайн» в тестовой среде.
- Проверьте каждое поле на наличие приемлемых данных.
- Проверьте Сценарий тестирования на экране.
- Проверьте базу данных на наличие обновлений данных на онлайн-экране.
Отчет о тестировании. Дефект должен быть зарегистрирован, если фактический результат отличается от ожидаемого.
Шаги онлайн-тестирования пакетной интеграции
- Запустите задание в Тестовая среда и проверять данные на онлайн-экранах.
- Обновите данные на онлайн-экранах и проверьте, правильно ли выполняется пакетное задание с обновленными данными.
Команды, используемые при тестировании мэйнфреймов
- ОТПРАВИТЬ – отправить фоновое задание.
- ОТМЕНА – Отмена фонового задания.
- ALLOCATE – Выделить набор данных
- КОПИРОВАТЬ – скопировать набор данных.
- RENAME – переименовать набор данных.
- УДАЛИТЬ – Удалить набор данных.
- JOB SCAN – Чтобы связать JCL с программой, библиотеками, файлом и т. д. без его выполнения.
При необходимости используется множество других команд, но они встречаются не так часто.
Предварительные условия для начала тестирования мэйнфреймов
Основные сведения, необходимые для тестирования мэйнфрейма:
- Логин и пароль для входа в приложение.
- Краткие знания о командах ISPF.
- Имена файлов, квалификатор файла и их типы.
Прежде чем приступить к тестированию мэйнфрейма, необходимо проверить приведенные ниже аспекты.
- работа
- Выполните сканирование задания (команда – JOBSCAN), чтобы проверить наличие ошибок перед его выполнением.
- Параметр CLASS должен указывать на тестовый класс.
- Направьте выходные данные задания в спул или JHS или по мере необходимости, используя параметр MSGCLASS.
- Перенаправьте электронное письмо в задании в буфер или на тестовый почтовый идентификатор.
- Прокомментируйте шаги FTP для первоначального тестирования, а затем укажите задание на тестовый сервер.
- Если в задании создается IMR (запись управления инцидентами), просто добавьте комментарий «ЦЕЛЬ ТЕСТИРОВАНИЯ» в задание или карточку параметров.
- Все производственные библиотеки в задании следует изменить и указать на тестовые библиотеки.
- Работу нельзя оставлять без внимания.
- Чтобы задание не запускалось в бесконечном цикле в случае какой-либо ошибки, параметр TIME должен быть добавлен с указанным временем.
- Сохраните выходные данные задания, включая катушку. Катушку можно сохранить с помощью XDC.
- Файл
- Создайте тестовый файл только необходимого размера. Используйте GDG (группы данных генерации — файлы с одинаковыми именами, но с последовательными номерами версий — MYLIB.LIB.TEST.G0001V00, MYLIB.LIB.TEST.G0002V00 и т. д.), когда необходимо хранить данные в последовательных файлах с тем же именем.
- Параметр DISP (Disposition – описывает систему, которая выполняет сохранение или удаление набора данных после нормального или ненормального завершения шага или задания) для файлов должен быть правильно закодирован.
- Убедитесь, что все файлы, используемые для выполнения задания, сохранены и закрыты должным образом, чтобы предотвратить переход задания в режим HOLD.
- При тестировании с использованием GDG убедитесь, что указана правильная версия.
- База данных
- При выполнении задания или онлайн-программы убедитесь, что нежелательные данные не вставляются, не обновляются и не удаляются.
- Также убедитесь, что для тестирования используется правильный регион DB2.
- Испытательные случаи
- Всегда проверяйте наличие граничных условий, таких как «Пустой файл», «Первая обработка записи», «Последняя обработка записи» и т. д.
- Всегда указывайте как положительные, так и отрицательные условия испытаний.
- В случае, если в программе используются стандартные процедуры, такие как перезапуск контрольной точки, отключение модулей, управляющие файлы и т. д., включите тестовые примеры для проверки правильности использования модулей.
- Тестовые данные
- Настройка тестовых данных должна быть выполнена до начала тестирования.
- Никогда не изменяйте данные в тестовом регионе без предварительного уведомления. Могут быть другие команды, работающие с теми же данными, и их тест не удастся.
- Если производственные файлы необходимы во время выполнения, перед их копированием или использованием необходимо получить соответствующее разрешение.
лучшие практики
- В случае запуска пакетного задания MAX CC 0 является индикатором успешного выполнения задания. Это не значит, что функционал работает нормально. Задание будет выполнено успешно, даже если выходные данные пусты или не соответствуют ожиданиям. Поэтому всегда ожидается проверка всех выходных данных, прежде чем объявить задание успешным.
- Всегда полезно выполнить пробный прогон тестируемого задания. Пробный прогон выполняется с пустыми входными файлами. Этот процесс следует соблюдать для заданий, на которые влияют изменения, внесенные в цикл тестирования.
- Перед началом цикла тестирования следует заранее подготовить тестовое задание. Это поможет заранее обнаружить любую ошибку JCL, что сэкономит время во время выполнения.
- При доступе к таблицам DB2 через SPUFI (опция эмулятора для доступа к таблицам DB2) всегда устанавливайте для автоматической фиксации значение «НЕТ», чтобы избежать случайных обновлений.
- Доступность тестовых данных — основная проблема пакетного тестирования. Требуемые данные должны быть созданы задолго до начала цикла испытаний и проверены на полноту.
- Некоторые онлайн-транзакции и пакетные задания могут записывать данные в MQ (очередь сообщений) для передачи данных в другие приложения. Если данные недействительны, это может привести к отключению/остановке MQ, что повлияет на весь процесс тестирования. Хорошей практикой является проверка работоспособности MQ после тестирования.
Проблемы тестирования мейнфреймов и устранение неполадок
Вызовы | Подход |
---|---|
Неполные/неясные требования Может быть доступ к руководству пользователя/обучающему руководству, но это не то же самое, что документированные требования. |
Тестировщики должны участвовать в SDLC, начиная с этапа разработки требований. Это поможет проверить, являются ли требования проверяемыми. |
Настройка данных/идентификация Могут возникнуть ситуации, когда существующие данные следует использовать повторно в соответствии с требованиями. Иногда бывает трудно выделить необходимые данные из существующих данных. |
Для настройки данных можно использовать собственные инструменты в соответствии с необходимостью. Для получения существующих данных запросы должны быть построены заранее. В случае возникновения каких-либо трудностей можно обратиться в группу управления данными для создания или клонирования необходимых данных. |
Настройка задания После того как задания будут загружены в PDS, их необходимо настроить в регионе контроля качества. Чтобы задания не отправлялись с квалификатором производства или подробностями пути. | Инструменты настройки заданий следует использовать так, чтобы исключить человеческие ошибки, допущенные во время настройки. |
Специальный запрос Могут возникнуть ситуации, когда требуется поддержка сквозного тестирования из-за проблем в вышестоящих или нижестоящих приложениях. Эти запросы увеличивают время и усилия в цикле выполнения. | Использование сценариев автоматизации, сценариев регрессии и скелетных сценариев может помочь сократить затраты времени и усилий. |
Своевременные выпуски при изменении объема работ Возможна ситуация, когда влияние кода может полностью изменить внешний вид системы. Это может потребовать изменения тестовых примеров, сценариев и данных. |
Должен быть предусмотрен процесс управления изменениями содержания и анализ воздействия. |
Распространенные отклонения
- S001 – Произошла ошибка ввода-вывода.
Причина — чтение в конце файла, ошибка длины файла, попытка записи в файл, доступный только для чтения.
- S002 – Неверная запись ввода-вывода.
Причина – попытка записать запись длиннее, чем длина записи.
- S004 – Произошла ошибка во время ОТКРЫТИЯ.
Причина – неверный DCB.
- S013 – Ошибка открытия набора данных.
Причина – член PDS не существует, длина записи в программе не соответствует фактической длине записи.
- S0C1 – OperaИсключение
Причина – невозможно открыть файл, отсутствует DD-карта.
- S0C4 – Исключение защиты/Нарушение хранилища
- Причина – попытка доступа к хранилищу, недоступному для программы.
- S0C7 — Исключение проверки программы — Данные
- Причина – изменение формата записи или формата файла.
- Sx22 – задание отменено.
- S222 – Задание отменено пользователем без дампа.
- S322 — Время задания или шага превысило заданный предел, либо программа находится в цикле, либо параметр времени недостаточен.
- S522 – Тайм-аут сеанса TSO.
- S806 – Невозможно подключиться или загрузить.
Причина — идентификатор задания не может найти указанный загрузочный модуль.
- S80A — Недостаточно виртуальной памяти для удовлетворения запросов GETMAIN или FREEMAIN.
- S913 – Попытка получить доступ к набору данных, к которому пользователь не авторизован.
- Sx37 — Невозможно выделить достаточно места для набора данных.
Error Assist – очень популярный инструмент для получения подробной информации о различных типах отклонений.
Распространенная проблема, возникающая при тестировании мэйнфрейма
- Работа прекращается – Для успешного завершения задания необходимо проверить данные, входной файл и модули, присутствующие в конкретном месте или нет. Сбои могут возникнуть по множеству причин, наиболее распространенными из которых являются неверные данные, неправильное поле ввода, несоответствие дат, экологические проблемы и т. д.
- Выходной файл пуст– Хотя задание может быть выполнено успешно (MaxCC 0), выходные данные могут отличаться от ожидаемых. Поэтому, прежде чем пройти какой-либо тестовый пример, тестировщик должен убедиться, что выходные данные проверены перекрестно. Только тогда продолжайте дальше.
- Входной файл пуст – В некоторых приложениях файлы будут получены от вышестоящих процессов. Прежде чем использовать полученный файл для тестирования текущего приложения, данные следует перекрестно проверить во избежание повторного выполнения и переделки.
Резюме
- Тестирование мэйнфреймов похоже на любую другую процедуру тестирования, начиная со сбора требований, разработки теста, выполнения теста и составления отчета о результатах.
- Чтобы эффективно протестировать приложение, тестировщик должен участвовать в совещаниях по проектированию, запланированных командами разработки и бизнеса.
- Тестировщику обязательно необходимо привыкнуть к различным функциям тестирования мэйнфрейма. Например, навигация по экрану, создание файлов и PDS, сохранение результатов тестирования и т. д. до начала цикла тестирования.
- Тестирование приложений для мэйнфреймов — это длительный процесс. При разработке теста, настройке данных и выполнении следует соблюдать четкий график тестирования.
- Пакетное тестирование и онлайн-тестирование должны проводиться эффективно, не пропуская ни одной функциональности, упомянутой в документе с требованиями. Тестовый кейс следует пощадить.