Как пройти тестирование 1с отчетность
Обновление отчетов и обработок должно работать на конфигурациях с БП 3.0.
Запуск обработки надо настраивать для конкретной задачи.
Введение
Не нашел ни одного рабочего примера Автоматизированного тестирования 1С.
Такого, чтобы взять и запустить. Попадаются либо фрагменты кода с объяснениями, либо конфигурации которые надо изучать.Решил поделиться рабочим примером, который сам использую. Для реального использования надо только настроить под себя: прописать пути, имена и т.п..
Автоматизированное или автоматическое?
Технология (инструментарий) 1С называется “Автомати зированн ое тестирование”, а в названии статьи используется слово “Автомати ческ ое” в смысле без участия человека. Более точное название статьи было бы “Автоматическое тестирование … с помощью Автоматизированного тестирования 1С”
Автоматизированное тестирование 1C
Автоматизированное тестирование (АТ 1С) - инструмент 1С для имитации интерактивных действий пользователя. В АТ 1С всегда участвуют два клиентских приложения. Одно приложение выполняет роль менеджера тестирования , второе приложение выполняет роль клиента тестирования .
Сам процесс такой: Менеджер запускает клиента и подключается к нему (примерно как по Com-соединению). Для управления клиентом используется набор объектов. Этот набор недоступен при стандартном запуске.
Предыстория
По требованиям пользователей опубликованная на Инфостарте обработка постепенно расширила свою область использования. В результате, при внесении любых изменений приходится проверять работу в четырех конфигурациях. Минимальная проверка заключается в запуске обработки.Было решено автоматизировать процесс.
На первый взгляд, просто в запуске обработки нет никакого тестирования.
Но обработка сделанная в УТ 11.4 может не пройти проверку синтаксиса в УТ 11.2. Например, из-за использования различных версий БСП В УТ 11.4 и УТ 11.2.
Создание ИБ - менеджера тестирования
Конфигурация состоит из единственного модуля - модуля приложения. Также надо установить одно свойство конфигурации и режим запуска ИБ.
- Создаем пустую информационную базу, назовем к примеру ТестМенеджер
- В свойствах конфигурации устанавливаем режим использования модальности
- Берем код под спойлером и копируем его в Модуль приложения
- Устанавливаем флаг
Сервис => Параметры => Запуск 1С:Предприятия => Дополнительно => Автоматизированное тестирование => Запускать как менеджер тестирования
.
ИБ ТестМенеджер готова. Остается настроить параметры тестирования (пути к файлам, имена и т.п) для своих нужд.
Запуск конфигурации
При запуске получаем окно для выбора теста:
Состав теста
Тест состоит из 3 шагов:
- Шаг 1 .Обновление отчета или обработки в справочнике Дополнительные отчеты и обработки
- Шаг 2 .Запуск отчета или обработки
Вызывается процедура ЗапускОбработки(). Код процедуры создается вручную с учетом конкретного отчета или обработки.
Шаг можно отключить - Шаг 3 .Закрытие приложения после теста
Шаг можно отключить
Настройка параметров теста
Параметры тестов задаются в функции ПолучитьМассивВсехТестов().
Каждый тест представлен структурой со следующими ключами:
- ПредставлениеВСпискеВопроса
- Наименование теста
- “УТ 11.4”
- Путь к исполняемому файлу 1С
- "C:\Program Files (x86)\1cv8\8.3.16.1224\bin\1cv8.exe"
- Путь к папке ИБ
- "D:\1SBases\Демо УТ 11.4"
- Пользователь ИБ
- “Администратор (ОрловАВ)";
- Пароль пользователя ИБ
- Наименование отчета или обработки как в справочнике Дополнительные отчеты и обработки
- “Печать договоров по шаблонам”. Может содержать знаки подстановки "*" и "?"
- Путь к файлу обработки
- "D:\ПечатьДоговоровПоШаблонам\20200430 ПечатьДоговоровПоШаблонам_УТ_КА_ERP.epf");
- Флаг запуска Процедуры ЗапускОбработки (флаг шага 2 теста)
- Ложь
- Навигационная ссылка на объект, из формы которого запускается отчет или обработки
- "e1cib/data/Справочник.ДоговорыКонтрагентов?ref=af8f0015e9b8c48d11e0e504cc1e1aca"
Как получить ссылку:
- НаименованиеОбъектаНазначения
- Заголовок объекта назначения Может содержать знаки подстановки "*" и "?"
- "Договор продажи - ТД-890 от 01.04.2015"
- Флаг закрытия приложения (флаг шага 3 теста)
- Ложь
- Задает таймаут после закрытия в секундах.
Не нашел способа определить, что закрытие приложения завершилось. Сделано просто паузой. Без паузы возникают сбои - 20
- Приложение запускается с ключом /UILOGRECORDER
- Истина
Получим кнопки в окне приложения:
Инструменты для создания кода Автоматизированного тестирования 1С
Нам понадобятся два инструмента.
Первый инструмент - создание журнала действий пользователя уже есть в платформе.
Второй инструмент - обработку для создания кода надо скачать с ИТС.- Создаем журнал действий пользователя. Для этого открываем конфигуратор клиента тестирования (например УТ 11.4) и запускаем:
в запущенном приложении увидим кнопки для записи журнала:
Запишем нужный фрагмент действий и получим XML текст, который надо где-то сохранить. - Теперь нам надо скачать с ИТС обработку UILogToScript для преобразования журнала действий (XML текст) в код программы 1С. К сожалению, обработка UILogToScript отрабатывает не все ситуации. Например диалог открытия файла не поддерживается, обработка выдает ошибку. Но это не критично, потому что можно поискать решение в Интернете или сделать самому по аналогии.
Надо сказать, что при небольшом опыте работы можно обходиться без обработки UILogToScript.
Поддержка совместимости
Поддержка совместимости - непростая задача.
- Пример 1. Рассмотрим форму дополнительной обработки в В УТ 11.2 2.94 (БСП 2.1.2.86
:
А вот форма дополнительной обработки в УТ11.4.11.88 (БСП 3.0.3.223):
Видим, что заголовок нужной нам кнопки другой, А ведь в клиенте тестирования поиск объектов (элементов интерфейса) идет именно по заголовкам. В коде, который приведен в данной статье сделано просто: Если кнопка “Обновить из файла” не найдена, ищется кнопка “Загрузить из файла” - Пример 2. Предупреждения безопасности при загрузке файла внешней обработки. В Платформе 8.3.16 выдается вопрос подтверждения, нажимаешь Продолжить и все.
- В каких-то версиях платформы был вопрос подтверждения, а затем надо было повторно нажать кнопку “Обновить из файла”.
- Пример 3. Закрытие окна тестируемого приложения. Здесь тоже диалог закрытия зависит от версии платформы
Резюме: Универсальный тест для различных версий платформ и конфигураций сделать невозможно, но под свои задачи вполне доступно реализовать.
Диалоги безопасности
При написании кода теста пришлось учитывать вариативность предупреждений безопасности.
Вот описание действий пользователя для загрузки файла обработки в УТ 11.2. Конфигурация использует БСП 2.3- Вариант 1. Файл загружается впервые
- Нажатие кнопки Загрузить из файла
- Диалог Выбор файла
- Окно диалога:: Предупреждение безопасности
- Нажатие кнопки Да
- Нажатие кнопки Ок
- Диалог Выбор файла
- Нажатие кнопки Загрузить из файла
- Диалог Выбор файла
- Окно диалога:: Необходимо перезакрыть окна
- Нажатие кнопки Ок
Немного итогов
Создание автоматического теста с помощью Автоматизированного тестирования 1С задача трудоемкая, Но результат оправдывает себя.
Здравствуйте инфостарцы, искал перед подготовкой к тесту 1С:Профессионал по платформе(в 2019 г.) информацию для успешной сдачи, но как оказалось, как мне кажется актуальной информации в интернете нет. Поэтому делюсь своим опытом.
Есть 3 способа подготовки к тесту:
1)Добросовестно прорешать все тесты(долгий и не эффективный способ);
2)Найти в интернете ответы без картинок(я учил 2 недели, получил нулевой результат);
3)Диски ИТС(имхо если даже найдёте все диски за последние 1,5 года, не найдёте дисковода в наши то времена :D)(много мороки, неэффективный метод подготовки);
4)Списать(не советую, ибо последствия);
Не знаю, что было в стародавние времена, а в 2019 году если вы будете готовиться не по официальному тесту, то:
1)не получите реального понимания своего уровня зубрежки(алгоритм бесплатного теста и платного обучены по разному. Что это значит? А то, что натренировавшись на бесплатном тесте вы будете стабильно сдавать 7 из 10 попыток, а прийдя на экзамен будете писать по алгоритму официального теста 4 из 10 успешных попыток),
2)в интернете есть ответы, они правильные, но без картинок это не пригодно для учебы, плюс нет эффекта "увидел-на автомате тыкнул",
3)в официальном тесте и тесте на сайте ответы находятся всегда на своей цифре, на экзамене ответы на вопросы перемешаны(кроме верные ответы "1,2 и 3"(например)).
Вывод: для быстрой сдачи теста:
1)покупайте официальный доступ на 3 месяца(2100 на 2019г.),
2)сначала пытайтесь найти ответ в конфигураторе, не можете-зазубрите, ответ,
3)не зубрите ответы по расположению(вопрос "Как сделать то-то %" Ага процент в конце вопроса, значит ответ "3"! Не надо так зубрить, лучше понять вопрос-ответ, так будет быстрей, я серьёзно),
4)не верьте тому, что написано в интернете, "за 2 недели подготовился и сдал с первой попытки", в реальности
а)1 знакомый(умный) учил(именно учил) 10 дней-сдал с первого раза 12 из 14;
б)2 знакомый-теперь ведущий спец, получает 120 К(сам фишку видел), сдал с 3 попытки(зубрил "Вопрос Такой-то %", значит ответ "3"),
в)3 знакомый сдал за 2 недели сплошной зубрёжки(обычный паренёк),
г)4 знакомый сдал с 3 попытки(учил без платного доступа, средний ум, но не всё свободное время тратил на подготовку(не старался)),
д)я (средние способности) сначала зубрил по бесплатным тестам из интернета 2 недели(эффекта не было никакого), понял, что никогда так не выучу, купил платный доступ, зубрил 4 недели(тупо зубрил-это не правильно(надо сначала посмотреть в конфигураторе, попытаться понять, не получается-только тогда зазубрить)), в итоге сдал с 1 попытки 12 из 14(я зубрил только по вечерам и выходным, работа жи).
Вывод: покупайте платный доступ, начинайте зубрить ответы сразу как пришли во франчайзи, никого не слушайте. тест на платформу не стыдно сдать с 3-го раза, это вам не помешает стать хорошим специалистом и получать очень достойную оплату при условии, что вы искренне будете стараться и вкладывать силы.
Данная статья является ознакомительно-информационной и не содержит никакой рекламы и особенно попыток извлечь материальную прибыль. Задача статьи — пролить свет на созданную возможность тестирования кода конфигураций, кратко ознакомить с успешно использующимся инструментом, услышать отзывы и сделать выводы. Возможно это ненужный велосипед и кто-то поделится правильным подходом в тестировании для данной платформы.
Разработка на платформе 1С: Предприятие — не самый сложный процесс. Самое сложное — принять концепцию написания кода на родном языке :)
Но не смотря на то, что в 8й версии платформы был совершён положительный качественный скачок в устройстве платформы и встроенного языка (например, появление концепции MVC для объектов метаданных конфигурации) многие народные кодеры продолжают выдавать мегабайты «мусора», который каким-то чудом работает в рамках того, что смог/успел проверить такой кодер.
У меня нет богатого «опыта» работы в различных франчайзи, у меня за все годы перед глазами только опыт единственного отдела, который выпускает коробочные продукты, продукты продаются, клиенты находят баги, терроризируют техподдержку, техподдержка бегает к разработчикам, разработчики радостно фиксят найденные баги, попутно внося разнообразные новые, короче говоря — работа есть всем и хватит её надолго.
Сколько времени уходит на фикс багов, а сколько на создание нового функционала — пропорция известна лишь приблизительно. Баги, найденные клиентами, воспринимаются как неизбежное зло, и для уменьшения времени на их исправление прибегают к усиленному ручному тестированию релизов и наймом/воспитанием грамотных разработчиков. Ручное тестирование отделом QA это достаточно трудоёмко и нет возможности точно определить золотую середину соотношения глубины тестирования к потраченному на тестирование времени. Про наличие огромного количества талантливых разработчиков вообще говорить не приходится.
Во «взрослых» языках программирования подобные проблемы стараются решать повсеместным тестированием. Начиная с уровня разработчика — unit-тестами, далее функциональными и регрессионными, и заканчивая интеграционными тестами. В особо интересных случаях тесты запускаются на каждыйчихкоммит в определённую ветку репозитория.
К сожалению фирма «1С» не балует разработчиков на своей платформе какими-либо достойными инструментами, хорошо, хоть репозиторий/хранилище сделали.
Несколько лет назад, приступая к новому проекту, лично мне надоели регулярные удары одними и теми же граблями по лбу. С руководством было оговорено время на разработку своей наколенной системы тестирования в том виде как я её видел и работа закипела.
Применение.
Лично мне на одном проекте данная система сэкономила не менее года времени проведённого в отладчике. Ещё один проект уже несколько лет использует систему для функциональных тестов огромного количества вариантов скидок/оплат и т.п. Ещё три проекта начинают её использовать. Вообще, конечно, внедрять такую систему «снизу» это как долбиться лбом в стену небоскрёба. Но если долбить каждый день, то результат рано или поздно появится. Главное — успешный пример и поддержка «сверху».
Описание.
- модульные тесты;
- функциональные тесты;
- регрессионные тесты*;
- интеграционные тесты;
Устройство.
Так как система создавалась ещё во времена платформы 8.1, то поддержки управляемых форм в ней нет, ибо мне уже не надо, а текущим проектам ещё не надо. Но основной функционал системы это тестирование кода и весь недостаток в том, что обработка тестирования написана не на управляемых формах.
Основным интерфейсом для создания тестов и их выполнения является внешняя обработка. Обработка запускается непосредственно в информационной базе, конфигурацию которой и хотят протестировать.
Сами тесты хранятся в отдельной информационной базе, куда подключается и авторизуется внешняя обработка:
Рабочая форма выглядит так:
1. Текущий проект
2. Имя пользователя системы тестирования
3. Тесты можно разбивать на группы, это удобно при настройке автоматического тестирования и позволяет структурировать сами тесты.
4. Выбран тест с кодом 400, указано имя теста, тестируемый метод находится в форме встроенной обработки «Транслятор», последней колонкой выведено имя тестируемого метода.
5. Сюда вставляется полная сигнатура тестируемого метода, которая автоматически парсится (нажатием на кнопку 8) на входящие параметры — 6 и результаты — 7.
6. Тут задаются входящие параметры примитивных и ссылочных типов, также можно указать путь к файлу, если установлен флажок Файл.
7. У выбранного теста всего одно возвращаемое значение функции, для него предопределено имя _ВозвратПерем.
8. Распарсить сигнатуру метода на входящие параметры и возвращаемые результаты.Для понимания дальнейшего повествования необходимо отвлечься на поле 5, где есть ещё немного вкладок.
Перед выполнением:
Поле предназначено для выполнения произвольного кода перед вызовом тестируемого метода. Можно как угодно видоизменить входящие параметры, подготовить коллекции или объекты информационной базы.
Аналогичное поле После выполнения позволяет обработать полученные результаты вызова тестируемого метода до начала сравнения их с сохранёнными ранее эталонными значениями.
Выполняемый код:
Тут показан весь код, который будет выполнен при запуске теста.
Вкладка Описание — здесь можно подробно описать что это за тест.
Ну и наконец вкладка Версии:
Здесь перечислены все версии конфигураций текущего проекта, заведённые в базе тестов. Создатель теста может указать на каких версиях данный тест должен проходить, а для каких тест не применим. Эта информация используется для автоматического тестирования.9. Выполнить тест. Выполняется код, видимый на вкладке Выполняемый код. Поле 7 заполняется результатами работы выполняемого кода.
10. Кнопка сохранения полученных после нажатия кнопки 9 результатов в качестве эталона.
11. Запуск теста и сравнение результатов с ранее сохранённым эталоном.
12. Просмотр сохранённых эталонных значений.Пример.
Итого.
В принципе, описанного функционала хватает для решения большинства задач для тестирования определённой конфигурации в полу-автоматическом режиме. Но помимо этого на серверной стороне есть возможность настройки автоматического тестирования набора конфигураций (в рамках одного проекта) по расписанию (регламентные задания). Система умеет забирать из хранилища текущую версию конфигурации, накатывать её на тестируемую базу и запускать указанные группы тестов. По выполнению перечисленным наблюдателям высылается письмо с детальными результатами теста.
Система не создавалась для продажи, система много где не доведена до ума, но даже то, что уже есть сильно помогает избегать как минимум глупых ошибок из серии — поправил в одном месте, отвалилось в трёх других.
Проектирование в 1С очень часто пропускается. Если оно и происходит, то только в достаточно небольшом объеме, и то только у серьезных команд. Чаще всего, оно происходит в уме (где-то, как-то).
Очень многие, особенно небольшие группы разработки, новички – сразу приступают к следующему этапу – этапу кодирования.
Дальше идет следующий этап – это этап тестирования. То есть, тестирование – это мы проверяем требования заказчика (требования, которые мы должны выполнить).
Дальше идет поиск ошибок, отладка.
Как правило, я сам проходил эти этапы. Тестированием занимаются очень немногие. Еще меньше число тех, кто вообще представляет, что же такое «тестирование». Для большинства разработчиков цикл разработки представляет собой совокупность только двух этапов - процесса кодирования и отладки. Причем отладка занимает очень много времени.
Есть такой закон, который я, например, прочитал у Макконелла – Главный закон качества ПО:
Повышение качества программного обеспечения снижает затраты на разработку и сопровождение системы.
Что это означает? Это означает, что чем лучше у нас написана система, чем лучше она спроектирована, чем лучше обоснованы связи, тем легче мы сможем ее дорабатывать, исправлять и т.д.
Пример правильности этого закона: Отладка и исправление неверного кода занимает около 50 % времени. То есть – 50 % времени всей разработки мы тратим на поиск ошибок.
Это касается как крупных проектов, так и мелких. Методик, чтобы снизить свои затраты и не допустить ошибок, очень много – главный принцип, которого нужно придерживаться в разработке, используя разные методики, - это просто их использовать (использовать комбинации методик, использовать одну методику, а не просто писать свой код не думая над ним, не исправляя его).
Методики разработки
- Защитное программирование
- Обзоры кода
- Проектирование
- Тестирование
- Экстремальное программирование
Я лично пользуюсь всеми перечисленными методиками.
- Защитное программирование – это методика, когда мы ведем разработку и само написание кода помогает нам не допускать ошибок. То есть, в этом случае мы что делаем? Мы проверяем данные.
Элементарный пример – у нас есть какая-то функция, которая принимает входные параметры определенного типа, определенных значений. Мы можем в функции сделать предположение (так называемый инвариант или утверждение) и проверить эти предположения. То есть, мы не пишем, как 1С привыкла: параметр и в комментариях пишем, что тип такой-то, значения такие-то, варианты и так далее… Мы можем прямо написать утверждение – вот этот параметр должен быть такого типа. Если это утверждение не выполняется, программа просто выдает исключение и останавливает свою работу, потому что это является ошибкой разработки. - Следующая методика – это «Обзоры кода». То есть, мы можем читать чужой код. То есть, один кто-то написал код, мы можем попросить соседнего разработчика, руководителя посмотреть и проанализировать ошибки, которые были допущены в этом коде. Это методика очень эффективна.
Я люблю читать чужой код, люблю свой код пересматривать. Таким образом находится достаточное число ошибок. - Следующая методика - проектирование. Чем лучше мы построим программу, чем лучше продумаем связи, чем лучше продумаем архитектуру, интерфейсы взаимосвязей, тем лучше наша система будет работать, тем удобнее нам ее будет исправлять.
- Методика, которая известна лучше всех предыдущих – это тестирование. Фактически, каждый разработчик выполняет эту функцию, применяет методику тестирования. Но очень многие проверяют в уме. То есть этот код должен получить такие-то результаты… Мы проверяем какой-то один вариант, проверяем два варианта, проверяем три варианта… А на самом деле в сложных системах вариантов очень много и их нужно проверять достаточно большое количество. И когда вариантов очень много для проверки, фактически получается, что они не проверяются все. У меня есть пример, есть система, идет цикл разработки, система отдается на проверку пользователю. У пользователя стоит тестирование – проверить 40 разных пунктов – релиз выпускается, например, раз в два месяца (или в месяц). Пользователь должен перед выпуском каждого релиза проверить 40 пунктов – это тяжело и он никогда практически не будет этого делать. Он будет помнить, что он это проверял в прошлый раз – и сегодня он этого делать не будет, потому что тогда на это придется потратить весь день. Как правило, отдельный тестировщик на проекте есть очень редко, обычно человек должен выполнить функцию тестировщика и выполнить свою основную функцию. В итоге функции тестировщика, как правило, пропускаются и тестирование не выполняется в полном объеме.
Дальше я еще потом на тестировании остановлюсь… - Следующая – очень эффективная методика – это методикаэкстремального программирования. Это методика свежая, буквально начала-середины 90-х годов. На западе очень сильно распространена, очень много информации по ней. У нас применяется не так много. Иногда эту методику называют «гибкие методики разработки», иногда – экстремальное программирование.
Экстремальное программирование
У него есть несколько принципов:
- Единая команда
- Совместное владение кодом системы
- Обзоры кода и парное программирование
- Разработка через тестирование (TDD)
- Функциональное тестирование
- Рефакторинг
- Простота
- Короткие циклы
- Непрерывная интеграция
- Улучшение дизайна, постоянное планирование
Расскажем о них поподробнее:
Вернемся к тестированию. Будем говорить только о тестировании.
Виды тестирования
- Модульное тестирование (юнит-тестирование)
- Функциональное тестирование
- Тестирование методом черного ящика и методом белого ящика
- Нагрузочное тестирование
- Тестирование разработчиком и специальными тестерами
- Самый проблемный вид тестирования – тестирование пользовательского интерфейса
Теперь об этих видах тестирования подробнее:
Сейчас немного коснусь существующих систем тестирования
Существующие системы тестирования
- Первое, с чем мы знакомы, когда говорим «Тестирование 1С» - это, конечно конфигурация «Сценарное тестирование» (входит в пакет 1С:КИП).
Мое мнение вкратце – не пригодно оно к реальному использованию.
Оно сделано больше для функционального тестирования и очень сильно зависит от изменений в программе.
Если в форме добавился какой-то реквизит, Сценарное тестирование может вылетать, если в форме удалился какой-то реквизит – Сценарное тестирование может вылетать.
Нет возможности исключить ошибки, прогнать все тесты за исключением ошибок. Если есть ошибка, тест остановится весь.
Кроме этого, неприятным моментом является то, что конфигурация «Сценарное тестирование» не продается отдельно от пакета конфигураций «Корпоративный инструментальный пакет». А цена этого пакета очень велика.
Хотя – лично мое мнение, что тестирование в 1С должно быть бесплатным. - Есть очень хорошая подсистема (автор - Сергей Старых) – называется Подсистема «Инструменты разработчика».
В этой подсистеме недавно появилось тестирование. Были введены начальные понятия тестирования – тестируются все формы и часть метаданных, то есть, тестируется открытие всех форм, которые есть в конфигурации, для документа тестируется проведение документа, запись документа, удаление документа и т.д.
Самое интересное – тестируются события и интерактивные изменения форм.
Например, тестируется ввод пользователем. Как будто пользователь вручную вносит данные. Это очень важно.
Не в одной из систем, о которых я расскажу далее, нет тестирования этих интерактивных изменений. Например, там можно протестировать поиск по форме (по списку). То есть, как будто пользователь набирает символы, и подсистема это отрабатывает. Очень полезный инструмент. - Еще есть некоторые публикации на сайте «Инфостарт».
Одна из самых первых разработок, поэтому я о ней упомянул.
Она неудобная и непродуманная на самом деле.
Это опять же, зачаточный такой модуль, просто пример того, как это можно организовать в 1С.
достаточно интересная, но почему-то автор ее удалил- Функциональное тестирование на обычных формах
- Можно подключать различные алгоритмы
- Можно тестировать запросы и т.д.
- Недостатки: Нет управляемых форм и нет дальнейшего развития
- Дальше я укажу те системы, которые я сам реально использовал, с которых мое знакомство с системами тестирования для 1С началось:
- Я ее в 8.2 до сих пор успешно использую.
- Недостатки: немного устарела, нет управляемых форм
- Шаги в нужном направлении
- Только Управляемое приложение
В этом тестировании используется два клиентских приложения. Одно приложение является тестером, другое приложение является клиентом.
То есть, толстый клиент или тонкий клиент менеджер тестирования взаимодействует (общается) с клиентом тестирования (толстым, тонким или Web-клиентом).
То есть – пишется тест на языке 1С. И заданные действия выполняются в клиенте тестирования.Пример вызова приложения-теста
На данном скриншоте красная стрелка как раз показывает – есть вариант вызова записи действий пользователя, то есть в 8.3 можно использовать следующую схему работы:
- Пользователь, который знает систему или разработчик может выполнить самостоятельно необходимые действия и записать эту последовательность действий в специальный файл, чтобы в дальнейшем производить этот файл уже в системе тестирования.
- Один минус – пока 1С сделала только надстройку над платформой для записи этого XML файла.
Среды тестирования пока что нет. То есть те результаты, которые мы можем получить, никоим образом системой 1с не обрабатываются, не анализируются. - Значит, мы должны написать код для системы тестирования сами
Возможно, 1С сделает на следующем этапе свою систему тестирования, возможно, она переработает сценарное тестирование. Пока неизвестно. 1С молчит по этому поводу.
Рекомендуемая система для тестирования в 1С
(я фактически ее product-owner и один из авторов) -
Защитное программирование
Защитное программирование – очень важный этап применения методики тестирования
На своем опыте - а я общался с разными программистами, специалистами - очень мало народу почему-то использует утверждения. А этот метод очень удобен в разработке.
Использование инвариантов/утверждений
Обработчик ошибок в программе должен проверять некорректные входные данные из внешних источников, предусмотренные программистом, а утверждения – только ошибки в самой программе. Никаких проверок дополнительных не должно быть, только ошибки в программе - это проверка только для разработчика.
Потому что иногда начинают использовать утверждения для передачи данных во внешнюю систему – это неправильно. Это уже не утверждение.
Я использую утверждения для разных случаев – у меня есть функция, например, в которой я знаю, что должен быть передан параметр, например СправочникСсылка.Номенклатура. Я так и пишу в коде:
Тесты.ПроверитьТип(Параметр, СправочникСсылка.Номенклатура)Теперь – самое интересное: Тестирование разработчиком и разработка через тестирование.
Тестирование разработчиком
Это та методика, которая должна использоваться любым разработчиком, если он хочет быть квалифицированным и получить максимальную скорость.
- Затруднение у разработчиков (Цель тестирования отлична от других этапов разработки, Тестирование требует поиска ошибок в своем коде)
Тестирование разработчиком вызывает затруднения, потому что цель тестирования отлична от цели разработки. То есть от разработки мы хотим получить правильный код, который правильно работает, получает верные результаты, содержит минимум ошибок и т.д. А в тестировании мы должны найти ошибки, наоборот. Иногда бывает это трудно. Разработчику бывает лень искать ошибки. Разработчик не понимает, что ошибки нужно искать и т.д. - Тестирование никогда не доказывает отсутствия ошибок.
Но наличие тестов – это лучше, чем отсутствие тестов.
Что еще можно сказать об основных требованиях к тестированию:
Два главных требования тестирования:
- Тестирование должно быть автоматизированным. А еще лучше – автоматическим 100%. Если тестирование не будет автоматизированным, его никто никогда выполнять не будет.
- Тестирование должно быть быстрым.
Если тесты будут выполняться медленно, их опять же никто не будет делать. Это все из опыта.
Разработка через тестирование (TDD)
Быстро расскажу о результатах, которых можно достичь, используя методику разработки через тестирование:
Результаты использования TDD
Здесь указаны основные принципы, как надо выполнять разработку через тестирование (TDD).
Читайте также:
- Окно диалога:: Предупреждение безопасности
- Диалог Выбор файла
- Нажатие кнопки Загрузить из файла