探索的テストを学ぼうということで、Explore it ! を読んでみた。
まだ途中ですが、メモがてら。
この本は、主にはTester/Testengineerを対象とするが、この探索的テストはモデリングなどのソフトウェア開発の領域の知識も必要とする。そのため、テストを書くプログラマなどに対しても有効な情報のインプットとなる。
このExplore it!では、以下のような構成で話を進めている。
- Establishing Foundations
- Adding Dimensions
- Putting It in Context
1. Establishing Foundations
Chapter 1, On Testing and Exploration
Two Sides of Testing
テストには2つの側面がある。
1つは、ソフトウェアが想定する環境下で期待道理に動作するか確認すること
つまるとこ、Checking
2つめは、他にリスクが存在するかを探査して知ること
つまるとこ、Explore
Tested = Checked + Explored
Explore Testing
– 探索的テストとは、ソフトウェアテストの方法の1つ。
– プロジェクトを通してテスターが個人の裁量でテスト対象を学び、設計し、実施、結果を出していく。
– 学びが次のテストの行動に結びついていく。
Designing Test
– 境界値分析、デシジョンテーブル、原因結果グラフ、状態遷移図、フローチャートなどを学ぶこと。
Executing
– 実際にテストを行う
Learning
– テストを行い、そのとき発生した事象から学ぶ
Streeing
– テストを行いながら、重要な所を探し、そこにテストの焦点をあてることができるよにコントロールしていく
Chapter 2, Charter Your Explorations
- テスト対象、ツール、情報をもち、それらを駆使して対象を探っていく。
- 関係者から、テスト要求、暗黙的な期待、目標の調整、疑問の収集などを実施することで、ツールや判断材料を増やしていく
Chapter 3, Observe the Details
- 振る舞いを観察したり、問答をしてより詳細を理解していく
- わずかな振る舞いを見つけ、注意する
- seeing, hearing, touching
- 意図しないノイズをキャッチする
-
見えないものを見えるようにしてテストできるようにする
- activity monitor / 通信の内容 など
- コンソールとログ
Chapter 4, Find Interesting Variations
- 何か値を与えるテストを実施しているとして、振る舞いが変わるような値を与えた結果動作が怪しくなったら、与える値を変化させて様子を観察する
興味深いポイントとしては以下がだいたいはある。
- カウントできるもの
- 0, 1, たくさん
- 非常に大きな値
- 非常に小さな値
- 相対値
- ファイルやストレージ
- ある/なし/処理中に消える
- 位置情報
- フォーマット
- 例えば住所などのフォーマットにバリエーションを与えるなど
- 大きさ(Size)
- 深さ(Depth)
- タイミング、頻度、持続時間(Timing, Frequency, Duration)
- 入力値とナビゲーション
Chapter 5, Evaluate Results
- 決して(Never) / 常に(Always) は大事な観点
- 常に達成すべき機能を知る
- reliability, usability, scalability や accuracy
- 他リスクや関係者が心配していること
主な観点
– テスト対象を誰が使い、何の目的で使うか
– 代替手段の有無
など
Quality Factors
- “-ilities”のような、nonfunctional requirementsはまた変わったnaver / alwaysの観点を必要とする
- accuracy, reliability, availability, usability, accessibility, security
- Risk
- Alternative Resources
- Internal Consistency
- Standard
- Comparables
Approximations
– Evaluate aginst a Range
– Evaluate Characteristics
– Invert the Result
– Selecting Conditions
ひとまず。