自己紹介
初めまして、株式会社インゲートで開発Gに所属している堀場です。
簡単な職歴
私は2020年に本社(株式会社インゲート)に転職しました。転職前は主に金融機関のシステム開発の基本設計~総合試験を主に担当していました。
本社に転職後は派遣先のお客様の中に入り、お客様自身が使用するシステムや開発を請け負ったシステムの設計・開発・試験を主に担当しています。
(つまり、転職してもやっていることに変わりはありません)
動機
今回本記事を執筆することになった経緯は、画面系試験の自動化において、試験用環境の構築は大変であるが、一度環境を作成してしまえば試験の操作自体はSelenium WebDriverなどツールを使用して自動的に画面キャプチャを取得することができる。
しかし、取得した画像の検証は現状では人手に頼らざるを得ないのが現状である。画面数やデータパターンが少なければ問題とならないが、パターンが増えてくるとその検証自体いかかる工数や時間が膨大にかかってしまう。
そこで、WinMergeで画像比較ができると聞いたので、試験時の画像検査に使用できるかを検証してみました。
試行環境
OS | Windows11 Pro |
言語 | Ruby-3.3.7 |
Rails-7.2.2.1 | |
使用ソフトウェア | Redmine-6.0.4 |
DB | PostgreSQL17 |
条件と結果、および考察
解像度を変更した場合の変更箇所の出力(解像度を拡大)
解像度以外を変更していない。
変更箇所以外(画面全体)が差分として摘出された。
解像度の変更を行わないように固定する必要がある。
画面に表示される内容を変更した場合、どの程度が差分として抽出されるかの確認
Redmineのチケットは登録/変更後の経過時間を出力しているのでその部分が変更箇所として抽出されている。
さらに、説明文に改行を追加しただけだが、それ以降全て差分として抽出された。
同じ画面を時間をおいて取得
今回は想定通り、チケットの登録時間、変更時間の個所のみ差分として抽出された。
同じファイルを比較
結論
ノンデグレード試験やCIツールを使用したデイリー試験など、前回と画面が全く変わらない場合は変更がないことの確認には使用できる。
ただし、画面上に日付や時間などが表示される場合、その箇所も差分として抽出してしまうため使用できなくなるので注意が必要。
また、今回は試していないがブラウザを変更した場合、ボタン画像なども差分として抽出される。AIなどを使用して差分を抽出する箇所の絞り込みと比較結果が最小になるような出力ができるように学習する必要がある。
参考リンク
WinMerge
Ruby
Redmine
Redmine.JP
PostgreSQL
日本PostgreSQLユーザ会