Тестирование отчетов. Часть 1.
Самым сложным и трудоемким для тестирования является функционал отчетности. Под отчетностью подразумеваю набор связанных отчетов, каждый отчет это двумерная таблицу со столбцами и строками, в которых размещаются аналитические и числовые значения. Каждый отчет имеет возможность гибких настроек - фильтрация данных, изменение структуры - группировки, итоги, состав показателей. Показатели отчета в 1С могут быть расшифрованы, т.е. по двойному клику на ячейку откроется другой отчет и покажет из чего состоит расшифровываемый показатель. Пользовательский интерфейс отдельного отчета 1С:Предприятия 8 не сложен и содержит унифицированные элементы. Основная сложность скрыта "под капотом" в алгоритме получения данных из источника и вывод результата в форму.
Декомпозировав функционал отчета на части получим:
- алгоритм получения данных из источника
- алгоритм формирования результирующей формы
- настройки получения данных (фильтры и отборы)
- настройки структуры отчета (группировки и показатели)
- расшифровка ячеек отчета
В общем случае тестовый сценарий будет следующим:
- подготовка источника данных
- настройка параметров отчета
- вывод результата в форму
- сравнения результата с эталоном
Рассмотрим каждую часть сценария подробнее.
Подготовка тестовых данных самый сложный процесс. С одной стороны нужно обеспечить повторяемость теста, поэтому данные должны быть неизменными. С другой стороны генерация большого количества данных при каждом запуске может неприемлемо увеличить время исполнения теста. Еще одна сложность с которой приходится сталкиваться - в 1С источниками данных для отчетов как правило являются регистры накопления и регистры бухгалтерии, записи которых обязательно подчиняются регистратору-документу. Таким образом, чтобы подготовить источник данных для отчета, нужно сформировать документ и провести его, чтобы он сделал движения в нужные регистры. Поэтому данные готовим один раз и обеспечиваем их неизменность. Точно это делаем вне алгоритма тестового сценария.
Настройка параметров отчета и Сравнения результата с эталоном связанны между собой. От настроек будет зависеть результирующая форма. Каждая комбинация настройка-результат будет являться отдельным тестовым сценарием. Основная задача проектирования тестов - обеспечить достаточное (не избыточное) количество комбинаций чтобы покрыть ключевые особенности данных отчета. Тем самым получив оптимальное время выполнения набора тестовых сценариев и гарантируя их корректную работу.
Вывод результата в форму. Основная неприятная особенность этого этапа в том, что невозможно заранее определить его длительность и прописать ее в алгоритме теста. Скорость выполнения может зависеть, как от загруженности оборудования, на котором выполняется запуск, так и от изменений которые внесли в структуру источника данных отчета. Поэтому алгоритм тестового сценария должен уметь ждать заполнение выходной формы отчета, чтобы сверить его с эталоном.
Сравнение с эталоном может быть выполнена несколькими способами: проверка всей формы или же проверка значимой части/области отчета.