はじめに
エンジニアのみなさま、日々の学習本当にお疲れ様です!
また本記事まで足を運んでいただき本当に感謝です。
最後まで読んでもらえると幸いです。
システムテストとは
ソフトウェア開発の最終段階に行われるテスト
システム全体が要件を満たし、正しく機能するかを確認するプロセスです。各モジュールを統合して実際の運用環境に近い状態でテストを行うため、単体テストや結合テストで検証できなかった問題も発見しやすいのが特徴です。特に、非機能要件(可用性・パフォーマンス・セキュリティなど)の観点で検証することが重要です。
『非機能要件』 の詳細についてまとめた記事も投稿してます。
もし良かったら読んでみてください。
システムテストの工程後に 『受け入れテスト』 があります。違いとしてはシステムテストが 『開発者』の観点 でテストをするのに対し、受け入れテストは 『発注元であるクライアント』の観点 でテストをします。
テストを疎かにするとどのような影響があるか?
開発者・発注元であるクライアント共に不幸になる
そもそもシステムテストの工程では、リリースがかなり近づいてます。そのため、万が一問題が発生した場合、開発者側としては 調査 → 原因特定 → 修正対応 → 動作確認 → 修正に伴う関連機能のリグレッションテスト → システムテスト用の開発環境へのデプロイ → 再テスト を短期間で行う可能性が高くなります。その結果、対応に追われて高稼動が続きます。
一方で発注元であるクライアント側としてはリリースに向けた準備を行います。テストの時に発生した問題の大きさにもよりますが、最悪の場合リリースを延期しなければいけない事にも繋がります。
双方で不幸にならないため、テストのスコープ、目標、テスト項目、環境、スケジュール、リソースを早い段階で明確にすることが肝要です。特にシナリオテストの期待値(何を持ってクリアとするか?)は綿密に協議・合意をしましょう。検討時期としては、要件定義や設計段階からテスト観点を盛り込み、システムの複雑さに応じてテスト計画を練ることが重要です。
システムテストの検証方法
リリース前に潜在的な問題を発見することが可能
理解を深めるためにさまざまな記事を読みましたが、記事によって検証する項目が異なります。個人的には上記内容でカバーできている認識ですが、上記の項目以外で『実務でこれチェックしてるよ』があれば教えて欲しいですm(_ _)m
テストツールのご紹介
ツール名 | 用途 | 主な特徴 |
---|---|---|
Selenium | Webアプリケーションの自動化テスト | ブラウザ操作の自動化、リグレッションテスト |
JMeter | 負荷テスト、パフォーマンステスト | WebアプリケーションやAPIの負荷テスト |
Postman | APIのテスト | REST APIの機能・パフォーマンステスト、自動化 |
Burp Suite | セキュリティテスト | 脆弱性診断、XSSやSQLインジェクション対応 |
正直に話すと、ツールの良し悪しが判断できるほどの場数を踏んでないです。こちらについても上記の項目以外で『このケースではこのツール使ってるよ』があればぜひ教えて欲しいです...!
参考記事(勉強になりました。ありがとうございます)
おまけ
弊社のご紹介もさせてください!
「日本で一番エンジニアが成長できる会社を創る」
エンジニアリングの募集
PM・Webディレクションの募集
セールス・事業開発の募集
コーポレート系の募集
コンサルティングの募集
弊社メンバーは日々学習した内容をアウトプットしております!
少しでもご興味を持たれた方は求人を見てみてください!
ご応募もお待ちしております!