Как выполнять 600 видов тестирования в месяц с минимальными трудозатратами

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

Инструмент для тестирования

Наша компания «1С-ИжТиСи» создает для программистов 1С инструменты, которые позволяют максимально автоматизировать их работу, в том числе, тестирование.Этому процессу мы уделяем особое внимание, потому что для нас важно быть уверенными в качестве выполненных проектов.

Еще в 2007 году в рамках одного из приоритетных направлений нашей деятельности – оказания услуг обновления измененных конфигураций 1С – мы начали разрабатывать собственную систему автоматического тестирования. Основная ее цель – анализ корректности работы измененных конфигураций 1С после обновления. В результате совместно с фирмой «1С» мы разработали программный продукт «1С:Автоматическое тестирование конфигураций».

Он помогает значительно сократить трудозатраты и полезен для тестирования конфигураций не только после обновления,но и при объединении функционала нескольких конфигураций, при выпуске нового релиза, а также при разработке нового функционала внедряемой конфигурации. Программа может работать полностью автоматически и автономно на платформе «1С:Предприятие» версий 8.0-8.3 как в толстом, так и тонком клиенте. Она позволяет тестировать под разными пользователями произвольные списки видов объектов, файловые и SQL-базы и пр.

Что тестируем

Ежегодно мы выполняем более 4500 проектов обновления измененных конфигураций разной степени сложности, причем 30% из них – «Бухгалтерия предприятия» и столько же – «Управление производственным предприятием».

Проверять работоспособность такого количества конфигураций вручную было бы просто нереально. Использовать заранее подготовленные сценарии тестирования – тоже, поскольку конфигураций много, все они разные, а значит и сценарии должны быть индивидуальные. В связи с этим использование программы «1С:Автоматическое тестирование конфигураций» намного упрощает работу специалистов.

Им не требуется знать, какой у тестируемых конфигураций функционал и как он реализован. Программа автоматически генерирует тесты для любой конфигурации. В среднем, это занимает от 1 до 2 часов. Если тестовые базы большие, то время их подготовки зависит от скорости работы платформы. Однако работу программы можно еще ускорить: тестирование может выполняться в несколько потоков одновременно. В нашей регулярной практике тестирование идет в 4 потока, и при необходимости его можно запустить на произвольном количестве доступных ядер.

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

Полное тестирование, например, трех релизов УПП (в 4 потока, на нашем оборудовании) может идти от 4 до 48 часов, в зависимости от базы, количества изменений и списка тестируемых объектов. А полное тестирование 3 релизов ERP – от 10 до 48 часов. Для сравнения, УТ 11 тестируется, в среднем, в 2 раза быстрее.

Процесс тестирования

Рассмотрим, как происходит подготовка конфигурации к тестированию и непосредственно сам процесс тестирования.

Сначала выполняется инициализация начальных данных, составляется список объектов для тестирования, подготавливаются модули. После этого подготавливается информационная база с данными и указывается список конфигураций, работу которых необходимо сравнить между собой. В результате получается от 1 до 4 баз с одними и теми же данными. Далее для каждой тестируемой конфигурации производится анализ метаданных, форм и модулей. На основании этого программа автоматически генерирует для тестируемых объектов максимально полный список действий, которые могут быть выполнены пользователем в режиме Предприятия.

После этого запускается полное автоматическое тестирование, и все эти действия производятся над одними и теми же объектами в разных информационных базах. Иначе говоря, проводится тестирование сразу 3 конфигураций: исходной, новой типовой и обновленной.

Программа имеет набор различных тестов, относящихся к разным классам и типам тестирования. Основной класс тестов – автоматическое регрессионное тестирование в режиме Предприятия («Вызов событий»). Но реализованы также и другие тесты:

  • проверка изменений проведения документов;
  • проверка изменений в регистрах после изменения конфигурации;
  • статическая проверка изменений метаданных, форм, ролей;
  • анализ изменений конфигурации на основе отчетов о «стандартном сравнении», выводимых Конфигуратором.

Автоматическое тестирование обладает такой важной особенностью, как «избыточность»: один и тот же объект может быть протестирован в различных контекстах (например, форма выбора Контрагента будет открываться из всех документов).Также кроме реальных ошибок программа находит и «нереальные». Например,раньше выполнялись события всех элементов управления даже в том случае, если элемент был невидим или недоступен. В результате действие выполнялось в неправильном контексте и выдавало лишнюю ошибку.

Во время работы программы происходит создание огромного количества временных файлов (50-150 Гб, без учета размера тестовых баз), поэтому тестирование предпочтительно запускать на SSD-дисках.

Весь процесс автоматического тестирования занимает, в среднем, 4-5 часов. Однако его продолжительность зависит от количества и сложности объектов и тестируемых конфигураций, поэтому тестирование может выполняться 1-2 дня и более.

Отчет об ошибках

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

  • объект метаданных, в котором возникла ошибка;
  • объект базы данных, на котором возникла ошибка;
  • событие, в результате которого произошла ошибка;
  • стек вызова процедур/функций;
  • номер строки кода с ошибкой.

Если какое-либо из запланированных тестами действий не было выполнено, программа указывает вероятную причину (например, отсутствие данных в тестовой базе). Программа фиксирует, при каком событии, в каком объекте возникла каждая из них. Далее формируется список ошибок, которые необходимо исправить специалисту вручную. На это он тратит около 1-3 часов или больше, если ошибок много и они серьезные.

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

Преимущества автоматизации тестирования

Автоматическое тестирование значительно сокращает трудозатраты на поиск ошибок в конфигурациях после обновления. Тестирование выполняется гораздо быстрее и эффективнее, чем вручную. Кроме того, в своей практике мы используем параллельные вычисления – запускаем тесты параллельно в несколько потоков: тестирование каждой базы (рабочей, новой типовой и обновленной) выполняется на отдельном устройстве. В результате достигается ускорение процесса тестирования от 3 до 36 раз (при использовании трех 12-ядерных процессоров).

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

Что не выполняет программа

Однако, несмотря на перечисленные достоинства, на текущий момент система автоматического тестирования не может выполнять некоторые функции:

  • находить ошибки, возникающие при действиях, идущих не в порядке обхода элементов форм;
  • обрабатывать взаимодействие с внешней средой: обмены, работа с файлами и т.д.;
  • находить ошибки, возникающие при последовательной работе с различными объектами;
  • находить ошибки изменения логики работы программы.

Внедрение нового функционала

Основная задача, которую мы стремимся решить, – повышение качества тестирования, поиск большего количества различных классов ошибок, включая логические.Для этого мы разрабатываем новую редакцию «1С:Автоматическое тестирование конфигураций» со следующим функционалом:

  1. Пользовательская настройка сгенерированного программой сценария. Это позволит более тонко проводить тестирование, а трудозатраты на поддержку сценариев будут снижены, т.к. их можно будет автоматически обновлять в случае изменения конфигурации.
  2. Указание пользователем параметров сценария (если пользователь укажет конкретный файл, он автоматически будет передан на вход в процессе работы).Это позволит выполнять тестирование конфигурации с определенными параметрами и последовательностью действий.
  3. Запись реальных сценариев работы пользователей в реальной рабочей многопользовательской среде и последующее воспроизведение их на исходной эталонной базе.Это позволит использовать предыдущие реальные пользовательские сценарии тестирования для последующих запусков. Дальнейшее сравнение конечного состояния тестовой и основной систем позволит в кратчайшие сроки находить ошибки в тестовой базе и исправлять их в основной.
  4. Более подробный анализ работы кода тестируемой конфигурации в процессе работы сценариев.Это позволит отслеживать изменение логики работы кода, при этом даст возможность технически просто находить место начала возникновения различий (например, на «вход» функции передали другой параметр). После получения результатов автоматического тестирования специалист, просматривая и воспроизводя последовательность действий, сможет получать информацию о ходе работы программы, автоматически сравнивая значения переменных (таблиц значений, результатов запросов) в различных версиях конфигурации.
  5. Поиск «скрытых» ошибок (обращения к несуществующим реквизитам, элементам форм, свойствам) за счет полного лексического анализа, соединенного с результатами динамического анализа работы тестируемой конфигурации.
  6. Возможность просматривать скриншоты ошибок и/или замедленную видеозапись процесса тестирования, «одним кликом» восстанавливать контекст тестирования при просмотре ошибки с установкой точки остановки в Конфигураторе. Это позволит специалисту быстрее выполнять проверку ошибок после тестирования.
  7. Контроль логической целостности программно-динамически создаваемых запросов.Это позволит отслеживать изменения в полученных данных после выполнения запросов.
  8. Интеграция с EDT (Enterprise Development Tools).

Развитие системы автоматического тестирования конфигураций является необходимым и важным шагом. Усовершенствование существующего функционала и добавление нового позволит в еще большей степени упростить работу специалистов при проверке работоспособности конфигураций 1С. Также это повысит настраиваемость системы автоматического тестированияи расширит объем выполняемых ею функций.

Что нового для вашей 1С?

Оперативная информация о выходе и содержании свежих версий для 19 типов конфигураций.
+7 (800) 77-51-256 skype: sale_1c-izhtc sale@1c-izhtc.ru 2005-2024 © 1C-ИЖТИСИ
Политика конфиденциальности Номер в реестре аккредитованных IT-компаний: 2476 Информация на сайте не является публичной офертой