単体テスト仕様書の書き方|テスト項目の作り方とテンプレート

単体テスト仕様書の書き方とテスト項目の作り方を紹介する記事のアイキャッチ。机の上の表の書類とノートPC

当サイトの記事は編集部が国土交通省・IPA・デジタル庁などの公的機関の情報、規格や業界団体の公開情報を調べて独自に執筆しています。記事内にIT・Webエンジニアの転職サービスへの案内(広告)を含みます。

初めて単体テスト仕様書を任されて、『テスト項目って、どこまで書けばいいの?』と手が止まっていませんか。正常に動くケースは書けても、その先が浮かばないという方は多いはずです。

結論から言うと、単体テスト仕様書は1つの部品ごとに「正常」「境界」「異常」の3つに分けて項目を作ると、抜けがぐっと減ります。

この記事を読めば、単体テスト仕様書の書き方と、テンプレートの作り方が分かります。

目次

単体テスト仕様書とは?何を確かめる書類か

先に結論

単体テスト仕様書は、プログラムの小さな部品が、設計どおりに1つずつ動くかを確かめるための書類です。何を入れて、何が返ってくれば合格かを、部品ごとに書きます。

テストの国際的な資格の体系であるJSTQBのシラバス(Version 2023V4.0.J02)では、テストの段階の最初をコンポーネントテストと呼んでいます。ユニットテストとも呼ばれ、日本の現場では単体テストという呼び方が一般的です。

デジタル庁のデジタル・ガバメント推進標準ガイドライン(DS-100)でも、開発する事業者に「単体テスト、結合テスト及び総合テスト」のテスト計画書の案を求めています。単体テストは、テストの土台に当たる段階なんです。

テストの段階確かめること主な元になる書類
単体テスト部品1つが設計どおりに動くか詳細設計書
結合テスト部品どうしをつないで動くか基本設計書
総合テストシステム全体が要件どおりに動くか要件定義書

単体テスト設計書と単体テスト仕様書は同じ?

『単体テスト設計書と書いてある所もあるけど、別の書類?』と迷いますよね。結論から言うと、現場によって呼び方が違うだけで、同じ書類を指すことがほとんどです。

チームによっては、「何を確かめるか」を決める設計書と、「どの手順で確かめるか」を書く仕様書を分けることもあります。迷ったら、先輩や現場のテンプレートで、どちらの名前で何を書いているかを確かめておきましょう。

テストの書類全体の話はテスト仕様書とは?書き方・項目とテンプレートの使い方で紹介しています。

単体テスト仕様書に書く項目

ここでの結論

単体テスト仕様書の1行には、「番号」「対象」「観点」「前提」「入力」「期待結果」「結果」「実施日と実施者」を書きます。この列がそろえば、誰が見ても同じテストができます。

単体テスト仕様書のテンプレートは、表の形にするのが一般的です。編集部では、次の列を基本の形としておすすめしています。

列書くこと書き方の例
番号テスト項目の通し番号部品名の略と連番をつなげる
対象確かめる部品や関数送料を計算する部品
観点正常・境界・異常のどれか境界
前提テストの前に整えておく状態会員として登録済み
入力部品に渡す値購入金額に、無料になる下限の値を渡す
期待結果返ってくれば合格という値や状態送料が無料と返る
結果合格・不合格・保留テストの後に記入
実施日・実施者いつ誰が確かめたかテストの後に記入

期待結果は「見れば判定できる」言葉で書く

単体テスト仕様書の書き方で一番つまずきやすいのが、期待結果の欄です。「正しく計算されること」と書いてしまうと、何が正しいのかが人によって変わってしまいます。

期待結果は、返る値や画面の文言、データの状態など、見れば合否が決まる言葉で書きましょう。

期待結果のチェック
  • 返る値や状態が具体的に書かれている
  • 「正しく」「適切に」だけで終わっていない
  • エラーの時は、どんな知らせが出るかまで書いてある
  • 前提の状態がそろえば、誰がやっても同じ結果になる

テスト項目は「正常・境界・異常」の3列で作る

ここが大事

テスト項目は、1つの部品について「正常」「境界」「異常」の3列を並べて考えると、思いつきに頼らず作れます。特に境界の列が、バグの見つかりやすい所です。

『正常に動く項目は書けたけど、ほかに何を書けばいいか分からない』という声はとても多いです。そこで編集部では、テスト項目を3列で作る作成表を考えました。

列考え方送料を計算する部品の例
正常ふだんの使い方で、期待どおりに動くか送料がかかる金額、無料になる金額をそれぞれ入れる
境界条件が切り替わる値の、ちょうど手前・ちょうど・ちょうど後無料になる下限の値、その1つ手前の値
異常想定していない値や状態で、正しく止まるか空の値、マイナスの金額、文字が入った時
単体テスト仕様書のテスト項目を正常・境界・異常の3列に分けて作る作成表の図解

境界の列は「切り替わる所」を探す

境界の列を埋めるには、設計書の中から「以上」「未満」「まで」などの言葉を探してみてください。条件が切り替わる所には、書き間違いや考え違いが入りやすいんです。

例えば「一定の金額以上で送料無料」という決まりなら、その金額ちょうどと、1つ手前の値の両方を確かめます。「以上」と「より大きい」の取り違えは、こうしたテストで見つかります。

異常の列は「止まり方」を確かめる

異常の列は、エラーを起こすことが目的ではありません。おかしな値が来た時に、決めたとおりに止まり、決めたとおりの知らせを出すかを確かめます。

よくある失敗

異常の列を書く時に、設計書に止まり方が書かれていないことがあります。その時は自分で決めずに、設計した人に「この時はどうなる仕様ですか?」と聞いて、答えを設計書に書き足してもらいましょう。

正常の列も、分かれ道ごとに作る

正常の列は1行で終わらせがちですが、処理の中に分かれ道があれば、その数だけ行を作ります。送料の例なら、「送料がかかる」と「無料になる」の2つの道があるので、正常の列も2行になります。

3列で作った単体テスト仕様書の記入例

編集部が作った架空の例で、送料を計算する部品のテスト項目を並べてみますね。無料になる下限の金額を「下限額」と呼ぶことにします。

番号観点前提入力期待結果
送料-01正常会員として登録済み下限額より少ない金額決めた送料が返る
送料-02正常会員として登録済み下限額より多い金額送料が無料と返る
送料-03境界会員として登録済み下限額ちょうど送料が無料と返る
送料-04境界会員として登録済み下限額の1つ手前の値決めた送料が返る
送料-05異常会員として登録済み空の値計算せず、金額が無いという知らせを返す
送料-06異常会員として登録済みマイナスの金額計算せず、金額が正しくないという知らせを返す

こうして並べると、『境界の行が抜けていた』『異常の時の知らせを決めていなかった』といった穴に、書いている途中で気づけます。表が埋まらない所こそ、設計した人に聞くべき所なんです。

単体テスト仕様書のテンプレートの作り方と進め方

ここでの結論

単体テスト仕様書のテンプレートは、Excelなどの表で「部品ごとに1シート」にすると管理しやすくなります。作る順番は、詳細設計書を読む、3列で項目を出す、期待結果を書く、レビューを受ける、の流れです。

テンプレートは、現場ですでに決まっていることも多いです。新しく作る時は、先ほどの列を1行目に並べ、部品ごとにシートを分けておきましょう。

単体テスト仕様書を詳細設計書から作り始めてテスト結果を記入するまでの流れを示した図解
単体テスト仕様書を書く流れ
  1. 詳細設計書を読み、テストする部品を一覧にする
  2. 部品ごとに、正常・境界・異常の3列で項目を出す
  3. 項目ごとに前提・入力・期待結果を書く
  4. 設計した人や先輩にレビューしてもらう
  5. テストを行い、結果と実施日・実施者を記入する

単体テストの元になる詳細設計書の書き方は、詳細設計書とは?基本設計書との違いと書き方で紹介しています。

テンプレートの表紙と履歴も忘れずに

表紙には、システム名、対象の部品、版、作成者、レビューした人を書いておきます。設計が変わってテスト項目を直した時は、変更履歴に何を直したかを残しておきましょう。

テストデータは前提の列とセットで用意する

前提の列に「会員として登録済み」と書いたなら、そのデータをどう用意するかも決めておきます。テストのたびにデータの状態が違うと、同じ項目でも結果が変わってしまうからです。

テスト用のデータを用意する手順を、別のシートに短く書いておくのがおすすめです。ほかの人が引き継いだ時も、同じ状態からテストを始められます。

項目の数はどのくらい?

「何件書けば十分」という決まった数はありません。数より、3列すべてに項目があるか、分かれ道と切り替わる所を全部押さえているかで見直してみてください。

単体テスト仕様書でよくある相談

ここでの結論

知恵袋では「テスト仕様書の書き方が分からない」「単体テストの項目はソースを見ずに作るのか」「仕様書が無いまま単体テストを作っている」という相談がよく読まれています。

知恵袋で多く読まれている相談を要約して、答えてみますね。

相談1:単体・結合・システムテストの仕様書の書き方が分からない

『単体テスト、結合テスト、システムテストの仕様書の書き方が分からない。くわしく載っている所を知りたい』という相談です。とても多くの人に読まれています。

結論から言うと、3つとも「前提・入力・期待結果」を書く点は同じです。違うのは、確かめる範囲と、元にする書類です。

単体テストは詳細設計書、結合テストは基本設計書、システムテストは要件定義書を元にすると覚えておくと、書く中身が決めやすくなります。結合テストの書き方は結合テスト・総合テスト仕様書の書き方で紹介しています。

相談2:単体テストの項目は、仕様書だけ見てソースは見ないもの?

『単体テストの項目は、仕様書だけを見て作るのが基本? ソースの条件分岐を一つずつ追うべき?』という相談です。

考え方は2つあります。仕様書から作るテストは、決めたとおりに動くかを確かめるもの。ソースの分かれ道を通るように作るテストは、書かれた処理を漏れなく動かすものです。

どちらか一方ではなく、まず仕様書から項目を作り、足りない分かれ道をソースで補う、という順番が進めやすいですよ。

相談3:仕様書が無いまま、難しいソースから単体テストを作っている

『システムの仕様書が無く、難しいソースを読みながらテストを洗い出していて苦しい』という相談です。

そう感じるのは自然なことです。こんな時は、ソースを読んで分かった動きを「こう動くはず」と短く書き出し、詳しい人に確かめてもらいましょう。

確かめた内容は、そのまま簡単な設計メモとして残しておきます。次に同じ部品を触る人が、ずっと楽になります。ソースから設計書を起こす方法はソースコードから設計書を作る(リバース)で紹介しています。

書ける力は、次の仕事にもつながる

単体テスト仕様書を丁寧に書く経験は、設計書を読む力そのものを鍛えてくれます。今の現場で設計の担当に少しずつ近づくのも、資格を取ってから動くのも、どちらもよい道です。

今の担当工程から一歩進みたい方は、求人の仕事内容を比べてみると、どんな経験が評価されるかが見えてきます。

IT・Webエンジニアの転職(PR)

仕様書を書く経験を活かせる職場を探すなら、求人も比べてみる

要件定義や設計を任されるか、発注側か開発側か、扱うシステムや働き方は会社によって大きく違います。担当したい工程や条件から、IT・Webエンジニアの求人を比べてみてください。

無料ITエンジニアの求人を探す

求人の条件・待遇は各求人票と応募先の案内でご確認ください。

よくある質問

単体テスト仕様書は、コードを書く前と後のどちらで作りますか?

詳細設計が固まった時点で作り始め、コードを書く前か並行して用意するのが進めやすい形です。現場の決まりがある時はそちらに合わせてください。

単体テスト仕様書のテンプレートはどこで手に入りますか?

まずは現場や会社で決まっている形があるかを確かめてみてください。無い時は、番号・対象・観点・前提・入力・期待結果・結果・実施日と実施者の列を並べた表から始めると作りやすいです。

単体テスト設計書と単体テスト仕様書は何が違いますか?

多くの現場では同じ書類を指します。チームによっては、何を確かめるかを決める設計書と、手順を書く仕様書を分けることもあります。

テスト項目が多くなりすぎた時はどうすればいいですか?

同じ確かめ方になる値はまとめて、代表の値で1行にしてみてください。境界と異常の行は削らずに残しておくのがおすすめです。

まとめ

この記事の要点
  • 単体テスト仕様書は、部品1つが設計どおりに動くかを確かめる書類
  • 1行に番号・対象・観点・前提・入力・期待結果・結果を書く
  • テスト項目は正常・境界・異常の3列で作ると抜けが減る
  • 期待結果は、見れば合否が決まる言葉で書く
  • 仕様書が無い時は、読み取った動きを書き出して確かめてもらう
仕様書ドットコム

仕様書ドットコム 編集部

仕様書の意味・種類・書き方から、システム開発の要件定義書・設計書・テスト仕様書、公共工事の標準仕様書・共通仕様書、住宅や発注の仕様書、仕様書を書く仕事のキャリアまでを、初めて仕様書に向き合う人が自分で判断できるように整理している情報サイトです。 公式サイト

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

目次