>& STDOUT

主にソフトウェアに関する日々の標準出力+標準エラー出力

逆引きソフトウェアテスト関連技術まとめ

Software Test & Quality Advent Calendar 2011」の8日目。アドベントカレンダーということで、普段と少しトーンを変えてソフトウェアテストにあまり造詣のない方へ向けて何か役に立つ記事を考えてみました。先の記事でも述べたとおり、ソフトウェアテストの関連技術を表す用語はそれが何に使えて、何に役立つのか、門外漢にはとってもわかり難いので、そちらを軸にした紹介があると便利かもしれないということで、関連技術を目的別に整理し、参考になる記事や資料にリンクする形でお届けします。

テストの戦略を定めたい

ソフトウェアテストプロジェクトの最上流工程と考えられているテスト分析の方法論です。プロダクト、プロジェクトに対してそれぞれ独自の方式で戦略を検討します。テスト計画と一部被る部分もありますが、プロジェクトの予算やスケジュールをひとまずおいて技術的な視点から本当に必要なテストを考えるのに役立ちます。

マインドマップは方法論というより考えをまとめるためのツールですが、テスト戦略や設計など容易に果てしなく拡がってしまう検討事項をまとめるのにとても適しています。こちらも参照。

テストの方針を定めたい

戦略とどう違うのか説明が苦しいところですが、ここでは戦略策定の中で実際に採用されるもっとも高位のテスト方針の具体例を列挙しています。スクリプトテストは「先にテストケースを準備してから実行する」タイプの普通「テスト」と聞いて思い浮かべる方針です。なお、このテスト方針で通常生成される成果物(テスト計画、テスト設計、テストレポート等々)のひな形はIEEE829に定義されています。探索的テストはテストの実行と設計を同時に行なっていくアプローチで、リスクベーステストはテスト戦略/マネジメントにある特徴的な方向性を付与します。モデルベースドテストはソフトウェアのあらゆるレベルの(使えそうな)構造から、テストケース、テストデータを自動的に導いていく、というものです。

テストの開発プロセスを定めたい

テストスイートも分析して、設計して、実装してはじめて生まれる開発成果物ですので、当然開発プロセスが存在します。するのですが、多種多様な開発側?(この言い方はあまり好きではないのですが)のプロセスに比べてテスト側?(この言い方は(略))はかなり希少です。

テストのボリュームを”正しく”抑えたい

そもそもソフトウェアテストがひとつの技術として成立した背景にはこの問題がそびえ立っています。テストすべき無限の空間から、効率的かつ網羅性を担保しつつ現実的にテストできる量を”正しく切り出す”ための方法論がこちらです。この”正しさ”をどう捉えるかによってさまざまな技法が考案されています。また、これらの技法は要件定義や業務フローに対するテストでも粒度を大きく取ることで活用することができるので、その適用範囲は決して下流限定ではないことに注意です。

テストのヒット率を向上させたい

こちらはある程度完成しているテストに対して更に検出率を高めるためにふりかけるスパイスのような技法です。エラー推測は経験ベースのテスト技法に分類され、設計、実行するテスト担当者に対象製品への深い造詣と使用またはテスト実施経験が必要なので、案外導入の敷居が高いです。ある程度熟練したテスト設計者であれば用語は意識しないまでも、取り込まれていることでしょう。

ある特定の目的に向けてテストしたい

一般的に「テストの種類」と言うとこの辺があがってくるかと思います。単語で検索して良質な記事が出てくる割合が高いので用語だけで。JSTQBでは「テストタイプ」と呼称される、特定の品質モデルの要素を検証することに特化したテストの方式、方法論を指します。「特定の品質モデルの要素」に特化したもの、ですので必ずこれより先にテスト戦略や方針の策定を行わなければなりません。

  • テストタイプで挙げられているテスト群
ストレステスト、ロードテスト、セキュリティテスト、ユーザビリティテスト、
互換性(インターオペラビリティ)テスト、インストールテスト、などなど

異常系のテストを効率よくやりたい

異常系試験の悩みどころは正常系の試験に比べてテストケースを絞るのに規則性を使い難いところ、です。なにせ”異常”系なので、前述の「テストすべき空間」を無限に押し拡げるのにとても貢献しています。この困ったちゃんに対するアプローチはふたつ、1.正常系よりさらにアグレッシブな同値分割(≒トリアージ) 2.無限にチャレンジする。どう考えても頭の悪い2番を最もスマートに実現する方法が下記のファズテストです。

改めて整理してみて加瀬さんのサイトへのリンクが多いこと!来年のアドベントカレンダーではもう少し自分のサイトから紹介できるように技術系の記事をもっと増やそうと改めて感じました。もちろんここに挙げたのが全てではないです。新しい技法、手法も日々開発されていますので、日頃からアンテナを高くもってリストをメンテナンスしていきたいと思います。