15

Я работаю в качестве ручного тестера и документации (планы тестирования и т. Д.) В программном обеспечении/ИТ-подразделении компании. У меня нет большого фона программирования, но я хочу изучать языки (языки) программирования и инструменты (ы). Следовательно, я ищу автоматические инструменты тестирования и язык программирования, чтобы узнать, что также дает мне промышленное преимущество.Язык, чтобы научиться переходить от ручного тестирования к автоматизированному программированию

Некоторые моменты следует отметить:

  1. Мне нужно знать, какие инструменты являются наиболее распространенными в промышленности и языков, связанных с этими инструментами.
  2. У меня не так много времени, чтобы узнать массу вещей. Следовательно, я ищу инструменты, которые используют языки, которые будут полезны для изучения, если я хочу больше программировать.
  3. Я бы предпочел тестирование веб-приложений, но это не ограничение.
  4. Вы можете дать 2-3 языка, поскольку я понимаю, что не может быть одного победителя.
  5. Я сделал некоторый QTP, который использует VBScript, но VBScript широко используется. Я хочу выучить язык с более широкой базой.
  6. Пожалуйста, по-прежнему давайте свои материалы и идеи, даже если этот вопрос кажется очень трудным для ответа.

Заранее спасибо.


EDIT: Я думаю, что до сих пор я решил, что я пойду на:

  1. QTP
  2. Селен
  3. Test Driven Методологии разработки

I просто нужно выяснить хороший язык программирования, который дает мне край программиста и подходит для нескольких инструментов тестирования (включая Selenium). Может быть, Python, Ruby или Java?

+0

Я думаю, что до сих пор я решил, что поеду за: 1. QTP, 2. Selenium, 3. Методы разработки, основанные на испытаниях. Мне просто нужно найти хороший язык программирования, который дает мне край программиста и подходит для нескольких инструментов тестирования (включая Selenium). Может быть, Python, Ruby или Java? – SKA

+0

Из этих 3 я бы выбрал java. Я бы сказал, что у него есть самые распространенные средства автоматического тестирования. Хотя Ruby и Python имеют более низкий барьер для входа. –

+0

Спасибо. Как насчет C# и nUnit? – SKA

ответ

11

Ничего себе, это довольно широкий вопрос. Я бы сказал, что вы были в хорошем положении, так как отрасль движется в сторону модели Test Driven Development (или напишите ваши тесты перед вашим кодом).

Прежде всего, вы хотите узнать о Unit Testing, Continuous Integration и веб-автоматизации.

Я собираюсь сосредоточиться на тех областях, которые я знаю (.NET, Java, JavaScript, автоматизации сборки, Selenium)

  1. В .NET NUnit, вероятно, является наиболее широко используемым модульного тестирования рамки. Это порт (копия) JUnit в мире java. Большинство модулей тестирования модулей очень похожи на эти понятия с точки зрения концепций. Так что научись одному, и тебе не понадобится много времени, чтобы забрать других.
  2. Я думаю, что чтение вышеуказанных ссылок и представление об этих концепциях помогут вам. Вероятно, стоит поэкспериментировать с Python или Ruby, поскольку они имеют низкие барьеры для входа в беспорядок с некоторыми простыми тестами.
  3. Для веб-тестирования наиболее известными являются, вероятно, Selenium и Watin. Это позволяет вам автоматически запускать браузеры для выполнения действий. Тем не менее, я натолкнулся на очень мало пользы от них, и они очень неудобны (вы говорите о днях/неделях усилий), чтобы их настроить и использовать. Опять же, концепции, лежащие в их основе, похожи на любые используемые вами рамки.

    Думаю, я ответил 4,5,6 в 1,2,3 :-)

HTH

+0

Спасибо за идею TDD. Я думаю, что большинство компаний сегодня идут Agile. Мне нужно это узнать. – SKA

+0

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

2
  1. Selenium очень популярен для автоматического тестирования на уровне QA.
  2. Независимо от того, что вы делаете, будет иметься какая-то кривая обучения, связанная с вашим решением.
  3. Точка Selenium должна предоставить структуру тестирования для webapps - вы используете Selenium для управления элементами DOM в браузере, без запуска версию вашего приложения.
  4. Selenium - модель клиент/сервер (вы запускаете сервер где-нибудь, у которого есть доступ к вашему экземпляру приложения QA, вы кодируете свои тесты с использованием клиентских библиотек), который предоставляет клиентам несколько языков (java, ruby ​​и т. Д.),

  5. Этот тип тестирования - хорошая идея, если у вас есть выделенные ресурсы QA, которые могут писать код. Он обеспечивает некоторые регрессионные тесты высокого уровня. Однако это не лишено недостатков: (1) тесты могут занять некоторое время, (2) вам может потребоваться внести некоторые изменения в элементы веб-приложения dom, чтобы использовать инфраструктуру легко, (3) изменение веб-приложения потребует изменяя ваш тестовый код, который может быть нетривиальным.

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

+0

Спасибо за идею Селена. Я думаю, что я обязательно погружусь в него вместе с QTP. – SKA

3

Что касается 'индустриальной выгоды' это зависит, что вы имеете в виду.

Для крупных компаний QTP широко используется. Вещь, чтобы учиться с QTP - это не язык, а сам инструмент. Для меня было более трудным преодолеть специфику инструмента, чем изучение VBscript. Если бы вы подумали о тестировании производительности, то, вероятно, это был бы выбор PerformanceCenter. Здесь у вас есть язык C, но опять же, есть больше борьбы с инструментом, чем с языком. В некоторых компаниях есть стек от IBM, поэтому программное обеспечение Rational начинает играть (FunctionalTester, Robot, PerformanceTester). Существует также небольшая сложность инструмента, с которой можно справиться (IBM Redbobks может помочь).

В небольших компаниях Java/C# может быть полезным. Здесь вы можете ознакомиться с junit/nunit/TestNG/MSTest. Для webapps стоит посмотреть на вещи, такие как Selenium/Watij/Watin/Fit/Fitness/Concordian. Если у вас есть минутный взгляд на AutoIT, PowerShell, Python, Fiddler, Jmeter, Abbot, Watir/Cucumber, Sikuli.

Существует также множество других инструментов, таких как WebAii, TestComplete, Twist .. некоторые другие коммерческие инструменты. Обычно вы можете получить судебные разбирательства для них, чтобы играть с ним в течение недели или двух.

Все зависит от того, какие проекты вы будете подвергать действию, и какой компанией это будет.

Независимо от того, на мой взгляд, достаточно изучать Java/C# до некоторой степени.Вам не нужно быть C#/Java ninja, знать каждую библиотеку и изучать действительно жесткий язык. Вы видите, что разработка программного обеспечения - это больше, чем знание языка программирования, а автоматизация тестирования - это больше, чем знание инструмента/языка (M. Fewster & D. Graham), поэтому не обдумывайтесь об этом. Если вы можете запрограммировать скрипт в QTP (не записывать, а программу, используя Описательное программирование, разлагая логику в библиотеки, имея полный контроль над TestResults с помощью надлежащих методов и т. Д.), Чем другие инструменты не будут проблемой. Вам может понадобиться неделя или два, чтобы изучить основы данного языка, но это все для автоматизации тестирования (для начала как минимум). Вам нужно больше иметь некоторый опыт, знать инструменты, знать понятия, знать плюсы и минусы разных подходов, иметь более общую картину в голове, чем просто «как я пишу это на этом языке» (у вас есть SO для этого : D).

+0

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

+1

Чем вы идете с Java/C#, и погружайтесь в TDD, BDD, ATDD и другие проворные вещи. – yoosiba

+0

Yea. Я думал C# с nUnit. Это очень сложно, хотя Java Vs C#. – SKA

3

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

я нашел следующие полезные при создании сценарных/автоматизированных испытательных объекты:

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

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

C - При тестировании скомпилированных библиотек у меня был удивительный успех, используя хороший «ol C. Я напишу основной скелет для тестового приложения и создаю скриптовую утилиту, которая будет динамически генерировать остальную часть кода основанный на том, какие тесты необходимо выполнить (я даю ему библиотеку фрагментов примера С, которые он может использовать для более сложных задач).

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

В зависимости от того, что вы тестируете, у вас также могут быть какие-то инструменты тестирования, встроенные в тестируемый вами код. Java-код иногда записывается с помощью тестов JUnit, код Ruby может использовать платформу Test :: Unit и т. Д. Here - это список модулей модульного тестирования для самых разных языков. Если код, который вы тестируете, был построен с учетом модульного тестирования, вам нужно будет изучить язык, на котором был написан код, чтобы вы могли воспользоваться этими модульными тестами.

+0

Я буду выполнять в основном функции веб-приложений. – SKA

+1

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

+0

Спасибо. Мой муж любит Питона. – SKA

3

Для веб-тестирования вы можете проверить fitnesse. Кроме того, автоматическая тестовая среда, построенная на python, - это robot framework.

0
  • Да, вы можете узнать селен IDE, его только в качестве дополнения на в браузере FireFox, с помощью которой вы можете записывать ваши тесты и воспроизводить их в случае необходимости. Ограничение IDE можно использовать только в firefox.

  • Если вы хотите протестировать на нескольких браузерах, вам нужна Selenium Grid или WebDriver, которая требует знания Java. И снова вам не нужно быть Java-профессионалом, чтобы сделать это, простое обучение поможет.

  • Вы можете найти на сайте youtube.com для Selenium Tutorials.

Преимущества Селен:

  1. Его Открыть SOURSE !!
  2. Его легко узнать и имплиментация.
  3. Поддерживает несколько браузеров.
  4. Поддерживает несколько языков сценариев/программирования.
  5. Гибкий по вашему выбору, простой записи и воспроизведения (IDE), дизайн рамочной сборки по вашему выбору, используя ваш любимый язык программирования.
  6. Поддержка выполнения parellel.

Надеюсь, это вам поможет.

1

Я также добавить небольшой комментарий

Существует новая автоматизация тестирования платформы XML2Selenium

Эта платформа построена на вершине каркаса Классис Селен и предоставляет множество полезных функций

Но это вполне простой в использовании

Вам не нужно выучить любой Java или рубин - вы можете написать в XML

SMTH так:

<!-- here we have some imports Frame - is like a class, you can extend it with extends --> 
<import resource="Demo.a-server/03Registration/framesRegist.xml" name="frames"/> 
<import resource="Demo.a-server/01Action/FramesAction.xml" name="framesAct"/> 
<import resource="Demo.a-server/03Registration/FramesLogin.xml" name="framesLog"/> 

<property resource="Demo.a-server/LogValue.properties" name="logValue"/> 
<test name="creatAction" description="create and check action"> 

<frame extends="frames:logAdmin"/> 
<frame extends="framesAct:createAct"/> 

// here we upload the image 
<upload id="img_id0" resource="image.jpg"/> 

// click save button with id=save 
<button id="save" /> 

// make a screen shot 
<screenshot/> 

// sleep for 3 seconds 
<pause time="3000" /> 

// make a screenshot again 
<screenshot/> 

// navigate to the given URL: 
<navigate to="${logValue.baseUrl}/admin"/> 

<frame extends="framesLog:logOutAdmin"/> 
<pause time="1000"/> 
</test> 

Здесь вы можете увидеть отчет с ошибками: http://xml2selenium.com/demored/xml2selenium/

И здесь вы можете увидеть отчет с успешным государством: http://xml2selenium.com/demogreen/xml2selenium/

PS: Он поддерживает тестирование во всех браузерах , а не только в Firefox, как Selenium IDE