新人注目! テストを極める最初の一歩

第2回 やみくもにテストをしていませんか?

この記事を読むのに必要な時間:およそ 3 分

やるべきテストには目的や狙いがある

やみくもテストとやるべきテスト。この2つのテストの決定的な違いは,テストそのものに明確な目的があるかどうかです。

やみくもなテストは「テストを行う」という漠然とした目的はあるかもしれません。しかし,それ以上の目的を見いだせないことがほとんどです。

やるべきテストは,たとえば「マニュアルの操作どおりに画面が遷移するか確認する」とか「サーバに負荷をかけても大丈夫か確認する」といったような目的があります。

A君は,M先輩から数枚の仕様書を渡されました。ということは,少なくともその仕様書に書かれていることを,なんらかの目的や狙いに沿って,テストする必要があるわけです。そして,その目的や狙いに沿ってテストを行うためには,さまざまな検討や資料の作成が必要となってきます。

つまり,やるべきテストは「明確な目的が存在し,その目的を達成するための事前準備や記録,報告がある」ということです。

宝探しに例えると

テストの大きな目的のひとつは「バグを発見すること」です。これは例えるならば『宝探し』と似ています。

やみくもなテストとは,地図も持たず道具も何も持たず,宝が何であるかも考えることなしに,いきなり宝探しに出かけてみるようなものです。そうそう見つかるわけがありませんし,宝を見つけたとしても,宝を宝と認識できずに見逃してしまうかもしれません。

宝探しを行うにあたって,事前準備や記録,報告といった作業をしっかり行うとどうなるでしょうか。きっと,宝を発見できる確率が向上し,また,効率的な探索が行えることでしょう。

やるべきテストとは,宝を探す前に,地図とコンパスを用意し,発掘するのに必要な機材と要員を手配し,必要ならば書類を役所に提出するというようなものです。宝を探すという直接的な作業の前に,手間のかかる作業がたくさんあるのです。

準備や記録,これらは手間がかかる大変な作業です。また,これらをきちんと効率的に行うために,テスト手法や技法,管理技術といったものが存在し,活用する必要があります。なにも考えず場当たり的にソフトを操作するだけのテストと比べると,面倒なことだらけです。

しかし,どちらの方法ができるかぎり効果的・効率的にバグを発見するという目的を達成するかは,自ずと分かると思います。

やみくもなテストから脱出するためには

やみくもなテストの問題点を説明しましたが,では,このやみくも状態からどうやって抜け出せばいいでしょうか?

新人の方は,まずは次の点をしっかりと抑えましょう。

  • テストの目的を定義する
  • テスト対象を定義する
  • 使用するテスト技術をリストアップする
  • テストに使えるリソースを確認する
  • テストの終了基準を決めておく

テストの目的を定義する
今から行うテストは何のために行うのか,その目的を定義しましょう。その目的や狙い,戦略については自分でわからなければ,指示を出してくれた先輩に確実に確認しましょう。その確認は口頭で済ませてしまってはいけません。必ず何らかの文書として作成し,先輩に確認してもらいましょう。
テスト対象を定義する
プログラム,ソフトウェア,システム(ソフト&ハード)など,どれをテストするのかによって,テストは変わります。また,外部とのインターフェイスも考慮すべきかどうかによっても変わります。テストを実施する前に,⁠何を」テストするのか確認しましょう。
使用するテスト技術をリストアップする
テストする目的や対象によって,使うべきテスト技術は異なります。どのような技術を使うのかをリストアップします。どんな技術があるのか,何を使えば良いのか分からない場合は,恥ずかしがらずに先輩に聞きましょう。もし,⁠知っている」のであれば,自分の理解で正しいかどうかを確認します。
テストに使えるリソースを確認する
テストのリソースには,代表的なものに「人,物,時間」があります。⁠誰が,何を使って,どれだけの時間でテストを行う」という一文を書くだけでも,テストの計画を立てるための大切な情報となります。どんな形であれ計画をたてた時点でやみくもではなくなります。
テストの終了基準を決める
新人さんは特に忘れがちですが,テストの終了基準を決めておかなかったばっかりに,いつまでたってもテストを終了できないということがおきます。この基準には,テストケースを100項目実行するとか,致命的なバグが見つかったらその時点で終了とか,様々なものが考えられます。 もし,これらのような基準がない場合でも,最低5時間行う,といった終了基準だけでも決めておくべきです。

この他にもポイントはありますが,まずはこれらをしっかりと抑えるところから始めましょう。これらを押さえるだけでも,やみくも状態からかなり脱出することができます。

また,テストがやみくもでなくなるだけでなく,自分の作業も明確になり,仕事としてきちんと計画だてることができます。

終わりに

やみくもなテストとやるべきテストの基本的な違いを解説しました。この時点で,⁠テストは事前準備から含めてたくさんの作業がある」ということが認識できれば,ひとつレベルが上がっています。与えられた仕事をこなしているだけでは,あまり成長は望めません。ひとつ上の技術者を目指すのであれば,準備を怠ってはいけません。

次回以降はやるべきテストにおける,テストの実行までの事前準備について解説を行います。

余談:計画的なやみくもテスト

やみくもテストはよくないという説明をしてきましたが,ある目的を持って敢えて実行することがあります。

たとえば,ソフトウェアをまったく知らない人に適当に操作してもらい,開発者やテストエンジニアの先入観によって発見しにくい類のバグを発見してもらうという目的です。この場合は,テスト実施者はやみくもに実施しているとしても,テストとしては明確な目的を持っていることに注意して,決して混同しないようにしてください。

著者プロフィール

鈴木三紀夫(すずき みきお)

1992年,(株)東洋情報システム(現TIS(株))に入社。複数のエンタープライズ系システムの開発に携わり,現在は社内のソフトウェアテストに関するコンサルタントとして活動中。ASTER理事,JaSST実行委員,JSTQB技術委員,SQiPステアリング委員 他。

著書


池田暁(いけだ あきら)

2002年日立通信システム(現日立情報通信エンジニアリング)に入社。設計,ソフトウェア品質保証業務を経て,現在は開発に関する設計/テストツールの導入や,プロセス改善に関する業務に従事。ASTER理事,JaSST実行委員,品質管理学会・ACM正会員。

著書