japan.internet.comThe Internet & IT Network
RSS
  • ニュース
  • コラム
  • リサーチ
  • ヘッドライン
  • 特集
  • ブログ
  • プレスリリース
  • 専門チャンネル
  • イベント
  • ランキング
  • ニュースメール
2009年7月4日
文字サイズ文字サイズ小文字サイズ中文字サイズ大
Webビジネス2004年11月16日 00:00

Web システム開発におけるテストの役割

国内国内internet.com発の記事
  • このエントリーを含むはてなブックマーク
  • この記事をクリップ!
  • Buzzurlにブックマーク
  • Yahoo!ブックマークに登録
  • newsing it!
  • この記事をokyuuへインポート
■システム開発における各種テスト

システム開発では、大抵の場合、開発のみで完了するのではなく、 リリース/納品前に各種のテストを行う「テストフェーズ」を設けている。 行われるテストには、最小ユニットごとの動作を確かめる単体テスト、 各ユニットを結合したときにきちんと動作しているかをチェックする結合テスト、 求められている機能が期待通りに動いているかを検証する機能テストなどがある。

プロジェクトによっては、 テストを専門に行うテスターがチームにいることもあるが、 一般に、開発担当者はコードを書くのが好きな一方、 テストの類に関しては嫌いがちだ。 つまり、テストを実施するのは、 新しいコードを書くことよりも知的興奮が喚起されないうえに、 自分の書いたコードに間違いを発見するかもしれないからだ。

そのようなことなんてわざわざやりたくない、というわけで、 そんな時間があるなら、 一行でも新しいコードを書いて前に進みたい、 と感じるのが開発者の人情のようである。

また、システム開発に詳しくない人間にとっては、 なぜテストが必要なのかということが骨身にしみては理解されていない。 開発者個々人のスキルが高いのだからテストなど不要だろう、 テスト時間を短縮してその分早期リリースを、 というような案が開発担当ではない人間から出されることがある。

が、しかし、開発担当者にとってどんなにつまらない作業だろうと、 営業担当者にとってどんなに削れそうな工程に見えようと、 システム開発にとってテストは必須なのである。

■なぜテストが必須なのか

これらのテストを実施する目的は、 簡単に言えば、複雑なシステムの「品質管理」である。

システムとは個々の要素が有機的に組み合わさって全体となっている。 システム全体をひとりが一気呵成につくりあげるのは難しい(規模によるが)。 したがって、多くの場合は、システムを個々の要素に分解して、 複数の人間が分担しつつ構築していくことになるのだが、 人間が行うことなので、その過程でいろいろな問題が入り込む可能性がある。 個々の要素に問題がなくても、組み合わさった時点で問題が発覚することもある。 開発時につぶせる問題もあるが、そうでない問題も存在する。

それらの問題を洗い出すのがテストだ。

テストを実施するにはコストがかかる。 が、テストにかけるコストと、 テストを実施しなかった場合に起こりうる不利益発生(パッケージ商品の開発などでは、最悪商品回収騒ぎになることもある)を天秤にかけた際、 テスト実施によるコストをかけた方が見合うという判断がされるのが通常だ。

そのため、システム開発時にはテストが実施されている。 実際にここまで読まれた方の中で、 システム開発に携わっておられる方は「何をいまさら当たり前のことを力説しているのだろう?」と不思議に思われたに違いない。

力説しているのは、テストが当たり前ではない世界が存在するからである。

■Web システム開発におけるテスト

Webシステム開発において、テストがされなかったり、 必要ないと認識されていることがある。 そもそもテストはやるものなのだ、という知識がないケースを除き、 その代表的な理由として以下が挙げられる。

1.Web システムは繰り返し更新して進化していくべきスクラッチ&ビルドのシステムなので、問題点はその過程のどこかで修正すればよいと考えている
2.ユーザーは Web 上の無料で使えるサービスなら、 その機能が少々だめでも許してくれると考えている
3.ユーザーテストが機能テストを兼ねると考えている

それぞれへの反論は以下である。

[1への反論]
スクラッチ&ビルドはあくまでサイトがより良いサイトに進化するためのもので、 テストを実施しなかったり、 テストにより発覚するバグ修正を後回しにする言い訳にすべきものではない。

スクラッチ&ビルドが可能であるということは、 競合も今以上に良いシステムを作リ続けることが可能だということを意味する。 毎回の開発過程でテストを実施し、 バグの洗い出しと修正に最善を尽くしてから後、 次のバージョンでは「修正」ではなく、 「クォリティアップ」をめざしたい。

[2への反論]
Web 上のサービスは無料だからありがたいというだけで、 かつては許されていたが、 現在では、無料が前提の上に、 たとえ無料であっても提供するサービスのクォリティが厳しく問われる時代になっている。

ユーザーからクレームは直接来ないかもしれないが、 だめなサービスからユーザーはただ黙って去ってしまう。 ジャンルを問わず、 先行して成功しているサービスのハイクォリティを、 ユーザーはすでに知っているということを忘れずに。

[3への反論]
ユーザーテストは、機能するシステムについて、 使いやすさを調べていくために行われる。 機能テストのようにシステムが処理する内容が正しいかどうかについて検証するためのものではない。 あくまで、実際のユーザーが、 そのシステムの使い方が学習しやすいと感じるか、 誤った動作をせずに使えるか、主観的に快適か、 などという点を見るものである。

したがって、ユーザーテストは、テスターが行う機能テストの代理にはならない。

逆も真であり、機能テストもユーザーテストを兼ねることはできない。 ふたつは別のものである。

■まとめ

Web システム開発においてもテストフェーズは必須である。 テスト実施により回避されるリスクについて考慮すべきだ。 また、別の役割を持つテストを他のテストの代わりにはできない。 機能テストは機能テストとして、 ユーザーテストはユーザーテストとして実施すべきである。

記事提供:ファンサイド

このエントリーを含むはてなブックマーク この記事をクリップ!
BuzzurlにブックマークBuzzurlにブックマーク Yahoo!ブックマークに登録
この記事をokyuuへインポート
最新トップニュース
データメーション
【データメーション】
中国が「Green Dam」フィルタ規制を撤回(7月1日)
Graphic Design Forum
【Graphic Design Forum】
Chris Dickman(6月25日)
プライバシー ジャパン・インターネットコム版
【プライバシー ジャパン・インターネットコム版】
グーグル・ストリートビューの問題について総務省の見解(6月23日)
エンジニアの独り言
【エンジニアの独り言】
システムを「使う」時代のエンジニアに求められるもの(6月2日)
最新ハイテク講座
最新ハイテク講座
電気は家庭でつくる時代へ!燃料電池「エネファーム」(7月3日)
アクセス解析で見るWebマーケティング
アクセス解析で見るWebマーケティング
決定力を探るアクセス解析(7月3日)
百式のネットビジネス研究
百式のネットビジネス研究
ファーストフードを高級っぽく盛り付けて紹介している「Fancy Fast Food」(7月3日)
週刊-サイト別アクセス状況データ
週刊-サイト別アクセス状況データ
ビデオリサーチインタラクティブ調査(月間インターネットオーディエンスデータ)(7月2日)
成約率、反応率を上げる Web 文章術
成約率、反応率を上げる Web 文章術
言葉がダイレクトにキャッシュを生む(7月2日)
不況時代の Web ビジネス最適化講座
不況時代の Web ビジネス最適化講座
アクセス解析エキスパートここだけの話、Web コンシェルジュの“勉強法”こっそり教えます(7月2日)
「Webからの脅威」―その傾向と最新対策
「Webからの脅威」―その傾向と最新対策
不正プログラムの分類(7月1日)
DevX
DevX
JavaScriptとDOMによる動的なWebページの作成(6月30日)
エンジニア転職ノウハウ開発室
エンジニア転職ノウハウ開発室
今のままで大丈夫?3匹の子ブタ的キャリア危険度診断(6月30日)
アイレップの SEM フロンティア
アイレップの SEM フロンティア
Web サイトは「無駄な穴のたくさん開いたじょうご」〜サイト成果向上の基本的な考え方(6月30日)
Copyright 2009 Japan Internet.com K.K. All Rights Reserved.http://www.internet.com/