システムエンジニアがテスト項目に沿ってシステムの操作を行い、画面キャプチャーを取って表計算ソフトに張り付けて確認対象の部分を赤枠で囲い、適宜吹き出しなど追加すると言う非効率な結合テストの実施方法への愚痴ツイートがあった*1。
このテスト実施方法は、二つの点で非効率だ。一つは、再テスト実施の労働負荷が高い方法になっている。一つは、キャプチャー画像の管理に使うアプリケーションの選択を誤っている。せめてHTMLで書いたて、テスト項目ごとにページを変えた方がよい。キャプチャ画像に矩形や丸や文字を入れられるツールを探して来る必要はあるが。
テスト自動化ができれば、問題を解決できる。コードを書く量が増えてしまうが、再帰テストにも有用だ。必要であれば、テスト実施中のキャプチャー画像をとったり、動作全体を動画で記録することもできる。ウェブアプリケーションであれば、Selenium*2やPlaywrightによるブラウザー(ナビゲーション)のオートパイロットで、自動化できる。ウィンドウ・アプリケーションの場合は、RPAが使える*3。バッチ処理などCLIのコードは、特段のツールなく自動化できるはずだ。
すべての結合テストに導入すべきとは言えないが、人力による実施がアホらしく感じているのであれば、自動化は検討すべきだ。しかし、結合テストの自動化を勧める声よりも、画面キャプチャーを取って表計算ソフトに張り付ける行為が開発や検収に役立つと擁護する声の方が多くあり、開発効率化への意欲が乏しかった。テスト駆動開発のブームにのって単体テストを導入しているところであれば、結合テスト自動化もやりたいと思うはずだが。
*1結合テストのやり方のアホさが非難されるものの、3日ぐらい誰もブラウザー自動化フレームワークSeleniumについて言及しなかった - posfie
*2ブラウザー自動化ツールSeleniumをJavaから使ってみる - 餡子付゛録゛
Seleniumを使ってリリース時の動作確認を自動化したい | レコチョクのエンジニアブログ
他にC#, Ruby, JavaScript(V8), Kotlinがサポートされているが、テストされるウェブアプリケーションの方の言語は当然何でもよい。
*3Javaであればjava.awt.Robotと言う自動化ライブラリがある。
0 コメント:
コメントを投稿