А за разговор ответишь или про тестирование eCATT

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

В этот раз он решил мне не поверить, поэтому “буду отвечать за ба..р”.

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

Начнем с теории и мировых практик. Чтобы не быть совсем голословным скажу, что я это использую в своих неСАП проектах. И мне это помогает.

Теоретическая часть

Тестирование, как мы знаем, строится по уровням. Модульное, компонентное, интеграционное, пользовательское. Кто как группирует. То есть, сначала тестируются точечные вещи, атомы молекулы.

Пример:

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

компонентное – вид оплаты можно ввести, посчитать в зарплате и получить результат в расчетном листе;

интеграционное – вид оплаты, введенный в инфотип, корректно проводится в главную книгу;

пользовательское – пользователь создает 15 видов оплаты, 20 полупериодов и хочет, чтобы все это работало “как раньше”.

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

Тут и приходят на помощь тесты. Для первой галочки мы написали два алгоритма проверки (например, вид оплаты можно ввести в инфотип, для вида оплаты можно вводить только сумму). На входе мы задаем табельный номер, вид оплаты. Тест – глупая машина, которая пока не обладает ИИ. Следовательно, надо сказать, что есть положительный результат. в конкретном примере выше это системное сообщени – запись была сохранена. То есть, мы делаем два теста, где на входе будут разные наборы данных, но одна проверка – появление сообщения внизу экрана.

Теперь обратная ситуация. Кто-то поменял настройку допустимости. Мы уже накопили тысячу тестов в своей библиотеке. Запускаем ночью прогон всех тестов. И бац, один тест свалился – тот самый, где мы вводили вид оплаты в инфотип. Только из-за изменения настройки теперь нам система выдаст красное сообщение с ошибкой, а не то, которое ожидает наш алгоритм в тесте. Вот и индикатор того, что тест отработал верно, а кто-то нарушил работу системы.

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

Теперь отвечаю на вопросы моего читателя.

Практикум

А как насчет потестировать бади на изменение инфотипа PA или соединения объектов в ИТ 1001?

Да легко 🙂 Результатом работы бади является что-то. Что? Например, в бади читается инфотип штатной должности и какой-то атрибут отражается на экране. Входные данные теста – табельный номер. Тест запускает PA30 (все как в LSMW), создает запись инфотипа, отрабатывает бади. И вот тут мы останавливаем тест и просим сохранить в переменную поле с экрана – то самое, где бади должен отразить значение со штатки. И дальше ставится проверка в тесте: результат теста = (“контрольное значение” == “переменная теста, которая заполнена данными с экрана”).

А проверить, не сбился ли расчет какой-нибудь суммы в самодельном отчете?

Опять же просто. Делается эталонный пример. Кластер, в нем лежит эталонный расчет. Мы знаем, что правильное значение в отчете равно 153 (или что-то иное). Тест запускает отчет, заполняет селекционный экран, на выходе получается одна цифра или множество. Тест также может получить значение конкретной ячейки. Вот его мы и сравниваем с эталоном – 153. Это и есть результат теста: равно или нет.

Ну или хотя бы удостовериться, что после допиливания схемы расчета зарплаты не сбился расчет страховых взносов.

Аналогично предыдущему примеру. Есть десяток табельных номеров с эталонным расчетом, который распечатан и замурован в сейф. Запускается формирование печатной формы (или расчет зп, вторым шагом отчет по видам оплаты), где и сравнивается значение из формы/отчета с контрольными значениями.

И заодно проверить, что РСВ-1 по-прежнему выдает ожидаемые суммы?

Аналогично предыдущим двум пунктам.

Пошаговая инструкция в картинках eCATT будет несколько позже. Пока аврал 😉