Ошибка при визуальном тестировании.

 

Два раза попадал на ошибку работы визуального тестера.
После второго раза запомнил сообщение об ошибке, чтобы вам послать (привожу его ниже).
Попытался смоделировать ошибку третий раз - сходу не получилось.
Ошибка выскакивала при закрытии окна визуального тестирования в режиме паузы. Причём, не текущего окна тестирования, а предыдущего (может быть тоже не завершенного).
Предыдущее визуальное тестирование, видимо, было остановлено не вручную (путём нажатия кнопки "СТОП"), а программно, при каких-то манипуляциях (типа, компилирования, стирания журнала, или попытка отрытия журнала до завершения работы тестера, или перехода к невизуальному тестированияю) - не помню.
До этого момента "замордовал" незавершенными визуальными тестированиями программу настолько, что вносимые изменения в Эксперт с последующей компиляцией, перестали "доходить" до визального тестирования. Пришлось один раз полностью прогнать тестирование (невизуальное) до конца, чтобы скомпилированный Эксперт "дошёл" до визуального тестирования.


There has been a critical error
Time : 2006.11.09 10:00
Program : Client Terminal
Version : 4.00 (build: 198, 12 Oct 2006)
Owner : FIBO Group, Ltd. (FIBO Group)
OS : Windows XP Professional 5. 1 Service Pack 2 (Build 2600)
Processors : 2, type 586, level 15
Memory : 523804/146224 kb
Exception : C0000005
Address : 005166C4
Access Type : read
Access Addr : 011C1E04

Registers : EAX=011C1DD8 CS=001b EIP=005166C4 EFLGS=00010206
: EBX=00000000 SS=0023 ESP=0012F528 EBP=00EF4518
: ECX=00000000 DS=0023 ESI=0012F590 FS=003b
: EDX=00004453 ES=0023 EDI=77C37A90 GS=0000

Stack Trace : 00000000 00000000 00000000 00000000
: 00000000 00000000 00000000 00000000
: 00000000 00000000 00000000 00000000
: 00000000 00000000 00000000 00000000
Modules :
1 : 00400000 00297000 C:\Program Files\FIBO Group\terminal. exe
2 : 20000000 002CD000 C:\WINDOWS\system32\xpsp2res. dll
3 : 5B260000 00038000 C:\WINDOWS\system32\UxTheme. dll
4 : 5BD50000 00054000 C:\WINDOWS\system32\netapi32. dll
5 : 61EC0000 0000E000 C:\WINDOWS\system32\MFC42LOC. DLL
6 : 62F00000 00009000 C:\WINDOWS\system32\LPK. DLL
7 : 698B0000 00058000 C:\WINDOWS\system32\hnetcfg. dll
8 : 71A30000 00040000 C:\WINDOWS\system32\mswsock. dll
9 : 71A70000 00008000 C:\WINDOWS\System32\wshtcpip. dll
10 : 71A80000 00008000 C:\WINDOWS\system32\WS2HELP. dll
11 : 71A90000 00017000 C:\WINDOWS\system32\WS2_32. dll
12 : 72CD0000 00008000 C:\WINDOWS\system32\msacm32. drv
13 : 72CE0000 00009000 C:\WINDOWS\system32\wdmaud. drv
14 : 73D90000 000FE000 C:\WINDOWS\system32\MFC42. DLL
15 : 75310000 0002E000 C:\WINDOWS\system32\msctfime. ime
16 : 75540000 0006B000 C:\WINDOWS\system32\USP10. dll
17 : 75DA0000 00091000 C:\WINDOWS\system32\MLANG. dll
18 : 76350000 00005000 C:\WINDOWS\system32\MSIMG32. dll
19 : 76360000 0001D000 C:\WINDOWS\system32\IMM32. DLL
20 : 76380000 00049000 C:\WINDOWS\system32\comdlg32. dll
21 : 76B20000 0002E000 C:\WINDOWS\system32\WINMM. dll
22 : 76C20000 0002E000 C:\WINDOWS\system32\WINTRUST. dll
23 : 76C80000 00028000 C:\WINDOWS\system32\IMAGEHLP. dll
24 : 76FC0000 0007F000 C:\WINDOWS\system32\CLBCATQ. DLL
25 : 77040000 000C7000 C:\WINDOWS\system32\COMRes. dll
26 : 77110000 0008C000 C:\WINDOWS\system32\OLEAUT32. dll
27 : 77250000 000A0000 C:\WINDOWS\system32\urlmon. dll
28 : 773C0000 00102000 C:\WINDOWS\WinSxS\X86_Microsoft. Windows. Common-Controls_6595b64144ccf1df_6. 0.2600.2180_x-ww_a84f1ff9\COMCTL32.dll
29 : 774D0000 0013D000 C:\WINDOWS\system32\ole32. dll
30 : 77910000 000F4000 C:\WINDOWS\system32\SETUPAPI. dll
31 : 77A70000 00095000 C:\WINDOWS\system32\CRYPT32. dll
32 : 77B10000 00012000 C:\WINDOWS\system32\MSASN1. dll
33 : 77BC0000 00007000 C:\WINDOWS\system32\midimap. dll
34 : 77BD0000 00015000 C:\WINDOWS\system32\MSACM32. dll
35 : 77BF0000 00008000 C:\WINDOWS\system32\VERSION. dll
36 : 77C00000 00058000 C:\WINDOWS\system32\msvcrt. dll
37 : 77D30000 00090000 C:\WINDOWS\system32\USER32. dll
38 : 77DC0000 000AC000 C:\WINDOWS\system32\ADVAPI32. dll
39 : 77E70000 00091000 C:\WINDOWS\system32\RPCRT4. dll
40 : 77F10000 00047000 C:\WINDOWS\system32\GDI32. dll
41 : 77F60000 00076000 C:\WINDOWS\system32\SHLWAPI. dll
42 : 77FE0000 00011000 C:\WINDOWS\system32\Secur32. dll
43 : 7C800000 000F6000 C:\WINDOWS\system32\kernel32. dll
44 : 7C900000 000B1000 C:\WINDOWS\system32\ntdll. dll
45 : 7C9C0000 00819000 C:\WINDOWS\system32\SHELL32. dll

Call stack :
005165F0:00D4 [005166C4] ?NextInputState@CTesterGenetics

 
С компиляцией выявил следующее.
1. Включаем визуальное тестирование Эксперта.
2. Останавливаем тестирование ПАУЗОЙ.
3. Вносим поправки в код Эксперта, компилируем.
4. Нажимаем кнопку "СТОП", чтобы ПРЕРВАТЬ дальнейшее тестирование.
5. Нажимаем кнопку "СТАРТ", чтобы прогнать визульное тестирование на обновлённом (скомпилированном уже) коде Эксперта.... тестирование проводиться на прежнем !!! коде Эксперта (без внесённых изменений), несмотря на скомпилированный изменённый код Эксперта.
6. Чтобы всё-таки тестировать на уже вновь скомпелированном обновлённом коде, пришлось прогнать тестирование до конца (т. е. без нажатия кнопки "СТОП").

Думаю, что это нелогично, и многие даже не подозревают, что на этом попадались.
 
Michel_S писал (а):
Думаю, что это нелогично, и многие даже не подозревают, что на этом попадались.
Это не баг, это фича. Так было всегда, и об этом всегда говорили.
 
timbo:
Michel_S писал (а):
Думаю, что это нелогично, и многие даже не подозревают, что на этом попадались.
Это не баг, это фича. Так было всегда, и об этом всегда говорили.

А никто и не говорит, что это ошибка работы тестера. Я говорю, что это нелогично.
Зачем мне прогонять до конца тестирование, если я вижу кое-какие недостатки кода Эксперта, хочу прервать дальнейшее его тестирование. Исправить код и тестировать уже на обновлённом коде. А мне приходиться заканчивать тестирование, чтобы воспользоваться уже изменённым кодом Эксперта. Кнопка "СТОП" - это не ПАУЗА, и предполагает именно СТОП ! Вместе с её нажатием, должно всё заканчиваться. А с новым нажатием кнопки "СТАРТ", должен уже применяться и обновлённый код Эксперта.
Это - ЛОГИЧНО.
В противном случае, экспертописатель, просто не подозревает, что продолжает работать с прежним необновлённым кодом и удивляется, что внесённые изменения в код не приносят желанного результата.
 
Мы специально отразили этот момент в статье 'Тестирование экспертов в клиентском терминале MetaTrader 4. Взгляд изнутри'

Следует иметь в виду, что пока эксперт тестируется, он не может быть перезагружен. Предположим, что вы, не теряя времени, изменили исходный текст эксперта и перекомпилировали его в то время, как тестирование ещё не закончилось. Закончилось тестирование, и вы опять нажали кнопку "Старт" в надежде протестировать изменённого эксперта. Нет, запустится старый, уже до этого загруженный, исполняемый файл. Для того, чтобы новый вариант эксперта перезагрузился, необходимо нажать кнопку "Стоп" либо дождаться завершения тестирования, и только после этого запустить компиляцию эксперта в редакторе MetaEditor.

 
stringo писал (а):
Мы специально отразили этот момент в статье 'Тестирование экспертов в клиентском терминале MetaTrader 4. Взгляд изнутри'

Следует иметь в виду, что пока эксперт тестируется, он не может быть перезагружен. Предположим, что вы, не теряя времени, изменили исходный текст эксперта и перекомпилировали его в то время, как тестирование ещё не закончилось. Закончилось тестирование, и вы опять нажали кнопку "Старт" в надежде протестировать изменённого эксперта. Нет, запустится старый, уже до этого загруженный, исполняемый файл. Для того, чтобы новый вариант эксперта перезагрузился, необходимо нажать кнопку "Стоп" либо дождаться завершения тестирования, и только после этого запустить компиляцию эксперта в редакторе MetaEditor.


Спасибо. Я это уже понял. Правило применяю.
Со мной этот вопрос уже закрыт. Но всё же, если будет техническая возможность, то каким-то образом или исправьте эту ситуацию, чтобы скомпелированный файл Эксперта до нажатия кнопки "СТОП" применялся с последующим нажатием кнопки "СТАРТ", или выдавайте соответствующее сообщение, чтобы человек хотя бы знал с каким вариантом скомпелированного Эксперта он тестируется. Предположим, в первой строке журнала тестирования, где указывается фраза о загрузке кода Эксперта, указывайте вариант кода по времени его КОМПЕЛЯЦИИ. Или каким-то другим способом.
Вы же понимаете, что человек просто ФИЗИЧЕСКИ не может все статьи прочитать. Тогда не останется времени на сам процесс написания Эксперта. Непрофессиональные экспертописатели в основном читают тогда, когда возникает ситуация или вопрос. Но чтобы человек понял, что вопрос возник, его нужно предупредить об этом(просигнализировать во время тестирования).
 
Достаточно сделать чтобы всегда по нажатию "Старт" грузилась последняя скомпилированная версия.
 
Mak писал (а):
Достаточно сделать чтобы всегда по нажатию "Старт" грузилась последняя скомпилированная версия.


Я как раз об этом и написал выше.... Но разработчикам "проще" написать мудрённые правила, которые нужно читать, чем сделать всё логично, т.е. удобно для пользователя.
Будем надеяться, что они всё же учтут эти доработки в будущих билдах... :)) Во всяком случае, надо отдать им должное - работают они оперативно.
 
Mak писал (а):
Достаточно сделать чтобы всегда по нажатию "Старт" грузилась последняя скомпилированная версия.


У меня появилось конкретное предложение Разработчикам по этому вопросу.

Клавиша "СТАРТ-СТОП" появилась еще до визуализации тестирования и выполняла фактически роль клавиши "Пауза" или останова тестирования по каким-то техническим соображениям.

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

Новая "галочка" что-то типа того "Тестирование проводить при неизменном коде Эксперта" или проще "Фиксированный код Эксперта".
Т.е., фактически, экспертописатель будет осознанно ограничивать тестирование Эксперта одним скомпеллированным кодом. В противном случае, при каждом нажатии кнопки "СТАРТ" подгружать последнюю скомпиллированную (изменённую) версию кода Эксперта.

Или заложить эту функцию в "галочку" "Пересчитать".

И овцы будут сыты и волки целы.

А потом когда-нибудь уже подумать как визуальное тестирование вывести вообще в отдельный ранг тестирования с самостоятельной закладкой, чтобы не было накладок с разными видами тестирования.
 
Michel_S писал (а):
Mak писал (а):
Достаточно сделать чтобы всегда по нажатию "Старт" грузилась последняя скомпилированная версия.


Я как раз об этом и написал выше.... Но разработчикам "проще" написать мудрённые правила, которые нужно читать, чем сделать всё логично, т.е. удобно для пользователя.
Будем надеяться, что они всё же учтут эти доработки в будущих билдах... :)) Во всяком случае, надо отдать им должное - работают они оперативно.

В ближайшем будущем. Соответствующее исправление уже сделано
 
stringo писал (а):
Michel_S писал (а):
Mak писал (а):
Достаточно сделать чтобы всегда по нажатию "Старт" грузилась последняя скомпилированная версия.


Я как раз об этом и написал выше.... Но разработчикам "проще" написать мудрённые правила, которые нужно читать, чем сделать всё логично, т.е. удобно для пользователя.
Будем надеяться, что они всё же учтут эти доработки в будущих билдах... :)) Во всяком случае, надо отдать им должное - работают они оперативно.

В ближайшем будущем. Соответствующее исправление уже сделано

Спасибо. Вы, как всегда, оперативны.
Причина обращения: