|
![]() |
#1 |
Участник
|
Много, конечно, не по теме, но все же всем спасибо за ответы.
Для тех, кому интересен этот вопрос, советую подчитать литератуки по тестированию приложений. На мой взгляд (я не претендую на эксперта в данной области), ближе всех к истине fed. Из кода Аксапту никто не использует. Ее используют либо пользователи (через интерфейс пользователя), либо сторонние системы/приложения (через BC.NET, AIF, COM, т.д.) А соответственно, нет разницы, на каком языке и платформе написан код тестов (хочу заметить, что речь идет о более сложных функциональных тестах, а не о юнит-тестах). И уж тем более не нужно смешивать в одну кучу тестирование разных аспектов системы, как то производительность выборки данных, редактор Х++ кода, функций ядра и функциональности логистических модулей. А про то, что тестируют и разрабатывают приложение люди без знания АХ - я считаю, что это проблема. Но, к сожалению, практически всех кандидатов с опытом АХ и Х++, о которых я знаю, не взяли на работу за недостаточные technical skills. То бишь, простите, программисты АХ недостаточно квалифицированы для того, чтобы писать качественный код. И, напоследок, небольше уточнение моего первого поста: Выбор был между Linq to BC.NET to AOS и Linq to SQL. То есть речь НЕ идет о Х++ юнит-тестах. |
|
![]() |
#2 |
Moderator
|
А раскажи, в общих чертах, как вы более сложную функциональность тестируете ? Как юнит-тест для Аксапты написать - я примерно понимаю. А вот как написать и запустить тест, который не custVendVoucher тестирует, а иммитирует, ну скажем сессию сводного планирования, я пока не особенно понимаю...
|
|
![]() |
#3 |
Участник
|
Цитата:
Сообщение от fed
![]() Мы с тобой о разных вещах говорим. Как тестирование организовыватся:
1. Запускается некий скрипт на C#, который пишет в БД тестовые данные. 2. Запускается другой скрипт на C#, который вызывает один или несколько классов X++ (через .net bc), которые эти данные обрабатывает. 3. Запускается третий скрипт на C#, который сравнивает получевшиеся по результатам работы классов на X++ в аксаптовской базе данные с эталонными. 4. Запускается четвертый скрипт, который подчишает результируюшие и тестовые данные. (Шаг не обязательный). Дык вот для шагов 3,4 и (вероятно) 1 - .net bc и непрямой SQL не нужен совсем, если Ваньку начальство заставляет .net bc использовать для чтения базы на шагах 3 и 4 - это верх изврата. Цитата:
т.е. я еще могу представить как таким образом можно тестировать вставку цен из прайс-листов. То же сводное планирование или закрытие склада. но я с трудом представляю как тестируется авторезервирование указанным способом при вставке строки в заказ. Ведь там куча мест, которые несколько раз апдейтят запись и сильно зависят от orig(). также с трудом представляю как можно тестировать не из самой аксапты функцию создания строк, которая сильно завязана на внутриаксаптовские временные таблицы (может быть, конечно, в ax6 временные таблицы находятся на уровне SQL). И вообще все алгоритмы, в которых маркируются строки (через map, временные таблицы или еще как). axaptapedia: Tutorial Form MultiSelectCheckBox Цитата:
Сообщение от fed
![]() А раскажи, в общих чертах, как вы более сложную функциональность тестируете ? Как юнит-тест для Аксапты написать - я примерно понимаю. А вот как написать и запустить тест, который не custVendVoucher тестирует, а иммитирует, ну скажем сессию сводного планирования, я пока не особенно понимаю...
просто число первоанчальных и финальных данных велико. |
|
![]() |
#4 |
Участник
|
Цитата:
При тестировании какого-либо нетривиального продукта, невозможно протестировать все сценарии. Думаю, этот момент понятен. Но он важен и не стоит о нем забывать. Над тестированием логистики в АХ работает около 30 человек. Соответственно, есть предел тому, что эти 30 человек могут успеть за отведенное время, учитывая чрезвычайную зау-сложность нашего процесса. По причинам, описанным выше, большинство тестеров в MDCC занимается так называемым "black-box testing" (в отличии от "white-box testing"). То бишь, никто в код не заглядывает, и им не важно, сколько там раз использовался orig(), и являлась ли таблица временной или постоянной. Соответственно, выполняя комплексное тестирование они по сути прогоняют различные сценарии, как это делал бы обычный пользователь Аксапты в посведневной работе. Резервирование - ну вот и создают строки, проверяя проводки и т.д. с различными настройками системы. Обратите внимание, что в большинстве случаев о правильности работы функциональности принимает решение именно тестер в ходе выполнения сценария. Поэтому очень важно, чтобы они понимали, что именно происходит в реальной жизни, и см. пост выше ![]() |
|
|
За это сообщение автора поблагодарили: sukhanchik (4). |
![]() |
#5 |
Участник
|
Цитата:
Сообщение от kashperuk
![]() А про то, что тестируют и разрабатывают приложение люди без знания АХ - я считаю, что это проблема. Но, к сожалению, практически всех кандидатов с опытом АХ и Х++, о которых я знаю, не взяли на работу за недостаточные technical skills. То бишь, простите, программисты АХ недостаточно квалифицированы для того, чтобы писать качественный код.
Если не секрет, на чем люди срезались ? Очень интересно, чего же, как правило, не хватает среднему X++ программисту. Кстати, в некоторых местах встречал код (как правило это относилось к взаимодействию с БД), который явно был написан не X++ программистом, т.е. никакой бест практис не соблюдался. Жутковато выглядело. Походу разработчики ядра взяли и после си наваяли что-то на X++ Последний раз редактировалось Logger; 20.09.2010 в 18:22. |
|
|
За это сообщение автора поблагодарили: Lemming (1). |
![]() |
#6 |
Участник
|
![]() Цитата:
![]() |
|
![]() |
#7 |
MCT
|
Цитата:
![]() Я знаю места, где надо отвечать, что такое виртульаный диструктор или чем отличается делегат от события. ![]() А потом смотришь на допустим взятие заложников, где эти чудо богатыри палят друг в дружку и никакой согласованности действий. Так и здесь. Но это глубочайшее имхо.
__________________
Axapta book for developer Последний раз редактировалось MikeR; 21.09.2010 в 10:50. |
|
![]() |
#8 |
Модератор
|
Цитата:
![]()
__________________
-ТСЯ или -ТЬСЯ ? |
|
![]() |
#9 |
Участник
|
Цитата:
![]() Практически весь этот код написан вендорами, и хотя мы тратим кучу времени на то, чтобы следить за тем, что они делают, они все равно делают то, что ты написал вышел. ![]() |
|
|
|