GUIの自動テストを行うにはどうすればよいですか?


8

見えているものと見えないものを自動的に確認するにはどうすればよいですか?または、少なくとも一部の自動テストをどのように整理できますか?

IDE:Eclipse(必要に応じてIntelliJ Ideaも使用できます)

テストツール:Junit(ここでも、助言されれば他の何かを使用できますが、無料であればより良いです)

アプリケーションOS:Android

開発者のOS:Linux(MACまたはWindowsで変更される可能性があります(しぶしぶ))

言語:Java

すべての作業は外部デバイスで行われます。エミュレーターはありません。

このアプリケーションは、外部アクティビティと呼ばれるファームウェアTVプレーヤーのユーザーラッパーです。したがって、コードの70%はGUI用です。(残りの30%はサーバーに話しかけ、GUIに情報を提供します)

テスト機能をプログラムする前は、ツールを使用していません。今私は手元にツールを持っています。しかし、UIをツールを使用して、またはツールを使用せずにテストする方法を想像することはできません。(厳密には、インターネット接続では問題も発生しますが、おそらく他の質問のために残しておきます。)答えはプラットフォームに依存しすぎている必要はありません。原則とアイデアも役立ちます。

もちろん、チェックするのは良いことです。別の要素があり、チェックされているかどうかです。そのためには、いくつかの回帰チェックが適しています。しかし、アニメーションで注文したように、言及されている要素が他の要素やウィンクによってカットされていないことも確認する必要があります。

ここでのアドバイス:https : //softwareengineering.stackexchange.com/questions/63245/is-there-a-tool-to-test-java-ui は役に立ちません-ツールのみであり、原則ではなく、私の状況ではツールが役立ちます。


sqa.stackexchange.comで質問することを検討しましたか?ところで、テストでキャプチャできるものは何ですか-GUIオブジェクト、画面ピクセル、キーボード/ポインターデバイスイベント?
gnat

ありがとうございました。ここではそのサーバーについて知りませんでした。多分、後であるモデレーターが私の質問をそこに移動します。(ところで、テストに独自のサーバーが必要な理由はわかりません)。あなたの他の文については、私は思う、それはAndroidではいつものことです-オブジェクト-はい、ピクセル-は、いくつかのトリックを通じて可能性がありますか?-わからない、イベント-はい。JUnitはGUIからピクセルを読み取ることができますか?
Gangnus

Android向けの優れたオープンソースの自動テストツールはRobotiumです。
Corey D

回答:


5

ほとんどの場合、自動GUIテストの最良のアドバイスは、Model-View-Presenterスタイルでアプリケーションを開発し、Presenterに対してテストを作成することです。トピックはここで議論されます:

http://danbunea.blogspot.com/2005/11/model-view-presenter-is-testing_27.html

(その記事の最後にさらにリンクがあります)。

もちろん、「何が表示され、何が表示されないかを自動的に確認する」ことはできませんが、UIロジックのほとんどをテストするのに役立つ場合があります。


記事をありがとうございます。問題は、私のアプリケーションでは逆に、ビューが最も複雑な部分であり、プレゼンターとモデルが十分にプリミティブであり、テストする必要があるのがビュー部分であるということです。私が言ったとおり、「見えているものと見えていないものを自動的にチェックする」または部分的に自動的にしたい。
Gangnus

+1、あなたは別の質問(programmers.stackexchange.com/questions/133134/…)に案内してくれました:-)私はそれについてあなたの意見を読んで喜んでいます。
Gangnus

1

画面を直接操作できるテストフレームワークがあります。私の仕事では、IBM Rational Functional Testerを使用しています。これにより、通常のプログラムによるテストだけでなく、ボタンなどをクリックすることもできます。明らかに、それは無料ではありませんが、ウィキペディアで調べると、この代替案のリストが提供されます。あなたがJavaを見ているので、EclipseプラグインであるCubicTestがあります。代替には、MaveryxAbbotが含まれます。


あなたの試みのための+1。しかし、私が見ているように、これらのツールはAndroidでは機能しません。
Gangnus

@Gangnus Drat、私は少なくとも1人がそうすることを望んでいた。残念ながら、Android固有の開発に慣れていません
Yamikuronue

悲しいかな、私は本当に難しい問題を抱えています-私のアプリはエミュレータではなく、つまりPCでデバッグされていますが、外部のAndoidデバイスでデバッグされています。それで、それをテストするための準備ができているツールがないことを私はほぼ確信しています。自分でプロセスを整理する必要があります。しかし、どのように...私は何をチェックしなければならないか、そのようなテストを行うことの問題は何か、回帰テストはどのように構成されているか...誰もが私にツールへのリンクを与えますが、私は考えへのリンクが必要です。もちろん、私はとても喜んでツールを利用しますが、ツールはありません...なんて悲しい世界... :-)
Gangnus

@Gangnus私の同僚は、エミュレーターでさえGUIのデバッグを困難にすることを知らせています。それは、何か特別に設計されていない限り、GUIはまったく追加のレイヤーを扱うためです。テストのモデル化に関しては、ツールを使用して、プログラムのパスの概要を示すフローチャートを作成します。私が思う私たちのツールは社内で作られていますが、フローチャートのすべての可能なトラバーサル(テストスクリプトになる)のリストを生成する機能があります。
Yamikuronue、2012

0

私はtestcompleteを使用しています。GUIテストの自動化に使用した最も包括的なツールです。 http://smartbear.com/products/qa-tools/automated-testing/ 確認してくださいこれがあなたにぴったりでJavaをサポートしていることは本当にポジティブです


ありがとうございますが、それは次のとおりです。a)Windows b)Android向けではありませんc)無料ではありません。「c」や「a」も克服できましたが、「b」は残念です。
Gangnus

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.