理論的には、テスト自動化プログラムまたはツールは、テスターにとって物事を容易にし、時間を空け、評価範囲のための追加のリラクゼーションブランケットを提供することになっています。
そして、非常に多くの組織が、投資されたリソースを返し、それらを節約できる、スケーラブルで強力かつ優れたテスト自動化インフラストラクチャの実装に失敗しています。いくつかの「捨てる」書かれたテスト自動化の仕事と他の人は、安定した自動化スイートを獲得するという彼らの目標との継続的な闘争に耐えました。
何年にもわたって、多くの企業が自動化の取り組みを実行しようとしているのを観察しました。書面によるプロジェクトが破棄され、フレームワークが切り替えられ、マネージャーが約束または設定された目標を提供できなかったために解雇されたのを観察しました。
失敗の理由はたくさんありますが、自動化は長期的には完全に理にかなっていますが、見た目よりもはるかに難しいことを理解する必要があります。
以下は、先に進んでテスト自動化プロジェクトの構築を開始する前に知っておく必要のあるいくつかの理由です。
分析と質問:テスト自動化ジョブは、他のアプリケーションプロジェクトと同様のジョブであり、1つと同じように扱う必要があります。ソフトウェアプロジェクトの計画をどのように処理しますか?テスト自動化プロジェクトの実装を検討するときは、このアイデアを参考にしてください。あなたはその仕事のために誰を選びますか?生産された製品は誰が使用しますか?どの言語またはフレームワークが仕事に最も適していますか?課題とそのガイドラインから理解し、覗いてみませんか?自分で何も知らないアーキテクチャを構築しますか、それともアドバイザーに電話していくつかの考えをアドバイスしますか?
これらの質問はすべて、1行のコードを記述したり、状況をテストしたりする前に、自分自身に何を尋ねるべきかについてのこの氷山の一角にすぎません。
不十分なスキルセット:質問させてください。優れたクリーンな検索可能なコードを作成する方法を理解していない、より悪いプログラマーや経験の浅いプログラマーを許可しますか?アプリのデザインをスタイリングして最初から作成しますか?答えはノーだと思います。では、なぜこれほど多くの企業が、経験とスキルがなくても、評価自動化インフラストラクチャによって品質を実装できると考えているのでしょうか。専任スタッフに経験と知識がなく、経験と知識を持っている人を雇う予定がない場合は、コードレス自動化ツールの使用を検討する必要があります。
非現実的な期待/アプローチ:私はそれを2つの部分に分けます。 1つ目は、テスト自動化のROI(投資収益率)の誤った理解であり、2つ目は、時間ごとのフレームワークに対する非現実的な期待です。あなたが作ったのと同じくらい良い仕事があり、価値を提供するために時間を費やさずに何かを期待することはできません。 QAエンジニアに話を聞いたところ、覆面インフラストラクチャを構成するために週に6時間取得したとのことでした。彼が6時間を達成することをあなたは何を期待すべきですか?
この作業を行うには、以下に問い合わせる必要があります。
- テスト自動化と一緒に達成したい目標は正確には何ですか?
- 努力/時間の素晴らしい価値と見なされるものは何ですか?
- 達成の基準は何ですか?
- それを実現するために、どれだけの時間/お金を費やす準備ができていますか?
自動化は「起動して忘れる」割り当てではありません。あなたはそれがメンテナンス、グループの努力、そして進歩を必要とする継続的なプロセスであることを認めたいと思います。
悲しいことに、私が見たところ、一部の企業は、QAエンジニアに覆面捜査を提供することを、労働者を保護する方法、または彼の毎週のルーチンに「スパイス」を入れる方法としてのみ認識していることを認めなければなりません。誤解しないでください。労働者を保護したり、学習して進歩する時間を提供したりするべきではないと言っているのではありません。現実的で労働者にとって透明性のある期待に沿ったものでなければならないと言っているだけです。 。
不十分な計画:素晴らしい自動化プロジェクトは、包括的な技術スタイルに発展する高レベルの計画と計画から開始する必要があります。 「1つのサイズですべてに対応」戦略でさえ、成功に壊滅的な打撃を与える可能性があります。単一の会社でうまく機能したことは、必ずしもそれがあなたのために仕事をすることを示しているわけではありません。その発表は、楽器の選択について真実である可能性があります。問題のテクノロジーを実際に使用する必要がない場合はいつでも、流行語になります。これは非常に重要です。そこには多くのオープンソースおよび商用ツールがあり、これらのツールが提供できる代替案や利点/代替案を考慮しなくても、高いコストパフォーマンスを提供できます。ニーズに合ったツールを選択してください。これが私の2セントです-多くの時間を無駄にするよりも、ソリューションにお金を払うほうがはるかに良いです(それはプログラムのコストタグよりもはるかに高価になるでしょう)。
さて、私たちが設計を計画する方法について議論し続けるとき、私たちは私たちの総合的な技術アーキテクチャとビジネス要件について考える必要があります。考慮すべき側面のほんの一部を次に示します。
- 人々が検討する仕事、モジュール、ビジネスフローを想像してみてください。
- 各実行フェーズで計画されているポリシーは何ですか? (正気、回帰、CI / CD専用パッケージ?)
- 主な共有/共通/繰り返しフロー/機能は何ですか?
- 簡単なスタンドアロンアーティファクトのすべてのテストをどのように計画しますか? (SetUpとTearDown、生成された評価データではなく外部データへの依存、各テストの前に何を実行する必要があるか、スイートクラス?)
- 並行して実行された場合に、ある評価が別の評価を「壊す」のを防ぐにはどうすればよいですか?
- どうすれば、スケーラブルでクリーンで適切な雰囲気を作り出すことができるでしょうか。 (モックサーバー、データベースケース、クリーンアップスクリプト、ブラウザー設定、グリッド/サーバー構成、セットアップとクリーンアップ、仮想環境またはDockerコンテナー)。
- 使用する場合、正確にツールを構築するものは何ですか?
- 正確にどのように依存関係を管理できますか?
- 私たちのプロジェクトはどこに保存されていますか?
- プロジェクトに取り組んでいるエンジニアの数と、バリアント管理の管理方法はどれくらいですか?
- ビルドを実行するのに最適なCIツールは何ですか?
- CI / CDワークフローを実装しますか?
- 独自の実行プラットフォームを設計するために使用できるテストとリソースをどこで実行しますか? (クラウドソリューションの許可を購入するための資金は提供されていますか?独自のSelenium Serverインフラストラクチャを確立するためのツールまたはサポートはありますか?)
- 正確にどのような種類のテストがまもなく自動化されますか? (API、Visual Concepts、サーバープロセス、Web / UIオートメーション、モバイル-Android / IOS)。
- 追加の評価を必要とする大規模なデータ収集、長いフロー、複雑なプロセス、統合はありますか?
- GUIを介して何をテストする必要があり、APIを介してチェックする方が安全である可能性がありますか?
- 根本原因の評価とデバッグをより簡単にするために、正確にどのログ、レポートメカニズム、ハンドラー、およびリスナーを実装する必要がありますか? (結果を1日で理解することに専念する場合、1時間の自動化スイートとは何ですか?)
- 実行で提供する必要があるメトリック/レポート/出力は何ですか?
- 正確にどのような統合が本当に必要ですか? (レポートプログラム、ALMツール、バグトラッカー、評価管理プログラム)。
- 誰がインフラストラクチャを構成し、誰がテストを実装することになっていますか? (両方の間に分岐があることさえありますか?)
- 自動化エンジニアに、自動化されるはずのビジネスフロー/テストケース/ビジネスロジックを提供する責任は誰にありますか?
- 将来の目標を決定するために定義されたPOC(概念実証)ステージはありますか?
それは一言で言えば質問のほんの一部であり、これからあなたが取るべきことはそれです
適切なツールオプションである優れた計画/設計は、失敗と成功の違いを生み出す可能性があります。
すべてを自動化する:注意すべき重要な点は、自動化できるもの、または自動化する必要があるものではないということです。時々、認識や誤った管理上の決定により、テスターの頭に浮かぶすべてを自動化したり、テストケースを盲目的にスクリプトに変換したりします。まず第一に、すべての評価が自動化に適しているわけではありません。第二に、テストケース自体は仕事に受け入れられません。これは、維持することが不可能な維持不可能な一連の自動テストで終わり、悲しいことに、それが私たちの書かれた仕事の多くをマークアウトすることにつながる機会の大部分です。同じビジネスロジックをときどきチェックする何万ものテストインスタンスを自動化チームに維持するための資金が会社にない場合、自動化に追加の価値はありません。
また、すべての自動化ビルドを維持するために何が必要かについて明確な計画を立てる必要があります。回帰には何が含まれていますか?私たちの正気とは何ですか? CI / CDパイプラインに入るのに十分な安全性と信頼性は何ですか?
テスト-自動化には、適切な価値を提供するための確かな計画、理解、コミットメント、および献身が必要です。
スキルの欠如/適切な指導、不適切なツールの選択、不十分なリソース、適切な準備の欠如、非現実的な期待、これらすべてがプロジェクトを失敗させる可能性があります。
このレポートがプラスの影響を与え、生産的な考え方に従うのに役立つことを願っています。