Всем привет!
Присматриваюсь к направлению автоматизированного тестированию ПО и, как это обычно бывает, возникла неопределенность в выборе приоритетного языка программирования применительно к деятельности тестировщика.
На одних ресурсах пишут, что Java более предпочтителен, поскольку большинство коммерческих проектов сильно завязаны на нем (проще поддерживать, проще спросить совета у команды разрабов). В свете распространения веба и джава-подобных языков сложно с этим не согласиться.
На других - без разницы "чем" тестировать и в таком случае Python предпочтителен в силу своего легкого синтаксиса, множества библиотек и репутации "ЯП, на котором автоматизируют ВСЁ", якобы на нем проще проводит тесты безопасности и непрерывное тестирование при применении CI/CD.
С Java в боевых условиях не знаком, однако имею представление о синтаксисе языка. Python использую в личных проектах по анализу данных.
Хотел бы спросить практикующих QA в чем же состоит истина - от чего в первую очередь строится ваш выбор?
Я так понимаю, что все равно набор библиотек и фреймворков для тестирования ПО и по Python, и по Java, да и по любому другому ЯП не полностью пересекаются по своему функциональному назначению.
То есть полная или почти полная универсальность в тестировании никаким из ЯП не обеспечивается. Или я ошибаюсь?
Я не беру в расчет ту историю, что чем шире компетенции, тем лучше, и хорошо бы знать все два-три ЯП. С этим согласен, но хотелось бы узнать, что делают люди на практике.
Тут такое дело: приходите вы, допустим, на проект тестировщиком, а там все тесты уже написаны на spock + groovy + cucumber и фронт еще каким-нибудь jest-ом тестируют. Выбор, получается, уже сделали до вас.
То есть все-таки выбор зависит от проекта? В той ситуации, которую ваш пример описывает, мне было бы неловко, если бы у меня только Python в арсенале был.
Иван Данчук, имхо, для QA намного важнее разбираться в продукте, чем уметь програмировать (на то они и тестеры, а не разработчики). Даже для программистов язык - не самое важное. Для QA - тем более.
Dmitry Roo, ну далеко не везде, у нас активно развивают тестировщиков в фуллстеков.
И набирают чистых куа авто - которые больше разрабы нежели тестировщики
Dmitry Roo , это немаловажная часть наверное, но мне сейчас этим похвастаться никак нельзя. Только в хард скилз упираться и нарабатывать в теории. А потом в краудтестинг - тренироваться)
Учитывая вашу практику, что означает хорошее знание продукта QA? Кроме знания его баго-опасных участков если не только этого касается.
Иван Данчук, под "продуктом" я имею ввиду само приложение. Т.е. QA, для того чтобы писать адекватные тесты, должен представлять что приложение должно делать и что не должно, что является допустимым поведением, а что нет. Тестировщик исследует продукт и лучше всех в комманде знает как именно он работает.
Влад Григорьев, я тоже знаю тестировщиков, которые код пишут не хуже разработчиков. Но, согласитесь, тестировщики (в роли тестировщика) вряд-ли будут задавться вопросом оптимизации кода, потреблением ресурсов, масштабированием и т.д.. Для QA, например, KISS важнее чем DRY. И дело тут не в том, что они не могут (есть которые очень даже могут), им просто это не надо, не в этой роли.
Дело вкуса конечно, я автоматизировал и на питоне и на джаве, и на питоне.
Но на питоне мне автоматизировать больше нравится, ну у плюс в питоне много всякого сахара, который сильно упрощает написание тестов и делает их более лаконичными.
Он мне тоже нравится за синтаксис и его следствия - скорость написания кода и лаконичность. Ну и комьюнити очень активное, особенно в последнее время.
Влад, а вы на Python для каких проектов и их частей тесты проводили? Веб (фронт, бэк), MobApp? Эти проекты разрабатывались не на Python?
Иван Данчук, Я писал много тестов на бэк и на фронт, и почти не писал на мобилки
Были разные ситуации бэк был на джава мы на питоне, все на питоне.
В целом на чем бэк не так важно. если нормальная дока есть то все ок.
ну и фронт если норм команда, удобнее на js писать взять какой-нибудь сайпрос и на нем и юниты и е2е