2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【新人エンジニア向け】「知識ゼロから学ぶソフトウェアテスト」を読んで学んだテスト設計の要点

Posted at

1. はじめに(記事作成の背景)

保守運用の向上を目指し、初めてテスト設計と実施に取り組むことになりました。 その学習の一環として、名著『知識ゼロから学ぶソフトウェアテスト』を参考に、実務で意識すべきテストの考え方を整理しました。

2. 参考文献

高橋寿一 著、『知識ゼロから学ぶソフトウェアテスト 【改訂版】』(翔泳社、2013年)

3. テスト担当者が持つべき「5つの心得」

テストを始める前に、まず以下のマインドセットを持つことが重要です。

a) バグは「ゼロ」にできない ソフトウェアは非常に複雑なため、全てのバグを見つけ出すのは不可能です(Cem Kaner)。

b) バグは「偏在」する(4%の法則) バグの47%は、プログラム全体のわずか4%に集中しているという説があります。

c) 「2:8の法則」で優先順位をつける 闇雲にテストするのではなく、バグが出やすい箇所を重点的に攻めるのが効率的です。

d) 投資対効果を考える 完璧を目指しすぎず、修正コストや重要度に見合った「十分な品質」を目指します。

e) テストケースを書き切る難しさを知る コードを書くより、漏れのない「テストケース」を設計するほうが高度なスキルを要します。

【例題】三角形判定プログラム 「3つの整数を入力し、それが『不等辺三角形』『二等辺三角形』『正三角形』のどれかを判定するプログラム」 ―― このテストケースを漏れなく書けますか?(※答えはぜひ書籍で確認してみてください!)

4. ホワイトボックステスト:論理構造を検証する

プログラムの内部構造(ロジック)が正しいかを解析する手法です。

カバレッジ(網羅率)の重要性

ステートメントカバレッジ(命令網羅):全ての行を実行したか。

ブランチカバレッジ(分岐網羅):全ての分岐(Yes/No)を通ったか。

目標値の目安

通常の商用テスト:60〜90%

厳格な現場:80%以上を目安に計画を立てます。

5. ブラックボックステスト:機能と仕様を検証する

内部構造は気にせず、入力に対して期待通りの出力が得られるかを確認します。

代表的な3つの手法

同値分割法・境界値分析:入力と出力の「境目」を重点的にチェック。

ディシジョンテーブル:複雑な条件の組み合わせを表(状態・ルール・動作)にして整理。

状態遷移テスト:GUIや通信プロトコルなど、状況によって動作が変わる仕組みに有効。

バグ発見率の現実 テストでのバグ発見率は60%程度が現実的です。早期にこの60%を叩き出し、「なぜ残りのバグが発生したのか」「どう防ぐか」という分析に時間を割くのが賢明な運用です。

6. テストプランと自動化の勘所

テストプランの標準化

国際規格「IEEE 829」のテンプレートを参考にすると漏れがありません。

テストケースの品質

再現性が必須です。誰がやっても同じ結果になる必要があります。

ケース数の目安は、コード10〜15行につき1ケース程度(日立ソフトの事例など)。

管理ツール(Zephyrなど)の活用も有効です。

自動化の罠

自動化はアピールしやすいですが、何を持って「正解(パス)」とするかの判断は人間にしかできません。自動化自体が目的にならないよう注意が必要です。

7. まとめと今後のアクション

今回、テストの全体像を学んだことで、以下の習慣を開発に取り入れようと考えています。

バグのレベル分け:重要度に応じた優先順位付け。

サンプリングテスト:効率的な検証。

標準化の意識:ISTQB(国際的なテスト資格団体)の基準を学び、共通言語でテストを語れるようになること。

「とりあえず動く」から「品質が担保されている」開発者へステップアップしていきたいと思います!

最後まで読んでいただきありがとうございました!

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?