新人が困らないテスト実施手法


はじめに

7月になり、弊社でも新入社員が配属されました。
2年目社員の私は新入社員のお世話をしつつ、自分の仕事もしています。

思い返せば、私が配属されたときはいきなりMacを渡されて「今日からSwift覚えろ」と言われたのでした。
とはいえこんなケースは珍しくて、配属された新入社員がまず最初にすることはテストだと思います。
(この1年、実装・テストケース作成・テスト実施の各フェーズを経験し、少しだけ逞しくなったと勝手に思ってますが…。)
今もテストに四苦八苦する新人を見ながら、一緒にウンウンうなってテストしています。(正直聞いてるほうもわからん)
そんな日々を過ごしながら思ったことがいろいろあるのでまとめます。

実装で気を付けたいこと

・コードはわかりやすく書く
インデント、適切な改行、コードの整形(代入するときの「=」の左右にスペースを入れる、インデントはスペースでつけない(諸説あり)など)
この先年単位で他のSE・PGが見続けるかもしれないので、だれが見てもわかりやすいようなコード実装を心掛けたい。(自戒)

・クラス名、メソッド名、変数名は見てわかるように
どんなことをやっているクラスなのか、クラス名を見て理解できると取り掛かりやすい。
どんな処理をしているメソッドなのか、繋がりがわかりやすくなって処理の理解が進む。
変数名はどんな値が入るか誰でもわかるように命名してほしい。
(これはどちらかといえば設計側の問題だろうか?)

・適宜コメントを入れる
どんな処理をしているか、コメントを入れてくれるとテスターがめちゃくちゃ喜びます。
単体テストの場合、どこでエラーを起こしているかすぐわかると「〇〇の処理でエラーしているので直してください」とか言えるので、
修正も早くなりテストのペースも上がるのでめちゃくちゃ捗ります。

テストケース作成で気を付けたいこと

・テストの実施手法、確認したい内容は具体的に書く
「ブレークポイントを置き、テストケースの内容を満たしているか確認する」←何をしたいのかわかりません(と当時言われました)

テストの実施方法
1.コメント「〇〇」の処理開始行にブレークポイントを設置する
2.別図を参照し、「入力データ」欄の通り各項目にデータを入力する
3.「実行」を押下し、処理を開始する

確認ポイント
1.入力データがAのとき、
・〇〇が××であること
・〇〇が××であること
・〇〇が××であること
2.入力データがBのとき、
・〇〇が××であること
・〇〇が××であること
・〇〇が××であること

ちょっとこれは書きすぎかもしれませんが、基本的にはケース作成者とテスト実施者が別のパターンが多いので、
ケース作成者はテスト実施者が理解しやすい内容でケースの指示を書くとよいです(戒め)

・テストデータは正確に準備する
ケース自体は合っていても、テストデータが間違えていたら正しいテストにはなりません。
テストデータ次第で返却される結果が想定と異なるものになってしまうので、正しいテストデータを随時更新しましょう。

テストデータももちろんですが、「データのバージョン、内容、接続先のDBなど…」テストで何を使えばよいかテストケースに記載することが重要です。 (テストが始まってから「このテストデータ違うじゃん!」でテストが止まってしまうことが何度もありました)

テスト実施で気を付けたいこと

・操作に慣れておく
シンプルなアプリはそこまで問題ないですが、機能数が多くなるほど操作が複雑になります。
操作が複雑になるほど操作に手間取ってしまうことが増え、結果としてテストの消化速度も落ちてしまうことになります。
実際にテストを始めるにあたって、あらかじめ操作に「慣れておく」ことが重要です。
(操作方法を理解することでテストケースの理解が進むというメリットもあります)

・テストの進め方を事前に確認する
「テストケースが丁寧に書かれていても、はじめのうちはテストの進め方がわからない」というのがテスト初期あるあるだと思います。

あらかじめケース作成者に以下のことを聞いておくとテストをスムーズに進められると思います。 1.テストの手順(具体的にどう操作すればよいか) 2.結果の確認方法、判定の基準 3.バグやエラーを起こした時の対処方法

・適切なテスト実施ペースを知る
最初のうちは少しずつしか進みませんが、慣れてくるとスムーズにテストを消化できるようになります。
それに伴って担当するケース数も増えていくのですが、「自分がどのくらいのペースでテストを消化できるか」知っておくといろいろな意味で楽です。

最後に

・中途半端な実装、ケース作成をしていた過去の自分をぶん殴ってやりたくなった。。。
・全体的に文章、もっと短くまとめられないのか。。。
・テスト実施での「頑張って進めます」はあてにしてはいけない。。。大体頑張れずに終わる。。。