特集『テストの設計してますか?』の感想
始めに
Software Design 2024年2月号の特集『テストの設計してますか?』を読んだので、その感想をまとめておきます。
この特集を読んだのはソフトウェアテストについての知識を深めたかったからです。私はアプリケーション開発者として安定してかつより品質の高い開発ができるような活動に注力していますが、そのためには信頼できるテストが必要です。より良い開発者テストを実施したり、テスト専門家と連携するため、ソフトウェアテストについて学習しています。
第1章 ソフトウェアテストとは何か?
テストに抱くイメージは「プロジェクトの終盤に行う確認工程」というものですが、修正コストを抑えるために早い段階で欠陥を発見することの大切さが示されています。
一見すると、実装が終わってないのでテストができないように思えますが、「こういう内容をテストしよう」というテスト分析は実装より前の段階も実施できるものです。これは以前、第1章の著者である風間さんの講座で体験したことでもあります。
この章を読むとテストに対するイメージが当初とは変わり、「視点を変えて思考や成果物を揺さぶり、欠陥の発見や認識の齟齬を解消するもの」というような印象を受けます。
第2章 テスト技法の基礎
テスト技法は大別して3種類ある、とのことです。3種類のうちの1つであるブラックボックステスト技法については学習済みでした。他の2つ、ホワイトボックステスト技法と経験ベースのテスト技法についても学習し、開発に役立てたいと考えています。
第3章 探索的テストで短時間で効率よくバグを見つける
探索的テストという言葉は知っていましたが、「期待値との比較(Checking)とは異なるもの」「対象を壊しにいくようなテスト」という程度の理解度でしかありませんでした。
第3章を読むことで探索的テストに対する理解が深まりましたが、テストのイメージが「具体的な項目を用意してチェックする」という作業なので、実際に探索的テストを行っている様子を見てみたいです。
第4章 シフトレフトテストを支える現代的なテスト設計
テストの実施タイミングを遅れせることによる弊害について、自身の体験としても、テストを最終盤にスケジュールすることにより、納期までの残り時間に合わせた内容になってしまったり、形式的な工程のようになってしまうような事がありました。こうした事態を回避するためにフィードバックを早く得るためのシフトレフトテストなのだと理解しています。
また、シフトレフトテストは単にテストを前倒しするものではなく、CI/CDなどの開発インフラの拡充や、テスト対象の設計などさまざまな要素の下支えによって実現されるものである、ということ知ることができました。
まとめ
この特集を読むことにより、理解の浅かった部分についてより深めることができたり、次の学習につながるものを得ることができました。
開発をより良くするためにテストについて学習していますが、専門的な話になるとまだまだ理解が追いつかないことが多いです。しかしながら開発者にとってテストは重要ですので、引き続き学習を進めていきたいと思います。