1. Инвентаризация мест и участков типа ДАТА

Перед началом тестирования конкретного ПО необходимо произвести инвентаризацию всех мест в текстах программ, где осуществляется ввод, обработка, хранение или какие-нибудь другие действия с датой. Затем нужно подготовить их список, чтобы рассмотреть эти места в качестве отдельных параметров тестирования. Причем список следует привести в акте, составленном по результатам проверок, осуществляемых согласно перечню критических дат для данного ПО (их полный перечень имеется в Приложении 2).

Далее будут использоваться следующие определения:

  • Дата_до1 - дата за один день до критической даты N1
  • Дата1 - критическая дата N1
  • Дата_после1 - дата, следующая за критической датой N1
  • Время_до1 - время за одну минуту до перехода Дата_до1/Дата1
  • Время1 - время перехода Дата_до1/Дата1
  • Время_после1 - время после перехода Дата_до1/Дата1

2. Тестирование ПО для ДатаМ

2.1. Форвардная проверка

Для тестирования ПО выставить на аппаратных средствах (BIOS, system и пр.) дату Дата_доМ. Затем проверить все места ПО, где в сроке окончания расчета или процесса указывается будущая дата, путем проставления в поле -- ДатаМ и Дата_послеМ. Нужно также проконтролировать промежуточные результаты конкретного процесса или расчета, а также финальные, связанные с окончанием цикла работы ПО (концом дня, подсчетом общей суммы, расчетом проекта и т. п.). Итоги занести в акт.

2.2. Обратная проверка

Выставить на аппаратных средствах, используемых для тестирования ПО (BIOS, system и пр.), дату Дата_доМ. После чего проверить все места, где в сроке начала расчета или процесса указана прошлая дата, путем проставления в ее поле -- ДатаМ-1 и Дата_послеМ-1, фиксируя промежуточные результаты конкретного процесса или расчета. Затем нужно проконтролировать финальные результаты по окончании цикла работы ПО (в конце дня, при подсчете общей суммы, расчете проекта и т. п.), занося итоги в акт.

2.3. Визуальная проверка

2.3.1. Выставить на аппаратных средствах (BIOS, system и пр.) дату Дата_доМ и Время_доМ. Запустить модуль ПО на исполнение и визуально отследить все поля, в которых дата отображается для пользователя. При этом необходимо убедиться, что дата не допускает неоднозначного толкования. Не прерывая сеанса работы ПО, нужно дождаться наступления момента ВремяМ. После этого в течение Времени_послеМ повторно рассмотреть все поля, где для пользователя отображается дата, и убедиться, что ее нельзя толковать неоднозначно. Если необходимо, следует вернуть аппаратное время к моменту Время_доМ и проверить поля, которые не успели проконтролировать. Результаты занести в акт.

2.3.2. Снова выставить на аппаратных средствах (BIOS, system и пр.) дату Дата_доМ и Время_доМ и запустить модуль ПО на исполнение. Затем выйти из сеанса ПО, дождаться наступления ВремяМ и снова запустить ПО.

В течение Время_послеМ повторно рассмотреть все поля, в которых отображена дата для пользователя. Следует убедиться, что ее нельзя толковать неоднозначно. Если необходимо, следует вернуть аппаратное время на Время_доМ и проверить поля, которое не успели проконтролировать, а результаты занести в акт.

2.4. Проверка неквалифицированного пользователя

Провести прямую и обратную проверки, вставляя в поля результатов расчетов (процессов) неверные даты (вроде 3001) или те, которые можно неоднозначно толковать (например, 02). Зафиксировать в акте реакцию системы на указанный тест.

2.5. Проверка ввода даты

Выставить на аппаратных средствах (BIOS, system и пр.) дату Дата_доМ и Время_доМ и запустить модуль ПО на исполнение. Далее нужно рассмотреть режим ввода, относя его к текущей дате в параметре ПО, очередном по инвентаризационному списку. Вводя данные до истечения Время_послеМ, проверить их из текущего сеанса работы ПО. После возобновления этого сеанса прекратить текущую сессию и запустить новую внешними средствами без участия ПО, если это возможно. Итоги занести в акт.

2.6. Внешний обмен данными

2.6.1. Выставить на аппаратных средствах (BIOS, system и пр.) дату Дата_доМ и Время_доМ и запустить модуль ПО на исполнение. Войти в режим экспорта данных с участием текущей даты в соответствующем параметре ПО. Далее импорт данных выполнить, как минимум, три раза в периоды Время_доМ, Время_послеМ, а также при условии, чтобы процесс экспорта данных включал в себя ВремяМ. Завершить сессию работы с ПО и проверить полученные в результате этого данные, а итоги проверки занести в акт.

2.6.2. Подготовить данные для импорта таким образом, чтобы они включали Дату_доМ, ДатуМ и Дату_послеМ. Выставить на аппаратных средствах (BIOS, system и пр.) дату Дата_доМ и Время_доМ, а затем запустить модуль ПО на исполнение. Войти в режим импорта данных в ПО, соответствующем параметру. Выполнять импорт данных, как минимум, три раза в периоды Время_доМ, Время_послеМ, а также при условии, чтобы процесс импорта включал в себя ВремяМ. Завершить сессию работы с ПО, проверить полученные импортированные данные, а результаты внести в акт.

2.7. Архивирование

2.7.1. Выставить на аппаратных средствах (BIOS, system и пр.) дату Дата_доМ и Время_доМ. Запустить модуль ПО на исполнение, войти в режим архивирования данных в соответствующем месте ПО. Выполнять архивирование данных, как минимум, три раза в периоды Время_доМ, Время_послеМ, а также при условии, чтобы процесс охватывал данные с ВремяМ. Завершить сессию работы с ПО, проверить полученные архивированные данные внешними средствами, если это возможно, а результаты внести в акт.

2.7.2. Выставить на аппаратных средствах (BIOS, system и пр.) дату Дата_доМ и Время_доМ. Запустить модуль ПО на исполнение, войти в нужное место в режиме разархивирования данных, которые были ранее заархивированы (при проверках по предыдущему пункту). Выполнять операцию, как минимум, три раза в периоды Время_доМ, Время_послеМ, а также при условии, что процесс разархивирования данных включает в себя ВремяМ. Далее проверить полученные разархивированные данные средствами ПО, а также после завершения сессии ПО с помощью внешних средств, если это возможно, а результаты внести в акт.

2.8. Исправление даты

Выставить на аппаратных средствах (BIOS, system и пр.) дату Дата_доМ и Время_доМ. Запустить модуль ПО на исполнение. Войти в режим корректировки данных типа ДАТА в ПО, соответствующем параметру. Выполнять корректировку дат, как минимум, три раза в периоды Время_доМ, Время_послеМ, а также тогда, когда процесс корректировки дат включает в себя ВремяМ. Проверить откорректированные данные средствами ПО, а также по завершении сессии работы ПО с помощью внешних средств, если это возможно, а результаты внести в акт.

2.9. Сортировка

Выставить на аппаратных средствах (BIOS, system и пр.) дату Дата_доМ и Время_доМ. Запустить модуль ПО на исполнение. Войти в режим сортировки данных по дате в ПО, соответствующем параметру. Выполнять сортировку по дате, как минимум, три раза в периоды Время_доМ, Время_послеМ, а также тогда, когда процесс сортировки включает в себя ВремяМ. После каждого раза проверить полученные отсортированные данные средствами ПО, а также по завершении сессии ПО с помощью внешних средств, если это возможно, а результаты проверки внести в акт.

Если в ПО включена обработка процесса индексации данных с участием даты, то необходимо дополнительно проверить все перечисленные выше этапы с учетом индексирования, а результаты проверки внести в акт.

2.10. Вычисление

Выставить на аппаратных средствах (BIOS, system и пр.) дату Дата_доМ и Время_доМ. Запустить модуль ПО на исполнение. Войти в режим вычисления данных с участием даты в ПО, соответствующем параметру. Выполнять вычисления с участием даты, как минимум, три раза в периоды Время_доМ, Время_послеМ, а также тогда, когда процесс вычисления включает в себя ВремяМ. Проверить вычисленные данные средствами ПО, а также после ее завершения с помощью внешних средств, если это возможно, а результаты проверки внести в акт.

2.11. Пассивная проверка

Выставить на аппаратных средствах (BIOS, system и пр.) дату Дата_доМ и Время_доМ. Запустить модуль ПО на исполнение. Войти поочередно во все режимы ввода, обработки и/или другого использования текущей даты и выставить ее. Завершить сессию работы с ПО. После наступления Время_послеМ запустить модуль ПО и проверить корректность введенной даты, а результаты внести в акт. Повторить эксперимент, выключая аппаратное обеспечение на время прохождения ВремяМ. Результаты проверки внести в акт.

3. Заключение

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

Приложение 1 АКТ ТЕСТИРОВАНИЯ №________ Мы, нижеподписавшиеся: 1. 2. 3. "____"_____________19___ г. принимали участие в тестировании (Наименование объекта тестирования) на предмет соответствия требованиям 2000 года. Данные объекта тестирования: 1. Дата приобретения/разработки Дата первого внедрения 2. Поставщик 3. Разработчик 4. Тип поставщика прямой третья сторона 5. Количество Наличие и количество лицензий (для технических средств) (для программного обеспечения) 6. Наличие сертификата или подтверждения соответствия на 2000 год 7. Состояние критичности: критично не критично 8. Условия тестирования a) б) в) Были проведены следующие операции по тестированию: N Наименование операции Результат Примечания 1.____________________________________________________________________________ 2.____________________________________________________________________________ 3.____________________________________________________________________________ Заключение по результатам тестирования 1. 2. 3.

Приложение 2

Критические даты для проблемы 2000 года

Даты первого этапа:

  • 09.04.1999 -- юлианская дата 9999
  • 09.09.1999 -- григорианская дата 9999
  • 31.12.1999 -- первый день милениумного периода
  • 01.01.2000 -- второй день милениумного периода
  • 02.01.2000 -- последний день милениумного периода
  • 03.01.2000 -- первый рабочий день
  • 10.01.2000 -- первый день, требующий хранения семицифровой даты
  • 31.01.2000 -- конец первого месяца XXI века
  • 28.02.2000 -- первая дата високосного года
  • 29.02.2000 -- вторая дата високосного года
  • 01.03.2000 -- последняя дата високосного года
  • 01.04.2000 -- начало второго квартала 2000 года
  • 01.06.2000 -- начало третьего квартала 2000 года

Даты второго этапа:

  • 01.10.2000 -- начало четвертого квартала 2000 года
  • 10.10.2000 -- первая дата, требующая хранения восьмицифровой даты
  • 31.12.2000 -- конец первого года с 366 днями в новом тысячелетии
  • 01.01.2001 -- начало второго года нового тысячелетия
  • 08.09.2001 -- отображается как 999,999,999 для Unix-систем
  • 31.12.2001 -- конец первого года с 365 днями в новом тысячелетии

Дата третьего этапа:

  • 29.02.2004 -- вторая дата високосного года нового тысячелетия

Примечание. В первую очередь следует проводить тестирование дат первого этапа, а к следующим нужно переходить лишь после окончания проверок по предыдущему.