画面遷移を伴うシナリオ分岐型アプリ ケーションのための 実行時テス ト

成 瞑 大 学 理 工 学 研 究 報 告
J.Fac.Sci.Tech.,SeikeiUniv.
Vol.51No.1(2014)pp.49-56
画 面 遷 移 を伴 うシナ リオ 分 岐 型 ア プ リケ ー シ ョンの ため の
実 行 時 テス ト手 法 の 提 案
山本
拓 哉*1,甲
斐
宗 徳*2
ProposalofRuntimeTestApproachfbrScenarioBranchApplication
withScreenTransitions
TakuyaYAMAMOTO*1,MunenoriKAI*2
ABSTRACT:Indevelopmentofsoftwarewhichbecomelarger-scaleandmorecomplicatedeveryyear,
theimportanceofsoftwaretestgrowsmoreandmore.However,somedomainswhereitisdifficulttoapply
anysoftWaretestexist.OneofsuchdomainsisaGUItest.InordertoconductaGUItest,themethodof
"preparationofthecomplicatedtestcodeincon
-siderationofvariousstates" ,"thesoftwaretestinmanual
operation",and"automatingusingexpensivesoftware"istaken.Sincethosemethodsareveryhigh-cost,the
methodofdescribingasoftWaretesteasilyisdesired.However,itisgenerallydifEculttotesttoallthe
softWarecontainingGUIattherlntime.Then,inthispaper,weproposenlntimetestapproachfbrscenario
branchapplicationswithscreentransitionslikeArMscreenorsoftwareinstallers.Proposedmethodcan
conductsoftwaretestforsuchspecificapplicationseasilyandatlowcost.Itisalsoshownthatmostperformancedegradationbyapplyingtheproposedmethodtoactualapplicationscannotbefound.
Keywords:automatedsoftWaretest,unittest,userinterface,screentransition
(ReceivedMarch31,2014)
1.は
が[1],GUIの
じめ に
様 な 入 力 が 画 面 操 作,出 力 が 画 面 の 状 態 で
あ る よ うな,数 値 と して 定 義 が難 しい もの は ソ フ トウ ェ
1.1研
究背景
ア テ ス トを定 義 す る こ とが 非 常 に難 しい。 こ の た めGUI
年 々 大 規模 化 お よび 複 雑 化 して い る ソ フ トウ ェア 開 発
の テ ス トは操 作 を 定義 す るた め の複 雑 な コー ドを記 述 し
に お い て,ソ フ トウェ ア テ ス トの 重 要 性 が ま す ま す 高 ま
て 自動 化 す る か,人 力 に よ る ソ フ トウェ ア テ ス トを行 わ
っ て い る。 ソフ トウ ェア テ ス トは 開 発 者 側 の 視 点 で 見 る
な くて は い け な い。そ れ らの方 法 は非 常 に コ ス トが高 く,
と,不 具 合 の 修 正 や リフ ァ ク タ リン グに よ るエ ンバ グや
容 易 に ソフ トウェ ア テ ス トを記 述 す る方 法 が 望 ま れ て い
デ グ レー ドか らの 不 安 の 低 減,ソ
る。 しか しな が らす べ て のGUIを
フ トウ ェア の 品 質 面 か
含 む ソ フ トウ ェア に対
ら見 る とテ ス トが 仕 様 を 満 た す よ うに 記 述 され て い れ ば
応 させ る こ とは 現状 で は難 しい た め,本 研 究 で は 決 ま っ
そ の 品 質 は満 た す こ とが 出 来 る とい うメ リッ トが 存 在 す
た操 作 と画 面 を 多 く持 つ 画 面遷 移 を伴 うシ ナ リオ 分 岐 型
る。 しか し ソフ トウ ェア テ ス トは ソ フ トウ ェア 開 発 にお
ア プ リケ ー シ ョ ンに お い て容 易 に ソ フ トウ ェア テ ス トが
い て す べ て の ソー ス コー ドに 対 して 行 うこ とが 出 来 るわ
出来 る よ うな 手 法 を提 案 す る。 画 面遷 移 を伴 うシ ナ リオ
け で は な い。 ア ル ゴ リズ ム の よ うに 入 力 と出 力 を数 値 で
分 岐 型 ア プ リケ ー シ ョ ンはGUIテ
定 義 しや す い もの に 対 して は 非 常 に テ ス トを行 い や す い
問題 を抱 え て い るが,同
ス トの 困難 さ と同 じ
じ よ うな操 作 を繰 り返 す とい う
性 質 を持 っ て い る。 「
似 た よ うな 操 作 を繰 り返 す 」とい う
*1:理
工 学 研 究 科 理 工学 専 攻 博 士 前 期 学 生
*2:理
工 学 研 究 科 理 工 学 専 攻 教 授(kai@st
こ とは 自動 化 が行 いや す い とい うこ とで あ るが,こ の繰
り返 しを如 何 に抽 象 的 に様 々 な 画 面遷 移 を伴 うシ ナ リオ
.seikei.ac.jp)
一49一
成 践 大 学 理 工 学 研 究 報 告
Vol.51No.1(2014.6)
分 岐 型 ア プ リケ ー シ ョンに 適 用 す るか が 問 題 とな る。 こ
を 行 っ た 場 合 に 次 に 出 て く る 画 面 が 変 わ る ア プ リケ ー シ
の抽 象 化 の 問題 を解 決 す る こ とに よっ て 自動 化 を行 うこ
ョ ン の こ と で あ る。 ア プ リ ケ ー シ ョ ン の 種 類 と し て は,
とが 出 来 るた め,テ ス トコー ド化 を行 うこ とが 出 来,コ
当 研 究 室 で 研 究 を 行 っ て い るWeb学
ス トの 低減 が 見 込 ま れ る。
Webや
習 シ ス テ ム[2]のX-
ア ドベ ン チ ャ ー ゲ ー ム,イ ン ス トー ラ,ATMな
どが
挙 げ られ る 。次 に ア ドベ ン チ ャ ー ゲ ー ム,イ ン ス トー ラ で
1.2目
的
以 下 の 項 目 が ど の よ う に な っ て い る か 説 明 を 行 う。
本研 究 で は 「動 作 して い るア プ リケ ー シ ョン にお け る
3.GUIを
遷 移 の 自動 化 」 を 目的 と して い る。 具 体 的 には シナ リオ
含 ん だ テ ス ト手 法 の 適 用 と 問 題 点
分 岐型 ア プ リケ ー シ ョンに 共 通 す る必 要 最 低 限 の 項 目を
モ デ ル 化 し,各 ア プ リケ ー シ ョンは そ の モ デ ル を派 生 さ
現 在 単体 テ ス トは 幅広 い プ ロジ ェ ク トに お い て採 用 さ
せ て適 した 実 装 を 行 う。 そ して テ ス ト実 行 環 境 が そ の モ
れ て い る が,そ
の 適 用 範 囲 は ほ とん どが ア ル ゴ リズ ム,
デ ル を 元 に 実 際 に ア プ リケ ー シ ョン を起 動 させ,自 動 的
ロジ ック に 限 定 され て お り,GUIを
に 入 力 を行 い,想 定 して い る結 果 が 得 られ て い るか 検 査
され な い 場 合 が 多 い 。 これ はL1節
を 行 え る よ うに す る こ とで あ る。 自動 化 が 出 来 る こ と に
GUIの
よっ て ヒュ ー マ ンエ ラー を 減 らす こ とが 出 来 る こ とや,
か しい くつ か の 方 法 を用 い てGUIを
正確 な コ ン トロー ル に よ り何 度 で も同 じ状 況 が 再 現 可 能
う こ とは 可能 で あ る。 も しそ の よ うな 方 法 を用 い て 画 面
とい う利 点 が 挙 げ られ る。 ま た 実 際 に ア プ リケ ー シ ョン
遷 移 を伴 うシ ナ リオ分 岐型 ア プ リケ ー シ ョ ンの テ ス トを
を 起 動 させ て テ ス トを 行 うこ とに よ り実 際 に使 用 して い
行 っ た場 合 どの よ うに行 うか と,ど の よ うな 問題 点 が発
る よ うな 環 境 で テ ス トを す る こ とが 出 来,ア プ リケ ー シ
生す る か に つ い て説 明 を行 う。
伴 うテ ス トには 適 用
で も述 べ た とお り
状 態 の 定 義 や 操 作 が 非 常 に複 雑 だ か らで あ る。し
含 ん だ テ ス トを行
ョ ン が 起 動 し な い と読 み 込 ま れ な い よ うな ラ イ ブ ラ リ
(GUIラ
●マク ロ
イ ブ ラ リな ど)によ る 不 具 合 の 発 見 や 再 現 な ども
マ ク ロは マ ウスや キ ー ボ ー ドの動 作 を 記録 し再 生 す る
可 能 とな る。
更 に モ デ ル は 特 定 の シ ナ リオ 分 岐 型 ア プ リケ ー シ ョン
手 法 で あ る。 ソフ トウェ ア 自体 が マ ク ロ をサ ポ ー トす れ
に 特 化 した 限 定 的 な モ デ ル で は な く,様 々 な シ ナ リオ 分
ば テ ス トの 自動 化 を行 うこ とが 出 来 るが,画 面遷 移 を伴
岐 型 ア プ リケ ー シ ョンに 適 用 で き る よ うにな って い る。
うシ ナ リオ分 岐型 ア プ リケ ー シ ョ ンに お い て ユ ー ザ に 自
共 通 の モ デ ル を使 用 出 来 る利 点 は,あ
るア プ リケ ー シ ョ
動 化 を提 供 す るメ リ ッ トは あ る とは 言 えな い た め,デ バ
ンの モ デ ル の 調 査 に使 用 した ア プ リケ ー シ ョンや ア ル ゴ
ッグ用 の為 だ け に マ ク ロを サ ポ ー トす るの は コス トが 非
リズ ム を シ ー ム レス に 他 の ア プ リケ ー シ ョン に適 用 で き
常 に か か る。 ま た動 作す る環境 は様 々 で あ り正確 な タイ
る こ とで あ る。
ミン グ で操 作 を行 う こ とが難 しい。
2.画
●UIAutomation
面 遷 移 を 伴 うシ ナ リオ 分 岐 型 ア プ リケ ー シ ョ ン
UIAutomationと
画 面遷 移 を 伴 うア プ リケ ー シ ョン とは,ユ ー ザ が 何 か
はUIの
FrameworkやiPhoneSDKの
自 動 操 作 機 構 で あ り.Net
よ うに公 式 で サ ポ ー トされ
し らの行 動 を 起 こす こ とに よっ て 画 面 の 状 態 が 変 わ って
て い る も の か ら,MarathonやSWTBotの
い くア プ リケ ー シ ョンの こ とで あ る。 画 面 の 状 態 の 変 化
テ ィ ー の ラ イ ブ ラ リ な ど 様 々 な も の が 存 在 す る 。UI
とは 表 示 され る内 容 の 変 化 で あ り,テ ンプ レー トを用 い
Automationを
た よ うな 同 じ構 成 で 一 部 の 中身 が 差 し替 わ る もの か ら,
操 作 は 行 い や す い が,APIは
ペ ー ジ の構 成 が 全 部 変 わ る もの ま で 様 々 で あ る。 基 本 的
際 に 使 用 す る た め に は キ ャ ス トや リ フ レ ク シ ョ ン を 多 く
には 「
画 面 を確 認 一
〉 選択や入カー
〉 次 の画 面 へ移 動 す る
行 わ な けれ ば い け な い。 この た め 画 面構 成 変 更 に よ るテ
行 動 」 とい う操 作 を 一 画 面 の 中で 行 い,こ の 動 作 を最 後
ス ト コ ー ドの 変 更 に 非 常 に 弱 い と い う弱 点 が あ る。 ま た
の 画 面 が 出 て く るま で 何 度 も繰 り返 す 。 ま た 操 作 が 可 逆
ゲ ー ム の 様 にUIを
利 用 す る と マ ク ロ に 比 べ て 非 常 にGUIの
非 常 に 抽 象 化 さ れ て お り実
自 分 で 描 写 す る 場 合 な ど は,そ
能 を 実 装 し た 場 合 を 除 い てUIAutomationを
(前の 操 作 の 取 り消 しま た は 修 正 が 行 え る)で あ れ ば 前
の 画 面 に 戻 る こ と も可 能 に な っ て い る こ と も あ る。 シナ
とが 出来 な い。
リオ 分 岐 型 ア プ リケ ー シ ョン とは,先 ほ どの 行 動 の 「
選
択 や 入 力 」 の 結 果 に 応 じて 「
次 の 画 面 へ 移 動 す る行 動 」
一50一
様 に サ ー ドパ ー
の機
利用す るこ
成 践 大 学 理 工 学 研 究 報 告
●モデル検査
4.2画
Vol.51No.1(2014.6)
面遷 移 の モ デ ル 化
モ デ ル 検 査 は 本研 究 とは 目的 が 異 な っ て い るが,誤 解
画 面遷 移 を伴 うシ ナ リオ 分 岐型 ア プ リケ ー シ ョ ンで利
され や す い 部 分 が あ るた め補 足 を 行 う。モ デ ル 検 査 とは,
モ デ ル の 取 り得 るす べ て の 状 態 に お い て あ る条 件 を満 た
用 され るモ デ ル は,ス ク リプ トも し くはXMLな
どの デ
ー タ構 造 に よっ て構 成 され て い る。 画 面遷 移 を伴 うシ ナ
す か ど うか を 検 査 す る方 法 で あ る。 単 体 テ ス トは モ デ ル
リオ分 岐型 ア プ リケ ー シ ョ ンに お い て ス ク リプ トが利 用
の性 質 の 一 部 を 調 べ るに は 非 常 に 有 効 で あ るが,モ デ ル
され る こ とが 多 い。これ はDSLを
全 体 の性 質 を 書 き た い 場 合 は 単 体 テ ス トが 不 向 きで あ る。
ョン の 内部 を効 率 的 に制 御 す る こ とに 重 点 が 置 か れ て い
モ デ ル検 査 は この す べ て の 組 み 合 わ せ の 中で 条 件 を満 た
る こ と と,ス ク リプ トエ ンジ ン さ えあ れ ば コ ンパ イ ラな
す か ど うか を 調 べ る こ とに 非 常 に 有 効 か つ 強 力 な 手 法 で
どの 開発 環 境 が不 要 とい う点 に お い て メ リッ トが あ るか
あ るが,高 度 な 知識 と膨 大 な 計 算 資源 が 必 要 とな る。
らで あ る。しか しDSLで
利 用 して ア プ リケ ー シ
あ るた め に 不 得 意 も し くは 出 来
な い とい う可能 性 が 出 て く る。 この た め 提案 す るモ デ ル
4.提
案 す る テ ス ト手 法
で は ス ク リプ トを利 用 せ ずXMLな
どの デ ー タ構 造 で モ
デ ル の 定義 を行 う。 次 に モ デル で使 用 す る要 素 の 説 明 を
本研 究 で 提 案 す るテ ス ト手 法 は 安 価 な 方 法 で テ ス トを
行 う。
行 え る こ とを 目的 と して い るた め,特 別 な 外 部 ツー ル や
手 動 で行 っ て い た テ ス トとい う方 法 を用 い ず,既 存 の ユ
4.2.1ViewPoint
ニ ッ トテ ス トで 簡 単 に 行 え る よ うに す る至 っ て シ ンプ ル
viewPointは
な もの で あ る。 具 体 的 に は
テ キ ス トや 画 像 な ど選 択(ユ
を 受 け 付 け る 場 所 が 無 い)を
ー ザ に入 力
伴 わ な い 画 面 で構 成 され て
い る も の を 表 現 す る た め の モ デ ル で あ る 。viewPointは
1.様 々 な 画 面遷 移 を伴 うシ ナ リオ 分 岐 型 ア プ リケ ー シ
PointIdとNextPointIdの
ョ ンで使 用 可 能 な 画 面遷 移 モ デ ル の 作 成
る 。PointIdは
2.画 面遷 移 モ デ ル に基 づ い て 遷 移 を 行 う遷 移 マ シ ンの
Pointldは
二 つ の プ ロパ テ ィ を定 義 して い
そ の 画 面 を 表 す ユ ニ ー ク なIdで
あ る。
遷 移 を 行 う際 に 遷 移 場 所 指 し 示 すNextPointld
作成
の 指 定 先 と し て 使 わ れ る 。 遷 移 に つ い て の 情 報 はPointId
3.遷 移 マ シ ン を 自動 操 作 す る機 能 の 作 成
とNextPointldの
4.自 動 操 作 機 能 をユ ニ ッ トテ ス トフ レー ム ワー ク に 組
ど の 情 報 は そ の ア プ リ ケ ー シ ョ ン に よ っ て 異 な る た め,
み 込 み や す くす るた め の機 能 の 作 成
そ れ ぞ れ の ア プ リ ケ ー シ ョ ン がviewPointを
関 係 で しか 持 た な い 。画 像 や テ キ ス トな
継 承 して プ
ロパ テ ィ を 付 け 加 え る。
を行 うこ とに よっ て 実 現 す る。 これ に よ り 「GUIを 含 ん
だ テ ス ト手 法 の適 用 と問題 点 」 に お い て 挙 げ た
4.2.2SelectionPoint
SelectionPointは
1.入 力 デ バ イ ス か ら の 正 確 な 入 力 方 法
2.特
テ キ ス トや 画 像 の 他 に も ユ ー ザ の 入
力 を 受 け 付 け るUIを
定 フ レー ム ワ ー ク へ の 依 存
持 っ て い る画 面 で構 成 され て い る
も の を 表 現 す る た め の モ デ ル で あ る 。SelectionPointは
3.コ ー ドの メ ン テ ナ ン ス 性 や 型 安 全 性
ViewPointを
4.高
プ ロ パ テ
度 な 専 門 知 識 や 高 価 な ツー ル
継 承 し て い る た めViewPointが
ィ の 他
SelectionsはISelectionを
とい う問題 点 を解 決 す る。
に もSelectionsを
選 択 肢 を 表 す も の でSelectionldと
来のモデルの問題点
し て い
る 。
複 数 保 持 し て い る 。ISelectionは
っ て い る 。SelectionIdはSelectionを
4.1従
定 義
持 っ て い る
と き に 選 択 肢 を 分 別 す る た め のldと
い
うプ ロ パ テ ィ を 持
イ ンス タ ンス 化 した
し て 利 用 され る。
現 在利 用 され て い る画 面 遷 移 を伴 うシ ナ リオ 分 岐 型 ア
プ リケ ー シ ョ ンは,そ れ ぞ れ 独 自の モ デ ル を採 用 して い
4.2.3BranchPoint
る。 独 自モ デ ル は利 用 され るア プ リケ ー シ ョンの 記 述 の
BranchPointは
画 面 遷 移 を 行 う際 に 分 岐 が 必 要 な とき
しや す さに お い て 非 常 に優 れ て い るが,外 部 ツー ル な ど
に 利 用 す る モ デ ル で あ る。ViewPointとSelectionPointと
を使 用 して 処 理 を 行 い た い 場 合 に 非 常 に扱 い が 難 しい 。
の最 大 の違 い は 画 面表 示 に 関 す る情報 を 一切 持 た ず遷 移
先 を 複 数 持 っ て い る と い う こ と で あ る 。viewPointと
SelectionPointは
一51一
遷 移 先 を一 つ しか 持 た な い た め 複 数 の
成 践 大 学 理 工 学 研 究 報 告
Vol.51No.1(2014.6)
遷 移 候 補 が あ る場 合 に 分 岐 処 理 を行 うこ とが 出 来 な い 。
そ こ で 遷 移 先 の 分 岐 を 行 い た い 場 合 は,viewPointと
SelectionPointのNextPointIdをBranchのPointIdに
一
設 定
す る 。BranchPointはPointldとNextPointIdsの
二つ のプ
ロ パ テ ィ を 定 義 し て い る 。PointIdはViewPointや
SelectionPointと
同 じ役 目 を 持 っ て い る。NextPointIdsは
複 数 の 遷 移 先,つ
ま り複 数 のNextPointldを
BranchはViewPointやBranchPointと
持 っ て い る。
同 じ よ う に,遷
条 件 に 関 す る 情 報(BranchPointの
図2分
岐モデル
移
4.3.3ル
場 合 は 遷 移 候 補 の どれ
ープ
ル ー プ は あ る条 件 を 満 た す ま で 繰 り返 し同 じ画 面 を
ケ ー シ ョ ンに よっ て遷 移 候 補 先 に使 用 され る判 断 の 情 報
表 示 した い とき に使 用 す る遷 移 構 造 で あ る。 ル ー プ は 分
は 様 々 だ か ら で あ る。BranchPointが
岐 と同 じ くBranchを 使 用 して 表 現 を行 うが,自 分 が た ど
遷 移 条 件 と どの よ う
に 遷 移 先 を 決 め る の か に つ い て は4.6.1節
で 説 明 を 行 う。
[
剛
持 っ て い な い 。 これ は ア プ リ
に 遷 移 を 行 え ば 良 い か)を
っ て き た も の を指 す の で は 無 く図3の
様 に今 までた ど
っ て き た もの を指 す こ とに よっ て表 現 す る。
4.3遷
移表現
↓
画 面遷 移 を 伴 うシ ナ リオ 分 岐 型 ア プ リケ ー シ ョンで 使
用 され る遷 移 構 造 は 様 々 な もの が 考 え られ る。 遷 移 構 造
→
は どん な に複 雑 で もい くつ か の 基 本 的 な 遷 移 構 造 を使 用
して 作 られ て い る。 こ こで は 遷 移 構 造 の 基 本 とな る三 っ
図3ル
ー プモ デ ル
の パ ー ツ で あ る 「逐 次 」 「
分岐」 「
ル ー プ 」 を先 ほ ど説 明
4.4提
した遷 移 モ デ ル を使 用 して どの よ うに 構 成 す るか につ い
案す る遷 移 モ デ ル の 利 点
提 案 す る遷 移 モ デル の利 点 と して,モ デ ル に透 過 的 な
て説 明 を 行 う。
操 作 が行 え る とい うこ とが 挙 げ られ る。 従 来 は そ れ ぞ れ
4.3.1逐
が独 自のモ デ ル を採 用 して い た た め,モ デ ル に 対 して 操
次
作 を行 うた め に は独 自モ デル に 対応 した プ ロ グ ラム を書
逐 次 は 一 直 線 で あ り制 御 を 含 ま な い 遷 移 構 造 で あ る 。
画 面 を 表 すview-Pointは
PointIdと,遷
く必 要 が あ っ た。 しか し今 回提 案 した モ デ ル を使 用 した
様 に 自分 自 身 を 表 す
移 先 を 指 定 す るNextPointIdを
そ れ らを 「
画 面PlはP2遷
画 面P3は
図1の
移,画 面P2は
ア プ リケ ー シ ョ ンを 作成 した場 合,一 度 遷 移 モ デ ル 用 の
持 っ て い る。
画 面P3へ
ソフ トウェ ア を 作成 した ら この遷 移 モ デ ル を使 用 す る ソ
遷 移,
フ トウェ アす べ て に使 用 可能 とな る。
遷 移 しな い 」 の よ うに現 在 の 画 面 が次 へ遷 移
した い 画 面 に つ な ぐ こ とに よっ て 逐 次 構 造 を表 現 す る。
画 面 の 終 端 はNextPointIdに
ま た はNullに
4.5遷
該 当す る も の が 無 い た め 空 白
移 条 件 を持 た な い理 由
Scene/SelectionSceneは,ユ
して終 端 を表 す 。
イ ス な どで操 作 して
..",.一
一
一
》'i.."..一
一
一
どを入 力 デ バ
「
遷 移 」 を行 うこ と を明 示 す る場 合
に 移 動 が 行 わ れ る(イ
Di
ー ザ がUIな
ン ス トー ル の 進 捗 状 況 を 表 示 す る
》'i..",
画 面 な ど 自動 で 遷 移 す る場 合 も あ る)。こ の 遷 移 条 件 は ア
プ リ ケ ー シ ョ ン に よ っ て 異 な っ て お り,ほ
図1逐
次 モデル
は マ ウ ス,キ
ー ボ ー ド,タ ッ チ パ ネ ル の い ず れ か か ら の
入 力 と考 え られ る が,場
4.3.2分
とん どの 場 合
合 に よっ て は 特殊 な デ バ イ ス か
ら の 入 力 と い う こ と も あ り得 る。 も し こ の 様 な 遷 移 条 件
岐
を モ デ ル に 組 み 込 ん だ 場 合,モ
分 岐 は 条 件 に よ っ て 複 数 有 る 画 面 遷 移 先 候 補 の どれ
デル は入 力 デ バ イ ス に 依
か に 遷 移 行 う為 の 遷 移 構 造 で あ る 。分 岐 を 表 すBranchは
存 す る こ と に な っ て し ま う。 モ デ ル は ど の 入 力 デ バ イ ス
ViewPointな
で 遷 移 を 行 お う と も,モ
ど と違 い,図2のBranchの
様 にNextPointlds
デル は遷 移 の 関係 だ け を決 定 す
に遷 移 先 を複 数 持 つ こ とが 出 来 る。 そ れ を別 々 の 画 面 に
る べ き で あ る 。 こ の た めScene/SelectionSceneは
っ な ぐ こ とに よっ て 分 岐 を 表 現 す る。
を 持 た な い よ うに し て い る。 で は ど こ に 遷 移 条 件 を 記 述
す る か と い う と,UIか
一52一
遷 移 条件
ら の 入 力 を 受 け 取 りモ デ ル を 操
成 践 大 学 理 工 学 研 究 報 告
作 す る 部 分 に 記 述 を 行 う。 こ れ はMVCパ
4.7自
ター ンの
Controller部 分 に 該 当す る。 こ うす る こ と に よ りモ デ ル
Vol.51No.1(2014.6)
動遷移
本 シ ス テ ム の 代 表 的 な 機 能 と な る 自動 遷 移 は ア プ リ
とUIは 完 全 に 切 り離 され る こ とに な り,そ れ ぞれ の 再
ケ ー シ ョ ン 内 のScenarioReaderを
利 用性 が 高 ま る。
現 す る 。 自動 遷 移 に 必 要 な
Branchは
ユ ー ザ に 表 示 す る情 報 を 持 っ て い な い た め
操 作 す る こ と に よ り実
「
停 止 条件 」 「
進行条件」 「
遷
移 操 作 」 はTransitionAutomatorが
す べ て 請 け 負 う。 ま た
Scene/SelectionSceneの 場 合 と は 別 の 理 由 が 存 在 す る 。
直 接 ア プ リケ ー シ ョ ン 内 部 のScenarioReaderを
Branchは
しま っ て は ア プ リケ ー シ ョ ンの 実 装 を 無視 して遷 移 す る
そ の場 所 へ 遷 移 す る と,ど の 遷 移 先 に行 くか を
操 作 して
決 定 す る。 この ど こへ 行 くか とい う遷 移 条 件 は,モ デ ル
こ と に な っ て し ま う。 そ こ でSystemConnectorと
内 の 情 報 で 完 結 す る もの か らPC内
TransitionAutomatorと
情 報 や ネ ッ トワー ク
い う
ア プ リケ ー シ ョ ン を 仲 介 す る役 目
を使 用 した もの ま で 様 々 な もの が 考 え る こ とが 出 来 る。
を 持 っ た ク ラ ス を 経 由 す る こ と で,ア
モ デ ル 内 の 情 報 で 簡 潔 す るな らば 個 数 や 論 理 演 算 な どの
実 装 を 気 に す
モ デ ル を 定 義 す る こ とに よっ て 遷 移 条 件 を持 た せ る こ と
SystemConnectorとTransitionAutomatorの
で 対応 出 来 るが 問題 は モ デ ル 外 の 情 報 を使 う場 合 で あ る。
説 明す る。
る こ と 無
プ リケ ー シ ョ ンの
く 遷 移 を 行
う。 次 に
詳 細 につい て
本 シ ス テ ム は 巨 大 な ライ ブ ラ リを使 用 して モ デ ル の 開 発
を行 い や す くす る こ とは 目的 と して お らず,テ ス トの 自
動 化(自 動遷 移)を
4.7.1SystemConnector
行 い や す い シ ス テ ム を開 発 す る こ と
SystemConnectorは
ア プ リ ケ ー シ ョ ン とTransition
を 目的 と して い る。 モ デ ル 外 の 情 報 を使 用 す るな らば,
Automatorを
遷 移 条件 の 判 断 は モ デ ル 外 の ロジ ッ クに 移 譲 す べ きで あ
な る 理 由 は,TransitionAutomatorがSystemComector経
る。 この た めBranchは
し な い と 実 現 で き な い こ とや 不 都 合 な こ と が あ る か ら で
遷 移 条 件 を持 た な い。
つ な ぐク ラ ス で あ る。 この ク ラ ス が必 要 と
由
あ る。
4.6遷
一 つ 目 は 選 択 肢 に 関 す る 取 り扱 い で あ る
移の管理
遷 移 モ デ ル の 説 明 を行 っ た が,モ
デ ル だ けで は 遷 移 を
Readerは
。Scenario
選 択 肢 を 受 け 取 る 機 能 は 無 い た め,選 択 肢 は ア
行 う こ と が 出 来 な い 。 遷 移 を 行 うた め に は 遷 移 モ デ ル か
プ リ ケ ー シ ョ ン の ど こ か の メ ソ ッ ドが 受 け 取 っ て 処 理 を
ら適 切 な 情 報 を 取 得 し遷 移 に 関 す る 情 報 を 管 理 す る 必 要
行 う必 要 が あ る 。そ こ でTransitionAutomatorは
が あ る。 こ こ で は 先 ほ ど の 遷 移 モ デ ル を 利 用 して,実
シ ョン に何 か し らの方 法 を 用 い て選 択 肢 を渡 す 必 要 が あ
際
ア プ リケ ー
に 遷 移 を 管 理 す る た め の ク ラ ス の 説 明 を 行 う。 遷 移 を 行
る 。こ の た め 選 択 肢 をTransitionAutomatorか
う ク ラ ス はScenarioReader,RouteSelectorの
ア プ リ ケ ー シ ョ ン の 適 切 な メ ソ ッ ドに 処 理 を行 わ せ る た
二つ によって
め に必 要 とな る。
構 成 さ れ て い る。
二 つ 目 はScenarioReaderを
4.6.1ScenarioReader1RouteSelector
ScenarioReaderは
ScenarioReaderは
遷 移 動 作 に 関 す る 処 理 を 管 理 して い
る ク ラ ス で あ る 。ScenarioReaderは
外 部 に公 開 す る必 要 性 が 無 い た め操 作
ScenarioReaderを
三 つ が必 要 とな る。
遷 移 モ デ ル で 説 明 を 行 っ た と お り,遷
操 作 す る手 段 で あ る。 通 常
す る手 段 が 無 い。 そ こ で 何 か し らの 手 段 を用 い て
遷 移 を 行 うた め に,
Scenario,IRouteSelector,StartPointldの
Scenarioは
ら受 け 取 り,
Readerを
移に関
操 作 す る 必 要 が あ る 。 ま たScenario
直接 操 作 して 良い か ど うか の 問題 も存 在 す る。
た と え ば 遷 移 す る 前 に 特 定 の 処 理(た
と えば ロギ ン グな
す る 情 報 を 持 っ て い る モ デ ル で あ る 。RouteSelectorは
ど)を 行 わ な け れ ば い け な い 場 合 は,直
Branchに
を操 作 す る こ とは 出 来 な い。 この た め適 切 な 手 順 を用 い
(Branch)を
お い て 遷 移 先 を 決 定 す る も の で あ り,現
在 地
て 遷 移 を 行 うた め にSystemConnectorが
渡 され る と現 在 の 状 況 を 判 断 して 行 き先 を
決 定 す る も の で あ る。 ま たRouteSelectorは
ョ ン 固 有 の 処 理 で あ る た め,ア
の た め,ア
こ の 三 つ の 情 報 を 用 い て,次
遷 移 させ る 関 数 で あ るNext関
プ リ ケ ー シ ョ ン側 が 実 装 す る必 要 が あ る。
中 で どの 位 置
か ら 遷 移 を ス タ ー トす る か を 指 定 す る も の で あ る 。
ScenarioReaderは
必 要 と な る。 こ
の ク ラ ス は ア プ リケ ー シ ョ ンの 内 部 実 装 に 依 存 す る処 理
ア プ リケ ー シ
プ リケ ー シ ョ ン 側 が 実 装
す る 必 要 が あ る。StartPointIdはScenarioの
接ScenarioReader
4.7.2TransitionAutomator
の画面へ
TransitionAutomatorは4.7.1節
Co皿ectorを
数 が 呼 ばれ る毎 に遷 移 を
行 っ て い く。
で 説
るSystem
経 由 し て ア プ リケ ー シ ョ ン の 内 部 状 態 を 取
得 操 作 す る こ と に よ っ て 自動 遷 移 を 行
TransitionAutomatorは
一53一
明 す
うク ラス で あ る。
選 択 肢 情 報 と停 止 情 報 の 二 つ の 情
成 践 大 学 理 工 学 研 究 報 告
Vol.51No.1(2014.6)
報 を 元 に 遷 移 を 操 作 し て い く 。 遷 移 方 法 はPullとPush
トを 実 行 し て 自動 遷 移 が 行 え る か 確 認 を 行 っ た 。 こ の テ
の 二 種 類 の 方 法 が あ り,Pullは
ス トはS1で
ア プ リケ ー シ ョ ン の 更 新
処 理 に 組 み 込 ん で 更 新 毎 に 遷 移,選
判 断 を 行 っ て い く。Pushは
ッ ドで 動 き,自
択 肢 の 決 定,停
止の
を 選 択 し た 場 合 にE2-5の
ア プ リケ ー シ ョ ン と は 別 ス レ
最 後 に到 達 出来 る か ど うか を
行 う テ ス トで あ る。使 用 し た テ ス ト コ ー ドは 図5で
択 肢 の 決 定,停 止 の 情 報 を 送 っ
5.2結
て い く 方 法 で あ る。
あ る。
果
テ ス トの 実 行 時 間 は 図6の
様 に な っ た 。理 論 値 の 計 算
式 は 実行 時 間 =
総画磁
フレーム レーみで あ る。今 回 は フ レ ー ム レ ー
価
トを60fPsと
5.1評
「Selection2-0」
分 自身 で 定 期 的 に 更 新 を行 い な が らア プ
リ ケ ー シ ョ ン に 遷 移,選
5.評
「Selectionl-1」を 選 択 しS2で
した 。smallの 場 合 は 誤 差 率 が57%と
非常
に 高 い が,画 面数 が少 な い た め遷 移 時 間 よ りも初 期 化 処
価方法
今 回 作 成 し た シ ス テ ム の 評 価 と し て,ア
理 が か か っ た と考 え られ る。Middle,Largeで
ドベ ン チ ャ ー
は初 期 化 処
ゲ ー ム を 作 成 し 自動 遷 移 が 行 え る か 確 認 を 行 っ た 。ゲ ー ム
理 に比 べ て理 論 値 の遷 移 時 間 が長 い た め誤 差 率 が 非 常 に
の シ ナ リオ モ デ ル は 図4の
低 くな っ て い る。こ の結 果 か ら 自動 遷 移 は成 功 してお り,
S2,S3以
様 な 構 造 に な っ て い る 。Sl,
外 の 四 角 形 は 画 面 の み で 構 成 さ れ たChapterを
し て お り,Sl,S2,S3の
大 量 の遷 移 が あ るほ ど理 論 値 に 近 づ くた め 本 シ ス テ ム は
表
非 常 に有 効 で あ る と考 え られ る。
四 角 形 は そ れ ら以 外 の 四 角 形 の 構
造 に 選 択 肢 画 面 を 一 つ 含 ん だChapterを
とシ ス テ ム が機 能 の分 担 を 上 手 く設 計 して い るた め,テ
表 して い る。 シ
三 種類 を
ス トが通 らな か っ た場 合 の原 因 究 明 方 法 も簡 単 とな る。
の 画 面 を保
た とえ ば想 定 した停 止 位 置 と実 際 の停 止 位 置 が 違 っ て い
ナ リ オ モ デ ル の 大 き さ はSmall,Middle,Largeの
用 意 し,そ れ ぞ れ のChapterが20,500,1000個
今 回 の 手 法 を用 い る
た場 合 は,RouteSelectorが
持 し て い る。 こ の モ デ ル を 使 用 す る ゲ ー ム に 対 して テ ス
悪 い と考 え られ る。 これ は モ
デ ル の遷 移 に お け る分 岐 先 の 決 定 はRouteSelectorに 任
回 一回 一回
して い る か らで あ る。 ま た ア プ リケ ー シ ョ ンが 途 中で 落
1
ち て しま う よ うな失 敗 か つ ロジ ッ クテ ス トが 通 らな か っ
-尾
↓
国 一國 一昭1一國 一国 一國
回1
↑
一回1一 回1
た場 合 は,モ デ ル や 分 岐 制 御 に 問題 が あ る わ け で は無 く,
それ 以外 の部 分 に 問題 が あ る と考 え られ る。 この よ うに
シ ス テ ム構 成 の 際 に テ ス トを 考 慮 した設 計 を した た め 問
↓
図
題 の切 り分 け を ス ム ー ズ に行 う こ とが 可能 とな る。
一・
團
図4評
一・
闇
一・
團
・
一 目
5.3ま
価 の シナ リオ モ デル の概 要
とめ
本 研 究 で は 画 面 遷 移 を伴 うシナ リオ分 岐型 ア プ リケ ー
シ ョ ン に テ ス トの 自動 化 を 行 う方 法 を 提 案 し た 。 目 的 と
var(=onnecton=newGameConnector()三
{
USing(var'aUtOmatOr'=newPUIITr'anSitiOnAUtOmatOr'(
し て い た 実 際 に ア プ リ ケ ー シ ョ ン を 動 作 させ て の テ ス ト
(=onnecton,newList〈Condition>
{
newConditio
newConditio
oint工d≡"E
},newS⊂eneO{
で挙 げ た 四 つ の 問題 点 に つ い て そ れ
1-1"}),
(開Sele⊂ti
"Selectio
Selection工d
を 行 う た め に,4章
1",newSelection(){
("Selectio
"Selectio
Selection工d
ぞ れ
n2'㌧newSele⊂tion(){
「入 力 デ バ イ ス か ら の 正 確 な 入 力 方 法)System
2-e"})
Connectorを
dinge-4-199"}))
用 い て 内 部 を 制 御 す る よ うに 設 計 」 「特 定 フ
{
レ ー ム ワ ー ク へ の 依 存)特
varsave≡newSaveData();
定 フ レー ム ワ ー ク に 依 存 し な
vargame≡newGame(
automator,
(manager,spniteBat⊂h)≡
〉
{
一
測定値
一
誤差率
save.Sele⊂te
Is.Add(
離
誌Read,,,
133ぎ394
140
..>
_.First().Selection工d))三
manager.⊂ha
120
100
α
4
器
0.
5
⊂onnecton.⊂O
α
3
実 行 時 間{sec}8
琶 と潮lwS⊂ena「'oV'ew(scena「'oReade「'
2
2.7
0
0
}
0.
1
4
∋-4-199",automator'.⊂ur'r、entPoint.Point工d)三
誤差率⊂%}
0.
2
6
});
⊂onne⊂ton.Game≡game;
game.Run();
Asser、t.Equal("Ending〔
一
160
0.
6
ScenarioHelpen.GetS⊂enanioReaden(save,
"S⊂en
save,sprit
理 論値
α
7
va「、scenarioReaden≡
SmallMiddleLarge
}
シナ リオ サ イ ズ
図5ミ
ドル サ イ ズ シナ リオ の 評 価 の 単 体 テ ス トコー ド
図6シ
一54一
ナ リオ サ イ ズ 別 の テ ス ト実 行 時 間
成 践 大 学 理 工 学 研 究 報 告
い 完 全 に切 り離 した設 計 」「コー ドの メ ンテ ナ ンス 性 や 型
安 全 性)UIの 操 作 で は な く内部 の制 御 に着 目 した た め,
初 期 条 件 を 与 え るだ け の 簡 単 な コー ドで テ ス トが 記 述 可
能 とな る よ うに設 計 」 「
高 度 な専 門知 識 や 高価 な ツ ー ル)
任 意 の ユ ニ ッ トテ ス トフ レー ム ワー クの み で 使 用 可 能 に
な る よ うに設 計 」 とい う方 法 を用 い て 解 決 を行 っ た 。 実
際 に 動 く こ とを 示 す た め に 実 際 に サ ンプ ル ア プ リケ ー シ
ョ ンを 作 成 し,本 シ ス テ ム を利 用 して テ ス トを行 い 実 際
に 動 作 して い る こ とが確 認 で きた 。 テ ス トコー ドの 記 述
面では 「
入 力 に 関す る 条件 や 情 報 」「
ア プ リケ ー シ ョンの
テ ス ト用 の 初 期 化 」 を 行 うだ けで 簡 潔 に 行 うこ とが 出 来
た。 テ ス トの 実 行 速 度 に お い て も大 きな 画 面 遷 移 モ デ ル
で構 成 され るア プ リケ ー シ ョンに お い て 非 常 に効 果 的 な
結 果 を 出 して い る。 小 さな 規模 の ア プ リケ ー シ ョン にお
い て は ア プ リケ ー シ ョンの 初 期 化 時 間 で テ ス ト時 間 の 半
分 ほ ど 占め る こ と もあ るが,自 動 化 とい う点 にお い て 非
常 に 有 効 で あ る と考 え られ る。
今 後 の課 題 と して テ ス トの 有 効 性 を認 識 して も ら うシ
ス テ ム の 作 成 が 挙 げ られ る。 今 回 提 案 した シス テ ム は そ
れ 単 体 で 効 果 を 上 げ る よ うな シ ス テ ム で は 無 く,シ ス テ
ム の 上 に ア プ リケ ー シ ョン を構 築 す る こ とで 効 果 を得 る
こ とが 出来 る シ ス テ ム で あ る。 こ の た め 本 シ ス テ ム を
様 々 な 場 所 で利 用 して も ら うた め に は,今 回 の 評 価 で 使
用 した ゲ ー ム 用 の モ デ ル の よ うに 特 化 した モ デ ル を提 供
す る必 要 が あ る。
参考文献
[1]KentBeck:"TestDrivenDevelopment:ByExample",
Chapter32.MasteringTDD,Addison-Wesley,pp.205,
2002
[2]近
澤
良:「
装 」,成
シ ナ リ オ 分 岐 型 ウ ェ ブ テ ス トの 設 計 と 実
瞑 大 学 理 工 学 部 卒 業 論 文,2007
一55一
Vol.51No.1(2014.6)