テストケースを考える – 単体テスト仕様書作成の挑戦と気づき
はじめに
今回は、Pythonで開発したETLプロセスの単体テスト仕様書を作成する中で感じた課題や、新たに学んだテスト手法について記録する。テストケース作成の進め方や、それを支える生活習慣や心構えについても触れる。自分の成長と今後のキャリアを見据えた目標に向け、試行錯誤を続ける日々だ。
テストケース作成の難しさ
現在、PythonのETL処理の単体テスト仕様書を作成しているが、テストケースを設計するのが難しいと感じている。例えば、ファイルの読み込み件数が0件、1件、2件以上の場合や、出力先テーブルにデータが既にあるかどうかなど、条件が多岐にわたると、それだけで組み合わせが増えてしまう。これらの条件だけでも、すでに6通りのケースが必要になる。
しかし、テストケースを増やし続けると膨大な数になってしまうため、どう効率化するかを考えなければならない。
効率化のヒント – ペアワイズテスト
そんなとき、ChatGPTに相談して「ペアワイズテスト」という手法を知った。この手法では、少なくとも1つの組み合わせがテストされるようにしながら、テストケース数を大幅に減らせるというものだ。これを使えば、必要な組み合わせを維持しつつも、ケース数を最小限に抑えることができるとわかった。
例えば、じゃんけんゲームの単体テストを考える場合、プレイヤーとコンピュータがどの手を出すかの組み合わせを考えることで、期待結果を効率的にカバーできるようになる。
期待結果を明示する重要性
今回作成している単体テスト仕様書には、テンプレート上で期待結果が記載されていなかった。そこで、テストケースごとに期待する結果をイメージしながら追加することにした。期待結果を明確にすることで、テストの目的や判定基準がはっきりし、正確なテストができるようになると感じている。
納期に向けての計画
今週の金曜日が納期だったが、チームリーダーにお願いして来週の金曜日まで延ばしてもらった。ソースコードの修正に時間がかかったためだ。特に、社内で設定されたPylintの指摘対応に取り組み、最終的には指摘を0件まで減らすことができた。これは、ソースコードの品質を保つためにも大きな成長となった。
「漏れなく、ダブりなく」考えることの難しさ
テスト仕様書作成の際、すべての条件を漏れなく、ダブりなく考えるのは非常に難しいと感じる。特に、仕事を進める中でファイルやフォルダが増えていくように、頭の中でも思考が増えてしまい、重複が生じがちだ。このような状況を整理するためには、頭をクリアに保つことが重要だと感じている。
頭をクリアに保つための生活習慣
睡眠がシナプスを調整して思考をクリアにする役割があると聞いたことがある。これに加え、運動や栄養のある食事、十分な睡眠を心がけることが、単体テスト仕様書作成の上でも重要だと考えている。日々の生活習慣を整えることで、自分の思考を整理し、「漏れなく、ダブりなく」を意識した仕様書作成に臨みたい。
レビューに向けた準備
作成したテスト仕様書をレビューに出す際、まずはチーム内のベテランエンジニアとリーダーに確認をしてもらう工程を取り入れたいと考えている。これによって、最初の提出の段階で大きなやり直しが発生しないよう、しっかりと準備したい。
目標に向けてのステップ
来週の金曜日の納期に向けて、まずは明日までに単体テスト仕様書の全体を一通り仕上げるというサブゴールを設定した。非常に厳しいスケジュールではあるが、このスピード感を意識することで、将来目指すフリーランスエンジニアとしての目標に近づけると思っている。
最後に
単体テスト仕様書の作成は、自分のエンジニアとしての成長や、今後のキャリアに向けた重要なステップだと感じている。目標に向かって山を登っていく気持ちで、楽しみながら挑戦を続けたい。
コメントを残す