japan.internet.comThe Internet & IT Network
Twitter
RSS
  • ニュース
  • コラム
  • リサーチ
  • ヘッドライン
  • 特集
  • ブログ
  • プレスリリース
  • 専門チャンネル
  • イベント
  • ランキング
  • ニュースメール
2009年11月24日
文字サイズ文字サイズ小文字サイズ中文字サイズ大
事業仕分けによる次世代スーパーコンピューターの開発予算削減について、どうお考えですか?
賛成
反対
どちらとも言えない
投票締切 11/30 12:00
Webビジネス2004年11月16日 00:00

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

■まとめ

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

記事提供:ファンサイド

  • プリンター用
  • 記事を転送
  • Post to Twitter
  • Post to Facebook
  • このエントリーを含むはてなブックマーク
  • この記事をクリップ!
  • BuzzurlにブックマークBuzzurlにブックマーク
  • Yahoo!ブックマークに登録
  • newsing it!
  • この記事をokyuuへインポート
最新トップニュース
Graphic Design Forum
【Graphic Design Forum】
流動的媒体と静的媒体に関する見解(11月18日)
アイレップの SEM フロンティア
アイレップの SEM フロンティア
検索技術の進化で広がる SEO 領域―2010年以降に要求される事は?(11月24日)
百式のネットビジネス研究
百式のネットビジネス研究
外国で見かけた標識を写真に撮ると翻訳してくれる iPhone アプリ「PicTranslator」(11月24日)
エンジニア転職ノウハウ開発室
エンジニア転職ノウハウ開発室
エンジニア的「合わない」と思う瞬間/理系の人々(11月24日)
DevX
DevX
HTML 5のフォーム要素(11月24日)
「IT の耳」
「IT の耳」
【書評】『Hyper-V スタートアップバイブル』――仮想化についてのすぐれた解説書(11月20日)
週刊-サイト別アクセス状況データ
週刊-サイト別アクセス状況データ
ビデオリサーチインタラクティブ調査(月間インターネットオーディエンスデータ)(11月19日)
海外ソーシャルウェブに学ぶ成功の秘訣
海外ソーシャルウェブに学ぶ成功の秘訣
ゲーム業界を襲う世界的な激震。ソーシャルゲーム急成長のインパクト(11月19日)
成約率、反応率を上げる Web 文章術
成約率、反応率を上げる Web 文章術
文章力を磨き、キャッシュを生み出す Web サイト に(11月19日)
今さら聞けない初歩からのアクセス解析
今さら聞けない初歩からのアクセス解析
サイトリニューアル前のアクセス解析活用法(11月19日)
「Webからの脅威」―その傾向と最新対策
「Webからの脅威」―その傾向と最新対策
新たな対策技術:スパムフィルタリングと E-mail レピュテーション(11月18日)
Copyright 2009 Japan Internet.com K.K. All Rights Reserved.http://www.internet.com/