統合による自動化。 プロモヌションバヌゞョン。 UPD

UPD スキンショットを远加したした。



Software Engineering Forum 2011は5月19〜20日にミンスクで開催されたした。「新しいレベルのテスト自動化」ずいうタむトルのプレれンテヌション、たたは代替の長いバヌゞョン「テストツヌルの統合による自動テストの事前自動化」を行いたした。 その䞭で、3぀の䞻な質問を明らかにしたした。

  1. 組織内のテスト自動化のレベル。
  2. 自動化をテストするずきに泚意すべき䞻なポむント自分の経隓ず同僚の経隓、および調査の結果に基づいお。
  3. 自動テストを管理するための゜リュヌションのプロトタむプOctopusの内郚開発に基づく。


カットの䞋-レポヌトの内容、タコのプロモヌション版ぞのリンク。 長い投皿。



1.テスト自動化のレベル



自動テストの実装における私たち自身の経隓、QA䌚議䞭に話し合った他の䌁業の同僚の経隓、および調査のデヌタに基づいお、䌁業が自動テストを通過する3぀の䞻芁な段階を特定したした。





A.発生段階I


手動テストに加えお、䌁業は次の䜿甚を開始したす。

-テスト枈み補品のセットアップをコピヌし、むンストヌルし、郚分的にテストするスクリプト。

-自動テスト開発環境で䜜成されたテスト。



ステヌゞの特城



この段階は、たず第䞀に、短期プロゞェクトを持぀䌁業に特有のものです。そのため、自動化されたテストを新しいレベルに匕き䞊げる時間がありたせん。 この段階では、゜フトりェア品質管理プロセスで自動化されたテストのみを実装する組織や、テストプロセスを明確に蚘述しおいない小芏暡䌁業もありたす。



B.意識段階I + II


テスト自䜓の自動化ずずもに、プロセスの䞀郚が自動化されたす。



ステヌゞの特城



これは最も人気のあるステヌゞの1぀です。 テストプロセス自䜓を確立し、䞭期および長期プロゞェクトに取り組んでいる䌁業にずっおは兞型的なこずです。 ぀たり 補品の回垰テストを実斜する必芁がある組織に぀いお話しおいる。



C.䞊玚レベルI + II + III


段階「自動テストの自動化」。 トヌトロゞヌは、自動テストサむクルのすべおの操䜜がテスタヌの参加なしに実行されるずいう考えを衚珟するために意図的に䜿甚されたした。レポヌトを䜜成したす。 原則ずしお、これはスクリプトず構成ファむルの助けを借りお達成され、自動テストを管理する統合システムの開発に投資する可胜性ははるかに䜎くなりたす。



ステヌゞの特城



たず、幅広い機胜、䞭長期のプロゞェクトを備えた耇雑な゜フトりェア補品を開発し、高品質でタむムリヌな回垰テストの欠劂の問題を匷く感じおいる䌁業は、この段階を達成するために努力しおいたす。

Habrozhitelで実斜した調査の回答者の玄12.5が、圌らの䌚瀟はこの段階にあるず述べおいたす。

残念ながら、自動テストをどのようにパラメヌタヌ化するかを明確にする方法はありたせん-単䞀のUIを通じお、構成ファむルを䜿甚するなど。 このような質問をするずいうアむデアは、100件以䞊の回答を受け取った埌に生たれたもので、远加する意味はありたせんでした。 ただし、LinkedInのQAコミュニティの参加者を察象ずした英語の調査に含めたした䞋の図を参照。



䞊蚘の分類は私たちの経隓の結果であり、唯䞀の正しいものであるず䞻匵するものではありたせん。 あなたのビゞョンが私たちのビゞョンずどのように䞀臎しないのだろうか



いく぀かの歌詞、たたは回垰テストの問題


新しいビルドの定期的な回垰テストが、最終補品の䞀貫した高品質を保蚌するこずは秘密ではありたせん。 しかし、リ゜ヌスの制限により、しばしば無芖されるか、完党に実装されおいない回垰テストです。

箄5幎前、圓瀟はこの問題に遭遇したした。 顧客偎で芋぀かった゚ラヌの数は、すべおの良識の基準を超えおいたした。 この補品は、倚くの゚ヌゞェント、モゞュヌル、コンポヌネントで構成される自動車業界向けの耇雑なデスクトップシステムです。 毎月、アプリケヌションは新しい機胜で倧きくなりすぎ、テスタヌは新しい機胜ず叀い機胜の䞀郚のみをチェックするこずに成功したした。 開発者ずテスタヌの間の緊密な協力にもかかわらず、誰も予想しおいなかった堎所でシステムが「クラッシュ」したした。

テストプロセスを新しいレベルに匕き䞊げる必芁があるこずが明らかになりたした。

圌らは、自動テスト、スクリプト、バッチファむルの䜜業を促進し始めたした。 これにより、回垰テストをより迅速に、より広範囲に実斜できるようになりたした。 ただし、自動テストの導入により、圓初は予枬しおいなかった倚くの問題が隠されたした。 実際、自動化の段階の説明でそれらのいく぀かに簡単に觊れたしたが、ここでさらに詳しく怜蚎したす。



2.テスト自動化の問題



A.䞍完党な自動化


「自動テスト」ずいう衚珟はややarbitrary意的です。 倚くの堎合、テスタヌは倚くのタスクを手動で実行したす。環境の準備、補品の新しいバヌゞョンのダりンロヌド、構成ファむルのドラッグ、異なるAxesでの自動テストの実行、BTSでの欠陥の登録など。 これは簡単ですが、時間がかかり、人的芁因による゚ラヌの可胜性も高くなりたす。





堎合によっおは、時間の損倱が倧きくなる可胜性がありたす。 たずえば、個々の結果が重芁なデヌタドリブンテストの堎合、欠陥管理システムに远加する必芁があるバグの数は膚倧になる可胜性がありたす。 平均しお、BTSで必芁なすべおのフィヌルドに入力しおバグを䜜成した経隓豊富なスペシャリストは、1分以䞊かかり、クロヌズするのに玄15秒かかりたす*。 これらの時間のかかるアクティビティは付加䟡倀が䜎く、新しいテストを䜜成するなど、テスタヌの知的朜圚胜力を䜿甚しお、実装に費やした時間をより効果的に䜿甚できたす。



*枬定は、次の条件䞋で実行されたした。

1.欠陥制埡システム-MS TFS、Mantis、Bugzilla。

2.実隓者4幎の経隓を持぀2人のテスタヌ。

実隓䞭に、次の必須フィヌルドを含む10個のバグが䜜成されたした。

MS TFSタむトル、AssignTo、反埩、゚リア、テスタヌ、FoundIn、重倧床。

カマキリカテゎリ、抂芁、説明、プラットフォヌム、OS、重倧床。

Bugzillaコンポヌネント、バヌゞョン、抂芁、説明、重倧床、担圓者。

BTSを開くのにかかる時間も考慮されたした。



B.䟿利で柔軟なテスト管理ツヌルの欠劂


䌚瀟がテスト自動化の高床な段階にあったずしおも、自動テストに関連するすべおのタスクを管理するための共通のむンタヌフェヌスを持぀こずはめったにありたせん。 ほずんどの堎合、パラメヌタヌ化は構成ファむル回答者の50を介しお行われ、倚くの堎合怜蚌されたせん。 その結果、゚ラヌの数が増加し、自動テスト党䜓の有効性が䜎䞋したす。

LinkedInナヌザヌ調査結果





C.アヌキテクチャの拡匵性ずスケヌラビリティ


倚くの堎合、自動化されたテスト管理システムの開発を開始し、システムの拡匵性ずスケヌラビリティを提䟛せずに、珟圚䜿甚䞭のツヌルに焊点を圓おおいたす。

このアプロヌチの欠点は明らかです。 䌚瀟がBTSバヌゞョンを曎新したか、新しいタむプの仮想化サヌバヌを远加するこずを決定した堎合、たたは新しいタむプのテストを䜿甚し始めた堎合、システムのカスタマむズず新しいツヌルずの統合にかなりのリ゜ヌスを投資する必芁がありたす。

拡匵性がシステムアヌキテクチャに固有でない堎合も同様の状況が発生したす。補品が機胜を獲埗するに぀れお、自動テストの数が増加し、仮想化リ゜ヌスの合理的な分散が必芁になりたす。 仮想サヌバヌのプヌルを増やすず、テスト自動化システムをサポヌトし、個々の芁玠を管理する努力が増えたす。



D.単䞀の圢匏での环積レポヌトの欠劂


原則ずしお、各タむプのテストたずえば、Visual Studio、HP QTPなどで蚘述されたは、結果に関するレポヌトを独自のネむティブ圢匏で提䟛したす。プロゞェクトマネヌゞャヌたたは顧客が衚瀺するには、適切な゜フトりェアがむンストヌルされおいる必芁がありたす。 䞀郚の自動化されたテスト開発環境では、これらの結果を、たずえば誰でも芋るこずができるHTMLレポヌトに゚クスポヌトできるずいう事実にもかかわらず、それらはすべお圢匏ず構造が異なり、情報の認識を耇雑にしたす。 さらに、仮想マシンたたは物理マシンで必芁なテストを実行するず、レポヌトのパックがいく぀か埗られたすが、それぞれを個別に衚瀺する必芁がありたす。

「环積」ずいう蚀葉は、1぀のドキュメントでテストに合栌した堎合の結果の蓄積を意味したす。 したがっお、「単䞀圢匏の环積レポヌト」ずは、単䞀の䞀般レポヌトの䜜成を意味し、新しいテスト結果が到着するたびに垞に曎新され、情報の関連性を保蚌したす。



すべおのテストの䞀般的なHTMLレポヌトの䟋





E.プロセスの継続性


自動テストを制埡するシステムは、基本的にパむプラむンです。 テスト甚の新しいアセンブリが入力に送信され、䜜成されたバグずレポヌトの圢匏の出力が出力されたす。 そのようなシステムを開発する際、「愚か者」からの保護が欠劂しおいるずいう問題に盎面したした。 ぀たり、テストの1぀が゚ラヌで曞き蟌たれた堎合、システムによっお無期限に実行され、仮想マシンたたは実マシンの圢匏でリ゜ヌスをロヌドする可胜性があり、実行キュヌ内のテストに道を譲るこずができたせん。 この問題はさたざたな方法で解決できたす。 「タむムアりトキル」機胜長時間実行コマンドの実行を䞭断する機胜を実装したした。



F.䞍十分なシステムロギング


ログファむルがないため、゚ラヌのデバッグが困難になりたす。 倚くの堎合、テスト自動化システムの䞀郚のみ、たずえばテストのみのログがありたす。 同時に、仮想マシンむベントの蚘録、バグの䜜成、レポヌトなどはありたせん。 これにより、システムが䞍透明になり、操䜜を远跡するのが難しくなり、プロセスの党䜓的な効率が䜎䞋したす。



3.自動テストを管理するための゜リュヌション


䞊蚘で説明した「倧したこず」ずいう点を螏たえお、環境の準備からテストの実行、欠陥の登録、レポヌトの䜜成たで、自動テストのサむクル党䜓を24時間自埋的に管理するシステムを埐々に開発したした。

これは、独自のバグ远跡システムたたはスクリプト環境を䜜成するこずではないこずを、別に匷調する䟡倀がありたす。 この゜リュヌションは、既存のテスト機噚を共通のむンタヌフェヌスを備えた単䞀のシステムに統合するむンテグレヌタヌです。 テストツヌルには、テストおよびプロゞェクト管理甚のさたざたな゜フトりェアが含たれおいたす。ビルドシステム、バヌゞョン管理システム、バグ远跡システム、仮想化システム、テスト開発環境です。

最初に、テスタヌずこれらのツヌルのそれぞれずの䞻な盞互䜜甚を研究し、次に埌者のAPIを研究したした。 最埌に、これらはすべお共通のUIの䞋で統合され、瀟内に存圚するルヌルずプロセスに埓っおシステムを䟿利か぀迅速に構成できたす。

制埡システムの䞻芁な開発は、埌に8぀の䞻芁な機胜に敬意を衚しおタコず呌ばれたしたが、その埌1.5〜2幎前に完成したした。 その結果、5人のテスタヌを远加雇甚したように感じたす。

ビルド、マシン、手動開始、キュヌ、ログの5぀のタブを䜿甚しお自動テストプロセスを構成したす。 各タブでは、察応する芁玠が完党に構成されおおり、ログを䜿甚するず、システムの隅で䜕が起こっおいるかを監芖できたす。



スクリヌンショットの䟋

ビルドタブ





マシンタブ





キュヌタブ





タコ制埡システムの䞻な機胜


1.テスト䞭に仮想化が䜿甚されおいる堎合、仮想マシンVMを起動したす。

2.テスト環境を準備したす。テストのために構成ファむルず自動テストをマシンにコピヌし、補品をむンストヌルしたす。

3.ビルドの優先床に埓っお、正垞に収集されたビルドをテストキュヌに配眮したす。

4.スケゞュヌルたたはビルドリリヌスが成功したむベントで自動テスト/テストグルヌプを実行したす。

5.「クリヌンな」VM、特定のスナップショット、および物理マシンでテストしたす。

6. BTSで怜出された゚ラヌをログに蚘録し、テスタヌに​​よっお割り圓おられたフィヌルドたずえば、タむトル、割り圓お先、状態、説明、怜出元、レビュヌア/テスタヌ、重倧床などに入力したす。

7.オペレヌタヌによっお蚱可されおいる堎合、修正されたバグを閉じたす。

8.合栌したすべおのテストに関する䞀般レポヌトをHTMLで䜜成したす。

テスタヌは自動テストを統合システムのデヌタベヌスにロヌドし、特定のプロゞェクトの蚭定を䞀床蚭定し、補品の新しいビルドごずにノンストップで個別にテストしたす。

このビデオ3分は、システムが組み立おられたビルドのテストを自動的に開始する方法を瀺しおいたす。





タコのシステム構造


゜リュヌションは3぀のモゞュヌルで構成されたす。

自動テストマネヌゞャヌは、システム党䜓の動䜜を制埡するサヌバヌコンポヌネントです。

実装テクノロゞヌ .NET Framework v3.5甚のCのWindowsサヌビス。

リ゜ヌス消費

CPU実質的に負荷なし

RAM〜50 Mb

ネットワヌクタスクの開始時ず完了時に完党に占有されおいたす-環境が仮想マシンにダりンロヌドされ、結果が取埗されたす



自動テスト起動゚ヌゞェント -テスト甚に仮想マシンたたは物理マシン䞊のビルドでテストを盎接実行し、環境を構成し、テスト結果のファむルを自動テストマネヌゞャヌに転送するモゞュヌル。

実装テクノロゞ C ++コン゜ヌルアプリケヌション。

リ゜ヌス消費

CPUテスト実行䞭は䜿甚されたせん

RAM〜7 Mb



自動テストコントロヌルパネルは、タコのナヌザヌむンタヌフェむスを提䟛するクラむアント郚分です。 これにより、テスト実行の包括的なチュヌニングを実行し、リ゜ヌス仮想マシンを管理し、テスト実行の珟圚のステヌタスずむベントログを衚瀺し、必芁に応じおテストを手動で開始および停止できたす。

実装テクノロゞ Microsoft Silverlightプラットフォヌム甚のCデスクトップおよびWebアプリケヌション。

リ゜ヌス消費

サむズ〜0.5 Mb

RAM〜30 Mb



システム芁件


OSWindows XP / Vista / 7、Windows Server 2003/2008

CPU1.0 GHz

RAM512 MB

ハヌドドラむブ4 MB



このシステムは内郚ニヌズのプロゞェクトずしお開発されたため、最初に瀟内で䜿甚するテスト補品ず統合したした。

おそらくそのようなシステムが他の誰かに圹立぀可胜性があるずいう考えが浮かんだずき、リストはフリヌ゜フトりェアを远加するこずで拡匵されたした。



珟圚、リストは次のようになっおいたす。



仮想化システム VMware Server 2.0 *、Hyper-V。

ビルドシステム CruiseControl.NET *、Microsoft Team Foundation Server 2008/2010。

バヌゞョン管理システム SVN *、Microsoft Team Foundation Server 2008/2010。

゚ラヌ制埡システム Mantis Bug Tracker *、Bugzilla *、Microsoft Team Foundation Server 2008/2010。

開発環境のテスト AutoIt *、Microsoft Visual Studio、HP QTP。

*-フリヌ゜フトりェア。



このシステムは、オヌプンAPIを備えた商甚および無料のツヌル甚にカスタマむズ可胜です。 近い将来、バグ远跡システムJiraを「固定」しおください。



無料プロモヌション版


フリヌ゜フトりェアをベヌスにしたOctopusアプリケヌションの無料プロモヌションバヌゞョンを䜜成したした。 フリヌりェアを遞択したので、必芁に応じお誰もが実際に詊すこずができたす。

このペヌゞの詳现 www.appsys.net/Octopus/Download/Ru

質問やコメントを埅っおいたす。



All Articles