Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Кто пробовал работать с Systir?  (Прочитано 22869 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Dale
Блюзмен
Команда клуба

ru
Offline Offline
Пол: Мужской

WWW
« : 07-07-2011 16:04 » 

Собственно, сабж. Кому-нибудь из форумчан доводилось работать с этим продуктом?

Посмотрел на него буквально с высоты птичьего полета, пока не вдаваясь в детали. Вроде бы многообещающий, но порог вхождения представляется мне довольно высоким. Не хотелось бы потратить уйму времени впустую. Если у кого-то есть впечатления (неважно, положительные или отрицательные), поделитесь, пожалуйста.

Ну и попутный вопрос: а какие инструменты вы используете для системного тестирования своих продуктов и с каким успехом?
Записан

Всего лишь неделя кодирования с последующей неделей отладки могут сэкономить целый час, потраченный на планирование программы. - Дж. Коплин.

Ходить по воде и разрабатывать программное обеспечение по спецификациям очень просто, когда и то, и другое заморожено. - Edward V. Berard

Любые проблемы в информатике решаются добавлением еще одного уровня косвенности – кроме, разумеется, проблемы переизбытка уровней косвенности. — Дэвид Уилер.
baldr
Команда клуба

cy
Offline Offline
Пол: Мужской
Дорогие россияне


WWW
« Ответ #1 : 08-07-2011 06:54 » 

Dale, проект на rubyforge.org не выглядит живым: дата July 7, 2006
Да и по сути - похоже просто надстройка над Test::Unit.

Для тестирования через веб-интерфейсы писал тесты на Ruby/Watir, правда сейчас этим не занимаюсь почти - но тесты работают. Пробовал WatiN, но он был сыроват. Сейчас у нас пытаются использовать Selenium.
Записан

Приличный компьютер всегда будет стоить дороже 1000 долларов, потому что 500 долларов - это не вполне прилично
Dale
Блюзмен
Команда клуба

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #2 : 08-07-2011 07:29 » 

.

Добавлено через 4 минуты и 50 секунд:
Dale, проект на rubyforge.org не выглядит живым: дата July 7, 2006

Уже посмотрел там. Но в более свежих статьях регулярно упоминается применение Systir, причем именно версии 0.5, да и на сайте Atomic Objects ссылаются как на поныне используемый инструмент. Есть надежда, что эта версия достаточно функциональна, хоть и давно не обновлялась.

Да и по сути - похоже просто надстройка над Test::Unit.

Да, разработчики упоминали об этом.

Для тестирования через веб-интерфейсы писал тесты на Ruby/Watir, правда сейчас этим не занимаюсь почти - но тесты работают. Пробовал WatiN, но он был сыроват. Сейчас у нас пытаются использовать Selenium.

Пожалуй, я задал слишком общий вопрос насчет системного тестирования, надо бы конкретизировать. Мне нужен инструмент для системного тестирования firmware микроконтроллеров, а если получится, то и оборудования. Вряд ли получится для этого приспособить web-инструментарий.

Может, есть аналогичные решения для десктопных приложений? Возможно, их будет проще приспособить, если с Systir Не получится.
« Последнее редактирование: 08-07-2011 07:33 от Dale » Записан

Всего лишь неделя кодирования с последующей неделей отладки могут сэкономить целый час, потраченный на планирование программы. - Дж. Коплин.

Ходить по воде и разрабатывать программное обеспечение по спецификациям очень просто, когда и то, и другое заморожено. - Edward V. Berard

Любые проблемы в информатике решаются добавлением еще одного уровня косвенности – кроме, разумеется, проблемы переизбытка уровней косвенности. — Дэвид Уилер.
x77
Команда клуба

ro
Offline Offline
Пол: Мужской
меняю стакан шмали на обратный билет с Марса.


« Ответ #3 : 08-07-2011 10:38 » 

а как тестировать? посылать некие команды на контроллер и получать результат? тогда можно попробовать через QA TestComplete.

типичный сценарий работы:

1. указывается запускаемое приложение (в твоем случае, я так понимаю, то, что работает с контроллером
2. записывается тест (запоминаются все действия пользователя, т.е. нажатия на клавиатуру, мышу и др.)
3. создается чек-пойнт (т.е. сверка результата с неким эталоном)

ну и все. у меня на этой ботве работают ночные сборки, т.е. ночью выкачивается проект из CVS, собирается, на сборку натравливаются регрессионные тесты, утром я прихожу на работу и в почте нахожу письмо с результатами тестирования.

плюсы этой штуки в том, что она интегрируется в 10 языков программирования, любой тест можно сконвертировать в скрипт одного из четырех языков (VB, Delphi, Java, C#), можно использовать свои функции и процедуры.

может быть, его скриптовый язык позволит и с ком-портами  работать - не знаю, не проверял. если нет - придется писать свою прогу для контроллера, видимо. но при определенных условиях сборки (включение в экзешник отладочной информации, а также инфы для внешнего дебаггера TD32) TestComplete позволяет работать с тестируемым приложением не на уровне виндовых окон ("нажать на форме такой-то такую-то кнопку" или "ввести такой-то текст в такое-то поле ввода"), а на уровне полноценного объекта, используя методы и свойства, доступные в родной среде разработки.

т.е. задача сведется к тому, чтобы некая приблуда отправляла и получала какие-то команды контроллеру. а дальше уже на основе TC писать тесты с использованием этой приблуды.

если я правильно задачу понял, конечно.
Записан

baldr
Команда клуба

cy
Offline Offline
Пол: Мужской
Дорогие россияне


WWW
« Ответ #4 : 08-07-2011 10:40 » 

Если спускаться на уровень тестирования пониже - на интеграционный (что имеет в виду x77) - то это будет как раз задача для hudson, например.
Записан

Приличный компьютер всегда будет стоить дороже 1000 долларов, потому что 500 долларов - это не вполне прилично
x77
Команда клуба

ro
Offline Offline
Пол: Мужской
меняю стакан шмали на обратный билет с Марса.


« Ответ #5 : 08-07-2011 10:42 » 

baldr, не, хадсон - это наоборот уровень повыше, Continious Integration. подразумевает юнит-тестирование и блочные тесты, сборку, тестирование и развертывание по триггерам (на чек-ин файла с определенной меткой) и пр.

я говорю про простейшие тесты, не подразумевающие внедрения в тестируемый код.

Добавлено через 1 минуту и 12 секунд:
baldr, хадсон - это целая (_:_), тестить им микроконтроллер - это просто офигеть Улыбаюсь
« Последнее редактирование: 08-07-2011 10:44 от x77 » Записан

baldr
Команда клуба

cy
Offline Offline
Пол: Мужской
Дорогие россияне


WWW
« Ответ #6 : 08-07-2011 11:45 » 

x77, Dale говорил про системное тестирование, а это уровень выше AFAIK. Улыбаюсь Я просто прокомментировал идею насчет "ночных сборок".
Очевидно, что для уровня посылки команд придется писать какое-то свое приложение, выдающее интерфейс уровню выше.
А вот уже этот уровень может быть как TestComplete, QuickTest, Selenium или кто угодно...
Записан

Приличный компьютер всегда будет стоить дороже 1000 долларов, потому что 500 долларов - это не вполне прилично
x77
Команда клуба

ro
Offline Offline
Пол: Мужской
меняю стакан шмали на обратный билет с Марса.


« Ответ #7 : 08-07-2011 12:02 » 

baldr, именно. но надо сначала проверить, позволяет ли скриптовый движок TC работать с ком-портами, я не удивлюсь, если это вполне реально. если нет - то писать маленькую приблуду, посылающую команды и получающую ответы.
Записан

Dale
Блюзмен
Команда клуба

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #8 : 08-07-2011 13:38 » 

а как тестировать? посылать некие команды на контроллер и получать результат? тогда можно попробовать через QA TestComplete.
...
т.е. задача сведется к тому, чтобы некая приблуда отправляла и получала какие-то команды контроллеру. а дальше уже на основе TC писать тесты с использованием этой приблуды.

если я правильно задачу понял, конечно.

Парни из Atomic Objects пишут, что они присобачили к тестовому компьютеру специальный стенд, способный генерировать и считывать массу цифровых и аналоговых сигналов, и добавили в Systir средства для работы с ним. А дальше системное тестирование выглядит примерно таким образом.

Например, проверяется функция зарядки аккумулятора. На вход контроля напряжения контроллера со стенда по команде Systir подается напряжение, соответствующее разряженному аккумулятору. В ответ контроллер должен включить зарядный ток. Этот ток измеряется стендом, и Systir проверяет, что этот ток действительно соответствует ожидаемому.

Затем системный тест посредством стенда повышает напряжение на входе контроллера и проверяет, что зарядный ток поддерживается в соответствии со спецификацией. Ну и, наконец, когда тест имитирует полную зарядку, проверяется реакция контроллера (отключается ток зарядки, лампочка с красной меняется на зеленую или что там он еще должен делать по ТЗ).

Аналогично имитируются обрыв/замыкание проводов, разные неисправности аккумулятора и т.д. и проверяется правильное поведение контроллера в нештатных ситуациях.

Вот примерно такую штуку и хотелось бы получить, а именно - возможность задавать сценарии тестирования и контролировать, что действительное поведение гаджета не отличается от эталонного в пределах допусков.
Записан

Всего лишь неделя кодирования с последующей неделей отладки могут сэкономить целый час, потраченный на планирование программы. - Дж. Коплин.

Ходить по воде и разрабатывать программное обеспечение по спецификациям очень просто, когда и то, и другое заморожено. - Edward V. Berard

Любые проблемы в информатике решаются добавлением еще одного уровня косвенности – кроме, разумеется, проблемы переизбытка уровней косвенности. — Дэвид Уилер.
x77
Команда клуба

ro
Offline Offline
Пол: Мужской
меняю стакан шмали на обратный билет с Марса.


« Ответ #9 : 08-07-2011 13:59 » 

Dale, а в твоем случае, что будет являться стендом и нужен ли он там вообще? как контроллер к компу цепляется?
Записан

Dale
Блюзмен
Команда клуба

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #10 : 08-07-2011 18:27 » 

Dale, а в твоем случае, что будет являться стендом

Планирую специально для системного тестирования сделать коробочку, которая подключается к компьютеру и может вводить и выводить цифровые и аналоговые сигналы.

и нужен ли он там вообще?

Конечно, нужен. Должна же среда тестирования как-то имитировать воздействия внешней среды на компьютер и оценивать адекватность его реакции.

как контроллер к компу цепляется?

В общем случае - никак (нет необходимости). Ну или почти никак (через программатор). Хотя если в конкретной конструкции UART не задействован, я бы предпочел подключить его к виртуальному терминалу на отладочном компьютере, чтобы иметь возможность при необходимости выводить диагностику.
Записан

Всего лишь неделя кодирования с последующей неделей отладки могут сэкономить целый час, потраченный на планирование программы. - Дж. Коплин.

Ходить по воде и разрабатывать программное обеспечение по спецификациям очень просто, когда и то, и другое заморожено. - Edward V. Berard

Любые проблемы в информатике решаются добавлением еще одного уровня косвенности – кроме, разумеется, проблемы переизбытка уровней косвенности. — Дэвид Уилер.
x77
Команда клуба

ro
Offline Offline
Пол: Мужской
меняю стакан шмали на обратный билет с Марса.


« Ответ #11 : 09-07-2011 12:59 » 

Dale, то, что я имел в виду - TestComplete - это приблуда для тестирования десктопных приложений. ее основная прелесть в том, что она позволяет записать действия пользователя как неий макрос, и потом этот макрос воспроизводить и сравнивать результаты с неким эталоном. результатом может быть файл, часть файла, значение в БД, значение в поле ввода какой-то программы, и т.д.

таким образом, если получится тестировать твой контроллер каким-то десктопным приложением, через какой-то стенд, TestComplete вполне с этим управится. грубо говоря, у тебя запускается консольная программка, она дает команду на стенд сымитировать скачок напряжения, например, стенд программке возвращает некий результат от контроллера (сработали такие-то реле ну и т.д. - в контроллерах я не специалист), а TestComplete проверит, что у программки в окне написалось именно то, что должно было написаться.

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

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

Dale
Блюзмен
Команда клуба

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #12 : 09-07-2011 14:18 » 

таким образом, если получится тестировать твой контроллер каким-то десктопным приложением, через какой-то стенд, TestComplete вполне с этим управится. грубо говоря, у тебя запускается консольная программка, она дает команду на стенд сымитировать скачок напряжения, например, стенд программке возвращает некий результат от контроллера (сработали такие-то реле ну и т.д. - в контроллерах я не специалист), а TestComplete проверит, что у программки в окне написалось именно то, что должно было написаться.

При таком подходе получается лишнее звено - посредник в виде консольной программы, которая фактически реализует сценарий тестирования. Если такая программа умеет взаимодействовать со стендом, то научить ее оценивать правильность результата - совсем пустяк, для этого и TestComplete не понадобится. Вот если бы научить TestComplete напрямую управлять стендом - это была бы тема.

Судя по статьям, в Atomic Object именно этому и научили Systir. Я видел их тестовые сценарии, они написаны прямо в примитивах предметной области: "подать 12 вольт на датчик напряжения", "проверить состояние индикатора ошибки" и т.д. Хотелось бы в итоге достичь чего-то наподобие.

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

То, что она для регрессионного тестирования, как раз только плюс - это означает лишь, что она работает быстро (или у нас просто разное толкование "регрессионности"). А вот если она жестко заточена на работу с GUI, то, возможно, это ограничит возможность ее использования для данной цели.

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

В моем стучае системное тестирование как раз в этом и состоит - подаем на "черный ящик" воздействия и проверяем, соответствует ли его поведение ожидаемому. Это самое моделирование нужно именно для целей тестирования, ведь не всегда можно (или целесообразно) проверить систему в реальных условиях.
Записан

Всего лишь неделя кодирования с последующей неделей отладки могут сэкономить целый час, потраченный на планирование программы. - Дж. Коплин.

Ходить по воде и разрабатывать программное обеспечение по спецификациям очень просто, когда и то, и другое заморожено. - Edward V. Berard

Любые проблемы в информатике решаются добавлением еще одного уровня косвенности – кроме, разумеется, проблемы переизбытка уровней косвенности. — Дэвид Уилер.
x77
Команда клуба

ro
Offline Offline
Пол: Мужской
меняю стакан шмали на обратный билет с Марса.


« Ответ #13 : 10-07-2011 01:13 » 

ну тогда все упирается в стенд. вернее, в возможность им рулить с компа.
Записан

Dale
Блюзмен
Команда клуба

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #14 : 10-07-2011 09:24 » 

ну тогда все упирается в стенд. вернее, в возможность им рулить с компа.

Поскольку стенд будет самодельный, с этой стороны как раз никаких ограничений - какой будет нужен, такой и сделаю. Тут бы разобраться с интерфейсами системы тестирования, а уже приспособиться к ним - дело десятое.

Например, если система тестирования умеет делать ввод/вывод текста на COM, можно обучить стенд языку наподобие

Код:
SetU(1) = 12.2 // установить напряжение на аналоговом выходе 2
GetU(3) // считать напряжение с аналогового входа 3
SetPort(3, 1) = 1 // установить бит 1 цифрового порта 3

Тогда для конкретного девайса остается еще доопределить макросы типа

Код:
#define SetAccumVoltage SetU(1)
#define AlarmSoundOn SetPort(3, 1)

и т.п., и можно писать сценарии тестирования прямо на языке предметной области.
Записан

Всего лишь неделя кодирования с последующей неделей отладки могут сэкономить целый час, потраченный на планирование программы. - Дж. Коплин.

Ходить по воде и разрабатывать программное обеспечение по спецификациям очень просто, когда и то, и другое заморожено. - Edward V. Berard

Любые проблемы в информатике решаются добавлением еще одного уровня косвенности – кроме, разумеется, проблемы переизбытка уровней косвенности. — Дэвид Уилер.
x77
Команда клуба

ro
Offline Offline
Пол: Мужской
меняю стакан шмали на обратный билет с Марса.


« Ответ #15 : 10-07-2011 09:35 » 

я на работе проверю, можно ли к TC цеплять свои функции из dll, например.
Записан

RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« Ответ #16 : 10-07-2011 09:44 » 

Я вот читаю и немного не понимаю (особенно в свете предпоследнего поста): коли тестирование железа - вещь специфическая и нестандартизированная, а тесты прекрасно можно писать как обычную программу, то зачем нужен Systir и иже с ними? Только потому, что программу на скриптовом языке не нужно предварительно компилировать?

Я вот, в ассемблерной или сишной программе использую макросы аналогичным образом. Ведь так легче писать, понимать написанное и исправлять ошибки. Например, в моей текущей поделке:

Код:
    SET_PPM 1 ; Установить выход сигнала 1.
    SET_TIMER CFG_1MS_TIMER_DELAY ; установить таймер на 1 мс.
    CLR_PPM 2 ; Снять выход сигнала 2.

Если где ошибка, то смотрим макрос и вызываемые им функции, а описание логики компактно и прозрачно.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Dale
Блюзмен
Команда клуба

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #17 : 10-07-2011 10:03 » 

...зачем нужен Systir и иже с ними? Только потому, что программу на скриптовом языке не нужно предварительно компилировать?

В основном да. Традиция - писать скрипты на интерпретируемом языке и выполнять немедленно, без промежуточных ступеней. Тем более что Systir основан на Ruby, а это достаточно мощный язык.

Ну и плюс инструмент хорошо интегрируется в общую систему CI, а для самописных тестовых программ придется это делать самому. Пусть и не слишком сложная, но все же лишняя работа.
Записан

Всего лишь неделя кодирования с последующей неделей отладки могут сэкономить целый час, потраченный на планирование программы. - Дж. Коплин.

Ходить по воде и разрабатывать программное обеспечение по спецификациям очень просто, когда и то, и другое заморожено. - Edward V. Berard

Любые проблемы в информатике решаются добавлением еще одного уровня косвенности – кроме, разумеется, проблемы переизбытка уровней косвенности. — Дэвид Уилер.
Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #18 : 10-07-2011 10:09 » 

в свое время писали тесты на Tcl\tk
условно скажем, заказчиком был вот этот "поц" http://www.elbrus.com/solutions/guitesting/detailed
история длинная и неинтересная
что получилось - получилась система скриптов, и gui
тесты - те же самые скрипты.
« Последнее редактирование: 10-07-2011 10:10 от Sla » Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
x77
Команда клуба

ro
Offline Offline
Пол: Мужской
меняю стакан шмали на обратный билет с Марса.


« Ответ #19 : 10-07-2011 10:22 » 

Dale ТестКомплит тоже интегрируется в CI. если CI тот же хадсон - туда вообще все, что угодно можно синтегрировать, там сборка идет на ант-овских build.xml. Систир не видел, а вот ТС мне очень нравится. Писать можно на 4 языках, а не на одном, тест можно записать, как макрос, а потом преобразовать в скрипт и дописать в нужных местах логирование, скриншоты, проверку значений по БД и пр. в общем, это надо попробовать.
Записан

Dale
Блюзмен
Команда клуба

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #20 : 10-07-2011 10:40 » new

Спасибо, приму к сведению. Если с Systir'ом не прокатит, TC будет следующим кандидатом.
Записан

Всего лишь неделя кодирования с последующей неделей отладки могут сэкономить целый час, потраченный на планирование программы. - Дж. Коплин.

Ходить по воде и разрабатывать программное обеспечение по спецификациям очень просто, когда и то, и другое заморожено. - Edward V. Berard

Любые проблемы в информатике решаются добавлением еще одного уровня косвенности – кроме, разумеется, проблемы переизбытка уровней косвенности. — Дэвид Уилер.
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines