無料マンガ・ラノベなど、豊富なラインナップで200万冊以上配信中!
※アプリの閲覧環境は最新バージョンのものです。
Posted by ブクログ
テスト対象の業務ロジックに応じて適切な図表を使い、テストケースを作成する
【感想】
業務の外部結合テストがスケジュール上かなりしんどくて、少しでも知識武装して気持ちを楽にしたいとの思いで手に取った本(テスト自体は1か月前ぐらいに終わってしまっているが)。読んで正解、今まで何となくやってきたテストの方法、経験がきちんとしたコンセプトで整理された。テストケースを作成するための図表がそれぞれの技法ごとに載っていて、実務への転用イメージも沸きやすい。自分の業務上で学んだテスト技法を利用したいときは、その図表を使ってテストケースの作成を進めればよい。 SEとしてプロジェクト推進をする最初に、こういったテスト法の本はさらって読んでおくべきだな。
【本書を読みながら気になったコト】
デシジョンテーブルはテスト設計の基本中の基本と言われるが、これは本来要件定義、基本設計のツールであったはず
→テスト技法に詳しくなり、パターンの洗い出しの技術が上がれば、設計の記述も上がる
《ブラックテスト技法》
〇同値クラステスト
独立した変数に対するテスト
図表:引数と期待する結果の組み合わせ
〇境界値テスト
独立した変数に対するテスト
同値クラステストケースに、境界値も加える
図表:引数と期待する結果の組み合わせ
〇デンジョンテーブルテスト
複数の条件に基づく行動、結果をテスト
図表:複数条件と行動、期待する結果の組み合わせ
→デンジョンテーブルと呼ぶ
〇ペア構成
環境やインプット値をペア毎ケースを作成しテスト
図表:存在するパターンを縦、横に並べた表
→直交表と呼ぶ
〇状態遷移テスト
あるオブジェクトの状態が複数存在、変化しうる際のテスト
図表:状態遷移図をまず作って、状態遷移図表を作る
状態遷移図表には、
・現在の状態
・イベント
・アクション
・次の状態
を含める。
全ての遷移パスを実行するテストケース作成、実施が望ましい
〇ドメイン分析テスト
同値クラステスト、境界値テストと違い、複数の変数を同時にテストする
・y = ax のような二次元表を利用する
・on off in out の概念を使ってテストケースを作る
図表:ドメインテストマトリックス
・複数変数を縦に並べ、変数ごとに on off in out で分割
・変数のon off in outごとに代表値を設定し、あり得る組み合わせごとに横の列を増やす
・列ごとに期待される結果を記載
〇ユースケーステスト
業務に沿ったシナリオを作成しテストする
図表:ユースケースシート
・操作内容、操作ステップ、期待する結果などを含める
《ホワイトボックステスト技法》
〇制御フローテスト
意図した通りに分岐して進むか、コードをテストする
図表:フローダイアグラム
→フローダイアグラムをテストケースの洗い出しとして利用
実際にコードが引数ごとに、フローダイアグラム通りに動くかは各プログラミング言語のツールでテストする
→存在するパスを全て通るようにテストができるのが理想
〇データーフローテスト
変数が定義、生成、使用、消滅される順序を記述し、ケース作成、テストする
図表:フローダイアグラム
→フローダイアグラムをテストケースの洗い出しとして利用
実際にコードが引数ごとに、フローダイアグラム通りに動くかは各プログラミング言語のツールでテストする
《テストパラダイム》
〇スクリプトテスト
事前に計画、テストケースを綿密に作成し、テストを行う
〇探索的テスト
テストを進め、その結果に応じて必要なテストを考案、ケース作成してテストする
→両方併用してテストを進められるのが理想
Posted by ブクログ
どうすれば少ないテストケースで有効なテストが実施できるかについて具体的な例とともに解説している。同値クラステストや境界値テストといったおなじみの技法から、デシジョンテーブルテスト、ペア構成テスト、状態遷移テストなどあまり知られていないものも紹介している。またブラックボックステストとホワイトボックステストの違いであるとか、テストの進め方についても言及している。
テストの進め方についてはスクリプトテストと呼ばれるテスト計画を立て、テストケースを設定しテストを行う従来型のテストの他に、テストケースを事前に決定できなかったり、前に実行した結果が大きく影響する、あるいは要件が曖昧であったりする場合に使用する探索的テストを紹介している。このどちらかが優れているというわけではなく必要に応じて使い分けたり融合させるべきだとしており、実用を重視した内容となっている。
実用重視と言えばテストの支援として欠陥の分類と終了判定を取り上げている。欠陥を分類することはテストの方向性やどこに重点を置くかを決めるのに有効というだけでなく開発プロセスにおいても有効であり手元においておくべき内容であると感じた。
一方テストの終了判定は皮肉交じりの内容となっていた。これは決してふざけているのではなく、テストの終了判定がいかに難しいかを如実に表しており、テスト経験者なら共感するであろうことが書かれている。
新人にテストを任せるというある種の企業文化が存在しているが、本書を読むと果たしてそれは正しいのかと疑問に思う。仕事を理解する上でテストという作業が有効であることは間違いないが、やはりテストの重要性を鑑みればリスクが高いと言わざるを得ない。また、ソフトウェアテストの重要性が高まっているものの、テストを専門にするエンジニアが少ないように感じる。そろそろテスト専門エンジニアの育成を考えてみるべき時なのかもしれない。
※アプリの閲覧環境は最新バージョンのものです。
ビジネス・実用