Уже некоторое время команда ИТ-лаборатории Инфостарта в качестве одного из проектов занимается разработкой внутреннего стартапа под названием «Магазин решений». Если кратко, то это – маркетплейс решений для конфигураций на платформе 1С:Предприятие 8. Ближайшие его аналоги в мире мобильных приложений – всем знакомые Google Play и Apple AppStore.
Глобальная идея Магазина в том, чтобы позволить абонентам Инфостарта пользоваться опубликованными в каталоге решениями в один клик прямо в своей информационной базе. Для авторов Магазин позволит стать ближе к конечным пользователям, улучшить свои решения, получая более быструю и качественную обратную связь.
Маркетплейс, как инструмент распространения программных продуктов, существенно повышает требования к ним, и именно поэтому в первом анонсе Магазина мы расскажем о той части проекта, которая будет отвечать за проверку качества – о Системе тестирования решений.
Данная новость открывает серию рассказов о Магазине решений, которые мы будем делать по мере выпуска релизов различных его подсистем.
Обеспечение качества публикаций в Магазине решений
Инфостарт создавался и действует как площадка, где свою разработку может опубликовать каждый, независимо от своего текущего профессионального уровня.
Размещаемые в каталоге решения в обязательном порядке проходят модерацию: текст и оформление публикации проверяются на соответствие формальным правилам нашими внимательными и терпеливыми модераторами. Но качество самих конкретных разработок специально никак не проверяется. Некоторое исключение составляют платные решения, которые проходят простые ручные проверки.
Из-за такого подхода возникает проблема: разброс качества публикаций колоссальный, и модерация в общем случае не может гарантировать какой-то его минимальный уровень.
Я сам неоднократно, как пользователь Инфостарта, скачивал обработки, которые в конечном итоге не запускались в моей базе, потому что или были созданы под какой-то конкретный релиз конфигурации, а автор это не указал явно, или вообще содержали ошибки.
Поэтому одной из важных задач в рамках создания Магазина решений перед нами стоит задача повышения качества публикуемых на портале Инфостарт разработок.
Для этих целей в составе Магазина мы реализовали и развиваем систему проверки и тестирования публикаций. Она состоит из подсистемы автоматического тестирования и подсистемы, обеспечивающей ручную проверку решений.
Автоматическое тестирование решений
В каталоге Инфостарта невероятное количество совершенно разных по типу публикаций: от простых обработок и до полноценных конфигураций (а еще есть расширения, внешние компоненты, скрипты...). Из-за этого задача автоматического тестирования произвольно взятой из каталога Инфостарта публикации выглядит непосильной, тем более если решать ее только техническими средствами.
Тем не менее, тестирование – во многом рутинный процесс, и поэтому основой системы тестирования являются механизмы автоматической проверки решений.
Чтобы решить эту задачу, мы «моем слона частями»: на первом этапе ограничились самыми популярными видами публикаций. Ими оказались обработки, отчеты и печатные формы, которые поддерживают API дополнительных отчетов и обработок 1С:Библиотеки стандартных подсистем (1С:БСП). На текущий момент реализовано полностью автоматическое дымовое тестирование таких решений.
Как видно на скриншоте, автотесты берут на себя огромный объем работы, который вручную в адекватные сроки и с адекватными затратами выполнить не реально.
В планах реализовать и подключить дополнительные проверки:
- статический анализ кода (проверку синтаксических ошибок и соответствие стандартам 1С);
- проверки кода на безопасность (наличие опасных обращений, наличие закладок и т.п.);
- запуск unit- и BDD-тестов, предоставляемых авторами решений;
- поддержка проверки других типов решений (обработок не поддерживающих БСП, обработок для управляемых форм).
Бэкофис для процессов ручного тестирования
Было бы круто иметь возможность выполнять тестирование 100% автоматически, но в общем случае это практически неразрешимая задача, по крайней мере сегодня, поэтому автотестирование дополняется ручной проверкой.
Тем не менее мы стараемся минимизировать ручной труд везде, где только возможно и по максимуму освободить тестировщика от разных дополнительных операций. Для этого в Магазине решений разработаны механизмы, которые реализуют
- управление базами, в которых выполняется тестирование: ротация демо баз (очистка/подготовка/публикация), создание в них пользователей и т.п.;
- рабочее место тестировщика с интерфейсом, где он видит публикации, которые нужно проверить;
- сбор данных о результатах ручного тестирования;
- публикацию результатов тестирования на портале Инфостарт.
В совокупности эти механизмы образуют виртуальный бэкофис.
Все решения, которые успешно прошли автоматическое тестирование, попадают в бэкофис и проходят ручное тестирование силами наших доблестных коллег из отдела Сервисов.
Сервис-инженеры, выполняющие роль тестировщиков, для проверки запускают каждую обработку/печатную форму/отчет и выполняют в ней минимальные пользовательские действия: формируют отчет, выводят печатную форму, запускают основную команду обработки и т.п.. Таким образом они убеждаются, что решение не содержит очевидных проблем (отчет формируется и выводит данные, печатная форма выводится на экран, при запуске обработки не возникает ошибок). Результаты проверки фиксируются в системе:
И эти данные смогут увидеть модераторы и автор публикации, об этом расскажу далее.
Использование результатов тестирования
Результаты тестирования будут доступны всем зарегистрированным пользователям сайта, авторам публикаций и модераторам каталога.
Все решения, успешно прошедшие проверку, будут отмечаться специальным бейджиком:
По наличию бейджика видно, в какой конфигурации и на каком релизе это решение проверялось. Отсутствие бейджика означает, что либо решение пока не прошло проверку, либо были обнаружены ошибки.
Для пользователей Инфостарта наличие бейджика будет означать, что это решение в конкретной конфигурации (с точностью до релиза) может быть подключено в качестве дополнительной обработки, успешно запускается в этой конфигурации и не содержит явных, очевидных ошибок.
Модераторы и, главное, авторы будут иметь полный доступ к информации о выявленных при тестировании ошибках. На основе этих данных модераторы смогут принять решение о размещении публикации, а авторы – своевременно отреагировать и исправить выявленные проблемы.
Вот так сейчас выглядит полный отчет о тестировании конкретной публикации:
Очевидно, эта обработка почему-то сломалась в новых релизах. Автор публикации может кликнуть в красной ячейке и увидеть полную расшифровку ошибки.
В случае ошибки, обнаруженной при автоматической проверке, это будет текст возникшего программного исключения:
В дальнейшем сюда также добавятся отчеты по результатам статического анализа кода и результаты других проверок.
Если ошибка была выявлена в ходе проверки решения вручную, то в качестве текста ошибки будет выведен комментарий от тестировщика:
Безусловно, даже такая двухэтапная проверка не дают 100% гарантии работоспособности проверяемого решения. Но это только первый этап на пути повышения качества и систему тестирования решений мы будем в ближайшее время активно развивать.
Информация о поддерживаемых типовых релизах
Наша система тестирования на текущий момент выполняет проверку решений на актуальных типовых релизах.
При этом авторы публикаций и сейчас и раньше могли самостоятельно указать те конфигурации и номера релизов, на которых выполнялась разработка и проверка решения самим автором. Но до сегодняшнего дня эти данные указывались не формализованно - прямо в тексте публикации. Естественно, иногда в названия конфигураций и номера релизов закрадывались ошибки.
Чтобы исключить эти проблемы, мы внедрили на портале справочник типовых конфигураций, который регулярно обновляется по официальным данным 1С и теперь авторы публикаций для каждого файла могут указать название поддерживаемой конфигурации и номеров релиза, на которых автор проверял свое решение:
Эта информация будет выведена в конце текста публикации:
Что дальше
Магазин решений – очень сложный технически и организационно проект. Как я уже выше отметил, мы планируем сделать большой упор на развитие системы автоматической проверки решений, но это лишь та часть проекта, которую мы запустили в опытную эксплуатацию (автотестирование и бэкофис работают уже несколько месяцев, а публичная часть с результатами тестирования станет доступной после конференции).
Кроме этого, на этапе внутреннего тестирования и согласования юридических вопросов находится демо-площадка, которая будет дополнять Магазин решений. Она позволит пользователям портала Инфостарт до приобретения запустить и проверить в реальных условиях работоспособность обработки/печатной формы буквально одной кнопкой прямо со страницы публикации:
Во время реализации проекта мы сталкиваемся с интересными задачами, и о найденных решениях тоже постараемся рассказывать. Некоторые решения кристаллизуются в виде небольших самостоятельных продуктов, которыми мы делимся и продолжим делиться с сообществом дальше, в том числе в формате open source.
Следите за анонсами!