
ISO/IEC/IEEE 29119 ソフトウェアテスト規格の教科書を読みました。
ご購入の検討はこちらのAmazonからどうぞ。
こちらの本のターゲットはきっとこんな感じ
- エンジニアになり、はじめてテスト工程を経験するかた
- 現在はテスターですが、スキルアップを考えているかた
- QAエンジニアになりたいかた
- テスト関連の管理職のかた
読んだ目的と感想
私はテストコードの質を高めたくて読みました。
主に5章のテスト技法についてはテストパターンの考え方の参考になり、大変勉強になりました。
ただ、読んでいて今私が求めていることも整理がついてきました。実践的なテストコードの例えがたくさんあるような情報が欲しいということです。テストコードは詳細設計と同じ認識です。会社のひとからは「詳細設計なんて、とっくにできているじゃん、なんでいまさら?」と言われるわけなのですが、もっと改善できるところもあるような気がしています。納得できていないのでまたその知識を求めているというところまでわかりました。
「どうして納得できないのかな?どうすれば納得できるのかな?」と考えたとき、きっと実践でもっとテストコードを書いて納得することが一番の近道なのかもしれません。そしてテスト駆動開発を経験すればさらに納得感を得られるのかもしれません。エンジニアなのに感覚で考えています、いえいえ人なので時には感覚で動きます!許してください、と誰に謝っているのだか……笑
自分のなかの好奇心と欲求を少し理解できてそういう意味でも気づかせていただきありがとうございました……!
同値分割法
テストケースを作成するときの情報の整理に役立ちそうです。
- 有効値と無効値とインプットとアウトプットのメトリクス表の作成
- 有効値のインプットに対応した期待値メッセージ
- 無効値のインプットに対応したエラーメッセージ
- イレギュラーなインプットに対応したエラーメッセージ
その後「同値分割のテストケース」の練習としては
雑ですがこんな感じです。※2022年4月1日以降の成人の年齢を定義しています。
| テストID | 同値パーティション | インプット | アウトプット(期待値) |
| 1 | 0 ≦ age < 18 | 12 | 未成年です。 |
| 2 | age ≦ 0 | -1 | 無効な年齢です。 |
| 3 | 18 ≦ age ≦ 140 | 25 | 成人です。 |
| 4 | age ≧140 | 200 | おそらくひとではありません(2022年時点) |
境界値分割法
境界値のテストは3パターン。
境界値が18なら以下をインプットにしてテストをするだけになりそうです。
- 17
- 18
- 19
「境界値のテストケース」の例はこんな感じになります。
| テストID | 境界値 | インプット | アウトプット(期待値) |
| 1 | 18 | 17 | 無効値 (足りない) |
| 2 | 18 | 18 | 有効値 |
| 3 | 18 | 19 | 無効値 (多い) |
テストコードも境界値については3パターンで足りそうです。
状態遷移テスト
お手洗いの掲示板的なものの状態遷移のテストの例は
こんな感じですね。
| テストID | 状態の変異パス | インプット | アウトプット |
| 1 | 「使用中」と表示中 | ライトを消す | 「使用可」と表示する |
| 2 | 「使用可」と表示中 | ライトを点ける | 「使用中」と表示する |
デシジョンテーブルテスト
すべて論理値として作成するのが基本らしい。
T:True, F:False
| ルール | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | |
| 条件 | 寒いか | T | T | T | T | F | F | F | F | F | F | T | T |
| 暑いか | F | F | F | F | F | T | T | T | T | F | F | F | |
| 動作 | エアコンをつける | T | T | T | T | F | T | T | T | T | F | T | T |
| エアコンをつけない | F | F | F | F | T | F | F | F | F | T | F | F | |
組み合わせテスト
すべての環境でテストをすると膨大な量のテストが必要になり、それに時間をかけても費用対効果はほとんどない。組み合わせテストをすることで膨大な量から管理しやすい量にコンバートすることができる。
ただ、組み合わせテストで管理しやすいからと言っても、すべてのテストをやる必要はなく、エラーが発生しやすそうなところを重点的に組み合わせテストをするのが良いとのこと。
| OS | エディション | ブラウザ |
| Windows10 | Home | chrome versionX FireFox versionY |
| Windows10 | Pro | chrome versionX FireFox versionY |
| Windows10 | Enterprise | chrome versionX FireFox versionY |
| Windows10 | Education | chrome versionX FireFox versionY |
| Windows11 | Home | chrome versionX FireFox versionY |
| Windows11 | Pro | chrome versionX FireFox versionY |
| Windows11 | Enterprise | chrome versionX FireFox versionY |
| Windows11 | Education | chrome versionX FireFox versionY |
5章のテスト技術の表を作成することで
詳細設計を考えながらテストコードをぱっと思い浮かぶことができるかもしれません。定期的に確認することで記憶に定着させていくことが大事ですね。


コメント