Hans Bouwaldaの蚘事「Action-based Testing」の翻蚳

LogiGearのCTOであるHans Bouvaldaによるアゞャむルプロゞェクトのテスト自動化に関連する神話や䞍安を払拭する蚘事の翻蚳を準備したした。



ハンス・ブワルダはプロずしおのキャリアの䞭で、䞖界䞭の倧手䌁業や組織で゜フトりェア開発者、マネヌゞャヌ、チヌフコンサルタントずしお幅広い経隓を積んできたした。 圌が提案したテスト方法アクションに基づいお、メロドラマのスタむルでは、倚くの顧客が、倧量の耇雑なテストタスクのためのスケヌラブルで容易にサポヌトされる゜リュヌションを開発するのに圹立ちたした。 ハンスはしばしば囜際䌚議で講挔者を務めおいたす。 たた、 Integrated Test Design and Automationの共著者でもありたす。





機胜テストの自動化はアゞャむルプロゞェクトにどのように適合したすか 今日、私たちは垞にこの問題に盎面しおいたす。 アゞャむル戊略はさらに普及し぀぀ありたすが、アゞャむルの反埩ずスプリントは自動化する時間がないため、機胜テストは原則ずしお䟝然ずしお手動で実行されたす。 機胜テストずは異なり、単䜓テストの効果的な自動化が䞀般的になっおいたす。 この質問に答えるには、次のタスクを解決したす。





この蚘事では、アクションベヌスのテスト方法がこれらのタスクの実装にどのように圹立぀かを瀺したす。 これを行うために、アクションに基づくテスト方法を簡単に玹介し、それを䜿甚しおアゞャむルプロゞェクトの芁件に埓っおテストの蚭蚈ず自動化を実珟する方法を説明したす。



アクションベヌスのテスト



アクションベヌスのテスト方法の詳现に぀いお孊ぶこずができる倚くの゜ヌスがありたす。 ここでは、この方法の基瀎ずなる基本原則のみを芁玄したす。



1. 1぀ではなく、3぀のラむフサむクル



通垞、テストおよび自動化タスクは、アプロヌチがカスケヌド接続されおいるかアゞャむルであるかに関係なく、システム開発のラむフサむクルに含たれたす。 ただし、ABTでは、3぀のラむフサむクルが区別されたす。これらのラむフサむクルは、盞互䟝存しおいたすが、ABTプロゞェクトで個別の゚ンティティずしお蚈画および管理されおいたす。



  1. システム開発システム開発のラむフサむクルの埓来のたたは柔軟なモデルに埓っお実行されたす。
  2. テスト開発-テスト蚭蚈、テスト実行、テスト結果の分析、テストサポヌトが含たれたす。
  3. 自動化-䞻な泚意は、アクションのキヌワヌド、アクションの解釈、ナヌザヌず他のむンタヌフェむスの比范、技術的問題の研究などに向けられおいたす。


2.テスト蚭蚈



䞻な堎所はテストの蚭蚈です。 これは自動化を成功させる䞻な芁因であり、䜿甚されおいる自動化技術よりもはるかに重芁です。 ABTでは、いわゆるテストモゞュヌルが定矩されおいる高レベルテストの高品質な蚭蚈を䜜成するこずが重芁です。 各テストモゞュヌルは個別のミニプロゞェクトずしお開発されおおり、他のモゞュヌルずは異なる明確に定矩されたコンテンツを持぀必芁がありたす。



テストモゞュヌルには、テストの目的ずアクションラむンが含たれおいたす。 テストの目的は、このモゞュヌルのフレヌムワヌク内で䜕をテストするかを決定する個別の蚀語芏定の圢匏でテストモゞュヌルの内容を蚭定したす。



テストモゞュヌルテヌブル圢匏で配眮のテストは、䞀連のアクションラむンによっお定矩されたす。通垞、アクションラむンは、1぀以䞊のテストシナリオの圢匏で線成されたす。 アクションの各行はアクションを定矩し、アクションを定矩するワヌキングワヌドず、入力倀や期埅される結果を含むアクションのデヌタを定矩する匕数を含みたす。



ABTでは、テストシナリオは他のテスト方法ず同じ倀を持たないこずに泚意しおください。 テストシナリオは、テストの開発にずっお重芁ではない小さな独立したコンポヌネントであるず考えおいたす。 テストスクリプトの定矩枈みリストを䜜成する代わりに、テストスクリプトが元の芁玠ではなくテスト蚭蚈の結果ずしお含たれるテストモゞュヌルのリストを䜜成したす。



効率は、さたざたなテストシナリオを倉えるこずによっお提䟛されたす。 さらに、各テストケヌスは次のケヌスの前提条件を満たし、テスト実行の適切なフロヌを提䟛したす。



3.自動化



ABTでは、自動化䜜業はテスト開発ずは別個のものです。 テストの蚭蚈ず自動化には、開発者のさたざたなスキルず胜力が必芁です。 おそらくそれらの䞡方に関䞎しおいる専門家がいたすが、私の経隓から刀断するず、圌らはしばしば芋぀かりたせん。 さらに、これらの2぀の領域は、テストの実行を保蚌する責任が異なりたす。



ABTでは、自動化゚ンゞニアがアクションの自動化ず「むンタヌフェヌス定矩」の䜜成に関䞎し、テスト䞭のシステムずさたざたなむンタヌフェヌスナヌザヌおよびその他ずの盞互䜜甚を制埡したす。 これらの自動化タスクを実行するには、特別なスキルず実務経隓が必芁です。



柔軟なテスト開発



ABTを2぀の独立したラむフサむクルテスト開発ずテスト自動化で䜿甚する堎合、自動テストをアゞャむルプロゞェクトに含めるために重芁な2぀のトピックに泚意する必芁がありたす。



  1. テストの蚭蚈ず開発。
  2. 自動化


スプリントでスクラム手法を䜿甚する堎合、アゞャむルプロゞェクトでのテストは3぀のプロセスに分けられたす。



  1. 通垞のシステム開発スプリントでのテスト。
  2. 開発スプリントの前に開発をテストしたす。
  3. 開発完了埌のテスト。


1.通垞のスプリントでのテスト



最も䞀般的な方法は、スプリントの䞀郚ずしおのテストの開発ず実行です。 スプリントでは、機胜は、顧客およびナヌザヌストヌリヌずの䌚話に基づいお決定され、正確にテストする必芁があるものを特定したす。 テストは、ABTテストモゞュヌルず同様の開発されたテスト、および研究ず察話型テストを通じお実行できたす。 さらに、将来の䜿甚に備えお、テストモゞュヌルで最も「興味深い」むンタラクティブテストの少なくずも䞀郚を実斜するこずが非垞に圹立ちたす。



単䜓テストはそれ自䜓非垞に重芁ですが、ABTでは、個々の機胜をテストするために、そのようなテストずそのアプリケヌションをさたざたな方向で再利甚する可胜性を考慮するこずは理にかなっおいたす。



単䜓テスト甚のテストモゞュヌルを定矩し、遞択したアクションに割り圓おるこずにより、それらを簡単に組み合わせお、スプリント䞭たたはスプリント埌にテスト䞭のシステムのより広範な倀ずさたざたな芁玠をテストできたす。



2.開発スプリントの前に開発をテストする



ABTメ゜ッドを䜿甚する堎合、アクション、特に高レベルのビゞネスアクションを䜿甚するず、技術的な偎面ではなくビゞネス機胜に焊点を圓おたテストを開発できたす。 このようなテストは、䞀般に高レベルのテストず呌ばれたす。 これらはナヌザヌむンタヌフェむス芁玠には関係したせんが、たずえば、䜏宅ロヌンのリク゚ストの蚘入や車のレンタルなどのビゞネストランザクションを察象ずしおいたす。



プロゞェクトの初期段階で、より高いレベルのテストを開発できたす。 開発の堎合、システム開発スプリントの完了を埅぀必芁はありたせん。この堎合、ビゞネス機胜を決定し、それらをチェックするための適切なテストを䜜成する時間が残っおいるためです。



ビゞネスレベルのテストの数ず必芁性は、特定の状況によっお異なりたす。 䞀般的に、次のこずをお勧めしたす。





3.スプリント埌のテスト



システムの個々の郚品のスプリントを完了し、これらの郚品を結合した埌、通垞、システム党䜓の品質ず芁件ぞの準拠を確認するために远加のテストが必芁です。 さらに、倉曎によっお圱響を受けなかったシステム芁玠を再テストしお、新しい芁玠が叀いシステム芁玠ず適切に盞互䜜甚するこずを確認するために、远加のテストが必芁になる堎合がありたす。 これは、たずえば、回垰スプリントたたはフォヌルトトレランススプリントで必芁になる堎合がありたす。



私の意芋では、このような「フォロヌアップテスト」は、事前に開発されたテストモゞュヌルず完党に自動化されたアクションを持぀こずが掚奚される䞻な領域です。 これにより、特にリリヌス日が近づいおいる堎合に貎重な時間を節玄できたす。



柔軟なテスト自動化



アゞャむルプロゞェクトでは、通垞、「タむムリヌな自動化」ずいう甚語を䜿甚しおテストの自動化を衚したす。 ABTメ゜ッドを䜿甚するず、この抂念が倉わり、「タむムリヌなテスト開発」のように聞こえたす。 いずれにせよ、高レベルの自動化は生産性の向䞊ずスプリントの加速に重芁な圹割を果たしたす。



迅速か぀タむムリヌに自動化を提䟛するには、次の芏則に埓う必芁がありたす。





1.初期段階でフレヌムワヌクを䜜成する



成功する自動化は、次のステップを開発するための匷固な基盀を䜜成するこずから始たりたす。 このようなフレヌムワヌクは、ナヌザヌむンタヌフェむスのすべおのクラスで必芁なすべおの操䜜を実行し、APIにアクセスし、デヌタベヌスク゚リを実行し、適切なプロトコルを䜿甚しおメッセヌゞをコンパむルおよび凊理するなど、さたざたな機胜を提䟛する必芁がありたす。



LogiGearのTestArchitectツヌルを䜿甚しお倚くの技術的機胜を利甚できたすが、ほずんどのプロゞェクトは顧客の特定の技術的問題に関連する研究開発から始たりたす。たずえば、レゞ​​甚のデバむスのモデリング、石油探査甚の3次元グラフィックスの操䜜、モバむルデバむスのテスト、蚺断機噚のファヌムりェアなど



できるだけ早くそのような技術的基瀎の䜜成を開始し、それに现心の泚意を払い、すべおの技術的問題を特定しお解決するこずが重芁です。 これにより、䜎レベルのアクションを実装し、開発スプリントなどの高レベルのアクションに䜿甚できたす。 さらに、初期段階で技術的基瀎を䜜成するこずで、その埌のリスクが軜枛されたす。



2.自動化の信頌性の向䞊



アゞャむルプロゞェクトの本質は、テスト䞭のシステムの倚くの芁玠が、スクラムのスプリントなど、反埩の䞀郚ずしおプログラムに実装された堎合にのみ明確になるこずです。 これは䞻に、ナヌザヌむンタヌフェむスのテストなど、自動化が特に重芁な領域に適甚されたす。 これらの芁玠は、開発プロセス䞭に倚くの倉曎を受ける可胜性がありたす。 同時に、自動化がボトルネックになるこずはありたせん。 この堎合、䞻なこずは柔軟性です。



アクションベヌスのテストモデルでは、個々のアクションの詳现を非衚瀺にできるため、必芁に応じお迅速に再構成できるため、必芁な柔軟性を提䟛できたす。 ただし、他の点を考慮する必芁がありたす。 ほずんどの堎合、私たちのプロゞェクトでは、「タむミング」の問題が発生したす。 倚くの堎合、自動化されたアクションを実行するには、テスト䞭のシステムが特定のアクションに応答し、以䞋を実行する準備ができるたで埅機する必芁がありたす。



この問題を解決するには、自動化゚ンゞニアがアクティブタむミングの可胜性を最倧限に掻甚する必芁があるずいう結論に達したした。 その実装のために、テスト䞭のシステムに基準-事前に決定された最倧倀を確立する必芁がありたす。 この倀に達するず、次のアクションぞの自動遷移がすぐに発生したす。 これらおよび類䌌の問題に十分な泚意を払うこずで、自動化の信頌性ず柔軟性を確保できたす。



3.テスト䞭のシステムのテスト容易性の確保



自動化の準備ずしお、システム開発者は、テスト察象のシステムのどの芁玠が自動化ツヌルぞの䟿利なアクセスを提䟛するかを瀺す必芁がありたす。 そのような芁玠が初期段階で識別され、芁件ずしお定矩されおいる堎合、スプリントに簡単に組み蟌むこずができたす。



良い䟋は、さたざたなプラットフォヌムでスクリヌンコントロヌルたたはHTML芁玠に䜿甚できる特定の識別プロパティの倀の䜿甚です。 ナヌザヌにはこれらのプロパティは衚瀺されたせんが、自動化ツヌルで䜿甚できたす。 このような倀を指定するず、蚭蚈の倉曎に関係なく、コントロヌルたたは他の芁玠のテストを原則ずしお簡単に自動化できたす。



これらの倀がプロゞェクトの初期段階で定矩されおいる堎合、たずえばTestArchitectなどのツヌルを䜿甚しお、「むンタヌフェヌス定矩」を䜜成し、テスト察象のシステムを構築する前でも䜿甚できたす。



このような䟿利なプロパティの䟋には、HTML芁玠のid属性、Java / Swingの名前、.NetおよびWPFのアクセシビリティ名がありたす。 これらはナヌザヌ゚クスペリ゚ンスに圱響したせんが、自動化ツヌルで䜿甚できたす。 さらに、このようなプロパティを䜿甚するず、ロヌカラむズの問題を解決できたす。碑文が別の蚀語で曞かれおいおも、[OK]ボタンは垞に芋぀かりたす。



4.自動化テスト



自動化をテストする必芁がありたす。 ABTでは、これはむンタヌフェむスのアクションず定矩をテストする必芁があるこずを意味したす。 自動化゚ンゞニアがテスタヌに​​提䟛する補品の䞀皮であり、この補品は高品質でなければなりたせん。 各プロゞェクトには、テスト察象のシステムではなく、アクションずむンタヌフェむスの定矩をテストするために蚭蚈されたテストモゞュヌルを含むTestArchitectツリヌのテスト内に少なくずも1぀のフォルダヌが必芁です。



テスト開発プロセスず同様に、経隓豊富な専門家の参加を埗お、自動化䜜業を適切に蚈画および線成する必芁がありたす。 この堎合、慎重なテスト開発蚈画ず自動化蚈画の組み合わせにより、アゞャむルプロゞェクトのすべおの芁件を正垞に満たすこずができたす。



11月22日に、ハンス・ブヌバルダは「 成功するテスト自動化のための5぀の重芁な芁因 」ずいうマスタヌクラスでモスクワに到着したす。



Hans Boowaldyのその他の蚘事はこちらにありたす 。



All Articles