10 年間のソフトウェア テスト エンジニア - インターフェイス自動テストについて語る

昨夜、テスト交換グループで、古いテスト ドライバーがインターフェイス自動化テストの内容を共有しているのを聞き、インターフェイス自動化についての理解を深めることができました。これにより、会社のインターフェイス自動化の次の実装に関するさらなるアイデアも得られました。

このブログでは、インターフェース自動化への機能テストの進歩と、インターフェース自動化についていくつかお話します。

序文

近年、自動テストが注目されていますが、もちろん今後のソフトウェアテストの発展トレンドでもあります。将来的には、機能テストなどの非コアテスト作業は外部委託される予定です。

ソフトウェア テスト業界で前進し続けたい場合は、中核となる競争力が必要であり、自動テスト テクノロジを習得することは必須のスキルです。

これは書籍「The Way of Google Software Testing」で紹介されています。Google では、自動テスト作業の 70% が単体テストに集中し、20% がインターフェース テストに集中し、残りの 10% が UI テストに集中しています。

確かにGoogleほど完璧な仕組みやエンジニア文化はありませんし、Googleのすべてを真似する必要もありませんが、インターネット2.0時代で最も輝かしい企業であるG​​oogleの技術開発の方向性やプロセス管理などは、近い将来到達する方向性と言えるでしょう。自分に合ったものを選択し、実践することが今私たちがやるべきことなのです。

現在、国内のインターネット業界は依然として急速な発展期にあり、プロセスの標準化が求められており、刻々と変化する発展のスピードに追いつくには、常に新しいことを理解し、触れることに加え、時代の波に乗り続けるための継続的な学習と自己研鑽、そして内なる原動力が求められます。揺らぐことはできなくても、時代に淘汰される集団にはなれない。そういえば、ウー・ジュンの『波の頂点』と『シリコンバレーの謎』という2冊の本をお勧めしますので、興味のある子供靴はぜひ見に行ってみてください。

1. インターフェーステストの必要性と意義

インターフェイス、つまり API、アプリケーション プログラミング インターフェイスについて、ここでは主にインターフェイス テストの必要性と重要性について説明します。

インターフェイス テストは、非常に効率的な費用対効果のマルチシステム プラットフォーム アーキテクチャに基づいて実装されます (もちろん、単体テストのほうがメリットは大きくなりますが、単体テストの実装コストと技術要件がより高くなるため、より適切な最適なソリューションを選択する必要があります)。

インターフェイス テストは本質的に、非常に複雑なプラットフォームに効率的な欠陥検出と品質監視機能をもたらします。プラットフォームが複雑になるほど、システムが大規模になればなるほど、インターフェイス テストの効果はより明らかになります。

一般に、インターフェイス テストは、高度に複雑なシステム品質と低コストの経済的利益という固有の要件によって推進される最適なソリューションであり、主に次の 3 つの側面に反映されます。

1. テストコストを節約する

データモデルの計算によると、最下位層のプログラムのバグは上位層に約 8 個のバグを引き起こす可能性があり、最下位層のバグはネットワーク全体のクラッシュを引き起こす可能性が高く、システムの複雑さが増加した場合、インターフェイス テストは低コストで高効率のソリューションを提供できます。

2. インターフェースのテストは単体テストとは異なります

インターフェイス テストは、ユーザーの観点からシステム インターフェイスを包括的、効率的かつ継続的に検出することです。

3. より高いメリット

自動化と継続的統合としてインターフェイス テストを実現する システムの複雑さと規模が増加すると、インターフェイス テストのコストが低くなり、それに応じて利益も大きくなります。

2. インターフェイステストを行うにはどのようなスキルが必要ですか

インターフェイス テストを行うには、基本的に次のスキルが必要です。

ビジネス フロー:システムと内部コンポーネント間のビジネス ロジックの相互作用を理解します。

データフロー:インターフェースの I/O (入出力: 入力と出力) を理解します。

プロトコル: http プロトコル ( HTTP プロトコルの概要)、TCP/IP プロトコル ファミリ ( TCP プロトコルの概要)を含む

ツール:ツールは、作業をより適切かつ効率的に完了するのに役立ちます。一般的に使用されるインターフェイス テスト ツールには、jmeter、loadrunner、soapui、postman などがあります。

データベースの知識:データベースから知識を取得するのか、データの着陸を確認するのか、インターフェイスがデータに対してどのような操作を実行するのかを確認する必要があるため、データベースの知識 (実際には追加、削除、変更、確認) が非常に必要です。

補足: インターフェース文書のいくつかの必要なポイント: 完全性、一貫性、耐障害性。

3. インターフェイスの自動テスト

1. 実施方法

まず、単一のインターフェイスをデバッグして、単一のインターフェイスの正確さとスムーズさを確認します (パフォーマンス テストのベンチマーク テストと同様)。

2つ目は、データの流れとビジネスの流れを明確にすることです。

最後に、N 個のインターフェイス テスト スクリプトをつなぎ合わせて実行します。

最も重要な点は、あまり考えすぎず、あまり複雑にしないことです。最も基本的で簡単なことから始めれば、半分以上は成功します。スケーラブルなサードパーティ インターフェイス、https、スケジュールされたタスク、自動テスト レポート、自動メールなどの機能は、常に蓄積され、最適化されています。

行動すればいい、考えすぎるなら行動したほうがいい、まずはインターフェースの自動化テストを実装しましょう!

2. 始める前に知っておくべきこと

現在のテスト オブジェクトには何ページが含まれていますか?

各ページにはいくつのインターフェイスが含まれていますか?

どのステップで呼び出されますか?

各インターフェースにはどのようなフィールドが含まれていますか?

各フィールドはデータベース内のどのテーブルに対応しますか?

各テーブルのフィールドは何を意味しますか?

各インターフェイスはテーブル上でどのような操作を行うのでしょうか?

3. 自動化フレームワーク

フレームワークとは何ですか? これは、完全なリングとして、または環境、プラットフォーム、およびインターフェイス テスト スクリプトを実行するために必要なものの完全なセットとして理解できます。一般に、自動テスト フレームワークには次の点が含まれます。

データ プール:つまり、テスト データのストレージ管理であり、通常はデータ パッケージに統合されており、次のものが含まれます。

log (ログ ファイル)、report (テスト レポート ファイル、通常は xml 形式)、case-data (単一インターフェイスのテスト データ、通常は json 形式)、server-data (インターフェイス サービスのシリアル接続のデータ。Excel で管理できます)

スクリプト管理センター:インターフェイス テスト スクリプトの統合管理、ストレージ、およびスケジューリング センター。一般的に使用されるツールには、maven、ant などが含まれますが、プログラミング言語の単体テスト フレームワークによって提供される機能を使用して、自分に合ったものを選択することもできます。

実行プラットフォーム:一般に、これらのテスト スクリプトはツールを使用して実行されます。ツールは上記のもの (jemter、loadrunner、soapui など) を使用できます。同様に、適切なものを選択することが重要です。

継続的統合ツール:最も一般的なのは Jenkins です。その機能は、外部プログラムの呼び出し実行を監視し、スケジュール タスクをスケジュールまたはトリガーし、スクリプトの実行やその他の機能をテストすることです。

通信サービス: dubbo、spring_boot、thrift およびその他の RPC、REST 同期呼び出しサービス。

テスト結果統計管理センター: testlink など。目的は、テスト結果を自動的に更新およびアップロードし、後の最適化のためにより良い統計テスト結果を提供することです。

ここまでいろいろ述べてきましたが、実際その意味は、データとスクリプトの分離、テスト結果通知の自動送信、テストスクリプトとテストデータのメンテナンスの利便性の向上などです。

私が使用しているフレームワークは次のとおりです:jemter+maven+Jenkins+dubbo+MySQL...

インターフェースの自動化テストに関しては、基本的には上記のような内容になりますが、もちろん自社の実情に合わせたフレームワークを選択して実装することがポイントであり、アクションを起こして初めて塩辛は好転することができます。

以下はサポート情報です。[ソフトウェア テスト] を行う友人にとって、これは最も包括的で完全な準備倉庫となるはずです。この倉庫は、最も困難な旅にも同行してくれました。あなたにも役立つことを願っています。

ソフトウェアテストインタビューアプレット

ソフトウェア テストの質問バンクは、何百万人ものユーザーによって最大化されました。誰が知っているのか!ネットワーク全体で最も包括的なクイズ ミニ プログラムです。携帯電話を使用して、地下鉄やバスの中でもクイズに答えることができます。

次の面接の質問セクションが取り上げられます。

1. ソフトウェアテストの基礎理論、2. Web、アプリ、インターフェース機能テスト、3. ネットワーク、4. データベース、5. Linux

6. Web、アプリ、インターフェイスの自動化、7. パフォーマンス テスト、8. プログラミングの基本、9. 時間面接の質問、10. 公開テストの質問、11. セキュリティ テスト、12. コンピューターの基本

情報取得方法:

おすすめ

転載: blog.csdn.net/myh919/article/details/131831413