SlideShare a Scribd company logo
1 of 24
Download to read offline
機能テストの機能テストの
自働化自働化
自動自動++手動テストケース共生による手動テストケース共生による
機能テストの現実的な自動化機能テストの現実的な自動化
2009.01.29 JaSST2009
(株) 永和システムマネジメント
懸田 剛
懸田剛
かけだ たけし
2008/08 Agile20082008/08 Agile2008
アジェンダ
●背景
●試行内容
●利点
●課題
●次へのTry
●まとめ
自働化
とは ?
不良が発生した際に機械が自動的に停止し、後の工
程へ良品のみを送るようにすること、公式ページでは
通常の加工が完了したら機械を安全に停止させること
も指すとしている。豊田佐吉が発明した自動織機に、
稼動中に糸が切れた際に自動で停止する装置が組み
込まれていたことに由来している。
半自動化
Semi-
Automatic
背景
● IBM JRE 1.5
● Tomcat 5.x
● GWT 1.5
● IBM Rational Team Concert 1.0
TRICHORD
自動
手動
テスト管理ツールテスト管理ツール
を使えば軽減を使えば軽減
背景 - 課題
自動テストと自動テストと
手動テストの手動テストの
管理が分散管理が分散
手動テストの手動テストの
実施コスト大実施コスト大
自動化が自動化が
困難なケース困難なケース
自働 ( 半自動 )
試行内容
●assertManuallyというメソッドを作成
● 人がアサーションする
● JUnit+SeleniumRC内で利用
●AssertManuallyの振舞
● 1.テスターに目視する内容を提示する
● 2.テストする時間待つ
● 3.テストの結果がどうだったかをテスターに問う
● テストがまだ終っていない場合は再度2へ
● アサーションがOKなら次のステップへ
● アサーションがNGなら失敗で例外
●設定で(自動+手動)、(自動のみ)を選択可能
手動 + 自動テストの例 (1)
Public class AcceptanceXXXTest extends TestCase {
protected void setUp() {
do_something(); //事前処理
}
Protected void tearDown() {
do_something(); //事後処理
}
public void test_ログインが成功時ダイアログがアニメーションして表示されること() {
//画面遷移などの自動処理
open_login();
input_id_and_password(“ user”,”pass” );
push_ok();
assertEquals(“ ”ログイン成功 , get_message());
// マニュアルモードなら手動実施
If (isManual()) {
assertManually(“ ”ダイアログがアニメーションして表示しましたか? ,
“ (失敗時) ”ダイアログがアニメーションしませんでした );
}
}
}
通常のSeleniumRCの
テストのように自動処理
手動で目視確認する内容を記述。
テストケースがテスターに
確認すべき内容を知らせる
手動 + 自動テストの例 (2)
Public class AcceptanceXXXTest extends TestCase {
protected void setUp() {
do_something(); //事前処理(データロードなど)
}
Protected void tearDown() {
do_something(); //事後処理
}
public void test_ログインが成功時ダイアログがアニメーションして表示されること() {
//画面遷移など
open_login();
input_id_and_password(“ user”,”pass” );
push_ok();
//マニュアルなら実行する
If (isManual()) {
showMessage(“ ”画像をドラッグして領域外にドロップしてください );
assertManually(“ ”カーソルのアイコンが禁止アイコンになりましたか? ,
“ ”アイコンが禁止アイコンになりませんでした );
}
}
}
シナリオ部分も手動で
テスターに実行してもらう
手動で目視確認する内容を記述。
テストケースがテスターに
確認すべき内容を知らせる
3つの利点
管理管理
一元化一元化
段階的段階的
自動化自動化
一部一部))自動自動||手動手動((
によるによる
効率化効率化
自動テスト 手動テスト
集約集約
管理一元化
効率化
自動自動//手動の手動の
混在混在
● 自動アサーションが難しい部分
● 視覚効果
● 形
● レイアウト
– etc
● 自動化できない処理
● 外部環境への操作
● 変更周波数の大きい箇所
半自動向け
● 最初は半自動
● 難易度の高い部分は手動検証
● 検証後に自動化
段階的自動化
半自動
自動
● 同一画面上に指示ダイアログを表示してしまう
● alert/confirmを何とかすべき
● 途中から、単一実行に難
● 手動ミスのリカバリ
● バラバラに実行した時のテスト結果の扱い
● テスト開始時にテスト内容が不明
● そのテストがどういうテストなのか直前まで分から
ない
課題
同一画面上に指示ダイアログ
Public class AcceptanceXXXTest extends TestCase {
protected void setUp() {
do_something(); //事前処理(データロードなど)
}
Protected void tearDown() {
do_something(); //事後処理
}
public void test_ログインが成功時ダイアログがアニメーションして表示されること() {
//画面遷移など
open_login();
input_id_and_password(“ user”,”pass” );
push_ok();
//マニュアルなら実行する
If (isManual()) {
showMessage(“ ”画像をドラッグして領域外にドロップしてください );
assertManually(“ ”カーソルのアイコンが禁止アイコンになりましたか? ,
“ ”アイコンが禁止アイコンになりませんでした );
}
}
}
実行時にダイアログが
表示してしまう
● チートシートウィンドウ
● テスト手順はそちらに表示する
● テスト結果のReRun対応
● 実行前にテストのタイトルを表示する
● 汎用化
● ツール、フレームワーク化
次への Try
●自動+手動=半自動(自働)
– コンピュータは単純作業を実施する
– 人は複雑な作業と不良の確認を担当する
●現実的なオートメーション
●過度な自動化、妥協した手動化を防ぐ
●もう一工夫必要
まとめ
御静聴
ありがとう
ございました

More Related Content

More from Takeshi Kakeda

DX時代のITエンジニアに送る、アジャイル式「いきいき」ヘルスマネジメント
DX時代のITエンジニアに送る、アジャイル式「いきいき」ヘルスマネジメントDX時代のITエンジニアに送る、アジャイル式「いきいき」ヘルスマネジメント
DX時代のITエンジニアに送る、アジャイル式「いきいき」ヘルスマネジメントTakeshi Kakeda
 
「自分の内側を観る」と 世界が変わるかも?~自分自身を紐解くメンタルモデルのご紹介~
「自分の内側を観る」と 世界が変わるかも?~自分自身を紐解くメンタルモデルのご紹介~「自分の内側を観る」と 世界が変わるかも?~自分自身を紐解くメンタルモデルのご紹介~
「自分の内側を観る」と 世界が変わるかも?~自分自身を紐解くメンタルモデルのご紹介~Takeshi Kakeda
 
日本アジャイル昔話 『忘れられたXPer』 XP祭り2021
日本アジャイル昔話 『忘れられたXPer』 XP祭り2021日本アジャイル昔話 『忘れられたXPer』 XP祭り2021
日本アジャイル昔話 『忘れられたXPer』 XP祭り2021Takeshi Kakeda
 
個人から始める変化〜 IKIGAIマップ、マルチ・ポテンシャライト、ザ・メンタルモデルを入口にして〜(公開変更版)
個人から始める変化〜 IKIGAIマップ、マルチ・ポテンシャライト、ザ・メンタルモデルを入口にして〜(公開変更版)個人から始める変化〜 IKIGAIマップ、マルチ・ポテンシャライト、ザ・メンタルモデルを入口にして〜(公開変更版)
個人から始める変化〜 IKIGAIマップ、マルチ・ポテンシャライト、ザ・メンタルモデルを入口にして〜(公開変更版)Takeshi Kakeda
 
創造的なメタファー思考のススメ
創造的なメタファー思考のススメ創造的なメタファー思考のススメ
創造的なメタファー思考のススメTakeshi Kakeda
 
Agile459 10周年 オープニング&クロージングトーク
Agile459 10周年 オープニング&クロージングトークAgile459 10周年 オープニング&クロージングトーク
Agile459 10周年 オープニング&クロージングトークTakeshi Kakeda
 
地方コミュニティジャーニー〜地方アジャイルコミュニティをゼロから立ち上げて10年間で体験してきたこと
地方コミュニティジャーニー〜地方アジャイルコミュニティをゼロから立ち上げて10年間で体験してきたこと地方コミュニティジャーニー〜地方アジャイルコミュニティをゼロから立ち上げて10年間で体験してきたこと
地方コミュニティジャーニー〜地方アジャイルコミュニティをゼロから立ち上げて10年間で体験してきたことTakeshi Kakeda
 
パーマカルチャーとパタン・ランゲージ
パーマカルチャーとパタン・ランゲージパーマカルチャーとパタン・ランゲージ
パーマカルチャーとパタン・ランゲージTakeshi Kakeda
 
アジャイル・スクラム時代のパタン・ランゲージとアレグザンダー理論
アジャイル・スクラム時代のパタン・ランゲージとアレグザンダー理論アジャイル・スクラム時代のパタン・ランゲージとアレグザンダー理論
アジャイル・スクラム時代のパタン・ランゲージとアレグザンダー理論Takeshi Kakeda
 
この一年の経験・学び忘年LT in Agile459 忘年LT大会
この一年の経験・学び忘年LT in Agile459 忘年LT大会この一年の経験・学び忘年LT in Agile459 忘年LT大会
この一年の経験・学び忘年LT in Agile459 忘年LT大会Takeshi Kakeda
 
非現実的な圧倒的スケールの中で何を想った感じたか CCC2019 参戦記
非現実的な圧倒的スケールの中で何を想った感じたか CCC2019 参戦記非現実的な圧倒的スケールの中で何を想った感じたか CCC2019 参戦記
非現実的な圧倒的スケールの中で何を想った感じたか CCC2019 参戦記Takeshi Kakeda
 
2019/08/31 Agile Japan 2019 サテライト香川 『壁を越える』ために知っておきたいこと
2019/08/31 Agile Japan 2019 サテライト香川 『壁を越える』ために知っておきたいこと2019/08/31 Agile Japan 2019 サテライト香川 『壁を越える』ために知っておきたいこと
2019/08/31 Agile Japan 2019 サテライト香川 『壁を越える』ために知っておきたいことTakeshi Kakeda
 
20190223 私の学びの研究〜アタマとカラダとココロ〜(更新版)
20190223 私の学びの研究〜アタマとカラダとココロ〜(更新版)20190223 私の学びの研究〜アタマとカラダとココロ〜(更新版)
20190223 私の学びの研究〜アタマとカラダとココロ〜(更新版)Takeshi Kakeda
 
ソフトウェア開発とパタン・ランゲージ再考
ソフトウェア開発とパタン・ランゲージ再考ソフトウェア開発とパタン・ランゲージ再考
ソフトウェア開発とパタン・ランゲージ再考Takeshi Kakeda
 
四国のアジャイル第2ターンに向けてのビジョン
四国のアジャイル第2ターンに向けてのビジョン四国のアジャイル第2ターンに向けてのビジョン
四国のアジャイル第2ターンに向けてのビジョンTakeshi Kakeda
 
「松山」がどう見える? 〜東京からの 移住者の視点〜
「松山」がどう見える? 〜東京からの 移住者の視点〜「松山」がどう見える? 〜東京からの 移住者の視点〜
「松山」がどう見える? 〜東京からの 移住者の視点〜Takeshi Kakeda
 
いきかたダイアグラムで仕事を棚卸ししよう
いきかたダイアグラムで仕事を棚卸ししよういきかたダイアグラムで仕事を棚卸ししよう
いきかたダイアグラムで仕事を棚卸ししようTakeshi Kakeda
 
地方コミュニティが直面する課題と未来のビジョンとは?
地方コミュニティが直面する課題と未来のビジョンとは?地方コミュニティが直面する課題と未来のビジョンとは?
地方コミュニティが直面する課題と未来のビジョンとは?Takeshi Kakeda
 
Metaphor We Design By 失われたメタファーの秘密
Metaphor We Design By 失われたメタファーの秘密Metaphor We Design By 失われたメタファーの秘密
Metaphor We Design By 失われたメタファーの秘密Takeshi Kakeda
 

More from Takeshi Kakeda (20)

DX時代のITエンジニアに送る、アジャイル式「いきいき」ヘルスマネジメント
DX時代のITエンジニアに送る、アジャイル式「いきいき」ヘルスマネジメントDX時代のITエンジニアに送る、アジャイル式「いきいき」ヘルスマネジメント
DX時代のITエンジニアに送る、アジャイル式「いきいき」ヘルスマネジメント
 
「自分の内側を観る」と 世界が変わるかも?~自分自身を紐解くメンタルモデルのご紹介~
「自分の内側を観る」と 世界が変わるかも?~自分自身を紐解くメンタルモデルのご紹介~「自分の内側を観る」と 世界が変わるかも?~自分自身を紐解くメンタルモデルのご紹介~
「自分の内側を観る」と 世界が変わるかも?~自分自身を紐解くメンタルモデルのご紹介~
 
日本アジャイル昔話 『忘れられたXPer』 XP祭り2021
日本アジャイル昔話 『忘れられたXPer』 XP祭り2021日本アジャイル昔話 『忘れられたXPer』 XP祭り2021
日本アジャイル昔話 『忘れられたXPer』 XP祭り2021
 
個人から始める変化〜 IKIGAIマップ、マルチ・ポテンシャライト、ザ・メンタルモデルを入口にして〜(公開変更版)
個人から始める変化〜 IKIGAIマップ、マルチ・ポテンシャライト、ザ・メンタルモデルを入口にして〜(公開変更版)個人から始める変化〜 IKIGAIマップ、マルチ・ポテンシャライト、ザ・メンタルモデルを入口にして〜(公開変更版)
個人から始める変化〜 IKIGAIマップ、マルチ・ポテンシャライト、ザ・メンタルモデルを入口にして〜(公開変更版)
 
創造的なメタファー思考のススメ
創造的なメタファー思考のススメ創造的なメタファー思考のススメ
創造的なメタファー思考のススメ
 
Agile459 10周年 オープニング&クロージングトーク
Agile459 10周年 オープニング&クロージングトークAgile459 10周年 オープニング&クロージングトーク
Agile459 10周年 オープニング&クロージングトーク
 
地方コミュニティジャーニー〜地方アジャイルコミュニティをゼロから立ち上げて10年間で体験してきたこと
地方コミュニティジャーニー〜地方アジャイルコミュニティをゼロから立ち上げて10年間で体験してきたこと地方コミュニティジャーニー〜地方アジャイルコミュニティをゼロから立ち上げて10年間で体験してきたこと
地方コミュニティジャーニー〜地方アジャイルコミュニティをゼロから立ち上げて10年間で体験してきたこと
 
パーマカルチャーとパタン・ランゲージ
パーマカルチャーとパタン・ランゲージパーマカルチャーとパタン・ランゲージ
パーマカルチャーとパタン・ランゲージ
 
アジャイル・スクラム時代のパタン・ランゲージとアレグザンダー理論
アジャイル・スクラム時代のパタン・ランゲージとアレグザンダー理論アジャイル・スクラム時代のパタン・ランゲージとアレグザンダー理論
アジャイル・スクラム時代のパタン・ランゲージとアレグザンダー理論
 
この一年の経験・学び忘年LT in Agile459 忘年LT大会
この一年の経験・学び忘年LT in Agile459 忘年LT大会この一年の経験・学び忘年LT in Agile459 忘年LT大会
この一年の経験・学び忘年LT in Agile459 忘年LT大会
 
非現実的な圧倒的スケールの中で何を想った感じたか CCC2019 参戦記
非現実的な圧倒的スケールの中で何を想った感じたか CCC2019 参戦記非現実的な圧倒的スケールの中で何を想った感じたか CCC2019 参戦記
非現実的な圧倒的スケールの中で何を想った感じたか CCC2019 参戦記
 
2019/08/31 Agile Japan 2019 サテライト香川 『壁を越える』ために知っておきたいこと
2019/08/31 Agile Japan 2019 サテライト香川 『壁を越える』ために知っておきたいこと2019/08/31 Agile Japan 2019 サテライト香川 『壁を越える』ために知っておきたいこと
2019/08/31 Agile Japan 2019 サテライト香川 『壁を越える』ために知っておきたいこと
 
20190223 私の学びの研究〜アタマとカラダとココロ〜(更新版)
20190223 私の学びの研究〜アタマとカラダとココロ〜(更新版)20190223 私の学びの研究〜アタマとカラダとココロ〜(更新版)
20190223 私の学びの研究〜アタマとカラダとココロ〜(更新版)
 
ソフトウェア開発とパタン・ランゲージ再考
ソフトウェア開発とパタン・ランゲージ再考ソフトウェア開発とパタン・ランゲージ再考
ソフトウェア開発とパタン・ランゲージ再考
 
四国のアジャイル第2ターンに向けてのビジョン
四国のアジャイル第2ターンに向けてのビジョン四国のアジャイル第2ターンに向けてのビジョン
四国のアジャイル第2ターンに向けてのビジョン
 
IKIGAI Quest
IKIGAI QuestIKIGAI Quest
IKIGAI Quest
 
「松山」がどう見える? 〜東京からの 移住者の視点〜
「松山」がどう見える? 〜東京からの 移住者の視点〜「松山」がどう見える? 〜東京からの 移住者の視点〜
「松山」がどう見える? 〜東京からの 移住者の視点〜
 
いきかたダイアグラムで仕事を棚卸ししよう
いきかたダイアグラムで仕事を棚卸ししよういきかたダイアグラムで仕事を棚卸ししよう
いきかたダイアグラムで仕事を棚卸ししよう
 
地方コミュニティが直面する課題と未来のビジョンとは?
地方コミュニティが直面する課題と未来のビジョンとは?地方コミュニティが直面する課題と未来のビジョンとは?
地方コミュニティが直面する課題と未来のビジョンとは?
 
Metaphor We Design By 失われたメタファーの秘密
Metaphor We Design By 失われたメタファーの秘密Metaphor We Design By 失われたメタファーの秘密
Metaphor We Design By 失われたメタファーの秘密
 

Recently uploaded

TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案sugiuralab
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)Hiroki Ichikura
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 

Recently uploaded (8)

TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 

機能テストの"自働化"