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

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

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

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

Проблемы

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

Корректность - обеспечение того, что информация даты, вводимая, обрабатываемая и выводимая системой, является точной, полной и однозначной с точки зрения пользователя.

Целостность файлов - обеспечение того, что даты, введенные в систему, будут возвращены неизменными или будут интерпретироваться непротиворечивым, задокументированным и понятным образом.

Связывание (известно также как Целостность интерфейса) - обеспечение того, что даты в одной системе, требующие соответствующих изменений в другой системе, будут правильно обрабатываться.

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

Рекомендуемый подход

Создайте смешанную группу из технического персонала и представителей функциональных подразделений для определения и выполнения процесса тестирования.

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

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

Скорректируйте / расширьте / создайте документацию для разработки адекватных тестовых случаев / тестовых данных. Используйте сотрудников, хорошо знакомых с приложениями.

Установите приоритеты тестов, ориентируясь на критические приложения и функциональные возможности. Применяйте правила 80 / 20, которые раскроют 80 процентов проблем, сосредоточиваясь на 20 процентах тестирования.

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

Выполняйте регрессионное тестирование; тесты, выполненные ранее, должны выполняться повторно, когда в приложение вносится изменение. По мере решения проблем может потребоваться повторение тестов.

Приемы тестирования

Тестирование 2000 года может выполняться в следующие четыре этапа.

Таблица 1. Тестирование 2000 года

┌──────────────────┬─────────────────────┬───────────────────────┐
│Этап тестирования │  Что тестируется    │    Кто тестирует      │
├──────────────────┼─────────────────────┼───────────────────────┤
│Автономное        │Одиночный            │Техническое            │
│тестирование      │программный модуль   │подразделение /        │
│                  │                     │аналитик / программист │
├──────────────────┼─────────────────────┼───────────────────────┤
│Интеграционное    │Связанная группа     │Техническое            │
│тестирование      │программных модулей  │подразделение /        │
│                  │                     │аналитик / программист │
├──────────────────┼─────────────────────┼───────────────────────┤
│Системное         │Программное          │Подразделение          │
│тестирование      │приложение в целом   │обеспечения качества / │
│                  │                     │аналитик / программист │
├──────────────────┼─────────────────────┼───────────────────────┤
│Приемо - сдаточное│Данные, определенные │Пользователь /         │
│тестирование      │группой пользователей│техническое            │
│                  │                     │подразделение          │
└──────────────────┴─────────────────────┴───────────────────────┘

В идеальном случае эти этапы должны выполняться последовательно. Однако, когда работы по обновлению ведутся параллельно, кодирование модуля, автономное тестирование и интеграционное тестирование обычно объединяются и сопровождаются системным тестированием и приемо - сдаточным тестированием.

Автономное тестирование 2000 года

Начальное тестирование кода, который изменялся; проверяет внутреннюю логику.

Назначение автономного тестирования состоит в том, чтобы:

- выполнялось адекватное покрытие операторов, условий, решений и путей;

- обеспечивалась динамическая проверка спецификаций;

- реализация на уровне модуля была свободна от недостатков;

- процедуры восстановления при ошибках работали правильно на уровне модуля;

- выполнялись все тестовые случаи в плане автономного тестирования;

- проверялось успешное выполнение всех новых, измененных или зависимых путей;

- велся протокол выполненных тестовых случаев модуля;

- решались проблемы и осуществлялось повторное тестирование;

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

- по мере необходимости корректировалась документация тестов.

Интеграционное тестирование 2000 года

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

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

Цели интеграционного тестирования:

- выполнить новые, измененные и зависимые функции приложения и проверить, являются ли они приемлемыми в эксплуатационном отношении и соответствуют ли внутреннему проекту;

- выполнить новые, измененные и зависимые интерфейсы между модулями и подсистемами и проверить, правильно ли они функционируют;

- проверить выполнение всех случаев интеграционного теста по плану интеграционного тестирования;

- если обнаружены проблемы, исправить модуль и повторно проверить его в среде автономного тестирования;

- выполнить регрессионные тесты в интегрированной среде;

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

- при необходимости скорректировать документацию.

Системное тестирование 2000 года

Проверяет, соответствует ли 2000 году все программное приложение.

Цели системного тестирования:

- проверить все программное приложение как полную систему в целевой среде;

- подтвердить, что доступ ко всем компонентам системы и взаимодействие с ними непротиворечивы и предсказуемы согласно определению системы;

- проверить успешное выполнение всех случаев системного теста согласно плану системного тестирования;

- если обнаружены проблемы, исправить модуль и повторно проверить его в среде автономного и интеграционного тестирования;

- выполнить регрессионные тесты в системной среде;

- создать план действий для исправления возникших проблем;

- при необходимости скорректировать документацию.

Приемо - сдаточное тестирование 2000 года

Проверяет, соответствует ли система 2000 году и готова ли она для производства.

Цели приемо - сдаточного тестирования:

- гарантировать, что система соответствует 2000 году и готова для производства;

- проверить, что система удовлетворяет критериям приемки пользователя;

- продемонстрировать интерфейс пользователя в обстановке, имитирующей производственную среду;

- создать у пользователей уверенность в том, что система работает правильно и управляема ими;

- проверить систему с реальными данными;

- подтвердить корректность и применимость документации пользователя;

- разработать план приемо - сдаточного тестирования;

- создать сценарии тестирования, основанные на типах, перечисленных ранее;

- выполнить сценарии тестирования;

- при необходимости разработать отчеты о проблемах тестирования;

- принять полностью проверенную систему.

Советы

Тестирование соответствия 2000 году включает следующие три основных этапа.

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

Выполнение тестов, основанных на стратегии соответствия 2000 году, используемой для обновления приложения:

- прием расширения;

- прием работы с окнами;

- прием кодирования или сжатия:

- прием последовательной даты.

Конфигурирование отдельной системы с готовой к 2000 году версией приложения и выполнение общего теста с преобразованным загруженным кодом приложения и системной датой со значением после 2000 года.

Основные сценарии тестирования

Сценарии для тестирования 2000 года в значительной мере зависят от системной среды и приложений. Основными сценариями тестирования 2000 года являются следующие.

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

Тестирование неправильного истечения срока. Тест для проверки того, что сроки полисов, дел, записей, файлов и т.д. не будут автоматически истекать на:

-1999-09-09;

-1999-12-31;

- 2000-01-01 (некоторые сроки кодируются как 99-99-99).

Тестирование дней недели (если необходимо):

- 2000-01-01 - суббота (не понедельник, как было 1900-01-01);

- 2000-01-03 - понедельник.

Другие интересные даты для включения (при необходимости): 1997, 1998, 1999, 2000, 2001, 2006, 2000-01-01, 2000-01-31, 1899-12-31 и 1999-12-31.

Тестирование старения. Если система вычисляет любой вид старения (например, 30 дней сверх положенного срока, 45 дней сверх положенного срока и т.д.), определите эти периоды старения - и получите правильные календарные даты для проверки.

Замечание. В ситуациях, подобных вычислению дат истечения срока, используйте действующие деловые правила; считайте календарные дни или рабочие дни. Это будет влиять на определение дат для тестовых данных.

Тестирование високосного года. Удостоверьтесь, что в тестирование високосного года включены следующие даты:

- високосный год - 1996-02-28 и 1996-02-29;

- невисокосный год - 1999-02-29 (должен отклоняться);

- високосный год - 2000-02-28, 2000-02-29, 2000-03-01;

- невисокосный год - 2001-02-29 (должен отклоняться).