FuncTest. Автоматическое тестирование для 7.7.

0. fez (fez) 45 25.06.08 15:29 Сейчас в теме
Наши ожидания от функционала любой программы (в том числе и конфигурации 1С) можно записывать в виде, понятном для компьютера и затем использовать эти записи для автоматической проверки сохранения программой ожидаемого функционала.
Полезно для контроля над ошибками при внесении в программу изменений.
Так же может применяться, как способ написания ТЗ.

Перейти к публикации

Комментарии
1. Valery (Pride) 25.06.08 15:29 Сейчас в теме
Полностью прочитал домашнюю страничку. Впечатлило, буду внедрять к себе. Только походу прочтения появился вопрос, а если кинуть проверку заполнения табличной части документа с разнообразными перещетами, протестирует ли она это?
В любом случае. Выражаю свою глубокую благодарность за такую серьезную работу. Спасибо.
2. fez (fez) 45 25.06.08 16:51 Сейчас в теме
(1) Спасибо за отзыв.

Отвечая на вопрос: TestBrowser'ом такой тест не создать, а вот юниттестами можно протестировать практически все, что угодно.
3. Alister (Alister) 9 25.06.08 17:30 Сейчас в теме
Спасибо за полезную программу :)
А очень геморно сделать, чтобы эталоны тестов хранились в базе, а классы и описания тестов отдельно в выбранном месте едином для всех баз. Смысл в том , что много почти однотипных баз и не хочется между ними копировать тесты :)
4. fez (fez) 45 25.06.08 17:49 Сейчас в теме
(3) Рад, что понравилось.

По вопросу. Мы сейчас говорим о функциональных тестах (TestBrowser) или о юниттестах?
Юниттесты - это по сути своей маленькие программки. Их можно хранить где угодно и подключать через //#include в defcls.prm
С функциональными тестами сложнее, поскольку там активно используется база данных. А все ссылки на объекты БД хранятся в виде ЗначениеВСтрокуВнутр(), так что "расшарить" ожидания - это большой гемор. Если как-то решить проблему универсального хранения ссылок на объекты БД, то гемор рассосется. Но как именно это сделать я пока не знаю.
5. Alister (Alister) 9 25.06.08 20:07 Сейчас в теме
Да , это я про функциональные тесты :( В принципе устроило бы сравнение таблиц (например ОСВ по предприятию и т.п.) после обновления с эталонными таблицами, созданными до него.
6. fez (fez) 45 25.06.08 20:17 Сейчас в теме
(5) Если тестировать отчеты в режиме "Отчет (печ. форма)" или "Отчет (произвольный)", то в ожиданиях будут гарантированно только строки.
Так что останется только разобраться со значениями рекивзитов (например фильтр по фирме в том же ОСВ) ну и с самой БД.
7. fez (fez) 45 25.06.08 20:19 Сейчас в теме
А. "После обновления". Тогда вообще без проблем.
Единственное, ты наверное очень быстро захочешь, чтобы тесты "до обновления" формировались не менее автоматически. До такой степени автоматизации я пока увы не дорос.
8. Alister (Alister) 9 25.06.08 20:24 Сейчас в теме
Я пока что собираюсь просто сравнивать построчно таблицы в этом самом режиме "Отчет (печ. форма)" на предмет изменения сумм по счетам. Я так понял по (6) можно надеяться ?
9. Alister (Alister) 9 25.06.08 20:25 Сейчас в теме
Аппетит, он как известно приходит во время еды :)
10. fez (fez) 45 25.06.08 20:28 Сейчас в теме
(8) Ну пожалуй да. Там единственная подстава в том, что ожидания хранятся вместе с условиями, а в условиях наверняка будут ссылки на объекты БД. Условия хранятся в первой строчке - ее в твоем случае надо проигнорировать. Если остальные строки совпадают, то должно быть все хорошо.

Ты пощупай и спрашивай уже более конкретно, помогу, чем смогу.
11. Alister (Alister) 9 25.06.08 20:30 Сейчас в теме
12. fez (fez) 45 23.10.08 15:37 Сейчас в теме
0.23.0

[+] Метод AssertFail теперь умеет работать и с функциями. Bug 4193
[+] Добавил в класс ТестовыйСлучай методы ПроверитьБольше() и ПроверитьБольшеИлиРавно()
[+] Добавил сортировку имен тестовых классов в окошке обработки запуска всех юниттестов.
[+] Обработка запуска юниттестов теперь запоминает расставленные галочки на тестовых классах между сеансами.
[+] При открытии обработки запуска юниттестов теперь автоматически выключается оптимизация. При закрытии обработки - восстанавливается предыдущее значение.
13. Artem (artamir) 8 09.12.16 12:08 Сейчас в теме
14. fez (fez) 45 09.12.16 21:08 Сейчас в теме
(13) Спасибо за сообщение, исправил.
Оставьте свое сообщение