マイクロソフトシニアソフトウェアエンジニア:自動テストを実行する方法は?

全文は3201語で、予想学習時間は9分です。

 

マイクロソフトシニアソフトウェアエンジニア:自動テストを実行する方法は?

出典:Google

最近、マイクロソフトのシニアソフトウェアエンジニアであるクラウスヘムスティッチと話をしました。Klaus Hemstitchは、過去7年間、MicrosoftのOffice365チームで働いています。彼のチームは毎日、すべてのネットワークコンポーネントがすべての主要なブラウザーで正しく機能することを確認しています。スケーラブルで有益な自動テストを構築する際に、それらが困難なタスクをどのように解決するかを知りたいです。

 

・マイクロソフトでどのくらい働いていますか。以前はどこで働いていましたか?

 

2013年にマイクロソフトで働き始め、アドビで3年間働きました。

 

・あなたの現在の仕事の責任は何ですか?

 

私たちのチームは、Office365のほとんどのネットワークコンポーネントの機能自動テストを担当しています。

 

・これらのタスクの最大の課題は何ですか?

 

最大の課題は、間違いなくクロスブラウザテストです。Chrome、Firefox、Safari、Opera、Internet Explorer、Edge、モバイルブラウザですべてが完璧に機能することを確認したいと思います。

 

・なぜまだIEブラウザをサポートしているのですか?以前と同じですか?

 

2021年8月17日に、InternetExplorerのサポートを正式に停止します。しかし、これは、テストを停止するという意味ではありません。どこで問題が発生したかを最初に知る必要があるからです。多くの企業がまだInternetExplorerを使用しており、今後も長年使用していきます。多くのレガシーシステムはInternetExplorerに依存しており、一部の企業でさえ、従業員が他のブラウザを使用することを許可していません。

マイクロソフトシニアソフトウェアエンジニア:自動テストを実行する方法は?

出典:Google

・テスト用のヘッドレスブラウザについてどう思いますか?

 

ヘッドレスブラウザを使用することは、通常のブラウザと比較して動作がわずかに異なる傾向があるため、間違いなく悪い習慣です。私たちは、WindowsやMacのマシンやモバイルデバイスで実際のブラウザを使用してきました。

 

製品の欠陥に関する報告を受け取ったときに、「待ってください。スクリプトはヘッドレスバージョンのChromeを使用しているため、最初に手動で確認します」と返信された場合、それは恥ずかしいことです。

 

・SeleniumまたはPlaywrightを使用しますか?

 

使用されていない。別のソリューションを採用します。5年前に聞いたら、セレンを選ぶかもしれませんが、状況は常に変化しています。Seleniumを使用して内部テストフレームワークを構築することは、ホイールファイルを再作成することを意味し、ROIを非常に悪くします。

 

・このソリューションとは何か教えてください。これは機密ですか?

 

機密ではありません。Endtestを使用します。

 

・なぜEndtestを使用するのですか?

 

1年前に、使いやすさ、柔軟性、調整、クロスブラウザー機能、ROI、信頼性の側面をカバーする包括的な分析を行いました。POCを完了してデータを計算した後、何を使用すべきかについて明確なアイデアが得られました。ここまでは順調ですね。これは、ブラウザ間で自然にテストできる現時点で唯一の解決策のようです。

 

Seleniumのような追加の調整を追加することなく、テストを直接作成してすべてのブラウザーで実行できます。私が気に入っているもう1つの理由は、メール、テキストメッセージ、PDFファイル、APIリクエストのテストに使用できることです。

 

・Endtestはノーコードツールです。これにより柔軟性が低下しますか?

 

あんまり。これは、21世紀初頭の古いテストレコーダーによって引き起こされた誤解である可能性があります。自動テストには、変数、ifステートメント、ループ、および再利用可能なコンポーネントが必要です。これらのエンドテストが利用可能であり、多くのスクリプト言語と同じくらい柔軟性があります。言語やツールを選択するとき、柔軟性は重要ですが、最も重要ではありません。これが最も重要な場合は、まだマシンコードを書いている可能性があります。

マイクロソフトシニアソフトウェアエンジニア:自動テストを実行する方法は?

マイクロソフト本社

・毎日何回のテストを行っていますか?

 

ここでは機能テストのみをカウントします。それは、複数の要因と、少なくとも1日に数千回のコミット数によって異なります。

 

・話をしましょう。劇作家を使ってみませんか?

 

劇作家はマイクロソフトによって開発されたので、なぜあなたが私にこの質問をしたのか知っています。いくつかの理由があります。

 

劇作家は、レンガを提供できるようにネットワークライブラリと同等ですが、それでも自分の家を建てる必要があります。これらすべての「創造」には時間とリソースが必要です。開発者は、社内ツールを開発するのではなく、会社が販売する製品の開発に時間を費やすべきだと考えています。また、その内部テストフレームワークは、ROIを非常に悪くする可能性があります。

 

・自動テストでROIが重要なのはなぜですか。

 

投資収益率(ROI)はすべてにとって重要です。数年前、自動テストのためにチームが使用するツールまたはネットワークライブラリは、少数の人々によって決定されました。彼らは実行コストなどを計算せず、「ああ、これはかっこいいね、使ってみよう」と言うだけです。

 

これはひどい傾向です。それは、過度に複雑で信頼性の低い内部テストフレームワークを構築したフランケンシュタインのような自動化エンジニアを多数生み出しました。これらのフレームワークは常に「ほぼ」状態にあり、あまり価値がありません。一部のエンジニアは作業に非常に慎重であり、プロジェクトが放棄されるのを防ぐためだけにすべてのロジックを歪めます。

 

現在、この状況は変化しています。これらの決定に関与する人はますます増えています。これらの自動化されたタスクには、ベストプラクティスと実際のプロジェクト管理が適用されています。

 

この概念を理解するのが難しい場合は、例を見てみましょう。どちらの選択がより意味があるのでしょうか。Zoomなどのビデオ会議ツールを使用するか、WebRTCを使用して内部ビデオ会議ツールを最初から作成します。

 

WebRTCはオープンソースで無料ですが、社内のビデオ会議ツールを構築するには数か月かかり、雇用主に莫大な費用がかかります。前に述べたように、ホイールファイルを再作成するとROIが低下します。

 

・アクセシビリティはどのくらい重要ですか?

 

常に大事だと思っていますが、真剣に受け止めていない企業も多いと思います。この状況は近い将来変化するはずです。GDRPと同様のバリアフリー法が広く使用されることを期待しています。開発者はその意味を理解する必要があります。要素にtitle属性を追加すると、サイトはスクリーンリーダーと互換性がありますが、すべての主要なブラウザでテストされていない場合、サイトのアクセシビリティスコアは破棄されます。

 

視覚障害のあるユーザーはWebサイトを使用できますが、Firefox、Safari、またはEdgeを使用しているユーザーは、Chromeでのみテストされているため、Webサイトにアクセスできません。正確な定義は次のとおりです。アクセシビリティとは、できるだけ多くの人がWebサイトを使用できるようにすることです。

マイクロソフトシニアソフトウェアエンジニア:自動テストを実行する方法は?

出典:unsplash

・アップデートをテストしますか?

 

幸い、十分なリソースがあり、この方法を使用する必要はありません。私たちは常にすべてをテストしています。ただし、常に完全なリカバリをサポートするためのリソースがないチームにとっては、更新に関するテストは許容できる手法です。

 

・テストの傾向をどのように見ていますか?

 

トレンド次第です。私は、マーケティング予算によって引き起こされる悪い傾向を見て、欠陥をグッドプラクティスとして偽装しました。これは単に悪夢です。

 

最初に頭に浮かんだのは、ある会社が自動テスト用の製品を作成したことです。そのアーキテクチャは非常に悪かったため、複数のブラウザタブを同時に開くことさえできませんでした。これは主に、JavaScriptに依存しすぎているためです。JavaScriptが別のブラウザタブを開きたい場合、元のブラウザが競合することは誰もが知っています。

 

彼らはこの欠陥を隠蔽し、リンクが実際に新しいブラウザタブでページを開くことができるかどうかをテストする必要はないと述べました。これは実際にはウェブサイトではなくブラウザをテストしているからです。彼らは、target = "_blank"の属性をチェックするだけでよいと言いました。このねじれた論理によれば、テストは、クリック操作なしで、マウスクリックが完了できるかどうかを検出するだけで済みます。

 

また、Chromeでウェブサイトをテストし、各ステップでDOMを取得し、これらのDOMダンプを他のブラウザーに貼り付けることで、ブラウザー間のテストのアイデアを実装する別のツールを見てきました。なぜこんなにひどい考えを思いついたのか分かりません。近い将来、アクセシビリティがトレンドになることを願っています。

 

・機能自動化テストを改善したいチームへの提案はありますか?

 

クロスブラウザテストは重要です。すべての人がAppleラップトップでChromeを使用するわけではありません。ブラウザはJavaScriptの単なるインタプリタではありません。ヘッドレスブラウザの動作は、通常のブラウザとは異なる場合があります。

 

Chromeは、LinuxシステムとWindowsシステムで動作が異なる場合もあります。ワークフロー全体をテストします。アクションの実行時にWebサイトが電子メールを送信している場合は、電子メールが正常に送信されていることを確認してください。そのメールにボタンがある場合は、それをクリックして、ページのリダイレクト先を確認します。

 

最新のツールを使用すると、愚か者はホイールファイルを再作成できます。

マイクロソフトシニアソフトウェアエンジニア:自動テストを実行する方法は?

AIの学習と開発の乾物を一緒に共有する

フルプラットフォームのAI垂直セルフメディア「コアリーディング」をフォローすることを歓迎します

(エディターWeChat:dxsxbbを追加し、リーダーサークルに参加して、最新の人工知能技術について一緒に話し合ってください〜)

おすすめ

転載: blog.csdn.net/duxinshuxiaobian/article/details/112469055