今回は、「Pythonテストのチェックリストの作り方」というテーマでお話しします。
頭の中で考えた内容をテストするだけでは網羅性の高いテストはできません。
テストの網羅性を上げるためにはチェックリストにまとめて条件と結果を整理することが大切です。
最初は面倒に感じるかもしれませんが、一度チェックリストを作ってしまえば何度も使いまわすことができます。
不具合の取りこぼすためにも必ず作っておきましょう。
Pythonテストのためのチェックリストの起こし方3選
チェックリストを起こす方法として今回は以下の3つの方法を紹介します。
・ドキュメントから項目を起こす方法
・現在のシステムの動作から項目を起こす方法
・ソースコードから項目を起こす方法
ドキュメントから項目を起こす方法
ドキュメントから項目を起こす方法は最もスタンダードなチェックリストの作成方法です。
「要件定義」「仕様書」、「設計書」、「フローチャート」などからテスト項目を作成します。
「ホワイトボックステスト(*1)・ブラックボックステスト(*2)両方のチェックリストを作れる点」、「潜在的な不具合を見つけられる点」がメリットです。
一方、ドキュメントからテスト項目に落とし込んでいかなければならないので「初心者には難易度が高い作業」です。
また、ドキュメントが間違っている場合や、そもそもドキュメントがない場合もあります。
残念ながらドキュメントがないことは実際の現場でもよくあるので、ドキュメントだけで正しいチェックリストを作るのは非常に難しいです。
*1 ホワイトボックステスト:システムの内部構造(プログラム)を意識してやるテスト
*2 ブラックボックステスト:システムの内部構造を意識しないでやるテスト
関連記事>>【Pythonテスト】ドキュメントからチェックリストを作る方法
現在のシステムの動作から項目を起こす方法
実際のシステムの動作を見てチェックリストに落とし込む方法です。
ウォーターフォールモデルなら邪道な方法ですが、ドキュメントがないケースや間違っているケースはよくあるので、実際の現場でもこの方法は使われます。
そのままだとデグレードチェックくらいにしか使えないので、要件定義やドキュメントなどと比較して「本来あるべき動きは何か?」という点を精査して改善しましょう。
メリットとしては「オペレーション」と「実行結果」をそのままチェックリストとして落とし込めばいいので初心者でも比較的作りやすいという点です。
一方、システムの実際の動きをチェックリストとして起こしただけなので、そのまま使うだけだと不具合は見つけられません。
また、ブラックボックステストのチェックリストしか作れないので完全にパターンを網羅することは難しいです。
関連記事>>【Pythonテスト】ドキュメントからチェックリストを作る方法
ソースコードから項目を起こす方法
ソースコードを読んでチェックリストを起こす方法です。
こちらもウォーターフォールモデルでは邪道な方法ですが、ドキュメントが完全ではない現場ではよく使われます。
そのままだとデグレード確認のチェックリストにしかならないので、要件定義や仕様書などと比較して「本来あるべき仕様」を考えて修正しましょう。
ソースコードからチェックリストを起こすメリットは、ソースコードから条件を抜き出すだけなので初心者でも作りやすいという点です。
ただし、「現在のシステムの動作から起こす方法」と同様でそのままだと不具合は見つけられません。
また、ホワイトボックステストのチェックリストしか作れないので、「機能全体として見た時に正しい動作か?」という点を考慮したチェックリストを作ることは難しいです。
関連記事>>【Pythonテスト】ソースコードからチェックリストを起こす方法
複数の組み合わせて使おう
かつてはドキュメントからテスト項目を起こして作るというのが正しい姿とされていました。
しかし、スピード開発が要求される昨今ではドキュメントが間違っているケースや古いケース、そもそも存在しないケースも少なくありません。
なのでドキュメントから起こすだけでは網羅性の高いチェックリストは作れません。
「システムの動作から起こす」、「ソースコードから起こす」という方法も組み合わせて網羅性の高いチェックリストを目指しましょう。
網羅性の高いチェックリストを作るためには
ただドキュメントやシステム・ソースコードからチェックリストを作るだけでは不具合を見つけられるチェックリストにはなりません。
条件や境界・限界をチェックして網羅性の高いチェックリストを目指しましょう。
考えうる条件を全て書き出す
チェックリストを作る前に考えうる条件は全て紙に書き出しましょう。
まずはドキュメントやシステム・ソースコードで条件を抜き出します。その後他にも考えられる条件があればどんどん書き出していきましょう。
多少重複してもいいので思いつく限り書き出します。
書き出し終わったら重複を削除しつつ、表にまとめてチェックリストとして作りこんでいきましょう。
境界値や限界値に重点を置く
システムにおいて最も不具合が起きやすく見落としやすいのは境界値と限界値です。
しかし、限界値や境界値のチェックは複雑な手順と多くの時間が必要なので実機テストでは行われない場合も少なくありません。
なので限界値や境界値はできるだけホワイトボックステストで刈り取っておくことが大事です。
アップデートする
プログラム自体に修正があった場合はもちろんですが、修正がない場合でも定期的な見直しが必要です。
チェックリストの内容が間違っている場合もありますし、気づかないうちに仕様が変わっている場合もあります。
忙しい時は無理かもしれませんが、繁忙期が終わったタイミングで部分的に見直してアップデートをしておくのがおすすめです。
特にシステムに大きな修正があった場合は見落としも多くなりやすいので念入りに見直しておきましょう。
終わりに
頭の中のイメージだけでテストをしてしまうと重大な不具合を見逃す可能性があります。必ずチェックリストを作成するようにしましょう。
チェックリストを作る方法として今回は以下の3つの方法を紹介しました。
・ドキュメントから項目を起こす方法
・現在のシステムの動作から項目を起こす方法
・ソースコードから項目を起こす方法
かつてはドキュメントからチェックリストを起こす方法がベストと言われていましたが、ドキュメントが完全ではない現場も多いのでドキュメントだけでチェックリストを作るのはあまり現実的ではありません。
他の方法も併用してより網羅性の高いチェックリストを目指しましょう。
Pythonの始め方>>Pythonプログラミングの始め方まとめ