今回もテストに「ずっぽり」とはまってしまっているエンジニアたちが集まって主催する「JaSST:ソフトウェアテストシンポジウム」実行委員会のメンバー(以降JaSSTメンバー)による、肩の力を抜きながらも、多少技術寄りでテストの味付けが濃い議論をお届けします。
JaSST'05(2005年1月24〜25日に品川の東京カンファレンスセンターで実施予定)の開催が近づいてきており、気が付くと残すところ2カ月となりました。そこで本記事のための議論を行う懇親会前の、例会(本当はこっちがメイン)では、かなり具体的な企画の検討で盛り上がりました。ライブイベントも昨年以上に面白いものを実施する予定です。ぜひ楽しみにしてください。なお、本記事が掲載されるころには一般参加のご案内で詳細をお知らせできる予定です。
では今回も聞き慣れない用語や表現にはできるだけ解説を加えつつ話を進めていきます。
10月某日、都内某所にてJaSST実行委員会が実施された後、議論で疲れつつ今宵(こよい)もテスト談義に花を咲かすべく、前回と同じ飲み屋にたどり着きました。まずは生ビールで乾杯をした後、完全に酔っ払わないうちに議論をすべく大西が議論の口火を切りました。
大西 話のネタ振りとして、まずは世間一般でどんなテスト技法が使われているのかを示せればよいですよね。ちょうど、この前テストの話をしてきたセミナーのアンケートに参考データが載っていたので、少し紹介しましょう。
そういって大西がカバンから、「NPO法人組込みソフトウェア管理者・技術者育成研究
会(通称SESSAME:セサミまたはセッサミと発音)」のセミナーアンケート結果を取り出して、メンバーに見せました(2004年10月の中級者向けセミナーアンケート結果より抜粋)。
■ 制御パステスト[注1]
■ 境界値テスト[注2]
■ テスト・レビューを意識して行っているか
大西 この数字だけ見ると基本的なテスト技法が現場で広まりつつあるのは分かるけど、制御パステストは意外とまだまだ使われてない感じがありますね。昨年の数字からも、あんまりこの傾向は変わってないんですが、参考にどうぞ。
といって、今度は昨年のセミナーアンケート結果も並べました(2003年10月の中級者向けセミナーアンケート結果より抜粋)。
■ 制御パステスト
■ 境界値テスト
■ テスト・レビューを意識して行っているか
大西 テストやレビューは、余裕がないとやらないというのは去年も変わりなく寂しい限りです。ところで、皆さんのテスト技法に対する認識はどうでしょう?
榊原 テスト技法というわけじゃないけど、テストって昔からいわゆるKKD(経験・勘・度胸)だけでやってきたという現場が多いんじゃないですか。KKDでやっている限り、MMK(もうかってもうかって困る)という次元にはまず達しないから基本的なテスト技法くらいは押さえておかないとね。
松岡 そりゃあそうでしょう。境界値くらいはMustでしょう。
湯本 Mustというか、テスト担当者は境界値テストを本能でやっていますよ。
ここでテスト実践派(動的テストによる検証をこよなく愛する人たちのことを指す)は一同、大きく首を縦に振ったのでした。
大西 確かに制御パステストにしろ、境界値テストにしろ、当たり前に使わなきゃいけないでしょうね。じゃあ、実際に使ってみて効果があるベーシックなテスト技法って何だと思います?
西 機能一覧のリストを使って、機能網羅テストするだけでも、地道だけれど以外と利くんですよ。ただ機能をリストしてるだけって、結構バカにされたりするけど、こんな基本的なことでさえ、実際にやるとびっくりするほど効果的なんですよね。
大西 機能網羅くらい当たり前だと思うんですが、何せ余裕がないとやってもらえないフェイズだから、逆に考えると少しでもやれば効果が上がるんでしょうね。さて、ほかにもないですか。
榊原 基本といえばデシジョンテーブルでしょう[注3]!
鈴木(三) 変則的なデシジョンジョンテーブルの使い方もありますね。
湯本 DBのテストをするときは、CRUD[注4]をちゃんと作って網羅性を確保するのも大事なんで結構真剣にやってますよ。TMap[注5]では、データライフサイクルテストなんていい方をします。
鈴木(三) そうそう。僕もCRUDを使ってテスト設計してますよ。
榊原 CRUDは設計でやることじゃないの?
湯本 本来そうです。デシジョンテーブルも本来は設計できちんとやらなきゃいけないことだと思いますよ。テスト技法も突き詰めると設計と同じテクニックが求められるわけですよね。
大西 なるほど。ここまでは基本的な技法について話をしてきましたが今度は知っているようで知らないとか、よく分からないテスト技法について何か聞かせてもらえませんか。
榊原 テストマニアが心躍る技法もあるよね? 例えば、直交表[注6]が大好きな人たちもいるし。
テスト実践派一同 確かに、実践派として直交表をきちんと使いこなせると、かっこいいかもしれない。
大西 昨年のJaSST'04では直交表に関する発表がベスト・スピーカー賞でしたね。あれは、きちんと使いこなせている良い事例ですね。
鈴木(三) ホワイトボックス[注7]とブラックボックステスト[注8]の中間的な位置付けのテストとして、グレーボックステストもはやっていますね。初めてこの技法名を聞いたエンジニアは結構、「へぇ〜」となりますね。
湯本 いろいろ技法を論じていて思うんですけど、テストで大事なのも結局モデルですよね。状態遷移テストや制御パステストなど、モデルがしっかりしていないとテストの妥当性が確保できないですから。
西 しっかりとモデルを作らないと網羅できないでしょうしね。そういえば、話は変わりますが……。
どうやら、前回同様モデルの話に行き着いたところで、話はテスト以外の議論へと移っていきましたので、今回の議論パートはここまでにしたいと思います。では次のパートでは、議論の後半に取り上げられたモデルベースのテストについて解説しましょう。前回でもモデルとテストの関連について取り上げましたが、それを補足する意味で、今回は角度を変えた説明を行います。以下の解説は湯本と本記事取りまとめ担当の大西がまとめました。
Copyright © ITmedia, Inc. All Rights Reserved.