ソフトウェアの原則
セミナー受講。何だかんだ、適当にやってきたテストという分野、一度、しっかりと勉強してみようと思う。
良いテストをしようとすると、以下の知識が必要。
1.業務知識
2.技術知識
3.ソフトウェアテスト技術知識
このうち、今回受講したセミナーは、3.がターゲット。
粒度無視で、覚え書きをば。
■検証
- 変換作業の損失を最小限に抑える
- 静的なテスト
■妥当性確認
- コードが要件に合致しているかを確認する
- 動的なテスト
- ポジティブテスト(正常系テスト)
- 要件を満たしているかどうかをチェックするためのプログラム実行
- 設計書ベース
- ネガティブテスト(異常系テスト)
- 欠陥を発見することを目的としたプログラム実行
- 設計書ベース
- リスクベーステスト
- 主要機能が正常動作し、顧客/エンドユーザにとって最小限のリスクであるかを確証するためのプログラム実行
- 同様なシステムにおけるリスク(過去経験等からの蓄積)
■システムの誤りの原因は、ギャップ
- 顧客⇔技術者間でギャップがある
- 話がうまく理解できていない
- 顧客自体が欲しいものをわかっていない
■テスト技術
両者に優位性の違いはない
■品質とは
- 仕様を満たすことではない
- ユーザ要求を満たすことである
- 品質は全ての「〜性」の集積
■テストに必要な心理学
- 否定的な態度が必要
- ネガティブシンキング
- 何も信用しない事
■ブラックボックス技法
- 全数
- All-Pair法/直交表(Orthogonal)
- シングル・フォルト
- At Least Once
■ホワイトボックス技法
- 制御フロー技術
- コードカバレッジ
- データフロー技術
■結合テストの結合戦略
上記3つは適宜、スタブ、ドライバを使用
- ビッグバン
■テストコード自体のバグ対策
- 現状、コードレビューを行うしかない