テスト自動化をれロから展開するためのヒントずコツ

たえがき



以䞋に説明するヒントず掚奚事項は、2぀の䌚瀟でれロからテストず自動化を䜜成し、3番目の䌚瀟で同様の䜜業を開始した経隓に基づいお䜜成されたした。 したがっお、すべおを知っおいる専門家の栄誉に぀いお䞍満はありたせん。むしろ、最近のトピックである䌚瀟のテスト自動化に関する段階的なガむドの圢で圢成された経隓を共有する詊みです。



これを読むこずに決めた堎合、プログラミング蚀語で自動テストを䜜成し、特定のプロゞェクトのツヌルを遞択するトピックは、それらを統合しお厳密なリストを䜜成するこずは䞍可胜であるため、すぐに考慮する必芁がありたす-どのプロゞェクトが最高のツヌルを持っおいる。 ここでは、間違いなく、自分で掘る必芁がありたす。



しかし、䞀般的なテストぞのアプロヌチ方法、開始する堎所、テスト蚈画を考え出し、テストケヌスの生成を開始する方法、さらに自動化するテストを遞択する方法、䜜業時間を評䟡する方法、および䞀般的な自動化が必芁かどうかに぀いおは、以䞋で説明したす。



PSそしお最埌に-このテキストは、アレクセむ・バランツェフずナタリア・ルコルによる有益な講矩ず、このトピックに関しお近幎善良な人々によっお曞かれた深byの情報がなければ圢成されなかっただろう。



これで、譊告が衚瀺されたす-ストヌリヌを開始できたす。



パヌト1-テスト自動化の展開



1.テスト自動化戊略の遞択以降-AT



AT戊略で䞀般的に䜿甚されるオプションがいく぀かありたす。 さたざたなATアクティビティの順序ず匷床は、特定の戊略の遞択に䟝存したす。 戊略を遞択するこずは最も重芁なタスクではありたせんが、そこから自動化の展開プロセスを開始するこずが最善です。 自動化の展開の最初の段階に固有の戊略に぀いお、3぀のオプションを提䟛したす。 もちろん、戊略にはさらに倚くのオプションがありたす;完党なリストは、ナタリアルコルのセミナヌで芋぀けるこずができたす。



1.1戊略を詊しおみたしょう



ATがプロゞェクトや䌚瀟に䞀床も参加したこずがない堎合に䜿甚され、䞭皋床のリ゜ヌスの割り圓おで慎重な開始が蚈画されたす。



次の堎合に戊略を適甚するのは理にかなっおいたす





戊略の説明





1.2戊略「ここが目暙」



戊略の特城は、特定の結果に焊点を合わせおいるこずです。 ATの新しいステヌゞの目暙が遞択/決定され、タスクはこの結果の達成によっお導かれたす。



次の堎合に戊略を適甚するのは理にかなっおいたす





戊略の説明





1.3戊略「りラン䜜戊」



実際、戊略は2〜3週間ごずに蚭定された優先順䜍に埓っお、ATで䞀定か぀系統的な䜜業です。 最適-サヌドパヌティのタスクに特に気を取られない、自動化に垞に正確に取り組んでいる人の存圚。



次の堎合に戊略を適甚するのは理にかなっおいたす





戊略の説明





芁玄するず



䞀般的なロゞックず自動化戊略を怜蚎する䟡倀がありたすが、次のオプションをお勧めしたす。1か月3〜4週間の初めに、「Let's try」戊略を䜿甚し、特に車自䜓のコヌドを深く掘り䞋げるこずなく、さらなる䜜業の基瀎を準備したす。モゞュヌルのテストず詳现。 この段階が完了するず、さらに䜜業を行うための既補の基盀ができたす。 それから、倧たかに蚀えば、りォヌタヌフォヌルたたはアゞャむル-どのように取り組むのが䟿利かを遞択する必芁がありたす。 そしお、遞択された戊略に埓っお行動し続けたす。



2.タスクの䞊列化



耇数の人がプロゞェクトに取り組んでいる、たたはプロゞェクトをテストしおいる堎合、この項目は理にかなっおいたす。 次に、チヌム内のタスクを䞊列化する䞊で重芁なポむントがありたす。 ATチヌムで䜜業する人が1人だけの堎合は、この項目を安党にスキップできたす。



互いに近い胜力ず知識の芳点から、テスト自動化プロセスは、類䌌したタむプの異なるタスクをカプセル化する圹割に分割できたす。



圹割



建築





開発





テスト蚭蚈





運営管理





テスト䞭



耇数の人がプロゞェクトのテストに取り組んでいる堎合、特定の人に぀いお䞊蚘の圹割を䞊列化するのが論理的です。 この堎合、「管理」の圹割を1人に割り圓お、「テスト蚭蚈」ず「テスト」の圹割をすべおに分割し、「アヌキテクチャ」ず「開発」の圹割を1人たたは2人のヒヌロヌに割り圓おるこずは理にかなっおいたす。



このロゞックは次のずおりです。



  1. このプロゞェクトには明確なテストリヌダヌがいお、誰が蚈画を立お、期限を決定し、違反した堎合に責任を負いたす。
  2. テスタヌに​​は、ハンドテスタヌず自動化の2぀の䞀般的なタむプがありたす。 同時に、圹割「テスト蚭蚈」ず「テスト」のタスクは、䞡方のタむプに等しく関連しおいたす。 したがっお、すべおのテスタヌは、埌で手動テストず自動化の䞡方で䜿甚できるテストを䜜成および蚭蚈したす。
  3. さらに、䜜成されたテスト蚈画ずテストケヌスに埓っお手動テスタヌが手動テストを実行し、自動化が開発に適した圢匏に必芁なテストを完了し、自動化に取り組んでいたす。


しかし、あなたが男性オヌケストラを持っおいる堎合、圌はすぐにすべおを行いたすが、圌はすべおのプロではありたせん。



3.テスト蚈画の䜜成



AT戊略を遞択した埌、次の重芁なポむントは䜜業の開始点-テスト蚈画の䜜成です。 テスト蚈画は、開発者ず補品マネヌゞャヌずの間で合意する必芁がありたす。テスト蚈画を䜜成する段階で゚ラヌが発生する可胜性はかなり埌であるためです。



良い方法では、テスタヌが䜜業する比范的倧きなプロゞェクトのためにテスト蚈画を準備する必芁がありたす。 倧芏暡なオフィスで通垞䜿甚されるオプションよりも圢匏化されおいないテスト蚈画に぀いお説明したすが、圢匏的な深byを内郚で䜿甚する必芁はありたせん。



テスト蚈画は、次の項目で構成されおいたす。



3.1テストの察象。



プロゞェクトの簡単な説明、䞻な特性Web /デスクトップ、iO䞊のUI、Android、特定のブラりザヌ/ OSなどで動䜜したす。



3.2プロゞェクトの構成。



プロゞェクトのコンポヌネントおよびモゞュヌル詳现は説明しおいたせん、および互いに分離された論理的に壊れたリスト、および倧きなモゞュヌルの倖郚の機胜。



各モゞュヌルで、利甚可胜な関数のセットをリストしたす詳现に入るこずはありたせん。 マネヌゞャヌずテストデザむナヌは、新しいスプリントのテストず自動化のタスクを定矩するずきに、このリストから倖したすたずえば、「デヌタ線集モゞュヌルに倉曎が加えられ、ファむルアップロヌドモゞュヌルが倉曎され、クラむアントで通知を送信する機胜が完党にやり盎されたした」。



3.3プロゞェクトのテスト戊略ず蚈画されたタむプのテスト。



戊略に぀いおは段萜1で説明したす。自動化の堎合、通垞は1皮類のテストのみが䜿甚されたす-回垰アプリケヌション党䜓の詳现なテスト、以前に䜜成されたテストの実行。 抂しお、自動テストは他の皮類のテストで䜿甚できたすが、カバレッゞの少なくずも40に達するたで、これによる基本的な利点はありたせん。



ただし、テスト蚈画が自動化゚ンゞニアだけでなく手動テスタヌでも䜿甚される予定の堎合は、テスト戊略党䜓自動化ではないを怜蚎し、䜿甚/必芁なタむプのテストを遞択たたはマヌクし、この段萜にペむントする必芁がありたす。



3.4テストのシヌケンス。



テストの準備、タスクのタむミングの評䟡、テストに関する統蚈の収集ず分析の実行方法。

この段萜に䜕を曞くべきかわからない堎合は、安党にスキップできたす。



3.5テストを完了するための基準



このリリヌスの䞀郚ずしおテストが完了したず芋なされる時期を簡単に説明しおください。 特定の基準がある堎合は、それらを蚘述したす。



芁玄するず



テスト蚈画を䜜成する必芁がありたす。テスト蚈画を䜜成しないず、すべおの自動化は混chaずしお非䜓系的になりたす。 手動テスト非垞に貧匱な手動テストで、テスト蚈画、テストケヌスなしで実行でき、おずりテスタヌを比范的成功しお䜿甚できる堎合、これは自動化では機胜したせん。



4.䞻なタスクの定矩



戊略を遞択しおテスト蚈画を䜜成したら、自動化のテストを開始する䞀連のタスクを遞択する䟡倀がありたす。



自動化がもたらす最も䞀般的なタむプのタスク





自動化の展開の最初の段階で、受け入れテストの自動化のタスクを最も時間のかからないように蚭定するこずをお勧めしたす。 同時に、問題を解決するこずにより、受け入れられた次のビルドで受け入れテストを実行できたす。



煙テストの䞻な基準は、比范的単玔であるこずず同時に、プロゞェクトの重芁な機胜を匷制的に怜蚌するこずです。



たた、䞍必芁なチェックに時間を無駄にしないために、煙テストはポゞティブシステムの正しい動䜜をチェックし、ネガティブテストはシステムが正しく動䜜するかどうかをチェックしたすであるこずも理解されおいたす。



芁玄するず



自動化のために䞻芁なタスクのリストをコンパむルするずき、最初に煙テストを蚘述しお自動化するこずが論理的です。 将来的には、それらをプロゞェクトに含めお、各アセンブリで実行できたす。 数が限られおいるため、これらのテストのパフォヌマンスはアセンブリの速床を䜎䞋させるこずはありたせんが、そのたびに重芁な機胜が匕き続き機胜するかどうかを確実に知るこずができたす。



5.遞択したタスクのテストケヌスを䜜成する



テストケヌスに関しおは、テストプロセスを2぀の郚分に分割するのが䞀般的です。既成のシナリオテストケヌスによるテストず調査テストです。



研究テストに関しおは、すべおが非垞に明確であり、特別な予備準備なしで新しい機胜を研究するか、セモリナテスタヌを䜿甚した簡単なセモリナテストの圢匏の2぀のバリ゚ヌションがありたす。 スクリプト化されたテストは、プロゞェクトの機胜のために時間を費やし、テストスクリプトが䜜成され、可胜な限り倧容量であるこずを意味したす。



私の芳点からは、最も合理的なアプロヌチは、新しい機胜ずモゞュヌルを研究スタむルでテストし、可胜性の䜎いシナリオをテストしようずするアプロヌチの合理的な組み合わせであり、テストが完了するず、埌で回垰テストに䜿甚されるテストケヌスが䜜成されたす



明癜なこずに加えお、テストケヌスをさらに䜿甚するための3぀のオプション





テストケヌスを詳现に説明するための原則に぀いおは説明したせん。このトピックに関する倚くの資料がネットワヌク䞊にありたす。簡単に説明したす。



適切なテストケヌスは、次の点で構成されおいたす。



  1. 名前説明は、テストがチェックする内容の非垞に短い説明です。
  2. システムの準備状態は、テストケヌスの開始時点でのシステムの状態の説明です。
  3. ステップのシヌケンス-タむトルに蚘茉されおいる目的を怜蚌する連続的に蚘述されたアクション。
  4. 期埅される結果は、テストケヌスの䞀連のステップを通過した埌に埅機しおいるシステムの状態です。


テストケヌスの䟿利な保存のための倚くの゜リュヌションがありたすが、私が䜿甚したもののうち、Testlinkアプリケヌションは非垞に優れおいるこずが蚌明され、テストケヌスの実行を䜜成/保存および远跡するための䟿利な無料システムであるsitechco.ruシステムが最適であるこずが蚌明されたした。



芁玄するず



さらにATを䜿甚するには、手順4で蚭定したタスクのテストケヌスを䜜成する必芁がありたす。 これらは、通垞の回垰テストの䜜成の開始ずしお同時に機胜し、さらなる自動テストの基瀎ずしお機胜したす。



テストケヌスの䜜成を蚈画しおいるテスタヌぞの掚奚事項ずしお、ペアワむズ手法、等䟡クラス、およびテスト蚭蚈手法に぀いお読むこずをお勧めしたす。 少なくずもこれらのトピックを衚面的に孊習すれば、優れた有甚なテストケヌスを䜜成するのがはるかに簡単になりたす。



6.自動化のためのツヌルの遞択



明らかに-アプリケヌションが実行されおいるプラ​​ットフォヌムに応じおATツヌルが遞択されたす。



AngularJSのバック゚ンドずiOSベヌスのタブレットず携垯電話のクラむアントの2぀の郚分で構成されるプロゞェクトのツヌルを遞択する䟋を瀺したす。



1.バック゚ンド



カルマ+分床噚ゞャスミン。



長所Protractorツヌルをシェルずしお䜿甚するこずをお勧めしたす;これは、AngularJSで蚘述されたアプリケヌションに最適です。 分床噚はナヌザヌの操䜜を暡倣し、Jasmine BDDフレヌムワヌクを䜿甚しお䜜成された自動テストを䜜成できたす。 さお、Karmaを䜿甚するず、これらのテストを異なるブラりザヌで実行できたす。



短所テスタヌは、JSで少なくずも単玔なスクリプトを䜜成できる必芁がありたす。 たたは、プログラマヌはこれらのスクリプトを圌に曞く必芁があり、ATの開発によっおオヌバヌヘッドになる可胜性がありたす。



Selenium Webdriver。



長所GUI Webアプリケヌションのテストを自動化するための䟿利でシンプルで信頌性の高いツヌルキット。 䞀般的に、倚くのドキュメント、䟋の深aは䟿利です。 最も原始的なバヌゞョンでは、テスタヌからのプログラミング知識は必芁ありたせん。

短所ProtractorはAngularJSチヌムによっお䜜成され、AngularJSをテストしたすが、Seleniumはナニバヌサルです。 私の芳点からは、AngularJSプロゞェクトで分床噚+ゞャスミンのテストを䜜成する方が䟿利です。 手動のテスタヌだけでなく、深刻な自動テストが蚈画されおいる堎合、柔軟なテスト蚭定にはプログラミングの知識が必芁なため、テスタヌはプログラミング蚀語java、python、ruby、cを知る必芁がありたす。



2.フロント゚ンド



ひょうたん+キュりリ。



抂しお、タブレットや携垯電話でiOSアプリケヌションを自動化するための最も䟿利なツヌルは、Calabash + Cucumberバンドルです。 Calabashは、機胜テストを自動化するためのフレヌムワヌクであり、本質的には、デバむスたたはシミュレヌタヌ䞊のアプリケヌションの動䜜を制埡するドラむバヌです。 Cucumberは、テストむンフラストラクチャテストの実行、スクリプトの解析、レポヌトの生成を提䟛したす。



Calabashは有料゜リュヌションhttps://xamarin.com/test-cloudであるこずを考慮する䟡倀がありたす。



芁玄するず



テスト自動化のためのツヌルは䞊蚘で説明されおいたすが、これらは利甚可胜な唯䞀のツヌルずはほど遠く、このむンフラストラクチャのセットアップず瀟内でのATの展開に関䞎しおいる人には、ネットワヌクを掘り䞋げお怜蚎するこずをお勧めしたす。ツヌル。



7.自動化のためのテストの遞択



そのため、珟圚の段階では、テスト蚈画を䜜成し、モゞュヌルの機胜の䞀郚をテストケヌスずしお説明したした。 次のタスクは、既存のさたざたなテストケヌスから必芁なテストを遞択するこずです。 珟時点では、スモヌクテスト甚のテストケヌスしか甚意されおいたせんが、プロゞェクトでテストケヌスの開発を数回繰り返した埌は、さらに倚くのテストケヌスがあり、すべおを自動化する意味がありたせん。



1.次のこずを自動化するこずは非垞に困難です。



  1. サヌドパヌティのプログラムでファむルを開くこずを確認するたずえば、印刷甚に送信されたドキュメントの正圓性を確認する
  2. 画像の内容を確認したすこの問題を郚分的に解決するプログラムがありたすが、タスクの単玔なカットでは、そのようなテストを自動化せずに、手動テストに任せる方が良いです
  3. ajaxスクリプトに関連するチェックこの問題は簡単に解決でき、さたざたなアプリケヌションの解決策がありたすが、䞀般にajaxは自動化がはるかに困難です。


2.単調な仕事を取り陀く。



実践が瀺すように、1぀の関数のみをチェックするには、いく぀かのテストケヌスが必芁な堎合がありたすたずえば、2桁の数字を入力できる入力フィヌルドがありたす。1〜2テスト、「2文字」、「1文字」より慎重に確認するために、倀、れロ、境界倀、および文字入力を䌎う吊定的なテストがないかどうかのテストを远加したす。 この堎合の手動テストに察する自動テストの利点は、フィヌルドのデヌタ゚ントリをチェックするテストが1぀ある堎合、入力パラメヌタヌを倉曎するこずで簡単にその数を増やすこずができるこずです。



抂しお、自動テストはテストの最も単調で単調な郚分をカバヌし、テスタヌに​​研究テストの䜙地を残したす。



したがっお、自動化甚のテストケヌスを遞択する堎合は、怜蚎する䟡倀もありたす。



3.テストの単玔さ。



そしお、自動化のためにテストケヌスを遞択するための最埌の重芁な基準は、テストの盞察的な単玔さです。 テストのより倚様なステップ-テストケヌス自䜓が悪いほど、自動化が難しくなり、この自動テストが起動時にクラッシュした堎合にバグを芋぀けるのが難しくなりたす。



最適なテストの長さを決定するたで、自動化のために少量のテストケヌスを遞択し、埐々に経隓を積み、たすたす耇雑になるテストケヌスを自動化しおください。



8.自動化のためのテストの蚭蚈

テストケヌスは通垞、単玔な人間の蚀語で曞かれおいるため、自動化のために遞択されたテストケヌスを远加しお修正する必芁がありたすが、さらに自動化するためのテストケヌスは、翻蚳しやすいように必芁な技術的詳现を远加する必芁がありたすコヌドやがお、どのテストを生きた蚀語で蚘述する必芁があり、どのテストをテストケヌスの䜜成段階でも詳现か぀明確に蚘述する必芁があるかが理解されるようになりたす。



したがっお、自動化を目的ずしたテストケヌスの内容に぀いお、次の掚奚事項を策定するこずができたす。



1.自動テストケヌスで期埅される結果は、非垞に明確か぀具䜓的に説明する必芁がありたす。





2.ブラりザずテストを実行するアプリケヌションの同期の機胜を考慮したす。



テストでリンクをクリックするず、新しいペヌゞでのアクションの次のステップが蚘述されたずしたす。 同時に、ペヌゞは長時間ロヌドされる可胜性があり、アプリケヌションは、目的のアむテムのダりンロヌドの開始を埅たずに゚ラヌで倱敗したす。 倚くの堎合、これは、芁玠のロヌドを埅機するパラメヌタヌを蚭定するこずで簡単に解決できたす。





3.テストケヌスにハヌド倀を曞き蟌たないでください。



必芁でない堎合のみ。 ほずんどの堎合、テスト環境を䜜成するずきに適切なデヌタが決定されるため、自動テストを䜜成するずきに倀を遞択する方が最適です。





4.自動テストケヌスは独立しおいる必芁がありたす。

ルヌルには䟋倖がありたすが、ほずんどの堎合、テストケヌスの前埌にどのテストケヌスが実行されるかわからないず想定する必芁がありたす。





5.䜿甚するツヌルのドキュメントを泚意深く調べるこずは䟡倀がありたす。



そのため、誀っお遞択されたコマンドが原因でテストケヌスが停陜性になる、぀たり、 アプリケヌションが正垞に動䜜しない状況で成功したす。



芁玄するず



自動化を目的ずする正しく蚘述されたテストケヌスは、テストされたアプリケヌションの正しい動䜜の蚘述ずいうよりも、人間が理解できる小さなプログラムを開発するためのミニチュア技術タスクに非垞に䌌おいたす。 以䞋に、自動化のために再蚭蚈されたいく぀かのテストケヌスを瀺したす。 残りの郚分は、プロゞェクトテスタヌが䞊蚘のルヌルに埓っおやり盎せるず思いたす。



9.自動化のためのアプリケヌションスタックのセットアップ



次のステップたたは耇数の専門家の堎合の䞊行タスクは、自動テストの䜜成ず実行に関する今埌の䜜業で䜿甚するアプリケヌションのスタックを展開するこずです。

これらのむンストヌルオプションの詳现に぀いおは説明したせん。すべおの情報はネットワヌク䞊にありたす。゜リュヌションの怜玢を開始するには、各オプションに1-2リンクを添付したす。



バック゚ンド



1.カルマ+分床噚ゞャスミン



-Karma +分床噚-ツヌルをデプロむするための優れたツヌル-mherman.org/blog/2015/04/09/testing-angularjs-with-protractor-and-karma-part-1/#.VpY21vmLSUk

-分床噚+ Jasmine-Jasmine engineering.wingify.com/posts/e2e-testing-with-webdriverjs-jasmineをむンストヌルしお蚭定したす



このスキヌムを遞択した堎合、テストを自動的に実行するには、Karmaず継続的むンテグレヌションシステムの1぀を「友達にする」必芁がありたす。 私にずっお最も興味深いず思われる2぀のオプション、JenkinsずTeamcityを提䟛しおいたす。



-Teamcity-゜リュヌションは非垞にシンプルで、 karma-runner-reporterプラグむンをむンストヌルするだけです。

-Jenkins-同様に-karma-jenkins-reporterプラグむンをむンストヌルする簡単な゜リュヌション。



2. Selenium Webdriver



゜リュヌション自䜓はあたり゚レガントではありたせんが、これは䞊蚘のずおりです。 それでも簡単な方法を遞択する堎合は、次のように入力したす。



- セレンIDE ;

-IDEから取埗したテストが明らかに十分でない堎合のSelenium Webdriverを䜿甚する原則はここで読むこずができたす 。



ツヌルをむンストヌルした埌は、継続的むンテグレヌションシステムでそれらを実行したす。繰り返しになりたすが、私は、私の意芋では最も䟿利な2぀のオプション、TeamcityずJenkinsを提案したす。



-Teamcity-IDEからのテストを蚀語C、Java、Python、Rubyのテストに倉換し、Teamcityで起動を構成したす。 1぀の解決策は蚘事にありたす。

-ゞェンキンス率盎に蚀っお- 難しい。



フロント゚ンド



1.カラバッシュキュりリ+



- 第䞀実斜圢態のむンストヌル。

-2 番目のむンストヌルオプション。



その埌、楜しい郚分が始たりたす-Calabashを継続的むンテグレヌションシステムず連動させたす。



-Teamcityはおそらく私が芋た䞭で最も良いオプションです。

-ゞェンキンス-それも簡単ではありたせん。開始するオプションずしお。



芁玄



繰り返したす-自動化のためのチュヌニングツヌルの機胜-たったく異なる蚘事のトピック-特定の゜リュヌション甚に遞択されたアプリケヌションスタックを構成する方法の䟋を瀺したした。たた、䞀般的なテスト手法が非垞に安定しおいる堎合、特定のアプリケヌションおよび自動化蚀語の遞択は、プロゞェクトの詳现に完党に䟝存するタスクです。



10.テストデヌタの準備



このコンテキストでは、テストデヌタずは、テストが開始された時点でのアプリケヌションの状態を指したす。自動テストで䜿甚される倀ずパラメヌタヌはほずんど垞に「ハヌドコヌド化」されおおり、柔軟性が非垞に䜎いこずを考慮するず、アプリケヌションのどの状態でも実行できる可胜性は䜎いず想定するのは理にかなっおいたす。たずえば、顧客がこれらの蚘事を参照する実皌働システムや、線集する蚘事がたったくない完党にクリヌンなシステムで、䞀般的な蚘事の線集をチェックする自動テストを実行するこずはほずんどありたせん。



最初のケヌスでは、自動テストは倚くの䞍芁な䜜業を行い、2番目のケヌスでは実行できたせん。

したがっお、自動テストを正しく䜿甚するには、事前にアプリケヌションをこれらのテストに察応する状態にする必芁がありたす。



ここには特別なルヌルはありたせん。テストから始めれば、すべおが盎芳的に明確です。唯䞀の泚意点は、通垞、自動テストは独立したテストの独立したセットによっお実行されるこずです。この堎合、1぀のセットのテストはランダムな順序で実行されるこずがよくありたす。したがっお、自動テストを䜜成するずきは、1぀のテストが完了しおもセットの他のテストを実行できるように、自動テストを䜜成しおください。







11.自動テストの開発ず開始



おそらく、これはすべおの䞭で最も短い章になるでしょう-セルフテストを曞く方法、人間の蚀語で既補の空癜ずツヌルの拡匵されたスタックを持぀-は、以䞋のリンクで詳现に説明されおいたす





たた、䞀般に、自動テストの開発に関する䞀般的な掚奚事項はこちらで読むこずができたす。



頑匵っお



マニュアルの11章の芁玄



䞊蚘のすべおの掚奚事項を満たし、自動テストを蚭定、䜜成、および実行した埌、䜜業の最も重芁な郚分を実行したした。プロゞェクトにテスト自動化を展開し始めたした。



自動テストがプロゞェクトのテストプロセスの䞍可欠な郚分になるたで、テストケヌスの䜜成、ツヌルのセットアップ、適切で有益なレポヌトの生成など、倚くのタスクが先にありたすが、最初のステップは完了しおいたす。



マニュアルの2番目の郚分では、テスト、メンテナンス、たたは持続可胜性タスクの新しいサむクルごずに、自動化゚ンゞニアが盎面するタスクに぀いお説明したす。自動テストを熟考しお分析するこずが習慣になるたで、かなり頻繁にそれらに戻る必芁がありたす。

マニュアルの最初の章はすべお正垞に完了したした



この堎所で、シャンパンを抱きしめお喜んで飲むこずができたす



おめでずうございたす、最初の䞀歩が螏み出されたした



パヌト2-テスト自動化プロセスの開発ず保守



12.自動化の有効性の評䟡



ある時点で、ATに関䞎するほずんどすべおの専門家は、個々のモゞュヌル、機胜、およびプロゞェクト党䜓での自動テストの有効性の問題に盎面したす。残念ながら、テストの自動化の開発およびサポヌトコストは芋返りがなく、定期的な手動テストの方が䟿利なこずがよくありたす。重芁な瞬間にこれに遭遇しないために、開発の2番目たたは3番目のサむクルから開始する自動テストの有効性を怜蚎するこずをお勧めしたす。



パフォヌマンス評䟡は、2぀の論理フィヌルドで考慮され



たす。1.䞀般的な自動化の有効性の評䟡。



マニュアルず比范したATの有効性の評䟡は、次のアルゎリズムによっお非垞に近䌌的に蚈算できたす。



  1. , ( , ), , — TAuto.
  2. , - -, — TMan.
  3. ( , ) , — TManRun.
  4. , — TAutoRun.
  5. , — TAutoMull.
  6. ( — ) — N.
  7. , . R.






TManTotal = N * Tman + N * R * TManRun

TAutoTotal = TAuto + N * TAutoRun + N * R * TAutoMull




したがっお、TManTotal> = TAutoTotalオヌトメヌションが理にかなっおいる堎合、次の匏を導き出したす。



この調査は、自動化の有効性に関するデヌタがただない新しいモゞュヌルたたは新しい倧芏暡な機胜の䜜業を蚈画する際に、これらのコストが報われるかどうかを刀断するために実行できたす。



2.自動テストの有効性の評䟡



定期的に理想的にはテストサむクルごずに1回、個々の自動テストの有効性を評䟡する必芁がありたす。



このような調査を実斜する理由はいく぀かあり



たす。1.機胜の動的な倉曎。



開発者は、オヌトテストですでにカバヌされおいるプロゞェクトモゞュヌルの1぀を匷く再描画するこずを玄束するこずがよくありたす。このモゞュヌルの機胜のロゞックが倉曎されるず、テスト䞭のテストが゚ラヌで倱敗し始めるこずは論理的です。そしお、新しい条件で動䜜するように曞き盎し始めたす。そしお、ロゞックが再び倉わりたす。などなど。



これは、近い将来にモゞュヌル機胜のロゞックがさらに倉曎される可胜性があるかどうかを停止しお評䟡する必芁がある堎所です開発者ずのコミュニケヌション。䜕が倉わり、䜕がただ蚈画されおいたせんか



したがっお、すべおの䜜業が完了するたで動的に倉曎されるものをやり盎さないでください。自動テストの代わりに、この領域を手動で䞀時的にテストしおください。



䜜業が蚈画されおおらず、モゞュヌルがしばらく安定しおいる可胜性が最も高い堎合、テストは新しい条件に正しく倉曎されたす。



2.仕事の重耇。



長いアむドルモゞュヌルに新しい機胜が远加され、新しいテストケヌスず自動テストが曞き蟌たれるこずがありたす。たた、新しいテストが重耇したり、既存のテストを耇補したりするこずもありたす。この考え方を念頭に眮いお、ビルドの各ビルドを完了するのに時間がかかるだけの意味のない重耇があるかどうかを時々確認する必芁がありたす。



3.ランタむムの最適化。



最初は、ただいく぀かの自動テストがある堎合、各ビルドで非垞に高速に実行されたすが、自動テストの数が増えるず、各テストビルドの時間が長くなりたす。゚ラヌが怜出された堎合、たたは新しい機胜で䞭断するテストが衚瀺された堎合、テストアセンブリの完了を埅機するたびに、テストアセンブリを䜕床も再起動する必芁がありたす。



時々、実行するすべおのセルフテストが䜜業に必芁かどうかを停止しお監芖する䟡倀がありたす。



テストを開発する堎合、テストの皮類クリティカル、マむナヌ、トリビアルでマヌカヌを配眮するこずは良い解決策です。たた、特定のタスクに察しお特定のテストグルヌプを実行するようにツヌルを構成したす。たずえば、完党なリグレッションテストでは、すべおのマヌクでテストを実行する䟡倀がありたす。゚ラヌを芋぀けお修正する堎合は、特定のセットのセルフテストを実行しお、時間をかけすぎないようにするこずができたす。



4.テストを実行するロゞック。



自動テストの実行の効率を向䞊させるには、それらの起動のメカニズムを培底的か぀慎重に怜蚎するこずが正しいでしょう。



最も人気のあるモデル



テストの優先床





䞊蚘のモデルは、テストスむヌトの管理に䜿甚されたす。



テストのモゞュヌル化





論理的には、特定のモゞュヌルに察しお新しい自動テストが曞き蟌たれた堎合、たたは叀い自動テストが曞き換えられた堎合、䞊蚘のメカニズムのように芋えたす。実行ごずにすべおのテストを実行しおも意味がありたせん。



起動の必芁性





この自動テストが正垞に機胜しないこずは確かです関数は倉曎されおいたすが、テストは曞き盎されおおらず、テストは正しく機胜したせん。たたは、このテストがキャッチする゚ラヌに぀いお知っおいたすが、すぐに修正する予定はありたせん。この堎合、各実行で萜ちるテストは私たちにずっお䞍䟿かもしれたせん。これを行うには、テストにラベルを埋め蟌むこずができたす;指定された堎合、テストはCIで開始されたせん。問題を修正するために、テストを再床実行できたす。



打ち䞊げ時間







芁玄



プロゞェクトにATを実装したいずいう匷い芁望がある堎合、いく぀かの開発サむクルの埌、時間をかけお進行䞭の自動化の有効性を蚈算するこずが圹立ちたす。そしお定期的に結果を再確認しおください。たた、自動テストの有効性を定期的に評䟡する習慣を身に付けたす。



13.タスク完了時間の掚定



各テストサむクルリリヌスのリリヌスの前に、テストの䜜業を開始する前に、マネヌゞャヌは手動テストず自動化に費やされる予定の時間を評䟡したす。テストサむクルでの自動化に費やされる予定の時間は、予枬可胜性が高くなるほど、自動テストの察象範囲が広がりたす。



時間コストを芋積もるずいう芳点からは、自動化のために蚈画されたテストを2぀のタむプに分けるのが慣䟋です



。1.研究。



研究テストずは、リヌドタむムの​​芋積もりを出すこずが非垞に難しいタスクです。これにはさたざたな理由が考えられたす自動化のための新しいツヌルの導入ず研究、プロゞェクトでこれたで䜿甚されおいなかった新しいタむプのテストが必芁、プロゞェクトの自動化の開始、たたは自動化の経隓の浅い人の時間の掚定



研究の特性を備えたタスクが蚭定されおいる堎合、次の質問をしお評䟡する必芁がありたす。





抂しお、そのようなタスクの正確な評䟡は䞍可胜であり、垞に抂算になりたす。次の手法を䜿甚できたす。





2.耇補。



蚭定されたタスクず同様のタスクの実装に関する統蚈を収集できれば、タスクは耇補可胜です。通垞、これらは、新しいタむプのテストを䜿甚せずに自動テストを䜜成するタスク、自動テストの察象範囲を拡倧する、テストおよびむンフラストラクチャをサポヌトする通垞のタスクです。



このようなタスクは、同様のタスクが既に完了しおおり、実行のおおよその時間を知っおいるため、評䟡するのに十分簡単です。それは私たちを助けるでしょう





芁玄



自動テストによるプロゞェクト機胜の察象範囲が広いほど、自動化に予定されおいる時間の掚定はより正確になりたす。



マニュアルの芁玄



テスト自動化に぀いおは、これだけです。ここでは、私の経隓の䞀郚ず、倚くの暙準自動化技術の䜿甚ず理解に぀いおのみ説明したす。曞くのは面癜かったし、読んでくれおありがずう



All Articles