japan.internet.com
japan.internet.com メンバーID
Twitter
Facebook
RSS
ピックアップ
2004年11月16日 00:00

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

■まとめ

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

記事提供:ファンサイド

プリンター用
記事を転送
この記事をクリップ!
【特別連載企画】大艦巨砲主義にして卓越したレスポンス--GALAXY S II WiMAX
【特別連載企画】大艦巨砲主義にして卓越したレスポンス--GALAXY S II WiMAX 1月20日より販売が開始されたサムスン製スマートフォン「GALAXY S II WiMAX」。カタログスペックでは、他メーカーのハイエンド機と同じように見えても、実際に使うと卓越したレスポンスに驚かされる。
⇒詳細記事はこちら
⇒連載記事一覧はこちら
注目のトピックス
最新コラム一覧
百式のネットビジネス研究
百式のネットビジネス研究
次のフライトでお好みの座席が空いたら教えてくれる「Expert Flyer」
週刊-サイト別アクセス状況データ
週刊-サイト別アクセス状況データ
12月の主婦層、ベルメゾンが首位を維持(VRI 調査)
アウンのグローバルマーケティング動向
アウンのグローバルマーケティング動向
Web プロモーションにおいて大切なこと―年度末編―
多言語×Web×海外マーケティング情報
多言語×Web×海外マーケティング情報
海外発、注目 AR プロモーション
エンジニア転職ノウハウ開発室
エンジニア転職ノウハウ開発室
楽天が目指す変革──Globalization、Agile、Big Data
中国・台湾ネットビジネス情報最前線
中国・台湾ネットビジネス情報最前線
中国から Web を見てもらいたいならば
マーケティングに活用できる最新トレンド
マーケティングに活用できる最新トレンド
改めて、「導線」最適化に目を向ける
次世代マーケティングチェーンの視点
次世代マーケティングチェーンの視点
ソーシャル時代における BtoC 型 Eコマース成功のポイント
Copyright 2012 internet.com K.K. (Japan) All Rights Reserved.