夏の気配がじわじわと迫る季節になりました。
はじめまして、mmです。
暑いのは苦手ですが、音楽フェスやお祭り、バーベキューが楽しい時期でもあるので、これからの季節が楽しみです。みなさんは今年の夏をどのように過ごす予定ですか?

さて、私は以前教育関係の仕事に携わっており、ちょうど一年ほど前にシエルプレザンに入社しました。
IT全般やJava等についての研修を受けた後、現在は開発現場のテスターとして勤務しています。
ITの仕事についてはまだまだ初心者ですが、私と同じように初めての方にも分かるよう、テストの仕事について簡単にご紹介していこうと思います。

…………………………………………………………………

【目次】
①テストとは
②テストの種類
③実際のテスター業務

…………………………………………………………………

***

一言で言えば、システムやソフトウェアが仕様どおりに動くかを確認する作業です。詳しい種類について後ほど説明しますが、どのテストもプロジェクト全体の中で重要な役割を担っています。

▼テストの主な目的
バグの発見
仕様と異なる動作や、想定外のエラーを見つけるために行っています。
大きく複雑なシステムであるほど、バグが発生する可能性は高くなるため、早期に発見することでプロジェクトのリスクを軽減します。

品質の担保
ユーザー(≒クライアント)が安心して使える状態に仕上げます。
提示された要件をクリアしているか、スムーズに操作できるか、使い勝手に問題がないかを確認します。

***

②テストの種類

テストにはさまざまな種類や手法がありますが、開発現場でよく登場する代表的なものを紹介します。

単体テスト(Unit Test)
UTと呼ばれ、プログラムの最小単位(関数、クラス、メソッド等)ごとに 仕様通り動作するか検証するテストです。主に開発者が実施します。

■ 結合テスト(Integration Test)
ITと呼ばれ、複数の機能を組み合わせたときに問題なく動くかを検証するテストです。データの受け渡しや連携が正常に行えるか確認します。

■ システムテスト(System Test)
STと呼ばれ、システムやソフトウェア全体が仕様どおりに動くかを確認するテストです。テスターが多く携わる工程です。(ちなみに、私も主にSTを担当しています)

■ 受け入れテスト(Acceptance Test)
実際のユーザー(またはクライアント)が最終確認するテストです。本番と同じ条件で運用し、正常にシステムが作動するかを検証します。リリース可否を判断する重要な工程です。

なお、それぞれのテスト工程は設計・開発工程と1対1の関係にあります。業界の方やITの勉強をしている方は、下の図を見たことがあるのではないでしょうか。

今回は設計・開発の工程については省略しますが(気になる方は”システム開発”等で調べてみてくださいね)、上から下に向けて細かい設計をするとイメージしてください。上にいくほどシステムの範囲が広くなるため、対応関係にある運用テストやシステムテストは要件全体を把握する必要があります。

***

さて、ざっくりと説明してみましたが、これだけでは具体的に想像しづらい方もいるかもしれません。
そこで、定食屋で料理を提供する場面を例として挙げながら、もう少しだけ詳しく説明していこうと思います。

■ 単体テスト:食材のチェック

まずは料理を作る前の段階として、仕入れた食材や調理道具が問題ないかを確認します。例えば……

・野菜が傷んでいないか
・調味料の賞味期限は切れていないか
・包丁はきちんと研いであるか

これは、料理人(開発者)がチェックします。ソフトウェアの開発では、個別の機能(ログイン機能、検索機能、ボタン処理など)が部品単体として成立しているかを確認します。

■ 結合テスト:食材を組み合わせて調理する

一つ一つの材料や道具は問題なくても、組み合わせると不具合が出ることがあります。

・肉と野菜を炒めたら味が薄すぎた
・包丁が小さく、固い食材を切れなかった
・皿の大きさが合わず、盛り付けるとこぼれてしまう

定食として成立させるには、料理同士の相性や調理工程の連携が重要です。結合テストは、複数の機能が正常に連携するかを確認します。「ログイン → マイページ表示」のような流れをチェックするのがこれにあたります。

■ システムテスト:定食として完成品をチェックする

料理が完成したら、定食として問題なく提供できるかを確認します。

・ご飯・味噌汁・メイン・小鉢が揃っているか
・アレルギー表記どおりの食材になっているか
・提供時間は問題ないか

ここでは「料理全体としての品質」を見ることが重要です。また、メニュー通りになっているかを確認する必要があります。システムテストも同じで、システム全体が仕様どおりに動くかを確認します。

■ 受け入れテスト:お客さんが実際に食べてOKを出す

最後に、実際にお客さんに食べてもらいます。お客さんが「これなら満足できる、お金を払っていい」と判断して初めて、商品として定食を提供することができます。

・味は好みに合っているか
・ボリュームは十分か
・メニュー写真と違わないか

受け入れテストは、実際のユーザー(またはクライアント)が最終確認する工程です。「これでリリースして問題ない」と判断されれば、システムが公開となります。

***

③テスター業務の実際

ここからは、実際のテスターの業務の一部を紹介します。

■ テストシナリオ・ケース作成
要件をもとに、どんな操作をすれば仕様を確認できるかを文章化します。テストケースは、テストの設計図のようなもので、「入力」と「期待される出力」が記載されています。どのように条件を網羅するか、どのようなパターンを用意するかなど、思考力が求められる過程です。

■ テスト実施
テストケースに沿って実際に操作し、結果を記録します。テストケースの観点を中心に見ていきますが、要件を理解しておくことで、見落としがちなバグを発見しやすくなります。また、どのような意図でケースが作成されているのかを考えることで、自分が作成する際の参考になります。

■ バグ報告
見つけた不具合を開発者に報告します。報告内容がわかりやすいほど、開発者は修正しやすくなります。発生環境や再現手順、期待結果、実際の結果などを報告し、バグが修正されたら再テストを行います。**

現場やプロジェクトによっても異なるため、すべてのテストが上記と同じとは限りませんが、テスターの業務について、少しでも想像しやすくなっていれば幸いです。

■ 最後に

IT現場に入るまでは、テスター業務というと単純作業のイメージでしたが、要件を理解し、ユーザー視点で品質を守る重要な役割を担っていることが分かってきました。開発の全体像を把握するという観点でも、初心者にとっては学ぶことの多い工程です。

テストについて簡単にご紹介しましたが、いかがでしたでしょうか。
最後まで読んでいただき、ありがとうございました!

The following two tabs change content below.

mm

教育関係の仕事をしていましたが、心機一転ITの世界に飛び込みました。趣味は旅行と読書。デスクワークで落ちた体力を取り戻すべく、運動に励みたいと思う日々です。

最新記事 by mm (全て見る)