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 и пр.) дату Дата_доМ и Время_доМ и запустить модуль ПО на исполнение. Затем выйти из сеанса ПО, дождаться наступления ВремяМ и снова запустить ПО.
В течение Время_послеМ повторно рассмотреть все поля, в которых отображена дата для пользователя. Следует убедиться, что ее нельзя толковать неоднозначно. Если необходимо, следует вернуть аппаратное время на Время_доМ и проверить поля, которое не успели проконтролировать, а результаты занести в акт.
Провести прямую и обратную проверки, вставляя в поля результатов расчетов (процессов) неверные даты (вроде 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 -- вторая дата високосного года нового тысячелетия
Примечание. В первую очередь следует проводить тестирование дат первого этапа, а к следующим нужно переходить лишь после окончания проверок по предыдущему.