「単体テスト」から「Selenium」まで、テストに関する幅広い用語やツールが挙げられていますね。これらを主要なものから順に、雑学や業界話を交えながら解説していきます。
テストの基礎と種類
まずは、ソフトウェアテストの基本的な考え方と、様々なテストの種類について解説します。
1. 単体テスト (Unit Test)
解説: ソフトウェアの最小単位(関数、メソッド、クラスなど)が期待通りに動作するかを検証するテストです。通常、開発者自身がコードを書くと同時に行います。
業界話/雑学: 「テスト駆動開発 (TDD)」では、テストコードを先に書いてから本体のコードを開発します。これにより、設計がより明確になり、質の高いコードが生まれると言われています。また、単体テストはテストピラミッドの最も下の層に位置し、最も数多く実行されるテストです。
2. サービス(API)テスト (Service/API Test)
解説: アプリケーションのユーザーインターフェース(UI)を介さずに、個々のAPI(アプリケーション・プログラミング・インターフェース)が正しく機能するかを検証するテストです。システムの内部ロジックやデータ処理が正しく行われているかを確認します。
業界話/雑学: UIテストよりも高速で安定しているため、CI/CDパイプラインに組み込みやすいのが特徴です。最近のマイクロサービスアーキテクチャでは、サービス間の連携がAPIを通じて行われるため、非常に重要視されています。「Postman」や「Karate」などのツールがよく使われます。
3. UI機能テスト (UI Functional Test)
解説: ユーザーが実際にアプリケーションを操作するように、UIを通じて機能が正しく動作するかを検証するテストです。ボタンクリック、フォーム入力、画面遷移などが対象になります。
業界話/雑学: ユーザー視点でのテストなので、最もビジネス要件に近い部分を検証できます。しかし、UIの変更に弱く、テストの実行が遅い、安定しにくいといった課題もあります。「Selenium」や「Cypress」、「Playwright」などが代表的なツールです。
4. E2E (End-to-End) テスト
解説: システム全体のフローが最初から最後まで正しく動作するかを検証するテストです。複数のコンポーネントやシステムが連携するシナリオを対象とし、本番環境に近い状態で行われます。
業界話/雑学: テストピラミッドの最上部に位置し、網羅性は高いですが、実行時間やコストがかかるため、重要なシナリオに絞って実施されることが多いです。「シナリオテスト」とも呼ばれます。
5. コンポーネントテスト (Component Test)
解説: アプリケーションの個々の独立したコンポーネント(特定の機能を持つモジュールなど)が、他のコンポーネントから独立して正しく動作するかを検証するテストです。単体テストより大きく、E2Eテストよりは小さい粒度です。
業界話/雑学: マイクロサービスアーキテクチャにおいて、各サービスが独立して動作することを確認する際に有効です。モックやスタブを使って、依存関係にあるコンポーネントをシミュレートすることがよくあります。
6. スナップショットテスト (Snapshot Test)
解説: コンポーネントのUIのレンダリング結果やデータの構造のスナップショット(静的な画像やテキスト表現)を保存し、次回以降のテスト実行時にそのスナップショットと比較することで、意図しない変更がないかを確認するテストです。
業界話/雑学: 特にReactなどのUIライブラリで頻繁に利用されます。UIの視覚的な回帰テストに役立ちますが、スナップショットが膨大になると管理が大変になることもあります。「Jest」の機能として提供されたり、「BackstopJS」のようなツールも利用されます。
7. クロスブラウザテスト (Cross-Browser Test)
解説: ウェブアプリケーションが、異なるウェブブラウザ(Chrome, Firefox, Safari, Edgeなど)やそのバージョン、さらには異なるOSやデバイスで正しく表示され、機能するかを検証するテストです。
業界話/雑学: ユーザーがどんな環境からアクセスしてくるか分からないため、ウェブアプリケーション開発では避けて通れないテストです。最近では、クラウド上で多数のブラウザ・デバイス環境を提供してくれるサービスも増えています。
8. テストカバレッジ (Test Coverage)
解説: テストによって実行されたコードの量を示す指標です。ステートメントカバレッジ、ブランチカバレッジ、ラインカバレッジなど、いくつかの種類があります。
業界話/雑学: テストカバレッジが高いほど品質が高いと思われがちですが、カバレッジ100%でもバグがないとは限りません。重要なのは「質の高いテスト」でカバレッジを上げることです。単にコードが実行されたかだけでなく、様々な入力パターンやエッジケースがテストされているかが重要です。
9. テストピラミッド (Test Pyramid)
解説: テストの粒度と実行コスト、頻度を視覚的に表現したモデルです。下から単体テスト、サービス(API)テスト、E2Eテストの順に積み重なり、下層に行くほどテストの数が多く、実行が速く、コストが低いことを示します。
業界話/雑学: テスト戦略を立てる上で非常に重要な概念です。ピラミッドの形状が崩れる(例えば、E2Eテストばかりが多い)と、開発サイクルが遅くなり、フィードバックも遅れるため、効率が悪くなります。
10. C17ェーズごとのテスト反復 (Test Iteration per Phase)
解説: ソフトウェア開発ライフサイクル(SDLC)の各フェーズ(要件定義、設計、実装、テスト、デプロイなど)において、テストを継続的かつ反復的に実施することの重要性を示唆する概念です。
業界話/雑学: アジャイル開発やDevOpsの考え方と密接に関連しています。従来のウォーターフォール開発ではテストが開発サイクルの終盤に集中しがちでしたが、現代の開発では「シフトレフト」(テストをより早い段階で実施する)が推奨されています。
品質とセキュリティに関する概念・モデル
次に、品質保証やセキュリティに焦点を当てた概念やモデルについてです。
11. Four Keys
解説: DevOpsの成熟度を測るための4つの主要なメトリクスです。
デプロイ頻度 (Deployment Frequency): どれくらいの頻度で本番環境にデプロイしているか
リードタイム (Lead Time for Changes): コード変更が本番環境にデプロイされるまでの時間
変更障害率 (Change Failure Rate): デプロイによって問題が発生する割合
サービス復元時間 (Mean Time to Restore Service: MTTR): サービス障害発生から復旧までの時間
業界話/雑学: GoogleのDevOps Research and Assessment (DORA) チームによる研究で提唱され、高パフォーマンスの組織はこれらのメトリクスで優れていることが示されています。単なるツールの導入だけでなく、組織文化やプロセス改善の指標としても活用されます。
12. STRIDE脅威モデル (STRIDE Threat Model)
解説: マイクロソフトが提唱した脅威分析のためのフレームワークです。情報セキュリティの脅威を以下の6つのカテゴリに分類します。
Spoofing (なりすまし)
Tampering (改ざん)
Repudiation (否認)
Information Disclosure (情報漏えい)
Denial of Service (サービス拒否)
Elevation of Privilege (権限昇格)
業界話/雑学: システムの設計段階で潜在的なセキュリティ脆弱性を特定し、対策を検討する際に非常に有効です。各脅威に対して具体的な対策を検討することで、より堅牢なシステムを構築できます。
13. RAILモデル (RAIL Model)
解説: ウェブパフォーマンスを最適化するためのユーザー中心のモデルです。以下の4つの主要なパフォーマンス測定カテゴリを定義します。
Response (応答性): ユーザー入力に対する応答(100ms以内)
Animation (アニメーション): スムーズなアニメーション(10ms以内)
Idle (アイドル): バックグラウンドでの作業(ユーザーに影響を与えない)
Load (読み込み): ページの読み込み時間(1000ms以内)
業界話/雑学: ユーザー体験(UX)を向上させるために、どのパフォーマンス指標に注力すべきかを明確にします。「Lighthouse」などのツールは、このRAILモデルに基づいてパフォーマンスを評価する機能を持っています。
14. 脅威モデリング (Threat Modeling)
解説: ソフトウェアやシステムの設計段階で、潜在的なセキュリティ脅威を特定し、そのリスクを評価し、適切な対策を講じるための体系的なアプローチです。STRIDEモデルはその一例です。
業界話/雑学: 開発ライフサイクルの早い段階でセキュリティを組み込む「セキュリティ・バイ・デザイン」の重要な要素です。これにより、開発の後期でセキュリティ問題が発覚し、大規模な手戻りが発生するリスクを低減できます。
先進的なテスト手法・概念
より新しい、あるいは特定の分野に特化したテスト手法についてです。
15. 共感的テスト (Empathic Testing)
解説: テスト担当者が単にバグを見つけるだけでなく、ユーザーの視点に立って、ユーザーがどのような状況で、どのような感情を抱くかまで想像しながらテストを実施するアプローチです。
業界話/雑学: UX(ユーザーエクスペリエンス)を重視する現代において、非常に重要な考え方です。単に機能が動くかだけでなく、使いやすさ、楽しさ、安心感なども含めて評価します。ペルソナを設定してテストを行うこともあります。
16. カオスエンジニアリング (Chaos Engineering)
解説: 本番環境(またはそれに近い環境)で意図的に障害(ネットワークの遅延、サーバーのダウンなど)を注入し、システムがそれらの障害に対してどのように振る舞うか、回復力があるかを確認する実験的な手法です。
業界話/雑学: Netflixが提唱し、その「Chaos Monkey」が有名です。障害が起こることを前提とした設計、つまり「レジリエントなシステム」を構築するために非常に有効です。単なるテストではなく、システムの未知の脆弱性を発見し、事前に対応するための「実験」という位置づけです。
17. アーキテクチャーテスト (Architecture Test)
解説: システムのアーキテクチャが、設計原則や制約(レイヤーの分離、依存関係のルールなど)に適合しているかを確認するテストです。
業界話/雑学: コードの品質だけでなく、システム全体の構造的な健全性を保つために重要です。例えば、「依存関係が意図せず逆転していないか」「特定のレイヤーが不適切なモジュールに依存していないか」などを自動的にチェックします。「ArchUnit」のようなフレームワークが使われることがあります。
18. インフラテスト (Infrastructure Test)
解説: サーバー、ネットワーク、データベースなどのインフラストラクチャが、期待通りに構成され、機能しているかを検証するテストです。
業界話/雑学: Infrastructure as Code (IaC) の普及により重要性が増しています。TerraformやAnsibleなどの構成管理ツールで記述されたインフラ設定が、実際にデプロイされた際に正しく反映されているかを確認します。
19. コンプライアンステスト (Compliance Test)
解説: ソフトウェアやシステムが、特定の法規制、業界標準、企業ポリシーなどの要件に準拠しているかを検証するテストです。GDPR、HIPAA、PCI DSSなどが例として挙げられます。
業界話/雑学: 規制の厳しい業界(金融、医療など)では必須のテストです。単に機能が動けば良いだけでなく、法的な制約をクリアしているかを確認するため、非常に専門的な知識が求められます。
20. AI/MLのテスト (AI/ML Testing)
解説: 機械学習モデルやAIシステムが、期待通りに動作し、公平性、頑健性、説明可能性などの品質要件を満たしているかを検証するテストです。データのバイアス、モデルの解釈性、敵対的攻撃への耐性などが考慮されます。
業界話/雑学: 従来のソフトウェアテストとは異なるアプローチが求められます。データセットの品質がモデルの性能に直結するため、データのテストも非常に重要です。モデルの「公平性」をテストすることは、社会的な倫理にも関わるため、特に注目されています。「Deequ」のようなツールがデータの品質テストに利用されます。
21. ブロックチェーンのテスト (Blockchain Testing)
解説: ブロックチェーンベースのアプリケーション(dApps、スマートコントラクトなど)が、分散型ネットワーク上で期待通りに動作し、セキュリティ、コンセンサス、トランザクションの整合性などを検証するテストです。
業界話/雑学: 分散システム特有の課題(ノード間の同期、コンセンサスアルゴリズムの動作)や、スマートコントラクトの脆弱性(一度デプロイすると変更が難しい)に焦点を当てたテストが必要です。
22. IoTのテスト (IoT Testing)
解説: IoTデバイス、センサー、ゲートウェイ、クラウドプラットフォーム、モバイルアプリなど、多岐にわたるコンポーネントが連携して正しく動作するかを検証するテストです。デバイスの接続性、データ収集、セキュリティ、バッテリー寿命などが考慮されます。
業界話/雑学: 物理的なデバイスとソフトウェア、ネットワークが複雑に絡み合うため、テスト環境の構築が難しい場合があります。リアルな環境をシミュレートしたり、実際のデバイスを使ったフィールドテストが重要になります。
23. AR/VRのテスト (AR/VR Testing)
解説: 拡張現実(AR)および仮想現実(VR)アプリケーションが、デバイス上で適切に動作し、ユーザー体験(没入感、インタラクション、パフォーマンス、目の疲れなど)が良好であるかを検証するテストです。
業界話/雑学: 視覚的な要素や空間認識が重要となるため、従来のテストとは異なる知見が求められます。パフォーマンスがユーザーの快適さに直結するため、フレームレートの安定性なども厳しくチェックされます。
テスト支援ツール
ここからは、実際にテストを行う際に役立つ具体的なツールについて解説します。
24. Chrome DevTools
解説: Google Chromeブラウザに標準で搭載されている開発者ツール群です。ウェブページのHTML/CSS/JavaScriptのデバッグ、ネットワークの監視、パフォーマンス分析、セキュリティ診断など、多岐にわたる機能を提供します。
業界話/雑学: ウェブ開発者にとってはまさに「必携」のツールです。UIの微調整からパフォーマンスのボトルネック特定まで、これ一つで多くの作業が完結します。特に「Lighthouse」機能は、ウェブサイトの品質を自動で評価してくれるため非常に便利です。
25. Pact
解説: コンシューマ駆動契約テスト(Consumer-Driven Contract Testing)を実現するためのフレームワークです。マイクロサービスアーキテクチャにおいて、サービス間のAPI契約が期待通りに維持されているかを検証します。
業界話/雑学: サービスAがサービスBのAPIを使う場合、サービスA(コンシューマ)が期待するサービスBのAPIの振る舞いを「契約」として定義し、サービスB(プロバイダ)がその契約を守っているかを検証します。これにより、サービス間の結合テストを効率化し、デプロイ時の不整合を防ぎます。
26. Karate
解説: APIテスト、Web UIテスト、パフォーマンステスト、モックサーバーなど、多機能なテスト自動化フレームワークです。Gherkinライクな記述言語でテストシナリオを記述できます。
業界話/雑学: Javaベースですが、Javaの知識がなくてもテストを記述できるのが特徴です。APIテストに非常に強く、HTTPリクエストの送信、JSON/XMLの検証、データ駆動テストなどが直感的に行えます。
27. Jenkins
解説: オープンソースの自動化サーバーであり、CI/CD(継続的インテグレーション/継続的デリバリー)パイプラインの構築に広く利用されます。コードのビルド、テスト実行、デプロイなどを自動化できます。
業界話/雑学: CI/CDツールの代表格であり、非常に多くのプラグインが存在するため、様々なツールや環境と連携できます。古くから使われていますが、今でも多くの企業で現役で活躍しています。
28. JDBC (Java Database Connectivity)
解説: Javaアプリケーションからリレーショナルデータベースに接続し、操作するためのAPIです。データベースのデータ検証など、データベース関連のテストで利用されます。
業界話/雑学: Javaでデータベースを扱う際の標準的なインターフェースです。テストコードから直接データベースに接続して、テストデータの設定や、テスト結果として永続化されたデータの検証を行う際などに利用されます。
29. Apache Kafka
解説: 高スループットで分散型のストリーミングプラットフォームです。大量のデータをリアルタイムで処理・転送するために使用されます。
業界話/雑学: テストツールそのものではありませんが、イベント駆動型アーキテクチャのシステムをテストする際には、Kafkaを介したメッセージの送受信や処理のテストが不可欠になります。例えば、特定のイベントが発生した際に、それに紐づくシステムが正しく動作するかなどを検証します。
30. Zerocode
解説: マイクロサービスとAPIのテスト、ロードテスト、セキュリティテストのためのオープンソースフレームワークです。JUnitをベースにしており、Java開発者がAPIテストを記述する際に便利です。
業界話/雑学: Java開発者に人気のJUnitと統合されているため、既存のJavaプロジェクトに容易に組み込めます。APIのリクエストとレスポンスをJSONで記述し、簡単に検証できるのが特徴です。
31. Testcontainers
解説: Dockerコンテナをテスト環境としてプログラム的に管理するためのライブラリです。テスト中にデータベースやメッセージキューなどの依存サービスをDockerコンテナとして立ち上げ、テスト終了後に破棄するといったことが可能です。
業界話/雑学: 統合テストやサービス(API)テストにおいて、クリーンなテスト環境を毎回構築するのに非常に便利です。テストの独立性を高め、環境依存によるテスト失敗を防ぎます。
32. Deequ
解説: Apache Spark上で動作するデータ品質およびデータ検証ライブラリです。大規模データセットの品質ルールを定義し、自動的に検証することができます。
業界話/雑学: AI/MLのテストの項目でも触れたように、データの品質はモデルの性能に直結します。Deequは、データセットの完全性、一貫性、正確性などをチェックするのに役立ちます。
33. BackstopJS
解説: 視覚的回帰テスト(Visual Regression Testing)ツールです。ウェブサイトやウェブアプリケーションのUIのスナップショットを撮り、前回のスナップショットと比較することで、意図しないUIの変更(レイアウト崩れなど)を検出します。
業界話/雑学: 「スナップショットテスト」の項目で触れた内容の具体的なツールです。UIの見た目に関するバグは、機能的なバグと同じくらいユーザー体験を損なう可能性があるため、このようなツールが重宝されます。
34. Cypress
解説: モダンなウェブアプリケーション向けのE2Eテストフレームワークです。ブラウザ上で動作し、高速な実行、リアルタイムのリロード、デバッグの容易さなどが特徴です。
業界話/雑学: 「Selenium」の課題を解決するために登場した新しいE2Eテストツールの代表格です。開発者フレンドリーな設計で、セットアップも比較的簡単です。しかし、クロスブラウザ対応はSeleniumほどではないという意見もあります。
35. Applitools Eyes
解説: AIを活用した視覚的回帰テストツールです。人間の目と同じようにUIの変更を検出し、意図的な変更とそうでないものを区別する能力が高いとされています。
業界話/雑学: スナップショットテストの高度な形と言えます。単にピクセル単位の差分を見るだけでなく、AIが「これはUIの意図的な調整だ」「これはレイアウト崩れだ」と判断してくれるため、誤検知を減らし、レビューの効率を大幅に向上させます。
36. Storybook
解説: UIコンポーネントを独立して開発、表示、テストするためのツールです。アプリケーション全体を起動することなく、個々のUIコンポーネントをカタログのように一覧表示し、インタラクティブに操作できます。
業界話/雑学: UIコンポーネントの開発とテストの効率を大幅に向上させます。デザインシステムを構築する際にも非常に有用で、デザイナーと開発者間のコミュニケーションを円滑にします。
37. OWASP Dependency-Check
解説: オープンソースソフトウェア(OSS)の依存関係に含まれる既知の脆弱性を検出するツールです。OWASP(Open Web Application Security Project)プロジェクトの一つです。
業界話/雑学: 多くのアプリケーションはOSSライブラリに依存しており、それらのライブラリに脆弱性が含まれていると、アプリケーション全体のリスクになります。このツールは、ビルドプロセスに組み込むことで、自動的に依存関係の脆弱性をチェックし、開発者に警告します。
38. OWASP ZAP (Zed Attack Proxy)
解説: ウェブアプリケーションのセキュリティ脆弱性を検出するためのオープンソースのペネトレーションテストツールです。プロキシとして動作し、ウェブアプリケーションへのリクエストとレスポンスを監視・改変して脆弱性を探します。
業界話/雑学: ウェブアプリケーションの脆弱性診断において、開発者やテスターが利用する代表的なツールの一つです。手動での探索テストだけでなく、自動スキャン機能も持っています。
39. Snyk
解説: 依存関係、コンテナイメージ、コード内の脆弱性を継続的に検出・修正する開発者向けセキュリティプラットフォームです。OWASP Dependency-Checkと同様に、OSSの脆弱性管理に強みがあります。
業界話/雑学: OSSの脆弱性管理サービスとしては非常に人気があり、開発ワークフローにシームレスに統合されるのが特徴です。GitHubなどのリポジトリと連携し、プルリクエストの段階で脆弱性を警告してくれます。
40. Talisman
解説: Gitフックを使って、コミットやプッシュ時に秘匿情報(パスワード、APIキーなど)がソースコードに紛れ込んでいないかをチェックするツールです。
業界話/雑学: セキュリティ事故で最も多い原因の一つが、誤って秘匿情報を公開リポジトリにコミットしてしまうことです。Talismanのようなツールは、このようなヒューマンエラーを防ぐための第一歩として非常に有効です。
41. Postman
解説: APIの開発、テスト、ドキュメント作成、共有のための包括的なプラットフォームです。APIリクエストの作成、送信、レスポンスの検証をGUIで行うことができます。
業界話/雑学: API開発者やテスターの間で絶大な人気を誇るツールです。APIテストの自動化機能も備えており、「サービス(API)テスト」の項目でも触れたように、APIテストのデファクトスタンダードの一つとなっています。
42. JMeter (Apache JMeter)
解説: Apacheソフトウェア財団が開発するオープンソースのパフォーマンステストツールです。Webアプリケーション、API、FTP、データベースなど、様々なシステムの負荷テスト、ストレステストに使用されます。
業界話/雑学: 無料で利用できる高機能な負荷テストツールとして非常に広く利用されています。GUIでテストシナリオを構築できるため、比較的簡単に始めることができます。
43. Lighthouse
解説: Googleが提供するオープンソースの自動化ツールで、ウェブページの品質(パフォーマンス、アクセシビリティ、ベストプラクティス、SEOなど)を監査し、改善提案を提供します。「Chrome DevTools」にも統合されています。
業界話/雑学: ウェブサイトの品質を総合的に評価してくれるため、ウェブ担当者や開発者にとっては非常に重要なツールです。「Core Web Vitals」などのウェブパフォーマンス指標とも密接に関連しています。
44. WAVE (Web Accessibility Evaluation Tool)
解説: WebAIM (Web Accessibility In Mind) が提供するウェブアクセシビリティ評価ツールです。ウェブページがWCAG (Web Content Accessibility Guidelines) などのアクセシビリティ標準に準拠しているかを視覚的に分かりやすく表示します。
業界話/雑学: 「アクセシビリティ診断」の項目で触れるツールの代表格です。視覚的にエラーやアラートを表示してくれるため、アクセシビリティの問題箇所を特定しやすいのが特徴です。
45. Pa11y CI
解説: コマンドラインツールで、ウェブページのアクセシビリティを自動でチェックします。継続的インテグレーション(CI)環境に組み込み、定期的にアクセシビリティの問題を検出するのに適しています。
業界話/雑学: 「Pa11y」というアクセシビリティテストライブラリの一部で、「CI」という名前が示す通り、開発パイプラインに組み込んで自動的にアクセシビリティを検証するのに特化しています。
46. Axe-core
解説: Deque Systemsが開発するオープンソースのアクセシビリティテストエンジンです。WCAGの基準に基づいてウェブページのアクセシビリティ問題を検出します。様々なテストフレームワークやブラウザ拡張機能に組み込まれて利用されています。
業界話/雑学: アクセシビリティテストのデファクトスタンダードとも言えるライブラリで、非常に高速かつ正確な診断が可能です。多くのツールが内部的にAxe-coreを利用しています。
47. Appium
解説: ネイティブ、ハイブリッド、モバイルWebアプリのテストを自動化するためのオープンソースツールです。iOSとAndroidの両方のプラットフォームに対応しており、WebDriverプロトコルを使用します。
業界話/雑学: モバイルアプリの自動テストにおける非常に強力なツールです。単一のAPIで異なるプラットフォームのアプリをテストできるため、開発コストを削減できます。
48. Autify
解説: AIを活用したノーコード/ローコードのテスト自動化プラットフォームです。プログラミングの知識がなくても、実際のユーザー操作を記録することで自動テストを作成できます。UI変更に強いのが特徴です。
業界話/雑学: 日本発のテスト自動化サービスとして注目されています。AIがUIの変更を認識してテストスクリプトを自動調整してくれるため、メンテナンスコストを大幅に削減できるとされています。
49. Playwright
解説: Microsoftが開発するE2Eテストフレームワークです。Chromium, Firefox, WebKitといった主要なブラウザに対応しており、高速な実行と強力なAPIが特徴です。
業界話/雑学: Cypressと並んで、近年注目されている新しいE2Eテストツールです。特にクロスブラウザテストの対応がCypressよりも優れている点が評価されています。WebDriverプロトコルを使用せず、直接ブラウザと通信するため、高速な実行が可能です。
50. Selenium
解説: ウェブアプリケーションのテスト自動化のためのオープンソースフレームワークです。様々なプログラミング言語(Java, Python, C#, Rubyなど)でテストスクリプトを記述し、主要なブラウザを操作できます。
業界話/雑学: ウェブテスト自動化の「巨人」であり、長年にわたりデファクトスタンダードとして君臨してきました。WebDriverというプロトコルを通じてブラウザを操作しますが、CypressやPlaywrightなどの新しいツールと比較して、セットアップが複雑であったり、実行速度が遅いといった課題も指摘されています。しかし、その豊富な機能と広範なコミュニティサポートは今も健在です。
その他重要な概念
最後に、先ほど抜け落ちていた重要なテストの概念について補足します。
51. アクセシビリティ診断 (Accessibility Testing)
解説: 障害のある人(視覚障害、聴覚障害、運動機能障害など)や高齢者を含む、多様なユーザーがウェブサイトやアプリケーションを問題なく利用できるかを確認するテストです。
業界話/雑学: 多くの国や地域で法律による義務化が進んでおり、ビジネス上も非常に重要です。WCAG(Web Content Accessibility Guidelines)という国際的なガイドラインに沿って診断が行われます。「WAVE」「Pa11y CI」「Axe-core」などのツールが利用されます。
52. 脅威モデリング (Threat Modeling)
解説: 先述の「STRIDE脅威モデル」の解説で少し触れましたが、改めて独立した項目として解説します。これは、システムの設計段階で潜在的なセキュリティ脅威を特定し、そのリスクを評価し、適切な対策を講じるための体系的なアプローチです。
業界話/雑学: 開発ライフサイクルの早い段階でセキュリティを組み込む「セキュリティ・バイ・デザイン」の重要な要素です。これにより、開発の後期でセキュリティ問題が発覚し、大規模な手戻りが発生するリスクを低減できます。
これで、いただいたリストの全ての項目について、主要なものから雑学や業界話を交えながら解説しました。ソフトウェアテストの世界は奥深く、常に新しい概念やツールが登場しています。これらの知識が、皆さんのテストへの理解を深める一助となれば幸いです。
2025年7月10日木曜日
「単体テスト」から「Selenium」まで、テストに関する幅広い用語やツール
登録:
コメントの投稿 (Atom)
0 件のコメント:
コメントを投稿