developerにもテストを

第1回 ソフトウェアテストのスタンダード

Comments

コンテンツシリーズ

このコンテンツは全#シリーズのパート#です: developerにもテストを

このシリーズの続きに乞うご期待。

このコンテンツはシリーズの一部分です:developerにもテストを

このシリーズの続きに乞うご期待。

はじめに – ソフトウェアテストの連載 –

ソフトウェアの爆発的な複雑さの増大、開発サイクルの短縮化要求などを背景に日本のソフトウェアの品質が注目されています。また、Web2.0に代表される新たなWebアプリケーションの形態、そしてそれに合わせたソフトウェア開発の方法が出現してきました。

この領域では、劇的に短時間でアプリケーションを開発するなど、アジャイルソフトウェア開発的な方向性も強まってきているように感じられます。アジャイル的な開発スタイルでは、わたし開発する人、あなたテストする人のようにきっちりとした分業ではなく、チームが融合し、開発者にもテストスキルが求められる場面が多くなってきています。

このような状況を背景として、ソフトウェアテスト(以下テスト)に関する連載をお送りします。developerWorksをご覧になっている開発者にとってテストについて考える、また知識を得る機会となる内容です。

その昔、といっても10年くらい前、日本語で手に入るソフトウェアテストの本はほんの数冊でした。

  • 「ソフトウェア・テストの技法」、 G.J. マイヤーズ(著)
  • 「ソフトウェアテスト技法」、ボーリス バイザー (著)
  • ソフトウェアのテスト技法 玉井 哲雄、松田 茂広、 三嶋 良武 (単行本 - 1988/1)

などです。これらは今でも十分通用する古典的名著と言って良いと思いますが、当時のWebアプリケーション黎明期やJavaが普及しオブジェクト指向開発が浸透し、さらにオフショア開発に移行していく中、これらだけでテストを理解し、管理し、ソフトウェアの品質を向上させることは、読者側に相当のスキルを要求していました。

テストケースはどうやって作れば効率がよいのでしょう?
ツールはどう使うと効果的なのでしょう?
テストプロセス全体をどうやって管理していくのでしょう?

本記事のテストの連載では、テストの基本的なことから最新のツール、そしてテストの将来について取り上げて行きたいと思います。テストは知的で創造的なのです。

連載概要

連載の概要を、まずお知らせします。テストの基本的なことからツール、資格から教育について回を進めて行きます。

第1回:ソフトウェアテストのスタンダード

テストの基本的な知識体系や技法、規格や標準について簡単に説明します。

第2回:ツールを駆使したテスト

テストを効率よく実施するためにはツールを上手に活用することが有効です。ツールをテストのどの作業に適用するのか、ツールを含めたテストについてまとめます。

第3回:テストにおけるオープンソース

テストにおいてもオープンソースのツールは数多く存在します。その中でこれは使えるというツールをピックアップして紹介します。

第4回:テスト技術者の資格認定

テスト技術者の資格認定として、Japan Software Testing Qualifications Board(JSTQB)テスト技術者資格認定試験が2006年から実施されています。この資格導入の背景や国際相互認定などについてご紹介します。

第5回:開発とテストのこれから – 学術・教育の観点から –

教育や人材育成の観点から開発とソフトウェアのこれからを、また日本のソフトウェアエンジニアリングについてまとめます。

これら連載をとおして開発者にもテストに興味を持っていただき、より良いソフトウェアを開発する助けになることが本連載の目指すところです。興味をもたれた方は参考文献に挙げられている書籍やインターネット上の情報をさらに参考にされると良いでしょう。

ソフトウェアテストのスタンダード

それでは、第1回テストのスタンダードを始めます。知識体系や標準というと、堅苦しくて眠くなりそうですが、今回はテストを語る上で、基本的なことがら、スタンダードとして、ソフトウェアエンジニアリング基礎知識体系(Software Engineering Body of Knowledge:以下SWEBOK)に触れておきたいと思います。

SWEBOKはソフトウェアに関する知識を集約・分類し体系化したものです。その領域としては以下の領域があります。

SWEBOKの知識領域

  • ソフトウェア要求
  • ソフトウェア設計
  • ソフトウェア構築
  • ソフトウェアテスト
  • ソフトウェア保守
  • ソフトウェア構成管理
  • ソフトウェアエンジニアリング・マネジメント
  • ソフトウェアエンジニアリングプロセス
  • ソフトウェアエンジニアリングのためのツールおよび手法
  • ソフトウェア品質

(参考文献[3]P3表1-1より引用)

ソフトウェアを開発し、テストし、保守していくためにこのような知識が体系づけられています。テストもひとつの領域として分類されていて、さらに詳細を見てみると、次のように分類されます。

ソフトウェアテスト

  • ソフトウェアテストの基礎
    • テストに関係した用語
    • 主要な論点
    • テストが持つ他のアクティビティとの関係
  • テストレベル
    • テスト対象
    • テストの目的
  • テスト技法
    • ソフトウェアエンジニアの直感および経験に基づいた技法
    • 仕様に基づいた技法
    • コードに基づいた技法
    • フォールトに基づいた技法
    • 利用に基づいた技法
    • アプリケーションの性質に基づいた技法
    • 選択および組み合わせ技法
  • テストに関係した計量尺度
    • テストされるプログラムの評価
    • 実施されたテストの評価
  • テストプロセス
    • 実践上考慮すべき事柄
    • テストアクティビティ

(参考文献[3]P73図5.1より引用)

このSWEBOKにおけるソフトウェアテストの分類で、開発者としても身近なテスト技法の分類について補足します。ソフトウェアエンジニアの直感および経験に基づいた技法はアドホックテストや探索的テストと呼ばれる技法で、エンジニアの知識に依存したテスト技法です。みなさん、よく実施されているテスト技法ではないでしょうか。こういったものもSWEBOKでは対象としています。また、直感と経験というエンジニアの個別的なテストからより一般的な、仕様やコード、フォールトなどに基づくテストも取り上げられています。

なぜ、このような分類をするかというと、テストの網羅性を確保する必要があるからです。自分の作ったものについてテストはしたが、これで十分であろうか?と考えてみてください。何か足りないものはないか?テスト技法でよりテストのカバレッジを上げられないか?といったときにこのSWEBOKを利用してください。テストを網羅するための“地図”となることでしょう。


ダウンロード可能なリソース


関連トピック


コメント

コメントを登録するにはサインインあるいは登録してください。

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=60
Zone=
ArticleID=263892
ArticleTitle=developerにもテストを: 第1回 ソフトウェアテストのスタンダード
publish-date=11022007