【第3回】QAエンジニアの第一歩、「ソフトウェアテスト」を知ろう -前編-|QAエンジニアのスタートガイド

この連載では、ソフトウェア開発のQAエンジニアとして働き始めた皆様に向けて、私の実体験をもとに「こんなことを知っておけばよかった」という、ちょっとした気づきを共有します。
一緒にソフトウェア開発のQAエンジニアとしての充実したエンジニアライフを築くためのヒントを探っていきましょう。

<QAエンジニアのスタートガイド 記事一覧>※クリックで開きます

QAエンジニアは開発・テスト・運用など、さまざまな場面で活躍しています。そんな中でも「ソフトウェアテスト」は外せない要素だと思います。

QAエンジニアになりたての頃は、ソフトウェアテストの「テスト実行」を任されることも多いと思います。そういった状況で「テスト実行はつまらない」と思っている人もいるかもしれません。それはもったいないことだと私は思っています。

実際のところ、「テスト実行」はテストプロセスの中で最も大切な活動であり、プロジェクトへの貢献はもちろん、学びや楽しみの多い活動でもあります。

「ソフトウェアテスト」を解説する記事として、第3話では「テスト実行」について取り上げます。

テストに似た用語として、「試験」「検査」「検証」「評価」といった言葉が使われることがありますが、ここでは「実際の製品を動かしてその結果を観察する作業」を「テスト」としています。また、JSTQBなどを勉強したことのある方は「静的テスト」と「動的テスト」という言葉を聞いたことがあるかもしれません。本記事では記載のない限り、「動的テスト」について扱います。

テスト実行はソフトウェアテストの華である

テスト実行へのよくある誤解

「テスト実行」という活動はビギナーにも割り当てられやすいタスクです。

使用する際に資格や特殊な技能が必要のないような製品では、実際にソフトウェアを動かす人として、一般的なユーザーを想定している場合が多いです。

あるいは、製品の仕様のキャッチアップのために、テストエンジニアに限らず新規参入の人がテスト実行にアサインされる場合もあります。

そのために、テスト実行について以下のような印象を持っている場合があります。

  • テスト実行はテストケースを消化する単純作業でつまらない仕事だ
  • テスト実行は簡単な作業だから学べることは少ない
  • テスト実行は誰でもできるからテスト実行者はスキルがない

これらの印象から「テスト実行」というタスクを拒否するQAエンジニアにも出会ったことがあります。私はテスト実行に対してこういった印象を持たれることを残念に思いますし、誤解であると思っています。

テスト実行は重要な活動である

テストプロセスの中でのテスト実行

ソフトウェアテストは、テスト活動の開始から終わりまでプロセスで表現できるという考えが一般的です。これを「テストプロセス」といいます。

テスト実行はテストプロセスの中で最も重要なプロセスであると考えています。

たとえばJSTQBでは、テスト計画、テスト分析、テスト設計、テスト実装、テスト実行、テスト完了、テストのモニタリングとコントロールといった活動が識別されています。

※上記の図において、「テストのモニタリングとコントロール」については、「テスト計画を含む」という考えで記載しています。2018年などの従来のシラバスではモニタリングとコントロールにはテスト計画を含まない形で定義されていました。一方、2023年に発行された最新のシラバスでは「checking of all test activities」とされており、テスト計画を含むとも読み取れます。

これらすべての活動を行うことがベストプラクティスと言われていますが、そうでないプロジェクトも存在します。たとえば「テスト分析」や「テスト実装」を行っていないプロジェクトも存在します。

一方で、「テスト実行」がないプロジェクトを(プロジェクトが中止しない限りは)見たことがありません。

これらの活動のうち、テスト計画・テスト分析・テスト設計・テスト実装は、あえて一言で表せばテスト実行の準備をしているとも表現できると考えます。

テスト完了についても、そもそもテスト実行が実施されていなければ完了できません。テスト実行結果を元に、報告や学びの蓄積や保守への移行など、さまざまな完了作業を行います。

!注意!

この文章を読み、「テスト活動はテスト実行の準備をしている”だけ”」と片付けるのは少し乱暴です。

テスト計画ではステークホルダーとの合意形成を行う大切な活動です。また、テスト分析やテスト設計は、開発の資料にフィードバックする活動につながることもあります。

こういったテスト実行以外への効果は、この連載で書ききれないほどたくさんあります。

テスト完了についても「テスト実行結果”だけ”がテスト完了のインプットになる」と思ってしまうと少し誤解があります。実際はテストプロセス全般を通じて得られた情報のレポーティングや学びの蓄積を行います。

テスト実行を考えない成果物は取り扱いが難しい

テスト実行は後工程であるので、テスト実行について考えることを一旦棚上げして、テスト計画やテスト設計を行う場合もあります。しかし、それはアンチパターンだと考えます。

「計画したテストがいつ・どのように実行されるのか」「設計したテストを実現するためにどうすれば実行できるのか」など、テスト実行についてきちんと考えた上で活動することが大切です。

テスト実行について検討できていないテスト計画やテスト設計は、テスト実装やテスト実行のフェーズで大きな負担になったり、場合によっては手戻りや追加のコストがかかってしまう場合があります。

テスト実行によって「事実を積み重ねる」ことが大切

テストプロセスにおいて、テスト計画からテスト実装は「想定を積み重ねている」にすぎないと考えます。

「お客様に品質を保証する」と考えた時に、私は「事実をきちんと把握できているかどうか」が大切だと考えています。

予測や想定ではなく、「こんな状況でソフトウェアはこんな動作をした」という事実を積み重ねることで、我々は自信を持ってお客様に製品を届けられると考えています。

事実を積み重ねることができる重要な活動が「テスト実行」なのです。

テスト実行の仕事を充実させるポイント

アイデアを言語化したり実際に試す

テスト実行をするにあたって、目の前のテストケースを思考停止で消化していることがあるかもしれません。それはQAエンジニアとしてもったいないことをしています。テスト実行の際には思考を停止するのではなく、むしろ思考を活性化させてほしいです。

ポイントは様々な発想を広げることです。たとえば以下のような疑問を持つことが有効だと考えます。

  • こういった動作で顧客はどんな風に感じるだろうか?
  • こんな都合の悪い操作を行ったらどんな動作をするだろうか?
  • 似たような製品ではどのような動作をしているだろうか?

これらについて実際に試す際には「言語化すること」もおすすめします。チケットを起票するときや、テスト分析をするときには、こうした言語化の技術が仕事の質やエンジニアとしての実力差に繋がると思います。

「言語化を考える以前にテスト実行進捗に対する圧力がある」ということもあると思います。

その場合は、ぜひテストの準備やテスト実行自体を効率よくできるように検討してください。

たとえばテストの準備・調達の手順が不明確だったり、テスト実行手順が非効率な場合があるかもしれません。もしかしたら自動化を行う余地があるかもしれません。

テスト実行という活動には創意工夫を行う余地があることはもちろんですが、テスト実行の場合、最も工数がかかる活動であるということもあり、改善の効果が得られやすいことがあります。

テストそのものやテストケースの目的に思いを馳せる

テスト実行は学びが少ないと思われがちかもしれませんが、学習の材料は大量に存在します。

テストケースやテスト計画書などです。それらの成果物からテスト設計の意図やテストの存在意義について考えてみてください。

もしテストをしていて「このテストケースは無駄だな」と思われるなら、そういった考えの言語化に挑戦することをおすすめします。「無駄なテストを省く」「そのためにきちんと説明できる」というのはテストマネージャーやテスト設計者として必須のスキルになります。

これらはテスト実行を行いながら考えることができます。

テスト実行の専門性を高める

テスト実行は誰でもできると思われがちですが、テスト実行にも専門性があります。不具合発生時のチケットでの報告や切り分けには、慣れや経験があります。これらは学習によってもキャッチアップできますが、バグというのは多種多様で、経験や感覚に頼る部分も多いのが現状です。

そのため、テスト実行を通して、よりよいテスト実行者になることも有意義だと考えます。

おわりに

本記事では「テスト実行」について充実させるためのポイントを紹介しました。

テスト実行を通してテストに関するさまざまなことを学んで欲しいと思います。

また、将来キャリアアップしたときに、テスト実行ができないポジションとなる可能性もあります。その時に「テスト実行での学びをするのを疎かにしていた」ということがないようにしてほしいと思います。

続く後編では、テスト実行以外の活動にフォーカスを当て、解説していきます。

【連載】QAエンジニアのスタートガイド 記事一覧

SHARE

  • facebook
  • twitter

SQRIPTER

山下 友輔(やました ゆうすけ)

記事一覧

ソフトウェアテストに専門性を持つ、大阪在住のバキバキQAエンジニア。なによりDirty Testerでもある。
2018年に第三者検証会社に第二新卒として入社後、派遣テスターとして業務をこなしつつTPIというテストプロセス改善技術について学ぶ。
現在はWeb系SaaS企業のQAエンジニアとして、パーフェクトQAパーフェクトスタイルを模索している。

JSTQB TA/TM/TAE

プロフィールイラスト:タスマニア・デビ男

RANKINGアクセスランキング
#TAGS人気のタグ
  • 新規登録/ログイン
  • 株式会社AGEST
NEWS最新のニュース

Sqriptsはシステム開発における品質(Quality)を中心に、エンジニアが”理解しやすい”Scriptに変換して情報発信するメディアです

  • 新規登録/ログイン
  • 株式会社AGEST