本記事はPythonテストのためのチェックリストの作り方を紹介するものです。
今回は、ドキュメントからチェックリストを作る方法について紹介します

ドキュメントからチェックリストを作成する方法は主にウォーターフォールモデルで活用される方法です。
仕様書や設計書などの各種ドキュメントからテスト項目を起こしてチェックリストを作成します。

かつては最もスタンダードなテストチェックリストの作成方法でしたが、昨今のスピード開発を考えるとウォーターフォールモデルともども現実的ではなくなってきました。

しかし、テストを作る上では基礎となる考え方なのでマスターしておきましょう。

【Pythonテスト】ドキュメントからテスト項目を起こす方法

ドキュメント
ドキュメントからテストを起こす場合の手順は以下の通りです。

・ドキュメントを最新状態にアップデートする
・テスト観点の洗い出し
・チェックリストの作成

ドキュメントを最新状態にアップデートする

まずはドキュメントを最新状態にアップデートしましょう

ドキュメントが古い状態や間違った状態の場合は正しいチェックリストが作成できません。

ドキュメントからチェックリストは起こす方法は当然「ドキュメントが正義であり絶対に正しい」という前提でチェックリストを作成します

なのでドキュメントに書いていないことをアドリブで入れるのは基本的にNGです。新しいテスト観点を加える場合はドキュメントもアップデートしましょう

アップデートする内容としては以下のものがあります。

・スペック表の更新
・プログラムフローの修正
・古い記述は削除
・新しい情報があれば追加
・関連ドキュメントへのリンクを追加

基本的には古い情報を削除して、新しい情報を追加すればOKです

スペック表はそのままテストの観点として使えるくらいまで細かく書いておくとチェックリスト作成が楽になります。
フローは繰り返しや分岐条件を明確にしておきましょう。

ドキュメントからチェックリストを起こす方法ではここが作業の9割です。後の作業はドキュメントをベースに機械的に項目を作っていくだけとなります。

テスト観点の洗い出し

次にドキュメントからテストの観点を洗い出していく作業です。基本的にドキュメントに書かれている内容を機械的に抜き出していけばOKです。

スペック表とフローをベースに大項目~小項目にテスト観点をまとめていきましょう。
項目の切り分けはざっくりとでよいです。

私が作る場合の切り分け方は以下の通り。

大項目:システムの各機能・モジュール
中項目:関数・クラスなど中規模の処理のグループ
小項目:プログラムの分岐条件

上記を表にすると以下のようなイメージになります。

大項目中項目小項目
モジュール1関数1条件1
条件2
関数2条件3
モジュール2クラス1条件4
クラス2条件5
条件6

チェックリストの作成

作成した観点表をチェックリストに落とし込んでいきます。

チェックリストはどのようなものでもよいですが、今回はマトリックスを作成する場合を例に説明します。
マトリックスとは以下のような表のことです。

マトリックス1

上段はテストの条件、下段は実施後の確認内容を記述します。
日付欄には日付を追加します。右側はテスト項目です。

マトリックス2

テスト項目は以下のようにチェックや確認するところに「〇」で記述します。

マトリックス3

テスト項目は縦で1件です。(上記の場合は10件。)
条件で「〇」がついている点について条件設定や確認を行います。

例えば上記例の1件目なら「条件1」と「条件A」が条件で、「確認1」と「確認2」がテスト後の確認内容です。

テストの実践方法

テストの実践方法には、印刷して実施する方法とパソコン上でやる方法があります。

印刷して実施する場合はチェックした項目をペンでチェックしていきましょう。パソコンで実施する場合は、〇を●に書き換えるなどチェックしたことがわかるようにしておきましょう。

ドキュメントからチェックリストを起こす時の問題点

問題点
かつてはドキュメントからチェックリストを起こす方法が最もスタンダードな方法でした。
しかし、昨今のスピード開発においては多くの問題点もあるため、ウォーターフォールモデルともども見直されるようになってきました。

ドキュメントからチェックリストを作る場合の問題点としては以下のものがあります。

・ドキュメントの仕様が完全であることが前提である
・昨今のスピード開発についていけない
・難易度が高い

ドキュメントの仕様が完全であることが前提である

前述の通りドキュメントからチェックリストを作成する方法では、「ドキュメントが正義であり絶対に正しい」という前提でチェックリストを作ります。

しかし、現実問題としてドキュメントが古かったり間違っていたり、そもそも存在していなかったりということはよくあります。

「ドキュメントが絶対に正しい」という前提条件が成立する現場はあまり多くありません。

当然ドキュメントを信じてチェックリストを作ったら穴だらけの間違ったチェックリストになります。

ドキュメントだけでなくソースコードやシステムの実際の動作も参考にしつつ、チェックリストを考えることが大切です

昨今のスピード開発についていけない

昨今の開発は完成度よりもスピードが優先される場合が多くなりました。時間をかけて多く機能を追加するよりも最低限の機能を作ってすぐにリリースすることが優先されます

なのでドキュメントをきれいに整えてから開発に移るのでは開発スピードが遅過ぎです。
ドキュメントの状態が半端でもどんどんシステムを作ってリリースしていかなければ他社から出遅れてしまいます。

完璧よりもスピードを重視することが大切です。

難易度が高い

ドキュメントからチェックリストを作るのは少し難易度が高いです。初心者が作る場合迷ってしまうことも多いと思います。

例えば以下のようなことを考えるにはスキルや経験が必要です。

・どこを読めばテストに必要な情報がそろうのか?
・最低限必要な項目を絞り込むには?
・期待値はどう設定すればよい?

終わりに

今回はドキュメントからチェックリストを起こす方法を紹介しました。
最もウォーターフォールモデルでは最もスタンダードな方法なので、まずはこの方法をマスターしておきましょう。

昨今は開発のスピードがガンガン上がっているのドキュメントを完成させてから次の工程に移るというのは非常に効率が悪いです。

時代の変化に対応するためにも他のチェックリスト作成方法も学んでいきましょう

テストチェックリストまとめ>>Pythonテストのためのチェックリストの作り方3選