t.me/atinfo_chat Telegram группа по автоматизации тестирования

Помогите советом в выборе языка ООП (веб)

Теги: #<Tag:0x00007fd766f03508> #<Tag:0x00007fd766f03418>

это точно! :)

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

Как уже говорилось в какой-то теме на данном форуме - главное в автоматизации это архитектура.

Про функции вообще ничего не понял. Все опять-таки зависит от архитектуры.

Например тест на логин в рамблере:

public void testLogin() {
  RamblerHome page = new RamblerHome();
  page.clickLink("Войти");
  page.loginFrame.waitForElement();
  page.loginFrame.rememberMe.verifySelected(false);
  page.loginFrame.type("Логин:", "just.for.testing");
  page.loginFrame.typeAndSubmit("Пароль", "test123");
  page.verifyTextContains("just.for.testing");
  page.clickLink("profile");
  page.clickLink("Выйти");
}

 

Почему многие выбирают джаву? Наверное из-за схожести синтаксиса с прародителями ООП таких как C++, Object Pascal, так и более современными типа C#.

И лично меня синтаксис php повергает в легкий когнитивный диссонанс. Хотя и приходилось писать автотесты и на ruby и на php.

 

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

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

Hello World in Java:
 

public class HelloWorld {

public static void main(String[] args) {
System.out.println(“Hello, World”);
}
}

 
Hello World in Python:
 
print “Hello, World”

 

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

Python, AutoIt, Ruby, и любой другой скриптовый язык расчитаны на скоростное написание скриптов и простоту реализации алгоритмов. Джава в этом сильно проигрывает.

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

2 Симпатий

Почему многие выбирают джаву? Наверное из-за схожести синтаксиса с прародителями ООП таких как C++, Object Pascal, так и более современными типа C#.

Джаву выбирают потому что когда вы пришли на проект - она уже была выбрана, и вам приходится её развивать дальше. Либо потому что многие знают только слово селениум и что им можно тестировать наш проект (хоть у него и есть порты на другие языки, но изначально он на джаве).

Джаву выбирают далеко не многие. И даже немного погуглив вы увидите что ссылки типа Why Python is better than Java выпадают значительно чаще, чем обратные, даже если в поисковик вводить Why Java is better than Python. Тесты на С++ это либо идиотизм, либо безвыходность в связи с особенностями проекта (может вы драйвера пишете, не знаю), потому как сами приложения написанные на С++ в 99% случаев очень уязвимы к ошибкам с памятью, а если при этом ещё и тесты такие делать... (Хотя последние реализации этого языка С++0x или так званый С++ 11 уже умеют распознвать конструкции которые весьма похожие семантикой на скриптовые языки типа питона и руби, так что кто знает, может появятся хорошие фреймворки тестирования в скором).

Синтаксис PHP не знаю, никогда на нем не писал (разве что перехватчики REST запросов), при чем он здесь - тоже не знаю.

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

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

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

1 Симпатия

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

В .NET придётся останавливать процесс, выгрузить сборку из основного домена приложения нельзя. VB6, PowerBuilder - придётся перекомпилить, если это что-то читаемое из текстового файла. Про джаву и паскаль деталей не знаю (джава ведь когда-то была чуть ли не интерпретируемой), но подозреваю, что дело обстоит не лучше.

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

Что касается примера кода, вот три варианта на PowerShell:

 

"Hello, World!"
Write-Host "Hello, World!"
"Hello, World!" | Out-Default

Светлана опять создала тему, в которой кипят страсти :)

Я тоже свой пятак всуну.

Языки (по убыванию приоритета): Python, C#, Java (почему джава в конце? я ее просто не люблю, простите...)

 

Вы конечно извините, я понял что вы не любите Джаву, и поэтому поставили ее в конце, но Руби-то чем Вам насолил?

Мне приходилось понемногу на сишарпе и на джаве поработать, но Руби для меня оказался самым-самым, я здесь никому не навязываю свои мысли и предпочтения, но про "нелюбимую" джаву Вы все-таки упомянули, а про Руби - нет. Достаточно было бы сказать: не пробовал - не знаю. А сложилось такое ощущение, что он(язык) прям упоминания даже не достоин

 

Она была еще до ТОЙ )))

На самом деле, лично для меня, эта тема уже не актуальна, т.к. на текущий момент остановилась на python )

Но джава для меня предоставляет наибольший интерес. Как вызов что ли. Поэтому нетерпится сесть и за ее изучение, но уже после python)

 

С руби просто не сталкивался, так что не знаю, куда бы его впихнул.

Я еще много чего не упомянул на самом деле. В ТестКомплите я всегда пользуюсь JavaScript-ом, а для совсем начинающих (и кому все равно, с чего начинать, и кто никогда не сталкивался ранее с программированием) я часто советую VBScript (с пометкой, что это только "для изучения основ").

Она была еще до ТОЙ )))

На самом деле, лично для меня, эта тема уже не актуальна, т.к. на текущий момент остановилась на python )

Тогда будьте последовательны и создайте новую тему: "Какую выбрать IDE для изучения Python'a?" :)

Если речь идёт не о JavaScript, а о JScript (где там JavaScript в тесткомлите??), то разницы с VBScript уж совсем не много (один и тот же скриптинг хост).

В настоящем javaScript размаха, конечно, побольше.

Если не считать поделок типа тесткомплита, и JScript, и VBScript давно уже заменены PowerShell (динозавров всё меньше и меньше).

хах)))

в этом нет необходимости 0=)

проще принимать решения, когда уже есть от чего отталкиваться и примерно представляя в какую сторону движешься )

В настоящем javaScript размаха, конечно, побольше.

И в чем это выражается? JScript - всего лишь майкрософтовская реализация языка JavaScript и практически всё, работающее в JavaScript, будет работать и в JScript. Вот тут хорошо объяснено (первые 2 ответа)

http://stackoverflow.com/questions/135203/whats-the-difference-between-javascript-and-jscript

Если же вы имеете ввиду, что в "настоящем" JavaScript больше возможностей в том смысле, что он используется в веб-приложениях, так тут просто используется язык для совершенно разных нужд. Никто не мешает открыть с помощью тесткомплита страничку в браузере и выполнить в ней свой JavaScript-сценарий, но зачем?

И уж совсем третье дело - ограничения тесткомплита при использовании JScript, но их не так уж и много. Мне больше всего не нравится, что тесткомплитовская IDE не поддерживает классы (т.е. я не могу пользоваться всякими наворотами для перехода на нужный метод, например), но ООП никто не мешает использовать. Есть еще несколько минусов, но все они никак не относятся к разнице между JScript и JavaScript. 

Правильно ли я понимаю, что за 4 года мало чего изменилось и python все еще удобней для написания автотестов, нежели java?

Кстате оч интересно на каком языке больше работы в СНГ? python or java?
*я понимаю что это очень пальцемвнебо, но все же, может кто-то заметил тенденцию?

TypeScript уже советовали?

Кто-то лайкнул мой пост и я его перечитал. Так вот, к упоминанию. Программа университетов Индии, которые были основными разработчиками джавы, со следующего года убирают джаву из преподавания, будут замещать её скриптовыми, С++, Го. Пока в метро катался, где-то в новостях проскочило.

2 Симпатий

Ты ссылки давай, а то вдруг не поверят

Да по радио слушал, здесь в финке, а в финке много индийских разработчиков.
Но для ссылок https://qz.com/1084770/bye-bye-java-its-time-for-indian-it-institutions-to-let-go-of-outdated-coding-languages/

1 Симпатия