システムテストとは
システム開発工程には様々なテスト工程がありますが、その中でも最終工程で行われるテストとして「システムテスト」があります。システムテストは「総合テスト」とも呼ばれ、開発したシステムを実際にエンドユーザーが利用するシーンを想定して行われます。
この記事では、システムテストの目的・システムテストの種類、システムテストの流れやり方・職種例・転職方法について解説します。
システム開発における4つのテスト
一般的な開発手法であるウォーターフォール型の場合には、単体テスト・結合テスト・システムテスト(総合テストとも呼びます)・受け入れテスト(ユーザーテスト)の4つのテストがあります。以下、その概要と実施者を解説します。
■ 単体テスト プログラムを構成する小さい単位(ユニット)単位で行うテストです。ブログラマーもしくはテスターが行うケース、内部設計者(システムエンジニア)が行うケースがあります。
■ 結合テスト 単体テストが終了したモジュールユニットを連結して行うテストです。内部結合テスト、外部結合テストの2種類があります。内部設計者(システムエンジニア)もしくはテストエンジニア主導でテストが行われます。
■ システムテスト(総合テスト) システムテストはテスト計画に基づき、テスト仕様書に従って実施されます。テスト準備(環境・データの整備 )、テストの実施実行、テストの進捗管理、テスト完了までのプロセスがあります。総合テストはシステムテストの別名であり、基本的に両者に違いはありません。
実施に関わるのはプロジェクトマネージャー、プロジェクトリーダー、システムエンジニア(外部設計者、内部設計者)、テストエンジニアなど開発に関わったメンバー全員が関与します。
■ 受け入れテスト(ユーザーテスト) システムテストを経て合格したシステムがシステム要件を満たし、性能や機能を保持していることを発注側が総合的に検証するテストです。発注者側がテストを行い、問題があれば受注者側(開発側)に問い合わせを行います。
システムテストの目的
ソフトウェアの多くは、開発者がエンドユーザの要求や要件を明らかにし、要求定義・要件定義を経て、それらをプログラムによって表現することで実装されます。
わかりやすく言うと、仕様通りにシステムが作られているか、ユーザの期待通りにシステムが稼働するかを確認することがシステムテストの目的です。システムテストの目的を整理すると以下の通りとなります。
▪システムに潜む欠陥を見つける ▪システムの品質レベルが期待通りかを確認する ▪リリースの判断に必要な情報を示す
ぜひ『マイナビIT エージェント』をご活用ください!
システムテストのポイント
ここでは、システムテストを効果的に行うためのポイントやシステムテストのプロセスについて解説します。併せてシステムテストに関わる仕事の年収についても紹介していきます。
システムテストー7つの原則
システムテストの重要性を理解しても、どのようにアプローチすればよいのかが分からないと効率的、有効的なテストは行えません。そこで、よく知られている「システムテストの7つの原則」を紹介します。
【参考】:JSTQB-SyllabusFoundation_Version2018.J03 ~1.3 テストの 7 原則 ー P18
■ 1.欠陥がないことは示せない システムテストで欠陥の摘出はできますが、欠陥がないことを証明することはできません。従って、欠陥を洗い出せたと安心はできないということです。
■ 2.全てをテストすることはできない あらゆるテストを漏れなく行うのは時間と労力を考えると非現実的です。全数をテストするのではなく、テスト技法などを用いて、優先度やリスク分析によって効率的なテストを行いましょう。
■ 3.早期テストを心がける 早い段階で欠陥を見つけるために、開発工程の早い段階で不具合を見つけ、バグ修正しておけば、結果としてテストに関わるコストを削減できます。
■ 4.欠陥は偏在している ソフトウェアの欠陥は満遍なく存在するのではなく、特定の少数モジュールに集中しているケースが大半です。これらは単体テストや結合テストである程度把握できますので、その結果に基づいてリスク分析を行うことが求められます。
■ 5.殺虫剤のパラドックスに注意 害虫駆除に同じ殺虫剤を使い続けると、害虫に耐性ができてしまいます。それと同様に、欠陥を見つける万能薬はないということです。同じテストを繰り返しても新たな欠陥は見つけられません。別の観点でテストを行うことを考えましょう。
■ 6.テストは状況に応じて テストを行うシステムが何を目的にしているのかによってテストの内容や方法は異なります。そのシステムが安全性を重視しているのか、スピードが求められているのかなど、見極めが必要です。
■ 7.バグゼロの落し穴に注意 いくら欠陥を洗い出し、修正してもユーザの要求や期待を満たしていないシステムが修正されなければ、システムテストの意味がなくなります。バグゼロに拘りすぎて、システムテストの本来の目的を見失わないように注意しましょう。
システムテストのプロセス
システムテストのプロセスはテスト計画からテストの終了まで大別すると5つに分かれ、概ね下記の流れで進めていきます。システム規模によっては一部のプロセスが簡略化されたり、同時並行で進められたりしますが、大枠のポイントを外さないよう進めていきましょう。
【参考】:JSTQB-SyllabusFoundation_Version2018.J03 ~ 1.4.2 テストの活動とタスク ー P19
■ 1.テスト計画とコントロールフェーズ システムテストでは最初の「テスト計画とコントロール」フェーズで、テストの目的を設定します。システム開発の理由や目的、仕様の背景、システムの納期などを考慮して、システムテストで達成すべき目標や条件を定義します。また、テスト工程全体のコントロール基準、進捗状況の把握方法などを決めておきます。
■ 2.分析と設計フェーズ 「分析と設計フェーズ」では、テスト計画に基づいて具体的なテスト手法や使用するドキュメントを準備していきます。
▪開発システムの要求仕様、インターフェース仕様など「テストベース」の情報 ▪収集情報とテスト目的の照合、実行するテスト手法や条件、テストデータやテスト環境、テストタイプの決定など
■ 3.実装と実行フェーズ 「実装と実行フェーズ」では、テスト設計ドキュメントを元にしてテストケースを作成し、テスト実行の作業を進めます。「実装」工程では、テストに使用するテストデータを作成します。テストは誰が行っても同じ結果となるよう具体的な記述であることが求められます。
テストを自動化する場合には、テストスクリプトを作成していきます。「実行」工程では、作成したテストケースやテストシナリオに従って、テスト環境下でテストを行います。ここでは期待値通りの結果が得られているかを確認し、画面のキャプチャ画像や出力データなどのエビデンス(証跡)を取得します。
■ 4.終了基準の評価とレポートフェーズ 「終了基準の評価とレポートフェーズ」では、テスト終了の判定を行い、その結果を開発者や管理者、クライアントなどに報告します。テストの終了基準を満たしていない場合には、別途強化テストを行うことがあります。
■ 5.終了作業フェーズ 「終了作業フェーズ」では、テスト結果の反省や得られた教訓などをもとにして、今後のテストプロセスの改善に向けたレビューを行います。また、使用したテストツール、環境、テストの実績などを取りまとめ、次の開発品質向上に役立てます。
システムテストに関わる職種の年収
ここまでで、システムテストに関心を持たれた方は、システムテストに関わるエンジニアの処遇が気になることと思います。システムテストを行う仕事の中でも、代表的な職種であるシステムエンジニアの年収について解説します。
システムエンジニアの年収は「マイナビエージェント 職種図鑑」での平均年収は431万円(※2023年3月執筆時点)、経済産業省2017年発表の「IT関連産業の給与等に関する実態調査結果」から近い職種の「SE・プログラマ(顧客向けシステムの開発・実装)」を参考にすると、平均年収593万円と分かりました。
国税庁2020年発表の「民間給与実態統計調査」における民間企業平均年収は433万円なので、システムエンジニアは一般平均年収とほぼ同じであることが分かります。またマイナビエージェントの調査によれば、30代のシステムエンジニアの平均年収は472万円であり、国税庁の調査結果を上回ります。
システムテストにはプログラミングスキルに加え、設計スキル、コミュニケーションスキルなど多くのスキルが求められ、また開発システムの品質やクライアントからの評価を大きく左右する責任の重い仕事です。そのため、企業によってはさらに好条件の年収を提示しているケースが少なくありません。
【参考】:マイナビエージェント 職種図鑑 ※【平均年収 調査対象者】2020年1月~2020年12月末までの間にマイナビエージェントサービスにご登録頂いた方 【参考】:IT関連産業における給与水準の実態① ~ 職種別(P7) 【参考】:民間給与実態統計調査-国税庁
未経験者でもシステムテスト関連の仕事に転職できる?
システムテストの仕事に興味があるものの、未経験からシステムエンジニアを目指せるのか不安な方は多いでしょう。決して簡単なことではありませんが、未経験からでもシステムエンジニアになれます。ここではシステムテストの仕事に転職するための方法について解説します。
システムエンジニアの登竜門であるプログラマーを目指す
システムエンジニアを目指すには、プログラマー経験を経てからなるのが一般的です。プログミング経験はシステムテストで大いに役立ちますので、いきなりシステムエンジニアを目指すのではなく、一旦プログラマーの経験を積むことで、システムエンジニアへの道が開けます。
未経験者を採用して育ててくれる企業を探す
求人数は多くはありませんが、未経験でもシステムエンジニアとして採用し、育成してくれる企業があります。未経験者は補佐的なポジションで仕事をしながら、経験を積んで仕事を任されるようになります。
未経験からシステムテスト関連の仕事を目指すなら、社員の育成に熱心な理想の企業を探してくれる転職エージェントの活用をおすすめします。
エンジニア転職のご相談はぜひ
『マイナビIT エージェント』へ!
システムエンジニアに転職するためのポイント
最後に、システムエンジニアの仕事に未経験から転職するポイントを以下にまとめました。これらのポイントを意識し、自身のスキルアップを図ることで、面接試験や書類選考のハードルを下げることが可能です。ぜひ実践してみてください。
システムエンジニア関連の資格を取得する
ここでは、システムエンジニアとして活躍する上でおすすめの資格を2つ紹介します。未経験者でも資格を有することでスキルの証明となり、有利に転職活動を進めることができます。また、取得資格に対して資格手当を支給する企業も増えているため、収入面のメリットも考慮すると、積極的な取得をおすすめします。
1.基礎試験Python 3 エンジニア認定基礎試験 プログラマー経験を積んでからシステムエンジニアを目指したいという方には、初心者でも学びやすいプログラミング言語である「Python」をおすすめします。その実力を確認する上で、基礎試験Python 3 エンジニア認定基礎試験の合格を目標とするとよいでしょう。
2.基本情報技術者試験 システムエンジニアにはIT全般の基礎知識に加え、ネットワークやサーバなどの基礎的な技術知識、プロジェクト管理やセキュリティ知識など幅広く求められます。これらが体系的に出題される試験としておすすめしたいのが基本情報技術者試験です。
【参考】:基本情報技術者試験(FE)~ ITエンジニアの登竜門 ~
ビジネススキルを身につける
システムエンジニアは経営に関する知識、業務知識などのビジネススキルが求められます。ビジネススキルを有し、その活用経験があると転職では大きなアピールポイントとなります。
ビジネススキルは仕事を通じて高められますので、今担当している仕事を整理し、ビジネススキルを高めておくことをおすすめします。
転職エージェントを活用する
未経験者歓迎のシステムエンジニア関係の求人は必ずしも多くはありません。また転職エージェントが持つ非公開求人情報は一般の方は見ることはできず、採用後の育成に熱心な企業を見つけるのは至難の業です。そこで有力な転職エージェントの活用をおすすめします。
転職エージェントに登録するだけで、担当者が自分の希望に合う優良企業を紹介してくれますので、安心して転職活動に励むことができます。
未経験からシステムテストの仕事を目指すなら
本記事では、システムテスト関連の仕事を目指す方に向けて、システムテストの概要・システムテストのポイント・プロセス、そしてシステムテストを担当する職種としてシステムエンジニアについて解説しました。システムテストの概要や仕事内容、未経験から転職するポイントについて理解できたかと思います。
しかしシステムテストはシステムの品質を担保する上で非常に重要な工程であり、システムエンジニアとしての広範な知識やスキルが求められます。そのため、未経験からの転職は決してハードルは低くはありません。
さらに、仕事を続けながら資格取得の勉強に励み、未経験者採用企業から自分の希望に合う求人情報を見つけ、転職準備を進めるのは並大抵のことではありません。
そこで利用を推奨するのがマイナビIT エージェントです。
マイナビIT エージェントは、IT・Webエンジニア向け、無料の転職⽀援サービスです。
IT・Webエンジニアの転職事情に詳しいキャリアアドバイザーが、あなたのご経験やスキルをお伺いし、転職活動のプランをご提案します。
アドバイザーは企業側と直接連携を取れるので、求人票に載っていない情報も確認することができます。こちらで、働き方などをしっかり確認の上、応募企業を選んでいくのが良いでしょう。
未経験からのキャリアチェンジは心身ともに本当に大変だと思います。少しでもご自身の負担を減らすべく、エージェントサービスを活用して、失敗のない転職活動に臨んでいただければ幸いです。
IT業界に精通した専任アドバイザーと豊富な求人で、
あなたの転職活動を丁寧にサポートします。
編集部オススメコンテンツ
アンドエンジニアへの取材依頼、情報提供などはこちらから