AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 19.09.2010, 17:53   #1  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Много, конечно, не по теме, но все же всем спасибо за ответы.
Для тех, кому интересен этот вопрос, советую подчитать литератуки по тестированию приложений.

На мой взгляд (я не претендую на эксперта в данной области), ближе всех к истине fed.
Из кода Аксапту никто не использует. Ее используют либо пользователи (через интерфейс пользователя), либо сторонние системы/приложения (через BC.NET, AIF, COM, т.д.)
А соответственно, нет разницы, на каком языке и платформе написан код тестов (хочу заметить, что речь идет о более сложных функциональных тестах, а не о юнит-тестах). И уж тем более не нужно смешивать в одну кучу тестирование разных аспектов системы, как то производительность выборки данных, редактор Х++ кода, функций ядра и функциональности логистических модулей.

А про то, что тестируют и разрабатывают приложение люди без знания АХ - я считаю, что это проблема. Но, к сожалению, практически всех кандидатов с опытом АХ и Х++, о которых я знаю, не взяли на работу за недостаточные technical skills. То бишь, простите, программисты АХ недостаточно квалифицированы для того, чтобы писать качественный код.

И, напоследок, небольше уточнение моего первого поста:
Выбор был между Linq to BC.NET to AOS и Linq to SQL. То есть речь НЕ идет о Х++ юнит-тестах.
Старый 19.09.2010, 20:33   #2  
fed is offline
fed
Moderator
Аватар для fed
Ex AND Project
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
2,913 / 5736 (197) ++++++++++
Регистрация: 13.03.2002
Адрес: Hüfingen,DE
А раскажи, в общих чертах, как вы более сложную функциональность тестируете ? Как юнит-тест для Аксапты написать - я примерно понимаю. А вот как написать и запустить тест, который не custVendVoucher тестирует, а иммитирует, ну скажем сессию сводного планирования, я пока не особенно понимаю...
Старый 19.09.2010, 22:09   #3  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от fed Посмотреть сообщение
Мы с тобой о разных вещах говорим. Как тестирование организовыватся:
1. Запускается некий скрипт на C#, который пишет в БД тестовые данные.
2. Запускается другой скрипт на C#, который вызывает один или несколько классов X++ (через .net bc), которые эти данные обрабатывает.
3. Запускается третий скрипт на C#, который сравнивает получевшиеся по результатам работы классов на X++ в аксаптовской базе данные с эталонными.
4. Запускается четвертый скрипт, который подчишает результируюшие и тестовые данные. (Шаг не обязательный).

Дык вот для шагов 3,4 и (вероятно) 1 - .net bc и непрямой SQL не нужен совсем, если Ваньку начальство заставляет .net bc использовать для чтения базы на шагах 3 и 4 - это верх изврата.
Цитата:
Сообщение от kashperuk Посмотреть сообщение
На мой взгляд (я не претендую на эксперта в данной области), ближе всех к истине fed.
вот интересно, как тестируется алгоритм резервирования при вставке той же строки заказа. аксапта по-разному вставляет строки в зависимости от параметров.

т.е. я еще могу представить как таким образом можно тестировать вставку цен из прайс-листов. То же сводное планирование или закрытие склада.

но я с трудом представляю как тестируется авторезервирование указанным способом при вставке строки в заказ. Ведь там куча мест, которые несколько раз апдейтят запись и сильно зависят от orig().

также с трудом представляю как можно тестировать не из самой аксапты функцию создания строк, которая сильно завязана на внутриаксаптовские временные таблицы (может быть, конечно, в ax6 временные таблицы находятся на уровне SQL). И вообще все алгоритмы, в которых маркируются строки (через map, временные таблицы или еще как).
axaptapedia: Tutorial Form MultiSelectCheckBox

Цитата:
Сообщение от fed Посмотреть сообщение
А раскажи, в общих чертах, как вы более сложную функциональность тестируете ? Как юнит-тест для Аксапты написать - я примерно понимаю. А вот как написать и запустить тест, который не custVendVoucher тестирует, а иммитирует, ну скажем сессию сводного планирования, я пока не особенно понимаю...
а вот это - более-менее понятно и принципиальных сложностей не вызывает.
просто число первоанчальных и финальных данных велико.
__________________
полезное на axForum, github, vk, coub.
Старый 21.09.2010, 12:00   #4  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Цитата:
Сообщение от mazzy Посмотреть сообщение
вот интересно, как тестируется алгоритм резервирования при вставке той же строки заказа. аксапта по-разному вставляет строки в зависимости от параметров.
Итак, два отступления:

При тестировании какого-либо нетривиального продукта, невозможно протестировать все сценарии. Думаю, этот момент понятен. Но он важен и не стоит о нем забывать. Над тестированием логистики в АХ работает около 30 человек. Соответственно, есть предел тому, что эти 30 человек могут успеть за отведенное время, учитывая чрезвычайную зау-сложность нашего процесса.

По причинам, описанным выше, большинство тестеров в MDCC занимается так называемым "black-box testing" (в отличии от "white-box testing"). То бишь, никто в код не заглядывает, и им не важно, сколько там раз использовался orig(), и являлась ли таблица временной или постоянной.

Соответственно, выполняя комплексное тестирование они по сути прогоняют различные сценарии, как это делал бы обычный пользователь Аксапты в посведневной работе. Резервирование - ну вот и создают строки, проверяя проводки и т.д. с различными настройками системы.
Обратите внимание, что в большинстве случаев о правильности работы функциональности принимает решение именно тестер в ходе выполнения сценария. Поэтому очень важно, чтобы они понимали, что именно происходит в реальной жизни, и см. пост выше
За это сообщение автора поблагодарили: sukhanchik (4).
Старый 20.09.2010, 18:18   #5  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,971 / 3267 (116) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Цитата:
Сообщение от kashperuk Посмотреть сообщение
А про то, что тестируют и разрабатывают приложение люди без знания АХ - я считаю, что это проблема. Но, к сожалению, практически всех кандидатов с опытом АХ и Х++, о которых я знаю, не взяли на работу за недостаточные technical skills. То бишь, простите, программисты АХ недостаточно квалифицированы для того, чтобы писать качественный код.
Неужели все настолько плохо ?
Если не секрет, на чем люди срезались ? Очень интересно, чего же, как правило, не хватает среднему X++ программисту.

Кстати, в некоторых местах встречал код (как правило это относилось к взаимодействию с БД), который явно был написан не X++ программистом, т.е. никакой бест практис не соблюдался. Жутковато выглядело. Походу разработчики ядра взяли и после си наваяли что-то на X++

Последний раз редактировалось Logger; 20.09.2010 в 18:22.
За это сообщение автора поблагодарили: Lemming (1).
Старый 20.09.2010, 18:59   #6  
Lemming is offline
Lemming
Участник
Аватар для Lemming
 
1,144 / 343 (14) ++++++
Регистрация: 20.04.2004
Адрес: Москва, Чайнатаун в Люблино
Записей в блоге: 10
?
Цитата:
Сообщение от Logger Посмотреть сообщение
Если не секрет, на чем люди срезались ? Очень интересно, чего же, как правило, не хватает среднему X++ программисту.
Присоединяюсь к вопросу. Понятно что NDA и все такое, но если как-то можно своими словами сформулировать более четкие требования. Что-то вроде: уметь реализовать на бумаге красно-черное дерево на чистом С или там сортировку пузырьком Возможно что-то более фундаментальное: расход памяти при использовании той или иной структуры, понимание каких-либо алгоритмов, параллельность, может что-то еще? В общем, гадать не хочется, так что если кто из приближенных к теме поделится, было бы здорово!
Старый 21.09.2010, 10:00   #7  
MikeR is offline
MikeR
MCT
Аватар для MikeR
MCBMSS
Лучший по профессии 2015
Лучший по профессии 2014
 
1,628 / 627 (24) +++++++
Регистрация: 28.11.2005
Адрес: просто землянин
Цитата:
Сообщение от Logger Посмотреть сообщение
Неужели все настолько плохо ?
Если не секрет, на чем люди срезались ? Очень интересно, чего же, как правило, не хватает среднему X++ программисту.
Эх, если бы ты знал что спрашивают на собеседовании, то погрузился бы в дипрессию.
Я знаю места, где надо отвечать, что такое виртульаный диструктор или чем отличается делегат от события. + еще надо иметь пятилетний стаж работы у партнера не понятно зачем. Получается как в армии, где надо и кросс пробежать и подтянуться после этого больше двадцати раз. Думается ну все такие крутые парни в армии служат...
А потом смотришь на допустим взятие заложников, где эти чудо богатыри палят друг в дружку и никакой согласованности действий.
Так и здесь. Но это глубочайшее имхо.
__________________
Axapta book for developer

Последний раз редактировалось MikeR; 21.09.2010 в 10:50.
Старый 20.09.2010, 19:28   #8  
Vadik is offline
Vadik
Модератор
Аватар для Vadik
Лучший по профессии 2017
Лучший по профессии 2015
 
3,631 / 1850 (69) ++++++++
Регистрация: 18.11.2002
Адрес: гражданин Москвы
Цитата:
Сообщение от kashperuk Посмотреть сообщение
То бишь, простите, программисты АХ недостаточно квалифицированы для того, чтобы писать качественный код
А если посмотреть на код, который в SSRS отчетах используется, это как - качественный код? По мне, так нечитабельное кровавое месиво Хотя готов допустить, что глаз немного "замылился" - сказывается привычка к аксаптовскому оформлению
__________________
-ТСЯ или -ТЬСЯ ?
Старый 21.09.2010, 11:42   #9  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Цитата:
Сообщение от Vadik Посмотреть сообщение
А если посмотреть на код, который в SSRS отчетах используется, это как - качественный код? По мне, так нечитабельное кровавое месиво Хотя готов допустить, что глаз немного "замылился" - сказывается привычка к аксаптовскому оформлению
Нет, с глазами у тебя все ОК.
Практически весь этот код написан вендорами, и хотя мы тратим кучу времени на то, чтобы следить за тем, что они делают, они все равно делают то, что ты написал вышел.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
SQL Server 2005, 2008: Создание недостающих индексов Poleax DAX: Прочие вопросы 6 05.06.2010 01:28
axperf: Important SQL Server Change! - Parameter Sniffing and Query Plan Caching Blog bot DAX Blogs 3 24.05.2010 02:53
Dynamics AX Sustained Engineering: SQL Server 2005 sp3 & SQL Server 2008 with Dynamics AX Blog bot DAX Blogs 0 12.02.2009 06:08
Arijit Basu: Microsoft SQL Server Reporting Services Integration Blog bot DAX Blogs 0 20.07.2007 11:50
Введение в Аксапту Роман Кошелев DAX: Прочие вопросы 0 18.12.2001 14:00

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 11:42.