成 瞑 大 学 理 工 学 研 究 報 告 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)
© Copyright 2025 ExpyDoc