目次
自動修復機能の概要
MagicPodには、デザイン変更等で操作したいUI要素が変わった場合にAIが自動的に変更に追随してテストを続行してくれる「自動修復」機能があります。UI要素が変わったことが事前に分かっている場合には「テスト対象の画面に修正が入ったら」にある画面キャプチャの再アップロードを行っても良いのですが、毎回のテスト実行前にすべての変更を把握してキャプチャを修正するのは現実的ではありません。
具体的なケースで見てみましょう。たとえば、図1のように元々「登録」という名前だったボタンが「この内容で登録」という名前に変わったとします。アプリの実装にもよりますが、ボタンの文字列以外にこのボタンを特定する材料がなかった場合、そのままではテストは失敗してしまいます。
実際にテストを実行し、ボタンのUI要素に対して自動修復が行われるとテスト実行結果のステータスがオレンジ色の「要確認」となります。
リンクをクリックしてテスト結果の詳細画面を開くと、自動修復された内容が表示されています。修復されたのは3ステップめですが、ここでテストが止まらなかったため次のステップも問題なく実行されています。
更に「要確認」となっているメッセージもしくはキャプチャ一覧の中でオレンジ色の枠で囲まれたものをクリックすると、修復内容の詳細を示すポップアップが表示されます。
この状態では自動修復結果はあくまで「提案」に過ぎず、元のUI要素は変更されていません。
結果を確認し、問題がなければ「承認」をクリックします。するとテスト結果のステータスが「成功」に変わり、テストケースで使われているUI要素やキャプチャ画像も新しいものに入れ替わります。
もし変更内容が実際のUIに合わない場合は「却下」をクリックするとテスト結果は「失敗」となり、UI要素の変更も行われません。
注意事項
- 現在、自動修復機能はテストを一括実行した場合にのみ有効になります。テストケースの編集画面から単独のテストを実行した場合には機能しませんのでご注意ください。
- 自動修復機能は要素が見つからないときに補助する機能であり、見つかった要素や画面に対する確認コマンドの結果が失敗になった場合には動作しません。
- 「UI要素XXの値が 登録する と一致することを確認」 → 値が 登録 となった場合にはテストは失敗します。
- 「タイトルが MagicPod と一致することを確認」 → タイトルが MAGICPOD となった場合にはテストは失敗します。
- 要素の存在有無で条件分岐する場合および要素が「存在しない」という結果を期待する場合にも自動修復機能は動作しません。
動作しないコマンド
<要素の存在有無で条件分岐する場合>
UI要素が存在する場合
UI要素が存在しない場合
UI要素が表示されている場合
UI要素が非表示の場合
<要素が「存在しない」という結果を期待する場合>
UI要素が存在しないことを確認
UI要素が存在しなくなるまで待つ
UI要素が非表示か確認
UI要素が非表示になるまで待つ
動作するコマンド UI要素が存在することを確認
UI要素が存在するまで待つ
UI要素が表示されているか確認
UI要素が表示されるまで待つ
(その他多数のコマンド)
- テストケースAにて自動修復対象となったUIが後続の別のテストケースBでも使われている場合、テストケースB実行時その新しいUIが使われます。その際、古いUIにはあるが新しいUIにはないUI要素が存在する場合、テストケースAの後続ステップが成功してもテストケースBではUI要素が見つけられず失敗するため、自動修復は自動却下されます。
- エラーメッセージ:「自動修復を行いましたが、後続の処理で失敗したため自動却下されました」
- 回避策は2通り
- 1. テストケースAのUI要素aとテストケースBのUI要素bが共に存在するUIがあれば、その共有UIを差し替える。
- 2. 対象のテストケース間でのUIの共有をやめ、それぞれ独自のUIを用いる様に変更する。
-
いずれの場合も、以前キャプチャした時とはUI要素aのロケータが変わっているため、改めてキャプチャし直す必要があります。その後、テストケースでUI要素aを使っている箇所を新しくキャプチャしたUI上の要素で置き換えてください。
-
より詳細なログは自動修復承認モーダル内の『詳細ログを表示』からご確認いただけます。
-
- 1つのテストケースでiOSとAndroidの両方のアプリをテストする場合、自動修復機能は利用できません。詳しくはこちら。
強制承認
自動修復が起きたテストケースが後続のステップで失敗した場合は、自動修復が間違っていた可能性が高いとみなされて修復結果も自動的に却下されます。ただし、実際には修復結果の成否とその後のテスト失敗には関係がなく、修復結果を承認したい場合もあります。そのようなケースでは、通常の修復結果に比べて警告が多く表示されますが「強制承認」というボタンを押すと承認することができます。