TestIB8x (Общая концепция)

18.12.07

Разработка - Работа с интерфейсом

Данная статья - компиляция из трех статей сайта ( http://brix8x.stavr.ru ), описывающая общую концепцию программы TestIB8x.

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

Статья 1: Зачем всё это (версия 1 от 05.12.2007)


Зачем нужны стандарты

Обрисую всего три ситуации, в которых может возникнуть необходимость внедрения стандартов.

Ситуация 1 — Просто зрелость ...

Ты уже вполне зрелый разработчик. На Платформе 8.х можешь написать всё, что угодно, в багаже у тебя огромное количество кода, перекочевавшего с 7.7. Твой стиль полностью сформирован. И очень приятно отлаживать приложения, не вчитываясь в каждую строку или мучая дебаггер, а просто оценив «рисунок» кода. Ошибка, скорее всего, будет там, где написано некрасиво.
Опыт растет с каждым днем. В результате этого ты устанавливаешь сам себе правила на кодирование и переносишь из одной конфигурации в другую проверенные блоки метаданных.

Ситуация 2 — Помощнички, мать их ...

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

Ситуация 3 — Даёшь «коробочное» решение ...

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

Но стандартам следовать сложно

Стандарты меняются

Каждая новая конфигурация, каждое изменение платформы заставляет пересматривать некоторые приёмы и архитектурные решения.
Параметры сеанса — очень удобны для создания универсальных подсистем, но, пока не появилась платформа 8.1, для более высокой производительности приходилось пользоваться глобальными переменными.
Сегодня ты используешь для глобальных функций префикс «гл», а завтра появляется понятие не глобального общего модуля и роль префикса прекрасно сможет сыграть имя самого модуля.

Стандарты надоедают и забываются

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

Главное, что итог очень часто один. Стандарт есть, но ему никто не следует.

В каждом релизе проверочка ...

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

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

Если получится разделить разработчиков и тестировщиков качества (тут имеются в виду роли), и дать каждому один и тот же инструмент для проверки, то будет вообще всё замечательно.
Разработчик знает требования, они описаны в стандарте. Забыл, прочти заново.
Тестировщик может и не знать стандарты, но знает те тесты, которые нужно запустить перед отправкой конфигурации в рабочую среду.
Разработчик может сам, перед тем как заявить о том, что все сделано, проверить конфигурацию.
А если он этого не сделает, то тестировщик проверит конфигурацию за него и, скорее всего, «отбракует».

В каждом релизе исправлялочка?

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


Статья 2: Как создать свой тест (версия 1 от 07.12.2007)

С чего начинается тест


Тест не начинается с написания теста. Тест является всего лишь инструментом для достижения некоторой цели. Цель же вполне конкретна – конфигурация должна соответствовать определенному стандарту.

Задачи соответствовать всем существующим стандартам нет. Для каждой конкретной организации и даже конфигурации, может быть выбран свой набор стандартов.

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

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

Таким образом, тест не начинается с создания теста, он начинается с описания стандарта.

Краткое описание этапов создания теста


Директорий Templates содержит все необходимые шаблоны
1. Определить Категорию стандарта, определить краткое, узнаваемое название стандарта
2. Выбрать некоторое уникальное имя для всего блока (стандарт, тест, настройки)
3. Создать стандарт ИМЯ.doc из шаблона для стандарта (TestIB8x.dot)
4. Создать «скелет» теста ИМЯ.js из заготовки (TestIB8x.js)
5. Создать «скелет» шаблона файла настроек ИМЯ.xml (TestIB8x. xml)
6. Изменить тест и шаблон файла настроек под нужды стандарта.
7. Подключить новый тест к динамическому меню (\Bin\TestIB8xShExt.xml)


Статья 3: Объектное окружение теста (версия 1 от 12.12.2007)


Как почувствовать, что у нас есть


И действительно, что же у нас есть, после того, как тест скопирован из шаблона, переименован, подключен к меню, запущен на выполнение и отобразил “Init, Run, Done”.

Потенциально, у нас есть вообще всё, т.к. Windows Script Hosting проектировался как основа для работы с любыми COM-объектами. Практически, нам так много не нужно.

Сколько нам нужно объектов


Нам нужно работать с каталогами, с файлами в кодировке UTF-8, уметь запускать приложения. Это всё умеют объекты, входящие в состав WSH 5.6.

Нам нужно работать с файлами настроек, а они в формате XML, а это MSXML 4.0 или выше.

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

Как нам изучать возможности этих компонентов


Для тех, кто забыл ;-), напомню, что объектные модели, необходимых нам компонентов, можно легко смотреть в среде VBA любого офисного приложения. Мне больше по душе MS Excel.

Заходим в редактор сценариев, Сервис – Макрос – Редактор Visual Basic (Alt+F11), далее подключаем нужный нам компонент через меню Tools – References, чтобы потом рассмотреть компонент через View – Object browser.

Для WSH нам нужен компонент Microsoft Scripting Runtime
Для MSXML – Microsoft XML, версии равной или выше 4
Для ADO – Microsoft ActiveX Data Objects 2.x Library (полагаю, что равной или выше 2.8)
Для TestIB8x - TestIB8x.tlb в директории программы, Reference позволяет подключить библиотеку типов, сохраненную в файле .tlb.

Таким образом, немного визуализировать объекты, необходимые для тестирования мы можем.

Для TestIB8x есть чуть более красивая картинка


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



Если картинок недостаточно


Если картинок недостаточно, то понятно, тут выход только один, чтение документации. По WSH в состав программы включен файл справки Script56.CHM. Лежит в директории Documentation.

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

См. также

1С:Фото номенклатуры 7.7 - решение для работы с фотографиями номенклатуры в 1С:7.7 (включая формат PNG)

Работа с интерфейсом Логистика, склад и ТМЦ Платформа 1С v7.7 1С:Торговля и склад 7.7 Оптовая торговля, дистрибуция, логистика Управленческий учет Платные (руб)

Решение для разработчика и конечного пользователя для работы с фотографиями номенклатуры: систематизация, хранение, отображение, а также выгрузка на Яндекс-Диск и FTP (кроме версии лайт). Поддерживаются графические форматы: bmp, jpg, gif, tiff, а также png - не поддерживаемый штатными средствами 1С. Выполнено без использования внешних компонент (кроме функции выгрузки на FTP). Поставляется как в виде пустой конфигурации с набором объектов и модулей для работы с фото, так и в виде обновления к 1С:Торговля и склад 7.7. Выполнено в двух версиях: "полная" и "лайт".

5000 руб.

18.10.2022    5198    1    45    

3

WebЦвета для 1с77 FormEx

Инструментарий разработчика Работа с интерфейсом Платформа 1С v7.7 Абонемент ($m)

Обработка с фрагментами кода для программного использования набора цветов из коллекции WebЦвета 1с версии 8+ в 1с версии 77. Требуется предварительное подключение сторонней библиотеки FormEх. Будет полезно программистам 1с 77, 1с 8. Да и вообще при программировании на любом языке при потребности использовать коллекцию цветов WebЦвета.

1 стартмани

30.03.2022    4573    2    igor7777    4    

5

К привязкам элементов форм (1С 7.7, FormEx)

Работа с интерфейсом Платформа 1С v7.7 Конфигурации 1cv7 Бесплатно (free)

Публикация имеет цель обратить внимание на возможность улучшения интерфейса.

15.12.2021    4488    62    Cерый    13    

6

Выбор цвета для 1С 7.7

Работа с интерфейсом Платформа 1С v7.7 Конфигурации 1cv7 Абонемент ($m)

Простая и удобная внешняя обработка для выбора цвета без применения внешних компонент.

1 стартмани

09.06.2020    7057    3    vap_pig    5    

3

Производственный календарь для 1С 7.7

Учет рабочего времени Работа с интерфейсом Платформа 1С v7.7 Конфигурации 1cv7 Россия Абонемент ($m)

Обработка производственного календаря с возможностью импорта и экспорта xls для 1С 7.7 (7.70.027) без изменения конфигурации.

1 стартмани

18.09.2019    12619    6    Jill    8    

3

Альтернативная обработка "Выбор периода"

Работа с интерфейсом Оперативный учет 7.7 1С:Торговля и склад 7.7 Абонемент ($m)

Альтернативная обработка ввода периода для 1С 7.7.

1 стартмани

27.03.2019    6600    3    v.a.n-    11    

2

Несколько табличных частей в 1С:7.7 - это просто

Работа с интерфейсом Платформа 1С v7.7 Конфигурации 1cv7 Абонемент ($m)

При программировании на платформе V7 достаточно часто возникает задача создать несколько табличных частей документа (или справочника). Традиционно эта задача имеет несколько решений..

1 стартмани

01.05.2018    22471    27    Gkmy    11    

5
Комментарии
Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. support 4485 12.12.07 20:01 Сейчас в теме
2. brix8x 523 12.12.07 22:27 Сейчас в теме
спасибо. но до настоящей крутости нужно около 30-40 тестов, с возможностью объединять их в тестовые пакеты, чтобы не выбирать каждый раз из контекстного меню один тест.
Также еще пока не решен вопрос как документировать стандартное решение, хотел бы это сделать в нотации UML, но есть
сложности с описанием типов, поэтому пока остается формат Word.
Другими словами тут еще работы непочатый край.
3. vkr 02.04.08 11:21 Сейчас в теме
Когда-то давно, когда деревья были большими :),
мне попалась импортная книжка "Искусство тестирования программ"...
На самом же деле, идея автора ПРЕКРАСНАЯ !!!
Знал бы "восьмерку" - тоже бы поучаствовал в проекте...
4. tango 540 02.04.08 12:25 Сейчас в теме
Вот эта, мимоходом брошенная фразочка, мне не нравится:
"из разряда центра затрат в центр прибыли".
МенеджОры выручку приносят в клювике, а не прибыль, ок?
И ихняя з/п - точно такие же затраты, как и з/п "компутерщиков".
Оставьте свое сообщение