初投稿です。
新入社員として配属となってからはや5ヶ月。
研修と案件で学んだことがたくさんあり、アウトプットをする機会に投稿してみようと思いました。
完成形は新人はこれくらいやっていれば大丈夫という記事になれば良いなと思います。
足りない部分などありましたら、ご意見の程くれると非常にありがたいです。
※こちらはサイトを作ろうとしている方向けの記事です。
さて本題ですが、今回は単体テスト項目の洗い出しの観点について話していこうと思います。
#テストの意義とは
**テストをする意味はバグを検出する。**というのが目的です。
めんどくさくなり、項目を消化することが目的となってくる人がいますが、それはよくありません。
研修だと自分一人で成果物を作り、テストするというのをやる人が多いかと思いますがやればやるほどほどこの思考に陥りやすいです。
なので、絶対にエラーを出してやるという意識でテストしてください。
項目の消化ではありません。
#どのようにテスト漏れがない仕様書を作るか
考えていたのに、書き忘れた。
指摘をもらって思い出した。
というケースが非常に多いです。
私も教育担当の方に散々言われてきました。
このような事態に陥らないように、思考の整理をしなくてはならないです。
私が常に意識していることは
①どの部分を見ていくか書き起こす
②どのようなテストをするかパターンをまとめる
③仕様書に書き起こす
※パターンとは
例えば数量を入力する入力欄があります。
そこに対してどのようなテストをしていくか
数値だけ入力できるか、何桁まで入れられるかといった具合です。
という流れで仕様書を書いています。
パターンと仕様書同じでは?と思った人もいるかもしれないですが、一度この工程を踏むとミスが圧倒的に少なくなります。
重要なのは、①②③の各フェーズごとにレビューをお願いすることです。
自分だけの判断では、漏れがないことを見つけるのはほぼ不可能です。
自分のために時間を使ってくれる上司、トレーナー、教育担当者の方々の力を借りましょう。
新人の仕事に置いて重要なのは、聞くことです。
勇気が出ない、忙しそうにしていると色々な状況があるかもしれないですが、後々テストの漏れが見つかった際はそれどころじゃ済まないです。
聞くことを怠り、失敗し配属先を変更させられた新人いるくらい大切なことなので、聞いていく習慣を心がけましょう。
そして聞いたことを出来るだけアウトプットして、記憶を定着させましょう。すると伸び率が他の新人より段違いで進みます。
#実際どんなところを見ていけばいいの?
基本単体テストは、ブラックボックス視点で行うことが多いです。
なので最低限ブラックボックステストでは、ここを見ておけばいい部分をあげておきます。
##検索部分
・絞り込みができているかどうか (完全一致、前方一致、部分一致など)
・検索結果は正しいかどうか(表示されている値と登録されている値に差異はないか)
・項目が多いのであれば、組み合わせ網羅(2因子間網羅)
・チェックボックス 正常にチェックが入れられるかどうか
・プルダウンリスト 選択肢が正常に表示されているかどうか
・ラジオボタン こちらも選択肢が正しく表示されているかどうか
##登録・更新部分
・文字列チェック
・数値チェック
・記号チェック
・全角カナかな
・全角英数字
・全角記号
・半角英数字
・半角カナかな
・半角記号
・重複チェック
・桁数チェック
・バイト数チェック(同値,境界値)
・開発者ツールで値の変更
・表示項目は登録されているものと表示されているものは同じかどうか
・エラーが起きた時、入力された値が保持され、そのまま表示されているかどうか ※下記に補足アリ
※補足説明
こちらはお問い合わせフォームなどを想像してください。
一つの項目だけ入力を間違えてしまっただけなのに今までの入力がすべて消えてしまうことがあると正直面倒です。それを防ぎましょう。
##表示項目
・マウス操作、TAB操作で入力できるのか (テキストボックスなど)
・表示されているものは整合性が取れているのか
・リンクは正常に機能するかどうか
・ボタンは正常に機能するかどうか
##その他
・画面遷移は正しいか
・ログインしないと表示されない画面等ブックマークなどで見れてしまっていないか
これらを試験するときにこれらを意識し、考えていけば最低限の項目は書くことができると思います。
テストちゃんとできるようになると、かける工数が少なくなり、さらに製造ではどのような観点でコードを書けばいいかわかるので、成果物の品質も上がるようになり一石二鳥です。
最初は書くのがつらいと思いますが、しっかりやれば後からおつりが出るような作業ですので頑張りましょう。
##最後に
まだ業務について日が浅いですが、学んだことがあれば都度投稿してみようと思います。