狠狠撸
Submit Search
贵贰厂罢-厂飞颈苍驳で贵别蝉迟颈惫补濒!
?
Download as PPT, PDF
?
0 likes
?
673 views
You Osaki
Follow
第7回 xUnit Test Patterns(xUTP)読書会(http://atnd.org/events/1835)で発表した、GUIテストについての資料です。
Read less
Read more
1 of 29
Download now
Download to read offline
More Related Content
贵贰厂罢-厂飞颈苍驳で贵别蝉迟颈惫补濒!
1.
FEST-Swing で Festival
!!! よう (@youchan)
2.
自己紹介 ようです! イケメン
CTO でおなじみの 株式会社アプレッソで働いてます。 DataSpider という EAI のソフトの開発をしています。
3.
Agenda GUI のテスティングとは?
FEST-Swing + TestNG DataSpider チームにおける GUI テスト Inside FEST-Swing まとめ
4.
Agenda GUI のテスティングとは?
FEST-Swing + TestNG DataSpider チームにおける GUI テスト Inside FEST-Swing まとめ
5.
経緯 ユニットテストによる自動テスト GUI
のテスティングとは? 単純なユーザー操作で見つかる不具合も検出できない。
6.
経緯 テスト仕様書を作成して 手動でテスト
GUI のテスティングとは? テストのコスト増加
7.
経緯 テスト仕様書を元に GUI
の自動テスト GUI のテスティングとは? GUI のオートメーションテスト
8.
GUI のテスティングとは? Unit
テストではカバーすることのできない、ユーザーの操作とビューの検証 ? ユーザーの操作をエミュレートすることによって、よりユーザーに近い部分での不具合を早期に発見 手間のかかる GUI のテストを自動化 ユーザーの操作を再現するため、シナリオ的なテスト GUI のテスティングとは?
9.
Agenda GUI のテスティングとは?
FEST-Swing + TestNG DataSpider チームにおける GUI テスト Inside FEST-Swing まとめ
10.
GUI テストに求められるもの ユーザー操作の自動化
よりユーザーの操作に近い再現性 コンポーネントレベルの記述性 ビューの検証 モデルの検証 ユーザー操作をシナリオ的に実行 FEST-Swing + TestNG
11.
GUI テストのツール Java
のツール Swing 用と SWT 用とで分かれる。 SWT は SWT 自体に GUI テストの仕組みがある。 Swing のツール Abbot FEST-Swing UISpec4J SwingUnit Fest-Swing + TestNG
12.
FEST-Swing の選定の決め手 開発のアクティビティ
? ? SwingUnit ? ? Abbot 開発が終了していた API の使いやすさ ? ? UISpec4J ? カスタムの ToolKit を使っていて DataSpider では使えなかった Fest-Swing + TestNG
13.
TestNG の採用 シナリオ的にテストケースを実行するために、
TestNG を採用した。 Fest-Swing + TestNG JUnit4 TestNG グループ ○ ○ 依存関係 × ○ ステートフル × ○
14.
Agenda GUI のテスティングとは?
FEST-Swing + TestNG DataSpider チームにおける GUI テスト Inside FEST-Swing まとめ
15.
DataSpiderTestBench DataSpider Client
を起動し、 Client を操作するためのテストベンチを作成した。 コンポーネントは Client の JFrame からすべて検索することが出来る。 DataSpider チームにおける GUI テスト
16.
起動のシーケンス DataSpider チームにおける
GUI テスト
17.
TestNG によるシナリオ実行 TestNG
ではグループと依存関係を記述することが出来る。 DataSpider チームにおける GUI テスト @Test(groups = { "Group1" }) public void TestCase1() throws Exception { ?? ? // description of test case } @Test(groups = { "Group1" }, dependsOnMethods = { "TestCase1" } ) public void TestCase2() throws Exception { ?? ? // description of test case }
18.
TestNG によるシナリオ実行 グループ間の依存関係を記述することが出来る。
DataSpider チームにおける GUI テスト @Test(groups = { "Group1" }) public void TestCase1() throws Exception { ?? ? // description of test case } @Test(groups = { "Group2" }, dependsOnGroups = { "Group1" } , alwaysRun = true) public void TestCase2() throws Exception { ?? ? // description of test case }
19.
TestNG によるシナリオ実行 DataSpider
チームにおける GUI テスト
20.
EDT とウェイト処理 DataSpider
チームにおける GUI テスト 名前による検索 あらかじめ setName() で名前をつけておく クラスによる検索 同じクラスのコンポーネントが複数存在しない場合に有効 ラベルなどの Text プロパティによる検索 ラベルに関連付けられたコンポーネントは setLabelFor() しておく その他 関連付けられているモデルなどから
21.
コンポーネントの検索 DataSpider チームにおける
GUI テスト ソースコード参照
22.
EDT とウェイト処理 DataSpider
チームにおける GUI テスト
23.
EDT とウェイト処理 DataSpider
チームにおける GUI テスト ソースコード参照
24.
Agenda GUI のテスティングとは?
FEST-Swing + TestNG DataSpider チームにおける GUI テスト Inside FEST-Swing まとめ
25.
ComponentFixture Inside FEST-Swing
26.
java.awt.Robot Inside FEST-Swing
27.
Agenda GUI のテスティングとは?
FEST-Swing + TestNG DataSpider チームにおける GUI テスト Inside FEST-Swing まとめ
28.
GUI テストの守備範囲 シナリオ的なテストになるので、ユニットテストとはフェーズが異なる。
QA チームが従来行っていた GUI の状態など、手作業ではコストもかかり、不確実なところに適用できる。 まとめ
29.
課題 操作感といったところまで踏み込んでテストすることはできない。 自動化出来ない
テスト作成のコストが大きい。 ユーザー操作の自動記録の機能がほしい あるいは DSL 的なアプローチ(テスト仕様書) まとめ
Download