リグレッションテストの自動化

  • 投稿日:
  • by
  • カテゴリ:



"エンバグ"してないかどうかを手作業で繰り返し確認するのは、贅沢というよりムダです。



いまどき自動運転できないのは自動車くらいのものです。


ソフトウェア製品を作る者として、単純作業を自動化しないことは許されません。


自動化テスト比率という言葉があります。


自動化できるテスト作業は当然単価が低いわけです。その代わりに設備に少しカネをかけるわけです。


自動化できないテスト作業とは、手作業でしか実施できない作業のうちルーティン化できるもので学生バイト君にやらせるものです。


自動化比率をムリに100%にしようとすると、却ってカネがかかってしまいます。


"いちばんおいしいところ"を自動化します。自動化しにくいところは手作業を残せばいいのです。



手作業が最後まで残るのは以下のようなものです。テスト計画は含みません。



  • テスト実施準備(段取り)

  • テスト結果の吟味



デスクトップPC用のアプリケーションのリグレッションテストなら、自動化のためのツールは多数あります。


わざわざ作らなくてもインフラはあるわけです。あとは自分用のインフラを整備するだけです。


例えばこんなものがあります。


Windows 自動化ソフト


UWSC


タイトルにはこんな文言が書かれています。



あなたが行っている定型作業は


 時間の無駄だとは思いませんか


 退屈だとは感じませんか。



# 小悪魔のささやき


# 時間の無駄な作業の方が、見積りは水ぶくれしますので、ピンハネ会社にとっては都合が良いらしいですがね。


UWSCについては、去年辺りのJaSSTの発表資料にも出てきます。他のフリーソフトなどと違って、スクリプトで記述できる点が強みのような気がします。



技術者ならこの程度のツールを冶具として使いこなせると思います。UWSCは、非技術者のホワイトカラーにも浸透しつつありますから、事務員さんが使いこなしているということです。Word,Excelのマクロと同様です。何を言いたいか分かるでしょうか。



さて、UWSCが使えない環境でどうするかです。もし、マウス操作だけなら、マウス操作をフックする仕組みとそれを再生する仕組みをアプリ自体に組み込んでしまえば良いでしょう。


キーボードがあるとちょっと厄介です。


その程度の要求仕様があると思って、最初から作りこんでおけば、ほんの数日で実現できるはずです。


テスト内容の複雑化に応じて、データの編集(切り貼り)ができるようなツールなどを整備しても良いでしょう。



現場が変わるたびに、この話をするようになって数年になるのですが、必ず出る反応が



操作記録・再生のツールを作るだけで1ヶ月以上かかる



というようなものです。


あるアプリの要求仕様



  • 操作記録を残す機能

  • 記録した操作記録を再現する機能


だけに対して実装1ヶ月の回答するなんて、余程のお手盛り仕事ですよね。



出来ない理由を並べ立てられても困りまくるのですが、以下のような意見が多いようです。



  • テストに使うツールの信頼性は高くないと困る

  • ツールの不具合のためにテストが遅延するのは困る

  • 手でやった方が早い


***


最初に、



ソフトウェア製品を作る者として、単純作業を自動化しないことは許されません。



と書きました。ソフトウェアは省力化を進めるエンジンです。もしソフトウェアとコンピュータを使って、手作業よりも効率が落ちるというのなら、そのシステムは失敗していると言い切ることが出来ます。


ソフトウェア単体では非能率的であってもシステム全体では能率アップの場合もあります。


例えば、売上伝票処理です。1件2件なら事務員さんがチェッカーでカーボン紙を挟んだ伝票用紙にガチャと金額を記入すれば数秒で終わります。しかし週末、月末、年末に本社に郵送して台帳に転記してもらう必要がありますね。


これをオンライン化して、不慣れな事務員さんが時間をかけてポチポチ入力するためのアプリケーションなら、伝票の集計作業は1瞬で終了します。


現時点では手書き伝票を高速確実にOCRするシステムの普及が進んでいるステージです。つまりキーボードもマウスも不要というわけです。


良かれ悪しかれ、世の中がどちらに進むかはお分かりかと思います。私がダラダラ説明しなくても。



人間が手作業でやっていることをどんどん機械化するのがシステム開発の動機ではないのでしょうか。


テスト技術者がその根源的な動機を否定するようなことがあってはならない気がします。実装技術者も同じです。