Please enable JavaScript.
Coggle requires JavaScript to display documents.
Udemyテスト - Coggle Diagram
Udemyテスト
求められるもの
重要視するところ
網羅性
テストの抜け漏れを防ぐ
ピンポイント
怪しいところをテストする
テストで求められるもの
最小限のテストでシステムの品質を担保すること
より少ないテストで、より多くのバグを発見する
観点
具体的な例を考えてから
以下を出す
例)1,5,9
類推
少数とかゼロとか
外側
数値じゃなくて文字列とか
間
2,7とか具体例の間を出す
マイナスとか、分数逆とか
意地悪な条件を考える
自分の当たり前以外を考える
テスト設計アプローチ
契約によるテスト
防衛的テスト
基本的なテスト
同値クラステスト
特定の条件に該当する同じ値たちのこと
if(a < 10) {}
else {}
この場合aは9以下ならすべて同値クラスということ
同値クラス1つに対して、1つのテストがあればよい
境界値テスト
同値クラスの前後
if(a < 10) {}
else {}
この場合の同値クラスは10より下とそれ以外
複雑なテスト
ドメイン分析テストとデシジョンテーブル
ドメイン分析テスト
条件同士が相互作用する場合
複数条件が数式で結びついている場合
4つのポイントを理解
on
境界上の値
off
境界上にはない境界に隣接する値
ルールがある
onがドメイン内 → offはドメインの外側に隣接する値
10 <= a
10の隣接する値は9か11だが、
onの値がドメイン内ならば9がoffの値となる
なぜなら、10以上が条件なので、隣接値の11をテストしたとしても、10と同じ結果が得られる
一方9をテストすると 10 <= 9はfalseとなるため、
異なるテストを実施できる
onがドメイン外 → ドメイン内の隣接する値
10 < a
10の隣接する値は9か11だが、
onがドメイン外なので、11がoffとなる
onがドメイン外 、つまり10がドメイン外なので、9をテストしたとしても、10と同じ結果となる(false)
一方11をテストすると 10 < 11となり結果はtrueとなる。
つまり10と11のテストをするとそれぞれ,false,trueの結果が行なえ境界値チェックが最小限に行える
in
out
ドメインテストマトリクス
4つのポイントを使って、テストケースのマトリクスをつくる
複数条件がある場合は、テスト対象以外の条件をすべてtrueとなるようにする
そしてテスト対象のtrue、falseのテストケースを作る
このとき対象のon,offを導き出して、うまくとく
inに複数の条件を入れていれば、trueとなり、テスト対象に集中できる
ドメインとはなにか?
デシジョンテーブル
条件同士が独立する場合
複数条件が論理的に結びついている場合
論理式っていうのはANDとかOR
すべてのパターンをテーブルで表す
例
書籍を4000円以上購入した離島以外に住む住人は配送料無料
この場合すべての条件をyes,noで表せる
論理式が使える
条件は3つで状態は2つなので、2^3通りテストすれば良い
圧縮する
この例の場合圧縮できて2^3通りテストしなくてもすむ
書籍、4000円以上、離島以外という条件いずれかかnoだった場合、配送料は無料にはならない
各条件で一つでもnoがでたら、その他条件はテスト不要
より複雑なテスト
ペア構成テスト
全通りのテストをするわけではない
すべての条件をテストしていると時間がかかりすぎる場合、
ある程度対象を絞ってテストする
ペアのテストを行う
ほとんどの欠陥は、シングル・ダブルに分けられる
シングルーモード欠陥
一つの機能の欠陥
ダブルモード欠陥
2つの機能が組み合わさったときに起こる欠陥
この2つをテストしたら大体カバーできる
70,85%くらいはカバーできるらしい
入力とする変数が多い場合に有効
すべてのペアをテストする
直行表を用いてテストする
2値でABCという3つの条件の場合を考える
表記カタログがある
https://support.minitab.com/ja-jp/minitab/18/help-and-how-to/modeling-statistics/doe/supporting-topics/taguchi-designs/catalogue-of-taguchi-designs/
カタログから一致するもの、または少しい大きめのカタログを選ぶ
3つの条件でそれぞれペアを作成
AとB、AとC、BとC
||A|B|C| |1|0|0|0| |2|0|1|1| |3|1|0|1| |4|1|1|0|
4とおり
表記
2値で3つの条件の場合
L4(2^3)
L4
1 more item...
2
1 more item...
^3
1 more item...
すべてのテストができるわけではない
精度は70から85%くらいなので、
その他追加でテストしたほうが良い
膨大なすべてのパターンをテストするのではなく、
すべてのペアのすべての通りをテストするので少なくて済む