12
15

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

単体テストの定義

Last updated at Posted at 2015-08-13

#はじめに
新しいプロジェクトチームに配属され、詳細設計から担当しています。
新たに文化に触れてその文化に習って業務を進めているけど、
ギャップを感じたので書いてみようと思います。

##今の文化
###1. 詳細設計書の作成
コードベースでの詳細設計書
日本語とプログラミング言語が分かればコーディング出来るレベルのもの
その言語特有な記述もする
「なんていう名前のクラスの、なんていう名前のメソッドを呼びます」ってことまで書く

仮に、じゃあ別の言語で作ろっかってなった場合には、確実に通用しない

プログラム設計書と言った方がしっくり来る感じ
フローチャート、クラス図は必須ではない・・・とにかく、プログラムっぽい設計書書かないと。

###2. 単体テスト仕様書の作成
詳細設計書を見ながら、1行単位でテスト項目を作成
メソッドが呼ばれること、引数はこれであること、戻り値は何であること

詳細設計書が間違ってても、それをそのまま項目として挙げているので
詳細設計書の間違いにも気付きにくい

###3. コーディング
詳細設計書をもとにプログラミング言語に落とし込む

詳細設計書・・・微妙だなって思うことも多々ある。
思い切って変えちゃうと、詳細設計書書き直し、単体テスト仕様書も書き直し・・・

結局、コーディング完了して、詳細設計書直して、単体テスト仕様書を直すという手戻り

###4. 単体テスト
プログラムベースでのテスト項目
この関数が呼ばれる、その次はこれが呼ばれる・・・

あれ?この場合ってテストしてないじゃん、あれ?これは?これは・・・?

##個人的考え
###1. 詳細設計書の作成

  1. 関数単位の機能フロー
    概要設計書をもとに、大まかな機能ごとにフローチャートを作成
    大まかな機能を分割、分割、分割・・・
    単一機能レベルまでに落とし込み
    落とし込んだ単一機能レベルのフローチャートが完成する

  2. 関数仕様書
    単一機能毎に関数仕様書の作成
    関数の処理内容を記述(言葉で)
    IN と OUT を明確に
    IN は、A、B
    OUT は、A = 文字列、B = true のときは、X
    A = null、B = true のときは、Y
    こんなときには、例外が起きる
    みたいな感じで、条件を網羅する
    この条件網羅が、単体テストのテスト項目になる
    この場合、運用のことはあまり考慮せずに網羅する
    運用で起きないパターンについては、「テストしたけど起きないよねw」でいいと思う
    万が一起きちゃった場合の保険。

  3. DB操作系の仕様書
    こんな項目を検索
    こんな項目を挿入

  4. DB操作系のパターン表
    これとこれが、これのときにはこれ
    あれとこれが、これのときにはそれ
    これも全件網羅

###2. 単体テスト仕様書の作成
関数仕様書とDB操作系のパターン表で終わっている

ここでUnitTestのコーディングできちゃうかも

###3. コーディング
関数仕様書を元に、機能を作り
機能フローを元に、処理をくみ上げていく

ここでUnitTestのコーディング(コーディングする前に作っても可)

###4. 単体テスト
UnitTestを流すだけ
結果のエビデンスとって終わり

#まとめ
とにかく現状がいけてないなーって思ったから
こうするとよくなるんじゃない?
って思いつきで書いています。最後、結構雑になりました。

とりあえず、提案してみよう

何か、思うことありましたら意見を頂ければと思います。

夢見過ぎ・・・とか、そんなんもう10年前で終わってる・・・とか
学生ですか?お花畑すぎでしょwww とか、何でも大歓迎です。

12
15
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
12
15

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?