アンケートご協力のお願いgihyo.jpでは,2010年度に向けて豪華プレゼントが当たる読者属性アンケートを実施しております。ご協力ください。

gihyo.jp » DEVELOPER STAGE » 連載 » ソフトウェアテストと「人間力」 » 最終回 「あっ,しまった!」と思う前に

ソフトウェアテストと「人間力」

最終回 「あっ,しまった!」と思う前に

テスト実施はその気があれば際限なく行うことができますが,計画通りに全てのテストを実施して完了したときに,読者の皆さんはどんな感覚を得ますか。やるべきことをやった「すっきり感」,それともまだまだ足りない「もやもや感」,はたまた「別になにも感じない」とそれぞれでしょうか。

筆者は,テスト工程が終わってしまってからの対策は「後の祭り」,そう手遅れと考えています。したがって,テストが終了するまでは,じたばたと足掻きながらテストを実施します。しかし,プロジェクトによっては「すっきり感」で終わることも,「もやもや感」で終わることもあります。どちらで終わったとして完全なテストはありえませんが,できればすっきり終わりたいですね。

テストの性質を知る

テストはどの工程から開始しますか?製品(やシステム)の仕様が決まってからとか,開発工程のプログラムの実装が終盤になってからなど,いろいろあると思います。実は,テストは実施する工程によって性質が異なります。そのテストの性質を理解して,いざテストに臨むと効果が得やすくなります。

開発工程終盤のテストは「歯止め」

実際に行われている多くのテストは,不具合の流出を防ぐ「歯止め」が目的になります。そこでのテストは,網羅性やリスクとかをベースにテストが組み立てられて行きます。効率の良いテストの組み合わせで網羅性を向上させたり,リスクを考慮して”やるべきテスト”を絞ったり,可能な限りテストの効率性を追求します。その一方で,開発で品質が作り込まれていない製品などが送り込まれた場合,このテスト期間は修羅場と化します。

開発工程前半のテストは「抑止」

どうしても開発工程の終盤のテストに目が向けられがちですが,一般的には「テストを早く始めたほうが効率が良い」と言われます。開発初期のテストって,あまりイメージがわかないかも知れません。しかし,レビューやインスペクションのような静的テストは,開発ドキュメントが存在すれば実施できるので,当然開発工程のかなり早い段階で実施することができます。この開発工程前半のテストを「抑止」と考えています。

筆者の場合,この「抑止」効果を考えることで,テストへの取り組み方が変化してきました。従来から仕様書のレビューや開発者とのブレインストーミングによって,仕様や要求の曖昧な点を指摘,質問し,テストの実施に反映させています。これらは,テスト設計を行ったりテスト実行計画の考慮に利用したり,テストチーム側に必要な作業として実施しました。そのために,これらの行為が機械的に行われていた部分もあります。決して仕様書のレビューやブレインストーミングを否定しているわけではありませんが,「抑止」効果を最大限に発揮させることができれば,後工程で効率的なテストが期待でき,テストにおけるミスを減少させることができます。

筆者が抑止効果を感じる最大のポイントは「気付き」を与えることです。

テスト開始は早いほど良い!?

※指定画像がありません※

(イラスト:ひのみえ)

人間力「気付き」を与える

現実には,「気付き」はいつ起こるかわかりません。しかしながら,開発工程前半の「抑止」を実施するときに誘導することが望ましく,それらの要素をテストによって引き出します。では,どのように実施すれば良いか,テスト設計を一例に考えてみます。

テスト設計では,下記のような流れで行います。

  • ①テストを実施する範囲を決定します(ビックバンテスト以外では,一般的にテストレベルごとにテストが実施されるので,対象となるテストレベルとテストの対象範囲を決めます)。
    テストレベルでは,“単体テスト”から“結合テスト”,“統合テスト”,そしてそれ以降のテストにレベルが変化します。
  • ②テストの観点をあらかじめ確認し,テスト方式を想定しておきます。
    テスト観点とは,テスト対象の持つ特性(エンタープライズ向けアプリケーションなら,そのビジネスモデルなど)を確認するための要素になります。
  • ③テスト対象で確認すべき“振る舞い”(通常は,テスト対象の機能や動作)を抽出します。
  • ④③の“振る舞い”が動作する環境や条件を抽出します。
  • a)すべてのテスト条件を一覧表にまとめます。一般的な変数だけでなく,プラットフォームの種類やデータ種別,コマンド種別などの多くの条件があります。
  • b)正常動作する環境や条件を抽出します。正常動作の範囲には,ノーマルケースとエクセプショナルケースに分類します。
  • c)動作しない環境や条件を抽出します。正常動作の範囲外や仕様に記述されていない組み合わせ可能性のある条件などです。正常動作の範囲境界では,「限界値分析」なども考慮します。
  • d)動作保証外の条件を抽出します。c)との違いは,動作しない仕様(エラー表示する,動作が停止する等)に対して,テスト対象がどのような振る舞いを起こすかが想定外(いきなり電源を切るなど)な条件です。この条件の抽出に関しては賛否が分かれると思いますが,筆者は動作保証外の障害でも利用者の利便性に関係のある条件はテストを実施しています(たとえば,利用中電源が落ちてもハード的な故障が起こらないか,など)。仕様外機能もここで検討します。
  • ⑤テストの観点を加えて,構成すべきテスト方式を決定します。
  • ⑥抽出した“振る舞い”や条件を組み合わせて,テストケースにします。

実際には,実施するテストの種類によって上記の流れは変化します。テスト設計の流れを見てみると,②以降は開発の流れに近いと思いませんか。実は,テスト設計で作成するテスト仕様は,開発仕様とほぼ同等になります。その上,テストでは動作しない環境や条件,抽出した“振る舞い”と条件の組み合わせなど,開発にない多くのパターンを考慮しています。このテスト仕様と開発仕様の差異部分に,「気付き」の要素が多く含まれています。

「この仕様だったら,こんな不具合が」

テスト仕様と開発仕様の差異がポイントであるとお話しました。でも,これだけでは「気付き」を得ることは難しいかもしれません。そこで,テストエンジニアならではの視点の一例をお教えしましょう。それは開発仕様に「結果系」の記述が少ない場合が黄信号だということです。テスト設計の基本は,入力と対応する出力,つまり期待値を設計することです。経験的にその期待値が不明な仕様書には,途中のプロセスに不備があるケースが多いといえます。処理(プロセス)中心的な開発仕様の場合で結果系の記述が曖昧な場合は,期待値を求める(ヒアリングや質問,ブレストで聞いちゃいましょう)ことで「気付き」を与えることができます。

なんちゃって「人間力」にならないために

この連載では,テストと「人間力」についてのお話をしました。最近では,開発プロセスにテストを組み込んで実施されるケースも多くなってきました。そして開発後期のテストは,自動化などで機械的に実施され,効率を求められるようになりました。しかし,プロセスに頼り機械的,形式的になると「人間力」が低下してしまいます。実際には,テストはまだまだ「人間力」を必要としています。また,どこかの機会にお話するために,ますます「人間力」を高めようと思います。

著者プロフィール

佐々木方規(ささきまさき)

1985年株式会社CSKに入社後,テスト業務に従事しながら検証のノウハウを学ぶ。現在は,株式会社ベリサーブでテストに関する技術開発・人材育成に取り組んでいます。IPAソフトウェア・エンジニアリング・センターやJSTQB,IT検証産業協会(IVIA)では教育・研修部会の主査として活躍中。

コメント

コメントの記入

パスサポ

多数の情報処理技術者試験対策書籍の発行実績を誇る技術評論社がお届けする,資格試験合格サイト「めざせ! 情報処理試験 パスサポ」が開設されました。

ピックアップ

サクセスストーリーに続く,快適サーバー運用管理のヒント!

データの増大,煩雑な管理,システムダウン,セキュリティなど,迫りくる課題からシステム管理者の負担を軽くするポイントを解説します。

gihyo.jp インフラエンジニア情報局

ネットワークやITにかかわるあらゆる業種で必要とされるインフラエンジニアに向けた技術情報や心構え,その魅力について多角的に紹介。

テストエンジニア ステーション

いま,ITに関わるあらゆる開発業務で注目されつつあるテスト系エンジニアをターゲットにしたコンテンツサイトを展開します。

一行クイックアンケート

gihyo.jpで取り上げてほしいネタは?

※検索はページ右上の検索ボックスをご利用ください。

その他の連載

読むウェブ ~本とインタラクション

ディスプレイで読む活字とそのインタラクション(interaction:相互作用)について,最新Webを紹介しながら読み解いていく。

いま,見ておきたいウェブサイト

この連載では,国内外の最新のウェブサイトを隔週更新で取り上げ,これら最新サイトの特徴や素晴らしい部分を,さまざまな角度から解説していきます。

Windows phoneアプリケーション開発入門

Windows Marcketplace for Mobileがサービス開始され,作成したアプリケーションを個人でも世界をターゲットに公開できる環境が整ってきました。これを機にWindows phoneアプリケーションの開発をしてみませんか?

ここは知っておくべき!Windows Server 2008技術TIPS

5年ぶりのサーバOSとなったWindows Server 2008が出荷されて早2年。2009年にはR2が出荷され,再び注目を集めています。発売前から実施したトレーニングによって感じた,インフラエンジニアの方々に知っておいていただきたい機能を中心にご紹介します。

キーパーソンが見るWeb業界

本連載はWeb Site Expert/gihyo.jpとの連動企画です。阿部淳也, 長谷川敦士, 森田雄のお三方による,Web業界をテーマにした座談会です。

きたみりゅうじの聞かせて珍プレー

ソフトウェア開発の現場で体験したトホホな失敗,思わずうなる珍プレーをきたみりゅうじ氏が四コママンガで紹介。みなさんからの投稿もお待ちしてます!

ActionScript 3.0で始めるオブジェクト指向スクリプティング

野中文雄氏が,簡単なスクリプトは書いたことがあるという初級者を対象に,ActionScript 3.0の基本からクラス定義までを解説します。

まだ間に合う「ITパスポート」受験対策 原山先生の短期合格塾

この連載では,4月18日のITパスポート試験の受験に向けて,短い期間で効率良く受験対策を行う方法や,確実に得点するための裏ワザなどを伝授していきます。

連載一覧

gihyo.jp

  • DEVELOPER STAGE
  • ADMINISTRATOR STAGE
  • WEB+DESIGN STAGE
  • LIFESTYLE STAGE
  • SCIENCE STAGE
  • NEWS & REPORT

書籍案内

  • 新刊書籍
  • 書籍ジャンル一覧
  • 書籍シリーズ一覧
  • 新刊ピックアップ
  • ロングセラー
  • 電脳会議

定期刊行物一覧

  • Software Design
  • WEB+DB PRESS
  • Web Site Expert
  • 組込みプレス