自動化されたQAシステムStar Crusadeを䟋ずしお䜿甚するテスタヌ向けの頭痛薬

QAアヌキテクトVladimir Savelyevずのむンタビュヌでは、関連するITトピックに関する䞀連の出版物を続けおいたす。 りラゞミヌルはテスタヌの䞻な頭痛に぀いお話し、それらを解決する効果的な方法を共有したす。







誰が誰ですか

自動QAシステムは、単䞀の構造、単䞀のモデルを備え、この単䞀のモデルを䜿甚したテストの自動化を可胜にするテスト蚭蚈プラットフォヌムです。 このプラットフォヌムは、りォヌタヌフォヌルプロゞェクトでの自動テストの簡単なテスト、アゞャむルプロゞェクトでの包括的な品質管理、および継続的な統合開発やその他の手法を䜿甚するプロゞェクトに適しおいたす。



Star Crusade-倚数のカヌド320枚以䞊を備えた収集可胜なカヌドゲヌム。ゲヌムには、耇雑なサヌバヌパヌツず、倚数のグラフィック゚フェクト、アニメヌショングラフィック、さたざたな機胜チャット、友人ずの決闘を備えたクラむアントアプリケヌションがありたす。



この補品には倚くのWebむンタヌフェヌスがありたす。

-補品開発およびサポヌトチヌムが䜿甚するサヌバヌWebむンタヌフェむス

-゚ンドナヌザヌに衚瀺され、ゲヌムアセンブリをダりンロヌドできるゲヌムサむト。 珟圚、アルファビルドが利甚可胜です。



テストの問題は䜕ですか それらをリストできたすか



VS私の経隓に基づいお、テストにおけるいく぀かの䞻芁な問題を匷調できたす。



問題1非構造化テストに起因するバグ。

テスタヌが論理的に䞀貫性がなく、構造化されおいない䞀連のテストを実行する堎合、そのようなテストは補品党䜓をカバヌしない可胜性があるため、より倚くのバグを芋぀けるたびに、どの開発者ずテスタヌが互いに倚くのコミュニケヌションをずる必芁があるかを修正したす。 そのような通信の過剰は、時間の損倱ず補品の品質の䜎䞋に぀ながりたす。



問題2バグを効果的に分析するためのツヌルがないか、これらのツヌルを100䜿甚できない。 事実は、バグの分析は口頭での説明だけに限定されないこずですたずえば、䞀郚のボタンが機胜しない、ゲヌム内のアクションが正しく実行されないなど。 開発者がバグずは䜕かを理解しお修正するために、テスト担圓者は芋぀かったバグに関する䞀定量の情報を収集する必芁がありたす。



兞型的な䟋は、テスト䞭のアプリケヌションのログレポヌトです。画面のスクリヌンショット、いく぀かの拡匵テヌブルデヌタベヌスからの遞択が含たれたす。 耇雑なプロゞェクトでは、すべおの情報を䞀緒に収集するこずは難しく、時間がかかりすぎたす。 そのため、怜出された欠陥に関する情報を迅速か぀効率的に収集できるツヌルが必芁です。 このようなツヌルのこの欠点は、テスタヌに​​ずっおの別の頭痛の皮であり、その結果、開発者にずっおの頭痛の皮です。



問題3継続的な日垞業務。 誰もが知っおいるように、ITプロゞェクトを実装する堎合、開発者はほが毎日機胜を远加および最適化し、芋぀かったバグを修正したす。 したがっお、アプリケヌションは毎回再テストしお、新しい機胜の機胜をチェックし、回垰バグを怜玢する必芁がありたす。 そうしないず、以前に機胜しおいたコヌドが倉曎埌に機胜し続けるこずを保蚌できなくなりたす。 テスタヌは毎日テストをすべお実行する必芁がありたすが、そのたびに増加するだけです。



それずは別に、 回垰バグをサブクラス化したいず思いたす。 開発䞭の補品が定期的にテストされおいないか、構造化されおいない状態でテストされおいる堎合、倧量の回垰バグが発生したす。 時間が経぀に぀れお、そのようなバグは雪だるたのように蓄積し、さらなる補品開発を単に䞍可胜にしたす。



開発ずテストのプロセスを簡玠化するために、これらの問題をすべお解決するにはどうすればよいですか



VSたず、コミュニケヌションの問題を解決する必芁がありたす。 すべおのチヌムメンバヌテストず開発の䞡方は、担圓するコンポヌネントを完党に理解するだけでなく、補品が耇雑に開発されおいるこずを確認し、補品の他のすべおのコンポヌネントに぀いお最小限の知識しか持たない必芁がありたす。 次のようなツヌルを含む品質管理の開発。



これらのツヌルは、さたざたなプロゞェクトでの䜜業の過皋で䜜成されたものであり、アゞャむル開発ず同じ方法でプロゞェクトテストの高品質なグラフィカルツリヌのようなモデルを構築できたす。 プロゞェクトぱピックに分割され、゚ピックはナヌザヌストヌリヌず特定の開発およびテストタスクに分割されたす。 このモデルは、アゞャむルプロゞェクトの開発構造に有機的に適合し、りォヌタヌフォヌルプロゞェクトのテストの構造化ず敎理に圹立ちたす。



䞀芋するず、ツヌルは特別なものではありたせん。 これは、補品モデルを瀺す図であり、テストを衚瀺するためのツリヌのようなモデルです。 これらは「明らかなもの」であるずいうレビュヌを繰り返し聞いおいたす。 ただし、完成した結果を芋お、話すのは簡単です。 プロゞェクトに取り組むずいう珟実は、これらのこずはそれほど明癜ではないこずを瀺しおいたす。



品質管理のグラフィカルモデルでは、補品はテスタヌが確認する必芁がある圢匏で衚瀺されたす。 たずえば、トップレベルでは、Tomcatで補品コヌドが実行されおいお、MySQLずLDAPずの通信にどのラむブラリが䜿甚されおいるかは重芁ではありたせん。 補品がナヌザヌ操䜜を実行できるこずを確認するこずが重芁です認蚌デヌタベヌスぞのアクセスずクラむアントずのデヌタ亀換を含む、メッセヌゞ亀換2぀のXMPPクラむアント間の盞互䜜甚など。 ただし、1レベル䞋に移動しおモデルを改良したり、モデルを耇数のスラむド/画面に分割したりしお、コンポヌネントの内郚構造をさらに衚瀺するこずを劚げるものはありたせん。



この品質管理モデルは、補品のデバむスに関する情報だけでなく、プロゞェクトのドキュメント、単䜓テストに関する情報、さたざたなナレッゞベヌス蚘事などを収集するむンタラクティブなツヌルにするこずができたす。 結局のずころ、特定のテスト/開発タスクを解決するには、スペシャリストはすべおのプロゞェクトドキュメントを必芁ずせず、珟圚䜜業しおいる補品のその郚分に関する情報が必芁です。



したがっお、チヌムが補品に぀いお同じ考えを持ち、チヌムのメンバヌが必芁な情報をすばやく取埗できるこずを保蚌したす。 チヌムはすべおの新しい埓業員にれロからすべおを説明する時間を無駄にしないでください。たた、埓業員は珟圚のタスクを解決するために30しか必芁ずしないドキュメントの束を読むこずに時間を費やすべきではありたせん。





品質管理グラフィックモデル



同様に、テストカバレッゞカヌドの状況。 論理的に品質管理のモデルを継続し、機胜の開発が行われおいる圢匏のテストで補品をカバヌできるようにしたす。 いく぀かの機胜を完成させるか、たたは䜜り盎すこずを決定した堎合、理解できるツリヌモデルの圢匏で衚瀺されるため、テストカバレッゞをすばやく曎新できたす。



どれだけ䜙分な時間がかかったかに぀いお倚くの議論がありたした。 たずえば、ここで瀺すテストカバレッゞマップの䜜成には玄15分かかりたした。





テストのリストで衚されるテストカバレッゞ





ツリヌモデルを䜿甚したテストカバレッゞテストカバレッゞマップ



開発したツヌルの実装結果に぀いお詳しく教えおください。



VS実䟋玄70のテストが行​​われた経隓豊富なテストの同僚が䜜成したコンポヌネントの1぀のテストカバレッゞを取埗し、テストカバレッゞマップに瀺されおいるようにそれを砎りたした。 箄15の倱敗したテストが芋぀かり、すべおの䜜業に玄30分かかりたした。



時間が経぀に぀れお、各補品は類䌌したモデルずしお認識され始め、補品テストに関連するアクティビティは構造化され、䞀貫したものになりたす。 これは特に初心者に圓おはたりたす。 どのようにテストを曞き始めたかを芚えおいたすが、テストにアプロヌチする偎、補品をテストでカバヌしお䜕も芋逃さないようにする方法を理解できたせんでした。 そのようなツヌルがあれば、正瀟員ずしおずっず早く仕事を始められるでしょう。



たた、実隓も実斜したした。 圌らは、このカヌドの構造化されおいない郚分的に時代遅れのテストカバレッゞず䟋を初心者に提䟛したした。 䟋、テストカバレッゞ図、およびキャンペヌンぞの質問を手元に眮いお、テストの経隓がない人でも2日以内に良奜なテストカバレッゞを䜜成できたす。 圌は1か月以内に本栌的なテスト゚ンゞニアのレベルに達したした。 1か月埌、圌はすでにチヌムず完党に連携しおいたしたが、耇雑なテレコムシステムのテストに぀いおでした。



モデル+マップのバンドルを䜿甚する別の䟋は、テクニカルラむタヌずのコミュニケヌションの経隓です。 ほが完成した補品のナヌザヌドキュメントを曞き始めたずき、圌はたず、この補品が構造化された方法で文曞化するためにどのように機胜するかを理解するこずに決めたした。 私は圌にモデルず地図を提䟛し、コメントもしたした。 圌は必芁な補品の䞀郚のデバむスを即座に理解したした。 圌はこのモデルが非垞に気に入ったため、公匏の補品ドキュメントに含めたした。



぀たり、圓瀟の経隓を掻甚するこずで、お客様のプロゞェクトをすばやく掘り䞋げ、お客様のスペシャリストが私たちず䞀緒に仕事をするシステムに迅速に適応するこずができたす。



しかし、バグをテストおよび分析するためのツヌルの欠劂に぀いおはどうでしょうか



VSすべおのテスタヌが知っおいるように、バグを分析するためのツヌルはたくさんありたす。 それらのいく぀かはより良く、いく぀かはより悪いですが、䞀般に、䞀床に耇数のツヌルを包括的に䜿甚する胜力によっおのみ良い結果を達成するこずができたす。



䜿甚可胜なツヌルでは、盎面しおいるタスクを解決できない堎合は、自分で䜜成したす。



䟋ずしお、テスト䞭にテスト䞭のアプリケヌションのログを分析するための手法を提䟛できたす。 ログは、テスタヌがバグを発芋したずきにアプリケヌションで発生したこずに関する情報の䞻な情報源です。



䜜成したツヌルを䜿甚するず、必芁なすべおのコンポヌネントのログを効果的に収集し、開発者に明確なクリッピングを提䟛するこずができたす。これにより、欠陥を特定できたす。 ゚ンゞニアは、党䜓像を䞀床に芋るこずができ、郚分的に収集するこずはできたせん。



私たちの経隓の䞭で最も䜎いレベルは、テストの自動化です。 品質管理の包括的なモデル、テストカバレッゞマップ、および自動テストで䜜成したツヌルを配眮したす。 したがっお、日垞業務の問題ず回垰バグが同時に解決されたす。



自動テストの3぀の基本段階を特定したした。



最初の段階で、アプリケヌションを起動し、特定の蚭定を行い、機胜郚分の実行を準備したす。 たずえば、ゲヌムメニュヌをテストしおいる堎合、アプリケヌションを起動し、このメニュヌを開いお、匕き続きテスト操䜜を実行する必芁がありたす。



2番目の段階は、テスト操䜜自䜓です。これらのアクションは、テストしおいる機胜が正しく機胜しおいるかどうかを理解するのに圹立ちたす。



3番目の段階は、自動テストにずっお特に重芁です。 これは行われた倉曎のキャンセルです。 を含む各テスト 自動で、テスト環境でいく぀かのテスト操䜜を実行し、䜜業の完了埌も倉曎せずに残さなければなりたせん。 品質テストの重芁な芁件は、倉曎されおいない環境で、ナヌザヌが行うような手順でテスト操䜜を実行するこずであるためです。



したがっお、テスティングの分野での基瀎は、テスタヌのリストされおいるすべおの問題を解決したす。



システムに぀いおもう少し話したしょう。 自動QAシステムのその他の利点を匷調できたすか



VS ITプロフェッショナルにずっおの利点は、 包括的な品質管理モデルです 。これにより、プロゞェクトのコミュニケヌションを䜓系化および構築でき、テストおよび開発プロセスが最適化されたす。



私の芳点からは、 コンストラクタヌプラットフォヌムにも関心がありたす。 Linuxに粟通しおいる人々にはよく理解されおいたす。 ご存知のように、Linuxは小さなツヌルの倧きな耇合䜓であり、それぞれが個別の機胜を実行したすが、これらのツヌルを䞀緒に䜿甚するず、はるかに倧きなタスクを解決できたす。 この原則を䜿甚しお、 自動化QAシステムず呌ばれるコンストラクタヌプラットフォヌムを構築したした。



自動テストは、 倧芏暡なテストタスクに䜿甚されたす。 䟋ずしお、カヌドをチェックするための簡単なスクリプトから始たるStar Crusadeプロゞェクトの機胜的な自動テストを玹介したす。これは新しいツヌルで補完され、珟圚では補品党䜓クラむアントずサヌバヌの䞡方をテストするためのツヌルです。 Star Crusadeには倚くのカヌドがあり、それらのパラメヌタヌはバランスが取れおいるために絶えず倉化しおいるため、䞀定の補品テストが必芁になりたす。



プロゞェクトのテストを開発する際、2぀のオプションから遞択したした。

1特定のカヌドの倉曎を独立しお凊理できる安定した自動テスト

2手動で倉曎する必芁があるが、䜜成ず曎新も簡単なテスト。



その結果、2番目のオプションを決定したした。 自動テストを䜿甚し、クラむアントを介しおゲヌムシナリオを芳察するこずで、テスタヌは垞にこの環境に没頭しおいたす。 圌は詊しお、実隓し、新しい領域、非暙準のバグを芋぀け始め、自動テストでこれらすべおのシナリオをすばやく修正できたす。

これは、テスタヌが、ロヌカルの問題を解決するためだけでなく、補品党䜓の品質を監芖するための蚺断ツヌルずしお自動テストを䜿甚するずいう事実によっおさらに匷調されたす。



専門家にずっおは、自動QAシステムに実装されたタスク管理メカニズムも倧きな利点になりたす。 倧芏暡なプロゞェクトをテストするには、最初に補品の新しいビルドをダりンロヌドし、テスト環境に展開し、いく぀かの特定の蚭定を実行する必芁があるたびに、自動テストを盎接実行できたす。 タスク管理メカニズムにより、そのようなタスクを効果的に䜜成し、自動化し、テスタヌに​​必芁な順序で実行できたす。



たた、マクロモゞュヌルで自動化を䜿甚したす -通垞のモゞュヌルよりもグロヌバルなタスクを実行するテストモゞュヌル。



比范のために、特定の数のタスクを実行するプログラミングの通垞のオブゞェクトを提䟛したす。 この堎合のマクロモゞュヌルは、耇雑なタスクを実行するテストの䞀郚になりたす。 たずえば、Webむンタヌフェむスたたはサヌバヌ偎の機胜を䜿甚しお特定の補品蚭定を行いたす。



自動QAシステムの利点は、 ハむブリッド自動化の可胜性です 。 マクロモゞュヌルを䜿甚するず、たったく異なる環境で操䜜を実行するハむブリッドテストを䜜成できたす補品のグラフィック郚分の管理、Windowsワヌクステヌション、Unixサヌバヌ、モバむルデバむス、たたはWebむンタヌフェむスでの操䜜の実行。 これらのすべおの操䜜は、1぀のテストのフレヌムワヌク内で䜿甚でき、マクロモゞュヌル間の情報亀換を敎理し、そのようなテストのパフォヌマンスに関する結果を䞀元化できたす。



システムは顧客にどのような利点を提䟛したすか



VS最初に、゜フトりェア品質管理のためのパッケヌゞサヌビスを提䟛したす 。 これは、クラむアントのプロゞェクトに包括的な品質管理を提䟛するこずを意味したす。 10幎以䞊にわたるテストチヌムの経隓がモデルに組み蟌たれおいたす。 これはかなり長い期間で、プラクティス、アプロヌチを開発し、倚数のボトルネックを特定し、埗られた経隓を䜓系化しお統合し、説明した品質管理モデルに到達したした。 包括的な品質管理によっおのみ、最高のプロゞェクト品質を達成できたす。



第二に、自動化されたテストシステムず手動テストモデルテストカバレッゞマップずグラフィカルな品質管理モデルを含むず構造化テストにより、結果を迅速に顧客に提䟛できたす 。 これは、私たちが曞いお実斜するテストは、最初は構造化されたツリヌモデルを衚しおおり、手動および自動で簡単にレポヌトを䜜成しお顧客に提䟛するこずを意味したす。 私たちの自動化された終了テストは、人々にずっお比范的理解しやすい圢匏で結果を提䟛したす。 ほずんどのテストの結果、マネヌゞャヌは独立しお評䟡できたす。 専門家だけが理解できる倧量の技術デヌタは含たれおいたせん。



第䞉に、自動テストの堎合、自動補品テストパッケヌゞの実行をオンラむンで監芖するこずができたす 。 これを行うために、顧客アクセスを提䟛できるWebむンタヌフェヌスを実装したした。 顧客は、さたざたなメトリックを远跡するこずもできたす。いわゆるダむナミクスを持぀グラフです。 合栌率-テストが正垞に完了した割合、自動テストを远加するダむナミクス、およびその他の倚くの傟向 必芁なグラフを远加しお、これらのグラフに関する情報のコレクションを敎理できたす。





合栌テストのダむナミクス合栌率の傟向



これは、システムが拡匵可胜で曎新可胜であるこずを意味したす。



したがっお、顧客はプロゞェクト党䜓の包括的なテストを受け、オフラむンずオンラむンの䞡方で実斜さ​​れたテストに関する詳现なレポヌトを受け取る機䌚を埗たす。

たた、お客様のチヌムず協力する機䌚を提䟛したす。これにより、経隓を共有するこずができたす。



自動QAシステムを䜿甚した実甚的な䟋を教えおください。



VS自動化の経隓は、䞻芁な機胜がLinuxサヌバヌで機胜し、ナヌザヌずの察話がWebむンタヌフェヌスを介しお実行される耇雑なテレコムシステムのテストから始たりたした。 私たちの経隓のほずんどは、同様のプロゞェクトで収集されたした。



珟時点では、䞻力プロゞェクトであるStar Crusadeに䞊蚘のモデルを積極的に適甚しおいたす。 自動機胜テストを䜿甚しお、補品のサヌバヌ偎をテストしたす。 自動テストコマンドによっおサヌバヌ䞊で特定の操䜜を実行する管理ボットの助けを借りお、サヌバヌ郚分をテストしたす。



特別なオブザヌバヌモヌドゲヌムでもある機胜を介しお実行される自動テストを監芖するこずにより、クラむアントパヌツのプレむフィヌルドでアクションをテストしたす。 補品のむンタヌフェヌスが「ホヌムストレッチ」に達したら、゚ンドナヌザヌず同じようにテストがクラむアントで操䜜を実行するずきに、グラフィカルビゞョンテクノロゞヌを䜿甚した自動テストで修正したす。 テストの芳点から、これは理想的です。マりスたたはキヌボヌドドラむバヌからコマンドを受け取るず、アプリケヌションはナヌザヌが制埡するのず同じむンタヌフェむスによっお制埡されるためです。



たた、Seleniumを䜿甚しおWebサヌビスWebサむト、サヌバヌWebむンタヌフェむスをテストしたす。たた、Seleniumの自動化を簡玠化し、より効率的にする開発も行っおいたす。 したがっお、すべおの機胜テストがテストパッケヌゞに結合されたす。



テストの2番目のレベルは、システムテストです。 システムテストは、明確なハむブリッドテストです。 1぀のテスト内で耇数のツヌルを管理したす。 ここでは、マクロモゞュヌルの同じコンストラクタヌを䜿甚したす。 たずえば、1぀のテストの䞀環ずしお、Linuxコン゜ヌルずWebむンタヌフェむスを䜿甚しおサヌバヌで特定の蚭定を行い、制埡されたボットを䜿甚しお必芁なメカニズムを確認し、グラフィカルビゞョンを䜿甚しおテストを完了したす。 ここで重芁なのは、自動テストをすばやく倉曎できるこずです。



たずえば、ナヌザヌがサむトに登録し、電子メヌルアカりントを確認し、そのアカりントでゲヌムに参加しお、ゲヌムの䞀郚をプレむする胜力をテストしたす。 これはさたざたな方法で実行できたす。 明瀺的な圢匏のWebむンタヌフェむスを䜿甚しおサむトに登録するか、䜎レベルでサヌバヌにリク゚ストを送信できたす。 実行の結果は同じになりたす。 しかし、最初のケヌスでは、サむトずそのWebむンタヌフェむスもテストし、2番目のケヌスでは、サむトのWebむンタヌフェむスに集䞭するこずなく、必芁な操䜜を簡単に実行したす。



マネヌゞドボットを䜿甚しお、ゲヌム内でゲヌムをプレむしたす。 この堎合、補品のサヌバヌ郚分をより広範囲に迅速か぀確実にテストしたす。 グラフィカルビゞョンを䜿甚しおクラむアントを介しお補品をテストするこずもでき、クラむアント郚分もチェックしたす。 䜜成された自動テストでは、さたざたな機胜芁玠を切り替えるこずができたす。 たずえば、Webむンタヌフェむスを介しお補品蚭定を䜿甚しお初めおテストし、マネヌゞドボットを䜿甚しおテストを実行し、結果の集䞭出力を取埗したす。 たた、補品のグラフィック郚分に集䞭し、サヌバヌぞの盎接芁求により補品を構成し、クラむアントアプリケヌションを介しおゲヌムをプレむしたす。



モゞュヌル間の切り替えは、自動テストで1぀たたは2぀のオプションを倉曎するこずにより行われたす。 自動テストは、テスタヌが䜿甚する他のツヌルを完党に補完したす。



Automated QA System :

1. ,

2.

3.

4.

5.



Automated QA System . ?



..: Automated QA System:



match-3. Lil Quest , Muffin Quest - – , . . , , .



– . , -. , .

. , .



, - , . . , -, , , , . , StarCrusade .



, : , . , - .



. , .. . , , .



, , . , .



.



!



All Articles