Что такое хороший язык программирования для тестировщиков, которые не являются хорошими программистами? - PullRequest
5 голосов
/ 13 мая 2010

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

Что такое хороший язык программирования для тестировщиков, которые вообще не являются хорошими программистами или программистами?

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

Предпочтительно, язык будет интерпретироваться и не будет компилироваться. Дайте мне знать, что вы думаете.

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

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

Обновление 3: язык должен иметь возможность легко вызывать код C ++.

Ответы [ 8 ]

5 голосов
/ 13 мая 2010

Вам может даже не понадобиться язык, в зависимости от того, что вы тестируете, вы можете использовать инструменты тестового моделирования, такие как CubicTest: http://cubictest.seleniumhq.org/

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

Наша команда QA добилась больших успехов.

В противном случае я бы порекомендовал специфичный для домена язык вместо универсального языка в вашей проблемной области.DSL на самом деле может быть подмножеством GPL (например, Rake for Ruby), так что будьте внимательны с Google.

Если вы не можете найти существующий DSL, тогда:

  • Создайте DSL для своих тестеров, используя Ruby или Scheme .Эти два языка проще всего создавать в предметно-ориентированных языках.

  • Python Если все остальное терпит неудачу и им нужен GPL, чем Python, безусловно, самый простой язык для изученияИМХО.

РЕДАКТИРОВАТЬ - Исходя из ваших обновленных требований, Python может быть лучше всего подходит.Я обнаружил, что очень легко вызывать C или C ++ с помощью Python CTypes.Однако я уверен, что в Ruby есть что-то такое же хорошее.

4 голосов
/ 13 мая 2010

Я всегда рекомендую Python.

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

И вы всегда можете сослаться на них:

альтернативный текст http://images.barnesandnoble.com/images/16900000/16904769.JPG

2 голосов
/ 13 мая 2010

Я думаю, что прежде чем выбирать язык, мы должны еще точнее определить, что вы ищете.

  • Сборка мусора, так как мы не хотим, чтобы люди понимали управление памятью !!
  • Большое количество модулей / библиотек вокруг, чтобы не изобретать велосипед
  • Желательно придумать уже существующие (и протестированные) фреймворки для модульных тестов
  • Хорошая документация для модулей / библиотек
  • Предпочтительно язык сценариев, потому что тесты должны быть изменены / выполнены быстро
  • Простое взаимодействие с C / C ++, хотя разработчики должны будут предоставить интерфейс

И, пожалуй, самое важное:

  • ясный и «похожий на английский» синтаксис, так что он будет (по крайней мере) читаем не для технических людей

На основании этого списка я бы порекомендовал Python .

  • Возможно, именно язык программирования (достигший критической массы) наиболее близок к традиционным выражениям английского языка / алгоритма. Это, безусловно, один из тех, у кого наименее пунктуация / странные символы, которые выбрасывают непрограммистов
  • Он поставляется сразу с таким количеством модулей, что вряд ли вам придется копать больше в ближайшее время ... включая unittest module
  • Документация действительно хороша, как правило, иллюстрируется примерами
  • Довольно просто связать его с C
  • Вы даже можете запускать скрипты Python из Java, используя JPython;)

У нас есть собственное программное обеспечение для наших нерегрессионных тестов. Хотя он был запрограммирован на Java (вероятно, для части с графическим интерфейсом и требованием переносимости Windows / Unix), Python был выбран в качестве языка для использования в самих нерегрессионных тестах.

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

Примечание. У меня нет практического опыта работы с LUA, поэтому я не могу выбирать между Python или LUA. Однако, используя Python и Ruby, я должен сказать, что я нашел Python гораздо более читабельным (конструкции цикла / пунктуация). Только постарайтесь не брать Perl;)

1 голос
/ 13 мая 2010

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

РЕДАКТИРОВАТЬ: Он также поставляется с C API .

1 голос
/ 13 мая 2010

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

Опыт сделает вас лучшим программистом, а знания - только лучшим тестером.

1 голос
/ 13 мая 2010

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

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

0 голосов
/ 13 мая 2010

Хорошо, насколько я понимаю, вопрос на самом деле, как я могу позволить непрограммистам писать автоматические тесты для приложения, написанного на c ++? Поэтому в этом контексте я бы предложил взглянуть на Fit и FitNesse .

Fit - это, по сути, таблица F ramework для I интеграции T esting. Идея состоит в том, что вы подключаете в код тестовые данные, а затем эти инструменты контролируются различными способами, используя только таблицы или в случае простой вики-разметки FitNesse, которая создает таблицы под капотом.

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

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

0 голосов
/ 13 мая 2010

Я думаю, что лучшим вопросом может быть то, что вы планируете делать с созданными программами. Я сделал Java, html, css, php, mysql, vb, C # и т. Д. И т. Д. Из всех них основы остаются неизменными. У вас всегда есть один и тот же тип логики от языка к языку. ЕСЛИ операторы ELSE, для циклов и т. Д. Однако, если вы не планируете создавать самозагружающиеся программы, вы бы пошли на что-то, что не будет этого делать.

Persoanlly Java сложна, но допускает большую переносимость. Не просто делайте то, что проще всего, потому что вы не сможете ничего с этим сделать в будущем.

РЕДАКТИРОВАТЬ *

если вам все еще интересно, у java есть возможность звонить в C ++, но не без проблем. Ссылка эта ссылка предназначена для совершения звонков, но может быть слишком сложной, если вы только надеетесь показать вводное программирование.

...