はじめに
####「単体試験?何するん?ブラックボックス?ホワイトボックス?なんだそれ」
という状況だった文系卒SEの人間です。
そんな私のような単体試験って何?と初めて取り組む人にとっての少しでも参考になればと思います!
レッツゴー★
単体試験ってまずどの工程でやるもの?
今回はウォーターフォールモデルでの作業工程で説明します。 単体試験は以下の順番に沿い、製造(プログラミング)後に行います。①要件定義
②基本設計
③詳細設計
④製造
⑤単体試験←ココ!!
⑥結合試験
⑦総合試験
⑧納品
製造(動作するモノを作る)をして、それに対して間違いがないかどうかをチェックするというのが単体試験です。
単体試験はWEB開発であれば、画面単位、Windowsアプリ開発であればフォーム単位といった単位で行います。場合によってはフロントサイドとサーバーサイドで単体試験を行う人が違うこともあります。
製造でバグ(不具合)がないということは必ずしも良いということではありません。見つからなかった=見つけられなかったという場合もあるからです。単体試験の項目をどう抽出するかにも試験者の腕の見せどこです☆彡
###ポイント💡
単体試験項目(単体試験法案)を作成して単体試験に挑んだ方が確実にミスは少なくできます!
単体試験項目を作る際にもどのテストの種類で実際にテストを進めていくのか考えながら作成しましょう。
確認してもらえる環境なら、他の方にレビューしてもらいましょう。
####単体試験をする際に何を元に単体試験項目って作っていくもの?
→基本設計書、詳細設計書などのドキュメント
→ソースコード
####単体試験項目を作らなくてもやっていける場合ってある?
→画面単位やフォーム単位ではなく、メソッド単位で行う単体試験の場合は書き出さなくても洗い出せることがあります。
単体試験ってどのくらい時間をかけるもの?
製造にかけた時間の半分が目安と言われています。 例)製造が8時間なら単体テストが4時間単体試験の種類
ここからは単体試験の種類について説明します。 ###①ホワイトボックステスト プログラムが想定通りに動くかどうか確認します。ソースコードを確認します。製造者が原則行います。 例えばif文の処理があれば、記述したコード全て通っている(フルパス)であることが必要です。逆に言えば、通らなかったコードは不必要なコードということになります。ポイントは**網羅的**に確認を行うことです!###②ブラックボックステスト
ソースコード側を確認するのではなく、設計書通りに動いているかどうか画面やフォームを見ながら確認を行います。
レイアウト崩れがあるかどうかといった性能面までを確認します。
製造者以外が行うことが原則です。
###③同値分割
有効値と無効値でグループ分けをし、それぞれ代表的な値をテストデータとします。
1月~12月までをテキストボックスに入力するとOKで13以上ならNGの場合、有効値である1~12のいずれか1つをテストすれば、他の項目のテストを行う必要はありません。NG値も同様に1つテストすればよいのです。このように代表的な値を選択し、テストすることが同値分割です。
###④境界値分析
有効値と無効値の境界となる値をテストデータとします。
12以上がNGであれば、OKとNGの境界値である12と13の値をテストします。このように、OKとNGの瀬戸際の値でテストを行うのが境界値分析です。
※いずれの手法に関しても、DBがあると確認すべき点は増えます(データ登録、削除、DB接続、処理時間など)
単体試験で確認すべき項目の例
- 入力チェック - 端数処理(四捨五入など) - 入力文字数制限 - メール形式確認- 表示チェック
- 数値(3桁区切り、数値右詰めなど)
- 全般(レイアウト崩れ)
- ログチェック
- 不要なエラーが発生していないか
詳細設計書に記載されていないことでも当たり前に確認すべきことだと設計者が認識している場合があります。詳細設計書がすべての正ではなく、自分で何が必要か必ず考えて単体試験項目作成や単体試験に取り組むようにしましょう。