пятница, 31 января 2014 г.

Мысли

Приходится отвечать на до поры до времени гипотетический вопрос: какой язык выбрать для написания автотестов:
Python или java?

Аргументы за python:
- Мои программисты пишут на python - и в случае выбора этого языка готовы помочь
- Мой продукт написан на python
- Мне полезно изучить python
- У меня сложилось мнение, что python предпочтительней для небольших проектов и для скорости

Аргументы за java:
- Существующая инфраструктура тестирования (CI, selenium grid итпх) и ее автотестеры используют java.
- На java есть откуда копипастить куда обращаться за решениями по кодированию именно автотестов (пользуясь случаем, передаю привет)
- Я уже писал автотесты на java
- WebDriver первыми выпускает обновления для java и вообще лучше работает с этим языком (тут я могу и ошибаться)
- Лично мне больше нравится java (а тут я могу и передумать)

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

В противовес: java может быть не пожеланием, а требованием инфраструктуры автотестирования. Создавать собственную, с серверами, гридом и прочим - глупо, долго, геморно. Я этим занимался, я знаю.

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

11 комментариев:

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

    ОтветитьУдалить
  2. про инфраструктуру - ну и что? питоновские тесты не запустят что ли?
    отвыкай от джавы давай уже ;)

    ОтветитьУдалить
  3. Питон? Нечто без статической типизации - язык? Ты тестировщик?

    ОтветитьУдалить
  4. Ваши версии на все эти счета?

    ОтветитьУдалить
  5. Мысль интересная и в чем-то верная.

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

    На яве они писать просто не будут. В качестве контраргумента можешь попытаться пересадить Андрея на неделю на eclipse.

    ОтветитьУдалить
  6. Макс, тебя обманули! Eclipse - это не язык ;)

    ОтветитьУдалить
  7. Это не язык, зато это твоя попоболь, хех.

    ОтветитьУдалить
  8. >> На яве они писать просто не будут

    поэтому комментарием выше я написал слово "scala" как компромисс между java и python для скриптинга твоей рабочей платформы.
    я бы написал слово jpython, если бы был уверен, что он работает ок. или groovy, если бы он не был похож на java слишком сильно.
    и безотносительно них, scala кажется довольно подходящей историей для написания тестов, учитывая ее функциональность и возможности разработки/использования dsl.

    p.s. может так случится, что хорошо разработанный dsl будет похож на robot framework :)

    ОтветитьУдалить
  9. Тесты на python и java для допиливания инфраструктуры, кажется более реальным.

    ОтветитьУдалить