ソフトウェアのテスト技法の基本まとめ

test

プログラミング

2018-05-04 18:02:48

概要

はじめて学ぶソフトウェアのテスト技法の第1章を要約します。
参考ページをサブタイトル横にメモします。

テストのプロセス

テストとは何か?(p.12)

「ソフトウェアの品質の測定・改善を目的とし、テストウェアの開発・利用・保守と平行しながら進めるライフサイクルプロセスのこと」

Bories Beizerはテストを成熟度別に5段階のレベルに分けている。

レベル 成熟度
0 デバッグとテストに違いはない
1 ソフトウェアが動作することを示す
2 ソフトウェアが動かないことを示す
3 プログラムが動作しないことによる危険性を許容範囲に抑える
4 精神的な規律

レベル4はテストの容易なソフトウェアを開発することに重点を置こうとするものです。
宗教的なミーニングはありません。たぶん。

テストケース(p.14)

「最小限の時間と労力でエラー検出率が最大化されるようにテストケースを設計する」というのがテストの目的である。

テストケースは入力出力実行の順番の3つで構成されている。
実行の順番には、順番通りのケースと、互いに独立したケースがある。

テストの種別(p.17)

ブラックボックステスト・・・テスト対象のソフトウェアの構造や実装の知識を必要とせず、要件や仕様に基づいてテストをする

ホワイトボックステスト・・・テスト対象のソフトウェアの構造や実装の知識に基づいて、テストをする

グレーボックステスト・・・テスト対象のソフトウェアの実装を大まかに把握し、ブラックボックステストケースを効果的に選択し、テストをする

テストのレベル(p.17)

書籍とは別に経験ゼロでもできるプログラミング現場の単体テスト の記事も参考にさせて頂きました。

単体テスト・・・プログラム単体のテスト。言語によって単体の定義は異なる。(EX. C言語での単体は関数)

統合テスト・・・単体を統合して行うテスト。単体間のデータの受け渡しを確認。

システムテスト・・・高レベルの統合時をテスト。機能性、ユーザビリティ、セキュリティ、国際性など様々。

受け入れテスト・・・顧客がソフトウェアを受け入れて、代金を支払うためのテスト。

すべてをテストすることはできない(p.19)

全てのパターンをテストすることはできない。ゆえに最適化されたテスト設計が求められる。

所感

これからテストを書き始める上のの基本のキくらいは学べた気がします。。。