【今回の登場人物】
- 大塚先輩:
- 入社10年目。5年前に柏田マネジャーと一緒にソフトウェアテスト事業を立ち上げた。カメラが趣味で、
暇さえあれば写真を撮りに出かける。 - 中山君:
- 入社5年目。本連載の主人公。入社以来ソフトウェアテスト一筋で経験を積んできた。そろそろ大きい仕事をしたいと考えている。
- 小川君:
- 入社2年目。新人研修後、
その有望さから半年間顧客先に常駐。テスト業務の他、 設計作業も経験を積んできた。趣味はベースで、 定期的に仲間とライブを行うなど仕事と趣味を両立している。
新しいメンバー
テスト設計の成果物をテストケースの雛形と解釈した中山君。でき上がったもの
- 大塚先輩:
- 中山君のチームに今年2年目の小川君を入れようと思っているけど、
小川君を知ってるかい? - 中山君:
- いえ、
知りません。今までどのチームにいたんですか? - 大塚先輩:
- お客様先常駐のSUBARUプロジェクトだよ。
- 中山君:
- あの噂に聞く……。大変なプロジェクトにいたんですね。
- 大塚先輩:
- そうだ。いろいろと経験してきたみたいだけど、
中山君もしっかりと小川君を指導して欲しい。 - 中山君:
- わかりました。
リーダとして部下を指導するのは、
大塚先輩は内線電話で小川君を呼びました。3分程度して、
話によると、
- 小川君:
- 小川です。今までSUBARUプロジェクトにいました。詳細設計からシステムテストまで一通り経験いたしました。よろしくお願いします。
- 中山君:
- 中山です。SAKIGAKEプロジェクトのテストリーダをやっています。こちらこそよろしくお願いします。
- 大塚先輩:
- 小川君、
急ぎの仕事を抱えている? - 小川君:
- いえ、
今は引き継ぎ中なので大丈夫です。 - 大塚先輩:
- これからテスト設計のレビューなんだ。せっかくだから一緒にいてもらおう。
- 小川君:
- わかりました。ではノートなど用意する必要がありますね。一旦席にもどって準備してきますのでしばらくお待ちいただけますか?
テスト計画を見直す
小川君は5分程度で戻ってきました。大塚先輩は外部の意見を取り入れるという狙いで、
- 大塚先輩:
- さっそくだけど、
小川君。このテスト設計を見て欲しいんだけど。 - 小川君:
- はい、
わかりました。え~と、 このホワイトボードを使ってもいいですか?
小川君はすっと立ち上がり、
- 小川君:
- 中山さんは、
今回のシステムテスト全体をこのように考えているんですよね。
と、
- 大塚先輩:
- ほお、
小川君はマインドマップを描けるのかね。 - 小川君:
- はい、
前のプロジェクトで使っていました。
中山君は目を白黒しています。マインドマップという言葉を聞いたことはあっても、
- 小川君:
- システムテストを大きく分けると3つになりますね。この3つで十分ですか?
- 中山君:
- 大塚先輩がレビューしていていただいたテスト計画では、
業務シナリオテスト・ 性能テスト・ セキュリティテストの3つをやることにしてます。 - 大塚先輩:
- テスト分析が終わった段階で見直す必要は無いかな?
- 中山君:
- えっ、
どういうことですか? - 大塚先輩:
- テスト計画を書くときに、
すべての情報を持っているわけではないよね。限られた情報に基づいて書いているわけだ。当然、 工程が進むにつれ情報量が増えてくると、 見なさなければいけないだろう。 - 中山君:
- 確かにそうですね。
テスト計画の見直し
テスト計画を作るときには、
特にテストは開発の最終工程にあたり、
テスト計画を見直さなければならない可能性が常にあることを、
テストカテゴリを見直す
- 大塚先輩:
- 画面遷移のテストは終わっているの?
- 中山君:
- 結合テストで終わっていると思っているのですが……。
- 大塚先輩:
- 確認した?
- 中山君:
- いえ、
していません。
少し大塚先輩の顔が暗くなってきました。何か良くない兆候です。
- 大塚先輩:
- 中山君、
前回の新規開発時のバグ一覧を確認したかい? - 中山君:
- いえ、
していません。 - 大塚先輩:
- そうか……。ちゃんと確認しないと何とも言えないけれど、
たしか、 前のプロジェクトは性能テスト・ 負荷テストばかり重視して、 画面遷移がぼろぼろだったって聞いているんだよ。そんな噂、 聞いていない? - 中山君:
- いえ、
特に聞いていません。 - 大塚先輩:
- 何かイヤな予感がするんだよね。
窮地に陥っている中山君を見かねて、
- 小川君:
- ところで、
外部設計書の中に画面遷移図はあるんですか? - 中山君:
- 無かったよ。あったのは画面階層図だけだね。
- 小川君:
- じゃあ、
画面遷移のテストはやっていない可能性が高いですね。図面がないならやらないでしょう。 - 中山君:
- そうかなぁ。普通、
画面遷移のテストぐらいやらない? - 小川君:
- 私がいたプロジェクトでは、
結合テストで画面遷移のテストはやっていませんでした。システムテストに入ってバグが多発して、 急遽、 追加で画面遷移テストを入れました。 - 中山君:
- マジ?
- 小川君:
- どうやら、
このプロジェクトでは、 最初から準備しておいた方がよさそうですね。
小川君はそう言うと、
前工程で実施したテストの確認
中山君のチームはシステムテストを担当しています。そのため、
前工程で実施しなかったテストを、
今回のケースでは、
過去情報、類似プロジェクト情報の確認
大塚先輩はこの判断をするために、
モデルとテスト設計の関係
- 大塚先輩:
- 画面遷移テストはやっていない可能性が高いから、
こちらでも準備しておこう。何をすればいいと思う? - 中山君:
- 画面遷移のパスをいくつか挙げておくことでしょうか?
- 大塚先輩:
- 今はテスト設計を行っているんだけれども、
テスト設計という観点でも同じ答えになる? - 中山君:
- テスト設計の観点と言われましても……。
- 大塚先輩:
- 小川君はどう思う?
- 小川君:
- 時間に余裕があるとすれば、
画面遷移を状態遷移と見なした状態遷移テストをやりたいですね。 - 中山君:
- 状態遷移テスト?
- 小川君:
- はい、
画面を状態と見なして、 状態遷移図を作成します。その状態遷移図からテストケースを作成すると良いと思います。 - 中山君:
- 開発チームが作っていない設計書を作るの? それはテストチームの仕事じゃないでしょう。
- 小川君:
- いえ、
そうではありません。テストに必要なモデルを作るんです。 - 中山君:
- それはテストケースじゃないんだよね?
モデルを書く
システムテストは業務シナリオに基づいたテストをすることが多いようです。ですから、
しかし、
状態遷移テストは、
テスト設計としてのモデリング
テストリーダは、
また、
テスト観点とテスト設計の関係
- 大塚先輩:
- これはテストケースのたたき台だよね。
- 中山君:
- はい、
そうです。 - 大塚先輩:
- このテストケースはどうやって挙げたの?
- 中山君:
- どうって……。
- 大塚先輩:
- いくらなんでも闇雲に書き上げたわけじゃないだろう。
- 中山君:
- 考え抜いて書きました。
中山君、
大塚先輩は、
- 大塚先輩:
- 最初に書いてあるシナリオテストを取り上げてみようか。中項目や小項目に書かれている項目はどうやって考えたんだ?
- 中山君:
- ユーザの操作をイメージして書きました。書籍購入サイトですから、
本を購入するところからスタートして書きました。 - 大塚先輩:
- それはいいんだけど、
「1冊/ 複数購入」 「ギフト有無」 などがあがっているね。これらは何から挙げたんだ? - 中山君:
- 自分がこのサイトの顧客だと想像していろいろと挙げました。後は通常の購入パターンではない顧客の購入パターンを考えました。
- 大塚先輩:
- そうそう。その購入パターンというのは、
どんな組み合わせで考えたんだ? - 中山君:
- 組み合わせですか? これはシナリオテストです。組み合わせテストじゃありませんよ。ですから、
組み合わせなんて考えていません。 - 大塚先輩:
- シナリオを考えるとき、
適当に考えるんじゃなくて、 テストすべき観点を挙げていって、 その組合せを考えたほうがいいんだ。 - 中山君:
- 観点を列挙しようとしても、
テストケース表は大項目、 中項目、 小項目の3つしかありません。全部は書けませんよね。 - 大塚先輩:
- だから、
いきなりテストケース表を考えてはいけないんだ。俺は別の用紙でまとめてから、 テストケース表に落としていくよ。 - 中山君:
- 別の用紙ですか? 別の表に書くんですか?
- 小川君:
- 私はマインドマップを使っています。
- 中山君:
- えっ、
マインドマップ?
作業内容を曖昧にしない
中山君は、
テスト観点を洗い出す。
テスト設計という言葉は、
この連載では、
- テストで確認したい項目を列挙し、
その観点間の関係を考えること - 各種図表を作成して、
テスト観点を導き出すこと - テスト観点間の関係や組合せを考えること
- 組み合わせの中で、
今回のテストから省くものを考えること
などをテスト設計と呼んでいます。
各種文書からテスト観点を導き出し、
作業の振り分けを考えておく
- 小川君:
- ときに、
テスト実装は何人で行うのですか? - 中山君:
- 小川さんと… 予定ではもう一人にやってもらうことになっています。
- 小川君:
- なるほど。であれば、
ある程度どのように作業を担当するのか、 テスト設計の時点で作業分割のイメージが見えるようにしておいた方がいいですね。 - 大塚先輩:
- それにね。実際にどの程度のテストケースを作る必要があるのかも、
見えていた方が良いね。中山君、 そこは考えていたかい? - 中山君:
- …いえ、
そこはあまり考えていませんでした。
次の作業の分担イメージをもっておく
このご時世、
テスト設計はテスト観点をモデリングすることも大切ですが、
おわりに
さて、
それは、
さて、