みなさん、こんにちは。
前回は「テスター」という職種が世間からどう思われているか、業界内でどう扱われているか、といった現状をお話ししました。 では「テスター」というお仕事についてどのようなイメージをお持ちでしょうか。 言われた通りに動かして結果を確認することだけが仕事だと思っていませんか? 確かにそういう案件もないわけではありません。しかし実は全く違うんです!と大声で言いたいところですが、その前に「テスト設計者」と「テスター」の役割分担について整理してみたいと思います。
■前回の記事はこちら
テスト設計者とテスターの役割分担
[テスト設計者] ○テストの目的を決めてくれる ○何について(確認項目)どういう条件(バリエーション、組み合わせ)でテストすべきか(テストケース)を決めてくれる ○結果がどうなっていればよいか(期待値)を決めてくれる しかし ×手順や方法は決めてくれない ×データは作ってくれない [テスター] ●テストの目的と対象機能の仕様を理解しなくてはならない ●テストケース全体を見て手順を組み立てなくてはならない ●条件の実現方法(実施環境)や結果の確認方法を考え、設定しなければならない ●確認項目の条件組み合わせから、必要となるデータを作らなくてはならない そのうえで ○テストを実行して結果を判定する ○不具合があれば報告をする
テストの「実装」が必要
上記でわかるように、テスト設計者は「何をテストすべきか」を示しますが、「どうやってテストするか」についてはテスターに委ねられます。つまり、「バーチャル」な世界のテストケースを「リアル」の世界で実現すべく、必要な環境やデータ・手順などをそろえる(こういうことを「テストの実装」といいます)という、たいへん重要な役割もあるのです。 このことからも、ただ単に「言われた通りに動かして結果を確認する」ことだけがテスターの仕事ではないということがご理解いただけると思います。
求められる幅広いスキル
実際のところテスターには、けっこう色々なスキルが求められていることが多いのです。 たとえば、テストデータを作るとき… ・テストケースを理解して、データパターンを展開する能力 ・データベースの情報や開発ドキュメントを理解して、どのテーブル(ファイル)のどの項目をどんな値にすべきかを考える力 ・実際のテーブル(ファイル)にデータを投入する技術(SQLなど)及びツールの知識 たとえば、テストを実行するとき… ・テスト用のドライバやスタブを理解して使いこなす能力 ・ターミナルソフトを使用してサーバにログインし、シェルを起動してバッチ処理を実行したりファイルやディレクトリを操作する技術 ・結果確認のためテーブル(ファイル)の内容を表示させたり、エビデンスとして外部のファイルに書き出す技術 ・質問事項や不具合報告を正確にわかりやすく文章で表す能力 少し考えただけでもこれだけ出てきます。必ずしもそれらすべてができなければテスターになれないということではありませんが、「言われたことしかできません」より「環境作れます」とか「データ作ってDBに投入できます」のほうがどれだけ重宝されるか、また、テスト品質を向上させるかということは想像に難くないと思います。
このように、テスターとは磨くべき能力と学ぶべき知識に満ちた、やりがい溢れる仕事であることに間違いありません。現在テスターとして働いていらっしゃる方も、これからこの道を目指される方も、胸を張って歩んでいっていただきたいと切に願っております。
ご愛読、ありがとうございました。