少し前に、私は自動テストに関連する一連の記事を書きました。もちろん、方法と問題解決のアイデアの観点から、私の見解の一部を説明しました。この記事では、初心者がインターフェイス自動化テストをゼロから 1 まで実践する方法について説明します。
なぜインターフェーステストを行うのか
テストコンセプトの進化
これまでのソフトウェアの開発・納品プロセスは、V字型やW字型のウォーターフォールモデルが主流でしたが、このモデルでは、開発とコーディングが完了して初めてテストが進められ、テスト・検証段階に入ります。この段階で学生が行うテストのほとんどは、ビジネス プロセスとページの機能テストに基づいており、これは私たちの自虐的な「ドットワーク」です。
近年、ビジネスの反復の加速とテスト業界の継続的な発展に伴い、テストの左シフトやアジャイル テストなどの概念がより多くの人に認識され始めています。ソフトウェア エンジニアリングの観点から見ると、問題やリスクを発見するために早期に介入するほど、修理コストが削減され、最終納品の品質が向上します。
過去数年間、自動テストが最も人気があったとき、多くの学生はテスト ピラミッド モデルを知っていたはずです。下記参照:
いくつかの理論や大手メーカーのベスト プラクティスによれば、次の理由から、UI:API:UNIT レイヤーでの自動テストの割合は 1:2:7 である必要があります。
- UI: 高いメンテナンスコスト、遅い介入時間、最小限の利益。
- API: メンテナンスのコストは中程度であり、できるだけ早く介入でき、多くのシナリオに対応できます。
- ユニット: メンテナンスコストが最も小さく、早期に介入でき、テストの粒度が最も小さく、収益が最も高くなります (ユニットテストを誰が書くかというと、もちろん開発です)。
技術要件の改善
中国の受験生のほとんどは開発よりも技術的に弱いです。
ソフトウェア システムの提供品質を継続的に向上させるには、テストの対象範囲とテストの深さを可能な限り拡大する必要があり、これには受験者のテクノロジーに対する要求が高くなります。
システムの複雑さの増大と、マイクロサービス、クラウドネイティブ、サーバーメッシュなどの新しいテクノロジーの適用に伴い、テスト対象を理解し、作業をより適切に実行するために、テスト現場の技術的要件はますます高くなっています。 。
当初のUIレベルのテストから継続的に掘り下げられ、日々の業務におけるAPI層のテストの割合がますます高くなっているのは必然の進化の流れです。API テストには次の 2 つの機能もあります。
- UI レイヤーのテストと比較して、より早い段階でテストに参加でき、UI レイヤーのカバー範囲を継続的に拡大できます。
- UNIT 層テストと比較すると難易度は低く、一部のパブリック インターフェイスの単体テストは下方に向かって段階的にカバーできます。
技術水準の向上だけでなく、アウトプットのKPIも立てることができ、同時にソフトウェアデリバリーの品質も向上するので一石三鳥、しびれを勝ち取ることができます。
インターフェイスとインターフェイスのテストについて理解する
インターフェースを理解するにはどうすればよいでしょうか?
簡単に言うと、インターフェイスは仲介者であり、インターフェイス層のビジネス シナリオの変換とコード層の実装ロジックの相互作用を担当します。
インターフェイスは一定の規則と制約に従い、特定のデータを入力すると特定のデータが返されるため、入出力のロジックを事前に合意する必要があります。
インターフェイス間で相互に呼び出しを行う場合も、http プロトコル、tcp プロトコル、rpc プロトコルなどのネットワーク プロトコルに関する特定のルールに従う必要があります。
インターフェイスのテストを理解するにはどうすればよいですか?
インターフェーステストは、合意された入力および出力ロジックをテストおよび検証するものであり、機能テストと同様に、テストケースも設計する必要があります。
テストケースの設計方法は機能テストと大きく変わりませんが、同値クラス境界値判定表方式や異常シナリオなども考慮する必要があります。
もちろん、インターフェイスのテストではパフォーマンスやセキュリティなどの要素も考慮する必要がありますが、これは他の細分化テストの分野であるため、ここではしばらく説明しません。
インターフェイステストを学ぶにはどうすればよいですか?
インターフェイス テストを学習する前提は、さまざまな種類のインターフェイスの構造を理解することであるため、ネットワーク プロトコルは必須です。関連書籍は以下の通りです。
- はじめに:「図解 HTTP」、「図解 TCP/IP」
- 詳細な調査: 「HTTP 権威ガイド」、「TCP/IP 権威ガイド」
インターフェイスの構造を理解した後は、インターフェイスのテストに関連するいくつかのツールを学習する必要があります。業界で一般的に使用されるツールは次のとおりです。
- パケット キャプチャ ツール: Fiddler、Charles
- テストツール: Jmeter、Postman
- インターフェース生成管理ツール: Yapi、Swagger
UI/API/UNITテストの違い
UIテスト、APIテスト、UNITテストにはそれぞれ特徴があり、まとめると以下のような違いがあります。
- UIテスト: ビジネスプロセステスト。
- API テスト: ビジネス データ フロー テスト。
- UNIT テスト: ビジネス実装ロジック テスト。
インターフェースの自動テストを実装する方法
初心者向けのインターフェイス自動化テストをゼロから 1 まで着地させる方法について説明する前に、いくつかの提案をしたいと思います。
- いわゆる自動化フレームワークを直接学習するのではなく、ゼロから始めます。
- フレームワークを学ぶ前に、ネットワーク プロトコルとコーディングの知識を学ぶ必要があります。
なぜそんなことを言うのですか?初心者は一般に、しっかりとした技術的基盤を持たず、コーディングの練習もあまりしないため、フレームワークを段階的に直接学習するのは特に簡単です。
あまりにも多くの初心者がフレームワークを直接学ぶのを見てきましたが、インストールの失敗、理解できないエラー報告、デバッグ不能などの現象がたくさんあります。コードエディタの使い方がわからない、ログがわからない、パッケージ化の方法がわからないなどの学生もいます。
ランディングインターフェイスの自動化やその他の自動テストをゼロから学ぶには、日常業務の中で作業の完了を優先して作業効率を向上させるために、簡単なものから難しいものまで練習することをお勧めします。
一方で、モンスターと戦ったりアップグレードしたりするのと同じように、簡単なものから難しいものまで自分自身を改善する方法を学び、職場での自動テストの実践を常に最適化してください。
自動インターフェイス テストの最初の実装から難しい実装まで、次の手順に従うことができます。
- インターフェイス テスト用のツール (jmeter/postman など) の使用方法を学びます。
- 継続的統合ツール (jenkins など) を使用してインターフェイス テスト スクリプトをバッチで実行する方法を学びます。
- チーム内の複数人のコラボレーションを促進するために、git/gitlab などのバージョンおよびソース コード管理ツールを学びます。
- プログラミング言語を学び、自動テスト フレームワークを使用してツール スクリプトをコード スクリプトに変換します。
- 共通部分のカプセル化、コード構造の最適化、コード スクリプトの作成効率の向上、メンテナンス コストの削減を学びます。
- パラメーター化されたデータ管理の方法を学ぶには、Excel 構成ファイル - データベース番号ファクトリの方向から反復することができます。
- ビジネスラインやテストシナリオに応じてスクリプトコレクションを区別し、モックを導入してサービス間の呼び出し依存関係を減らし、実行効率を向上させます。
- 大きなパイを描き、ホイールを構築し、KPI に取り組み、自動テスト プラットフォームを開発し始めます。
以下はサポート情報です。[ソフトウェア テスト] を行う友人にとって、これは最も包括的で完全な準備倉庫となるはずです。この倉庫は、最も困難な旅にも同行してくれました。あなたにも役立つことを願っています。
ソフトウェアテストインタビューアプレット
ソフトウェア テストの質問バンクには、何百万人もの人が参加しました。!!誰が知っているのか!!!ネットワーク全体で最も包括的なクイズ ミニ プログラムです。携帯電話を使用して、地下鉄やバスの中でもクイズに答えることができます。
次の面接の質問セクションが取り上げられます。
1. ソフトウェアテストの基礎理論、2. Web、アプリ、インターフェース機能テスト、3. ネットワーク、4. データベース、5. Linux
6. Web、アプリ、インターフェイスの自動化、7. パフォーマンス テスト、8. プログラミングの基本、9. 時間面接の質問、10. 公開テストの質問、11. セキュリティ テスト、12. コンピューターの基本
情報取得方法: