皆さんこんにちは!R&Dの菅野です。
年末も近づき、慌ただしくなってくる頃ですね。いかがお過ごしでしょうか?

R&Dではいくつかの開発案件が大詰めを迎えていて、忙しいながらも充実した日々を送っています。
今回は、開発を進めていく中で必ず立ちはだかる壁、「テスト」についてお話したいと思います。

テストって?

R&D事業部では「Webアプリケーションの開発」を行っています。
phpやhtml、JavaScriptといった言語で開発を使用しているのですが、開発途中では「バグ」が発生します。
バグによる誤作動をなくす為、より良いサービスを提供する為にひとつひとつのバグを潰す作業を丹念に行う必要があります。このバグを洗い出すために行う作業が今回お話する「テスト」です。

メンバーへインタビュー

今回はとあるプロジェクトでテストを担当している韓国メンバーの3人にご登場いただき、Webサイトのテスト作業について語っていただきます。

新卒エンジニア

 菅野  ヘヨンさん、ジュハさん、スヨンさん、よろしくお願いいたします。

ヘヨン
スヨン よろしくお願いいたします。
ジュハ
 菅野  テストとはどのようなものなのか教えてください

スヨン
プロジェクトで制作しているWebアプリケーションの仕様や動作、データの確認などをしています。簡単な箇所であれば、確認したらすぐに修正も行っています。

ジュハ
制作したWebサイト上にある全てのページだけでなく、そのページ内の機能をひとつひとつ確認しています。

ヘヨン
私はテスト結果を見て修正が必要なところを修正しています。
修正をするために、まずは設計資料や定義資料などを参考して他のメンバーが出してくれたテスト結果が正しいかどうか確認します。
その後、エラーの内容を把握するために自分の環境でも同じエラーが発生しているかどうか確認したり、確認できなかった場合はテストを行ったメンバーにどのような環境でどのようにテストを行ったか直接聞いたりしました。こうしてしっかりとエラーの内容が把握した後に修正を行いました。

ジュハ
私の現在の作業は「シナリオテスト」といって、私が実際のユーザーだという設定で確認を行っています。ユーザーが見た時に不具合がないか、様々な角度から徹底的にチェックしています。

 菅野  今年入社のジュハさんにお聞きします。新卒としてテストを任せられていることについてどう思いましたか?

ジュハ
最初、テストを任せられたとき、「几帳面ではない私にテストなんてできるのだろうか?」などと思いました。今は「これも成長できる機会だ」と思いながら、テストに取り組んでいます。
2
 菅野  何か発見はありましたか?

ジュハ
テストしながら、プロジェクトの設計がどれだけ重要なのか分かりました。
設計では気づかなかったところで問題が発生し、修正するのにとても苦労したことがあります。
今回のテストで気付いたことを次のプロジェクトでは忘れずに活かしたいです。
また、へヨンさんとスヨンさんには、システムの流れや私が見落としたところを教えてもらっています。
先輩方のご指摘にいつも感謝しています。
3

 菅野  先輩のお二人はテストで難しいことはありましたでしょうか?

スヨン テストデータを作る時間が非常にかかって困りました。アカウントを多数登録するタイプのWebサービスですので、アカウントを作成するためにエントリーフォームから手作業で何度も入力を行いました。データベースに直接アカウントを書き込めばいい、という問題ではありません。
更には作成したそれぞれのアカウントでログイン、ログアウトを繰り返すなど非常に手間がかかりました。

ヘヨン
私は一つの機能に対してテストや修正をするとき、「この機能に関係する他の機能があるかどうか、ある場合はどこまで反映されるのか。」についていつも考えていましたが、その答えを出すのがとても難しかったです。一つの問題に対して考えなければならない範囲がとても広く、特に他の方が書いたコードであったりすると理解にも時間がかかるからです。
 菅野  私も他の人の書いたコードを見ると頭が痛くなるときがあります。他人が見ても分かりやすいコードを意識して書くことが大切ですね。お二人はテストをして何か新しく見えてきたことはありますでしょうか?

スヨン
最初のテストのときは機能がちゃんと動いているかということだけに気をつけていたので、データの保存ができるか、削除ができるか、表示に問題はないかなどのことを中心にテストしました。しかし、後にリダイレクト先や表示する項目が間違っていることが分かって、同じページを何回も修正したりして時間が非常にかかりました。
実装もテストも結局人がすることなので、どこかで間違いはあると思います。そのため、どんなに小さいところであっても徹底的に確認するのが一番だと分かりました。

ヘヨン
一つの機能を実装するときでさえも、プロジェクト全てを考えることが大事なことだと感じました。
それで、ジュハさんを含め他のメンバーから質問を受けた時は、質問内容だけでなく関係することは広い範囲で回答するようにしました。
また、テスト結果のチェック表を確認しながら抜けているテストはないか、進捗はどのくらいできているかなどを確認してテストチーム内で報告したりしました。作業の状況を常に共有し合うことの大切さも学びました。
 菅野  テスト作業から色々なことを学んだということですね。最後の質問になってしまうのですが、これからの仕事の抱負を聞かせてください。

ヘヨン
現在はプロジェクトの一部分の作業を行っておりますが、今後はプロジェクトの全てを理解して作業ができるエンジニアになれるよう頑張ります!

スヨン
誰が見ても理解しやすいコードを書くエンジニアになりたいと思っています。
…その「誰」には自分のことも含まれている(笑)ので、勉強します!

ジュハ
ヘヨンさんと同じように色々な仕事を経験してどんな仕事でも対応できるエンジニアになりたいです!

4

 菅野  ヘヨンさん、スヨンさん、ジュハさん、ありがとうございました!

さいごに

以上、いかがでしたでしょうか?
テストとはイメージでは単純作業のように思えますが、実は俯瞰的な視野を必要とする難しい作業です。
今回ご紹介させて頂いた3人は、テストの前に様々な開発に参画いただいて多くのプログラムの開発や実装を体験しております。
その3人だからこそこなせる作業ということです。この記事を読んだ皆さんも、是非色んなことに挑戦して視野を広げてみてください。

また、ヘヨンさん、スヨンさん、ジュハさんは、過去に新卒ブログでもご登場しております。
入社してどんな仕事を行うのかをわかりやすくレポート頂いておりますので、こちらもあわせてご覧ください!

スヨン新卒1年目の日常vol.6 ~cakephpとわたし~
ヘヨン新卒1年目の日常vol.11~プロジェクトに参加させて頂きまして~
ジュハ新卒1年目の日常vol.22~困難の連続!初めてのシステム開発~

それでは、R&Dの菅野がお送りしました!
次回の更新もお楽しみに!