15

私は、会社のソフトウェア/IT 部門で、手動テスト担当者および文書化 (テスト計画など) 担当者として働いています。プログラミングのバックグラウンドはあまりありませんが、プログラミング言語とツールを学びたいです。したがって、私は自動化されたテスト ツールとプログラミング言語を探しており、これらを学ぶことで産業上の利点も得ることができます。

注意すべき点は次のとおりです。

  1. 業界で最も一般的なツールと、それらのツールに関連する言語を知る必要があります。
  2. たくさんのことを学ぶ時間はあまりありません。したがって、もっとプログラミングをしたい場合に備えて、学ぶのに有益な言語を使用するツールを探しています。
  3. Web ベースのアプリのテストを希望しますが、それは制約ではありません。
  4. 勝者は 1 人ではないことを理解しているので、2 つか 3 つの言語を指定できます。
  5. VBScript を使用する QTP をいくつか実行しましたが、VBScript は広く使用されていません。もっとベースの広い言語を学びたいです。
  6. この質問に答えるのが非常に難しいと思われる場合でも、ご意見やアイデアをお寄せください。

前もって感謝します。


編集: これまでのところ、私は次のことを行うことに決めたと思います:

  1. QTP
  2. セレン
  3. テスト駆動開発方法論

プログラマーとしての優位性があり、複数のテスト ツール (Selenium を含む) に適した優れたプログラミング言語を見つけ出す必要があるだけです。おそらくPython、Ruby、またはJava?

4

7 に答える 7

11

Wow this is quite a widesweeping question. I'd say you were in a good position as the industry moves towards a Test Driven Development (or write your tests before your code) model.

First of all you'll want to know about Unit Testing, Continuous Integration and Web Automation.

I'm going to focus on the areas I know (.NET, Java, Javascript, Build automation, Selenium)

  1. In .NET NUnit is probably the most widely used unit testing framework. It is a port (copy of) JUnit in the java world. Most unit testing frameworks are very similar to these in terms of the concepts. So learn one and it won't take you long to pick up the others.

  2. I think reading the above links and having an idea about these concepts will get you on your way. It's probably worth experimenting with Python or Ruby as these have low barriers to entry to mess around with some simple tests.

  3. For web based testing the most well known are probably Selenium and Watin. These allow you to script browsers to perform actions automatically. However, I have come across very few good usage of these and they are very fiddly (you're talking days/weeks of effort) to get set up and useful. Again the concepts behind these are similar whatever framework you use.

    Think I answered 4,5,6 in 1,2,3 :-)

HTH

于 2010-07-26T18:46:35.210 に答える
3

この質問に対する答えは、実際にはいくつかのことに依存します。まず、どのような試験を行っていますか?Web ベースのアプリケーションをテストしますか? より大きなプログラムのライブラリ/コンポーネントをテストしていますか? GUIテスト?コマンドライン アプリをテストしますか?

スクリプト化された/自動化されたテスト機能を作成するときに、次のことが役立つことがわかりました。

TCL - TCL は、バッチ ファイルと同じくらい簡単にコマンド ラインとやり取りできますが、バッチを水から吹き飛ばす強力な言語 (GUI 機能を含む) を備えています。Windows ベースのコンソール アプリのスクリプトを作成している場合 (それらをテストするため、またはそれらを使用して他の何かをテストするため)、時間をかけて TCL を習得することをお勧めします。

AutoIt - このスクリプト言語を使用すると、Windows アプリとの UI 対話をすばやく簡単に自動化できます。また、習得もかなり簡単です。時間と労力をかけてスクリーン スクレイピング ユーティリティを開発したい場合は、それを AutoIt と組み合わせて、かなり洗練されたテスト システムを作成できます。

C - コンパイルされたライブラリをテストするとき、古き良き C を使用して驚くほどの成功を収めました。テスト アプリの基本的なスケルトンを作成し、テストに基づいて残りのコードを動的に生成するスクリプト ユーティリティを作成します。実行する必要があります (より複雑なタスクに使用できるサンプル C スニペットのライブラリを提供します)。

Ruby - 自動化されたテストを行う場合、堅牢なスクリプト言語は非常に優れています。テスト ログの解析、レポートの生成、またはテスト スクリプトの自動生成が必要な場合でも、よく知っているスクリプト言語を使用すると、多くの時間と頭痛の種を節約できます。私が選んだ言語は Ruby ですが、会社の他のメンバーは Perl や Python などの他の言語を好みます。言語の選択はそれほど重要ではありません。1 つ選んでよく学びましょう。

何をテストしているかによっては、テストしているコードに何らかのテスト ツールが組み込まれている場合もあります。Java コードは JUnit テストで記述される場合があり、Ruby コードは Test::Unit フレームワークなどを使用できます 。さまざまな言語のユニット テスト フレームワークのリストを次に示します。テストしているコードが単体テストを念頭に置いて作成されている場合は、これらの単体テストを活用できるように、コードが記述された言語を学習する必要があります。

于 2010-07-27T00:38:53.903 に答える
3

「産業上の利点」に関しては、それが何を意味するかによります。

大企業では、QTP が広く使用されています。QTP で学ぶべきことは、実際には言語ではなく、ツールそのものです。私にとっては、VBscript を学ぶよりも、ツールの仕様を克服する方が面倒でした。パフォーマンス テストについて考える場合は、PerformanceCenter を選択することをお勧めします。ここでは言語として C を使用していますが、言語よりもツールの方が苦労しています。一部の企業では IBM からのスタックがあるため、Rational ソフトウェア (FunctionalTester、Robot、PerformanceTester) が機能します。また、ツールの複雑さも多少あります (IBM Redbobks が役に立ちます)。

小規模な企業では、Java/C# が有益な場合があります。ここで、junit/nunit/TestNG/MSTest に慣れることができます。Selenium/Watij/Watin/Fit/Fitness/Concordian などの Web アプリケーションは一見の価値があります。AutoIT、PowerShell、Python、Fiddler、Jmeter、Abbot、Watir/Cucumber、Sikuli を見てみましょう。

WebAii、TestComplete、Twist など、他にも多くのツールがあります。その他の商用ツールもあります。通常、あなたは彼らがそれで遊ぶための試用版を1、2週間得ることができます.

すべては、あなたがどのようなプロジェクトに参加するか、どのような会社になるかによって異なります。

とにかく、Java/C# をある程度学べば十分だと思います。C#/Java の忍者である必要はなく、すべてのライブラリを知っていて、与えられた言語を一生懸命勉強する必要はありません。ソフトウェアの開発はプログラミング言語の知識以上のものであり、テストの自動化はツール/言語の知識以上のものです (M. Fewster & D. Graham) ので、それに執着しないでください。QTPでスクリプトをプログラムできる場合(記録ではなくプログラム、記述的プログラミングを使用する、ロジックをライブラリに分解する、適切なメソッドを介して TestResults を完全に制御するなど)、他のツールよりも問題になりません。特定の言語の基礎を学ぶのに 1 週​​間か 2 週間かかるかもしれませんが、それはテストの自動化のためです (少なくとも最初は)。経験を積む、ツールを知る、概念を知る、さまざまなアプローチの長所と短所を知る、頭の中で全体像を把握するには、「その言語でこれをどのように書くか」だけでなく、もっと必要です (これには SO があります)。 :D)。

于 2010-07-26T23:55:53.087 に答える
3

Web ベースのテストについては、fitnesseを確認してください。また、Python 上に構築された自動テスト フレームワークは、ロボット フレームワークです。

于 2010-07-27T00:46:44.280 に答える
2
  1. Selenium is very popular for automated testing at the QA level.
  2. No matter what you do, there will be some learning curve associated with your solution
  3. The point of Selenium is to provide a testing framework for webapps -- you use Selenium to manipulate DOM elements in the browser, no a running version of your application.
  4. Selenium is a client/server model (you run the server somewhere that has access to your QA app instance; you code your tests using the client libraries) that provides clients in a number of languages (java, ruby, etc)

  5. This type of testing is a good idea if you have have dedicated QA resources that can write code. It provides some high level regression testing. However it is not without its drawbacks: (1) tests can take some time to run, (2) you might need to make some changes to your web application dom elements to use the framework easily, (3) changing the web app will require changing your testing code, which can be non trivial.

Your other options is to write unit tests for the application code. Usually the developers do this as part of a test-driven process. So there is TDD for developers and then automated QA testing for QA.

于 2010-07-26T18:46:05.010 に答える
1

ちょっとしたコメントも添えます

新しいテスト自動化プラットフォーム XML2Selenium があります

このプラットフォームは classis Selenium フレームワークの上に構築され、多くの便利な機能を提供します

しかし、それは非常に使いやすいです

Java や Ruby を学ぶ必要はありません。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: Selenium IDE としての Firefox だけでなく、すべてのブラウザーでのテストをサポートしています。

于 2013-09-07T13:38:47.217 に答える
0
  • はい、Selenium IDE を学習できます。Firefox ブラウザーのアドオンとして、テストを記録し、必要に応じて再生することができます。IDE の制限は、Firefox でしか使用できないことです。

  • 複数のブラウザーでテストする場合は、Java の知識が必要な Selenium Grid または WebDriver が必要です。繰り返しになりますが、これを行うために Java のプロである必要はありません。簡単な学習が役に立ちます。

  • youtube.com で Selenium チュートリアルを検索できます。

セレンの利点:

  1. そのオープンソース!!
  2. 習得が簡単で実装が容易です。
  3. 複数のブラウザーをサポートします。
  4. 複数のスクリプト/プログラミング言語をサポートします。
  5. 柔軟な選択、簡単な記録と再生 (IDE)、お気に入りのプログラミング言語を使用することによる完全なフレームワーク設計。
  6. 並列実行をサポートします。

これがあなたを助けることを願っています。

于 2013-05-13T13:50:11.507 に答える