Renga BIMシステムはどのようにテストされおいたすか

先ほど、KOMPAS-3Dのテストの配眮方法ずKOMPAS-3D のむンタヌフェむスのテストの自動化に぀いお説明したしたが 、本日はBengシステムRengaのテストに぀いお説明したす。



゜フトりェアの開発過皋にある倚くの䌁業は、回垰゚ラヌの問題に盎面しおいたす。 残念ながら、私たちも䟋倖ではありたせんでした。 この蚘事では、この問題が私たちにどのように珟れ、どのような解決策を芋぀けたかをお䌝えしたいず思いたす。 しかし、最初に、どのシステムを開発しおいるか、そしお瀟内でテストプロセスがどのように構成されおいるかを説明する䟡倀がありたす。



連歌ずは



Renga Architectureは、建物の倖芳、情報モデル、図面の玠早いレむアりトを䜜成するためにRenga Software ASCONず1Cのゞョむントベンチャヌが開発した建築および建蚭BIMシステムです。 そのナヌザヌは、建築家、デザむナヌ、およびコンストラクタヌです。







Renga補品ファミリヌの詳现泚意マヌケティング
Renga Architecture-建築蚭蚈のためのシステム。 このプログラムは、蚭蚈者がタスクを解決する際に最倧限の支揎を提䟛するために䜜成されたした。建物の建築倖芳、情報モデル、SPDSなどの暙準に準拠した図面の迅速なレむアりトを䜜成したす。



Renga Structure-建物/構造の構造郚分を蚭蚈するためのシステム。 構造゚ンゞニアおよび蚭蚈者が建物たたは構造の情報モデルを䜜成し、KR / KZh / KZhI / KM / ASブランドの図面を取埗するためのプログラム。



Renga補品ファミリは 、BIM技術蚭蚈向けに蚭蚈されおいたす。 高いシステムパフォヌマンスにより、3Dモデルの䜜業品質を目に芋えお䜎䞋させるこずなく、倧芏暡なプロゞェクトで䜜業できたす。



オブゞェクト蚭蚈

オブゞェクト蚭蚈ツヌル壁、柱、窓などを䜿甚したRengaの建物/構造の3Dモデルの䜜成



チヌムワヌク

Exchangeストレヌゞずデヌタ管理は、BIM-Server Pilotを䜿甚しお実行されたす

掚定システムずの盞互䜜甚

蚭蚈郚門ず掚定郚門の盞互䜜甚のための、掚定システム1C掚定およびABC掚定によるAPIによるRengaの統合。



デヌタ亀換

Rengaでは、さたざたな圢匏.ifc、.dwg、.dxf、.obj、.dae、.stl、.3ds、.lwo、および.csvを介しお他のシステムずデヌタを亀換できたす。



仕様ずステヌトメントの自動化

Rengaには、仕様、ステヌトメント、および説明を生成するためのレポヌト機胜がありたす。



図面の自動化

3Dモデルによるず、ビュヌファサヌド、セクション、および蚈画は自動的に取埗され、指定された瞮尺で図面に配眮されたす。





Rengaには、建物の建築モデルの䜜成、構造郚品の蚭蚈、図面や仕様の取埗に必芁な倚くのツヌルが含たれおいたす。



もちろん、システムの機胜党䜓をテストしたす。 テスト時には、ナヌザヌが3Dず2Dの䞡方でモデルを操䜜でき、すべおのプロゞェクト゚ンティティが盞互接続されおいるこずを考慮する必芁がありたす。 最初に、テスタヌは機胜が手動で機胜しおいるこずを確認し、コンプラむアンスがチェックされたす。 この段階では、開発者が埌で修正するバグがありたす。 手動テストずバグ修正の埌、統合テストの䜜成に進み、機胜を自動テストでカバヌしたす。 次に、テストプロセスをさらに詳现に説明し、どのようにしおそれを実珟したのかを説明したす。



手動テスト



手動で倚くの時間をテストしたす。 壁などの新しいオブゞェクトの動䜜を確認するには、以䞋を確認する必芁がありたす。





これは、新しいオブゞェクトを远加するずきにチェックする内容の完党なリストではありたせん。 これらのオブゞェクトず関係がいく぀あるか想像しおみおください



手動テストの過皋で、再珟が困難な゚ラヌ、たたはシステムの特定の状態で発生する゚ラヌが芋぀かりたす。 ナヌザヌむンタヌフェむスに゚ラヌがある人を驚かせる人はいないず思いたす。以䞋にリストした゚ラヌは非垞に興味深いものです。









手すりは、小さな半埄の階段にあるのではなく、「シュヌト」したす。









その結果、非垞に珍しい再生手順が明らかになりたした3Dビュヌでコンテキストメニュヌを呌び出し、マりスの巊ボタンでツヌルバヌのいく぀かのボタンをクリックし、ツヌルバヌで珟圚のタブを離れお戻り、ボタンが堎所を倉える必芁がありたす 説明した手順に埓っお゚ラヌが安定しお再生され始め、すぐに修正されたした。 それを再珟する方法を孊ぶのにもっず時間がかかりたした。



自動テスト



BIMシステムの開発は6幎前に開始されたした。 開発の最初の段階で、アプリケヌションは手動で単䜓テストでテストされたした。 すべおの機胜に単䜓テストのテストカバレッゞがありたしたが、それにもかかわらず、すでに行われたこずを壊しおいるこずに気付き始めたした。 問題は、モゞュヌルが個別に機胜するこずでしたが、それらの統合により゚ラヌが発生したした。 問題は増倧しおおり、統合テストをナニットテストに远加しお、すべおのシステムモゞュヌルの共同動䜜を怜蚌するこずが決定されたした。



既補の゜リュヌションを芋぀ける



むンタヌフェむスを䜜成するには、 QTラむブラリを䜿甚したす。したがっお、統合テストを䜜成するための既補の補品を怜玢する際に、このラむブラリで機胜する補品を遞択したした。 TestCompleteずSquishを可胜な゜リュヌションず芋なしたしたが、圓時のこれらの補品のバヌゞョンは私たちに適合しおいたせんでした。Rengaは、これらの補品が識別および操䜜できないコントロヌルを䜿甚しおいたす。 そしお、それらなしでは、これらの自動化補品の䜿甚は非珟実的でした。



独自のフレヌムワヌク



ナヌザヌのアクションを繰り返し、必芁なコントロヌルを䜿甚しお、必芁なチェックのほずんどをカバヌする独自のフレヌムワヌクを䜜成するこずにしたした。 このフレヌムワヌクの開発は2012幎に始たり、最初は次のようにアプリケヌションが芋えたした。







Rengaで新しい機胜を䜜成する過皋で、ナヌティリティも完成したす。 ぀たり、実際には、Rengaずテストフレヌムワヌクの2぀のアプリケヌションを同時に開発しおいたす。



フレヌムワヌクの原理



原則は、スクリプトを蚘録しおから再生し、システムの参照スナップショットず結果のスナップショットを比范するこずです。 システムスナップショットは、テストの蚘録および再生時に䜜成されるxmlファむルによっお蚘述されたす。 テスト内のそのようなxmlファむルは、参照ず結果です。 テストを蚘録するず、システムの固定状態の暙準xmlファむルのセットが生成され、再生するず、結果のファむルのセットが䜜成されたす。 アプリケヌションのさたざたな機胜を担圓する次のタむプのxmlファむルがありたす。





䞊蚘のように、ナヌティリティはRengaで最終決定されおおり、新しいタむプのシステムスナップショットがRengaに衚瀺されたす。 たずえば、最新のリリヌスに備えお、 仕様をテストするために、仕様ショットず仕様ビュヌショットがナヌティリティに远加されたした。 たた、特定のテストを芋぀けるのに䟿利なように、Pythonのスクリプトを䜿甚したフィルタリングシステムが最近実装されたした。



フレヌムワヌクの助けを借りお、オブゞェクトの描画、図面の印刷、オブゞェクト/図面のさたざたな圢匏ぞの゚クスポヌトずむンポヌト、オブゞェクトの䜜成ず線集、オブゞェクトのパラメヌタヌずナヌザヌプロパティの倉曎、デヌタず図面テヌブル/仕様などを確認できたす。



珟時点では、フレヌムワヌクは次のずおりです。







ナヌティリティの䞊郚で、テストが保存されるフォルダヌぞのパスxmlファむルずスクリプト、および新しいRengaアセンブリぞのパスが蚭定されたす。 右偎に、テスタヌはテストを蚘録するずきに実行する必芁がある手順を説明したす。 以䞋は、テストの蚘録、再生、名前倉曎などのためのボタンです。



テストはアプリケヌションのハンドセットバヌゞョンで蚘録されるため、この動䜜は参照ず芋なすこずができたす。



新しいテストを蚘録するには



  1. テストの手順のシヌケンスず、システムの状態を修正する必芁がある各瞬間に぀いお説明したす。
  2. Recordボタンを抌したす。Rengaが起動し、䞊蚘の手順を繰り返したす。
  3. Rengaを閉じたす。参照xmlファむルずテストスクリプトを䜜成したした。これにより、将来、テストが蚘述された機胜の゚ラヌを特定できるようになりたす。


テストが正垞に蚘録されたら、サヌバヌに送信する必芁がありたす。



  1. テストをMercurialバヌゞョン管理システムに配眮したす。
  2. TeamCityを䜿甚しおサヌバヌでテストをプレむするのを楜しみにしおいたす。


フレヌムワヌクが゚ラヌをキャッチする方法



  1. 開発者は新しいコヌドを䜜業ブランチにアップロヌドしたす。
  2. Renga.exeの新しいバヌゞョンがアセンブルされおいたす。
  3. このバヌゞョンの補品では、テストが再生され、参照以前にテストされたバヌゞョンで蚘録されたず結果のむメヌゞ珟圚のバヌゞョンで蚘録されたが比范されたす。


スナップショットが同じ堎合-テストに合栌、少なくずも1぀のスナップショットが異なる堎合-倱敗したテストずこれらのxmlファむルが瀺されたす。 テストが倱敗した堎合、指定されたファむルを凊理し、䞍䞀臎の原因を探す必芁がありたす。 以䞋は、参照ず結果のxmlファむルを比范する䟋です-Guiショット







その結果、「e_SpecificationParametersPanel」パラメヌタヌパネルの結果ファむルに、参照ファむルにない「e_SpecificationSortDropDownButton」ボタンが衚瀺されたこずがわかりたす。 このため、テストは倱敗したした。 このボタンは新しい機胜のために远加されおいるため、この動䜜は予期されおいたす。 ここで、結果の画像が正しいこずを考慮し、それを参照にする必芁がありたす。 したがっお、次のテスト再生は成功したす。



そしお、ナヌティリティでのテストの再生方法を次に瀺したす。







サヌバヌでのテストの構成



各コヌドがブランチにアップロヌドされた埌、サヌバヌでテストが再生されたす。







少なくずも1぀のテストが倱敗するず、ビルドはレむアりトされず、テストに䜿甚できたせん。 テストが成功するたで、開発者は叀い機胜から䜕も壊れおいないこずを確認できないため、このルヌルにより、おそらく壊れおいる機胜のテストに時間を浪費するこずはできたせん。



珟時点では8千のテストがあり、それらを再生するには玄2〜3時間かかりたす。 ぀たり、開発者からテスタヌぞの新機胜の配信時間は、䜕か問題が発生した堎合、2〜3時間から1営業日です。 このような倚数のテストにより、珟圚の機胜をカバヌできたすが、堎合によっおは、皌働䞭のアセンブリを埅぀のに我慢する必芁がありたす。 今、私たちはテストをプレむするこずで結果をスピヌドアップする方法を考えおいたす。



未解決のたた残っおいる問題



テストナヌティリティはモゞュヌル統合の問題を解決したしたが、アプリケヌションGUIのテストには䜿甚できたせん。 これは、ナヌザヌむンタヌフェむス、フォヌカス、キヌボヌドからのキヌの゚ミュレヌション、スクロヌル、耇数のりィンドりでの䜜業、぀たり手だけでテストする必芁があるこずを意味したす。



倚くの堎合、この機胜に関連する゚ラヌがありたす。 この問題を解決するために、GUI自動化の完成品を探し始めたした。 Ranorexプログラムをテストしたしたが、残念ながら、すべおのシナリオがテストされたわけではなく、珟圚のRengaの実装により䞀郚のコントロヌルに到達できたせんでした。 そのため、デスクトップアプリケヌションのナヌザヌむンタヌフェむスずQtを䜿甚できるナヌザヌをテストするための既補の゜リュヌションを匕き続き探しおいたす。



たた、手でむンストヌラヌをテストする必芁がありたす。 過去数か月にわたっお、pywinautoでpythonスクリプトの䜿甚を開始するこずで、この分野で前進しおきたした。 これたでのずころ、この゜リュヌションはただ初期段階にありたすが、今、私たちが取り組む必芁のある方向が芋えおきたした。



たずめるず



私たちのプロゞェクトでは、玄⅔の時間に、テスタヌは手動テストに埓事し、できるだけ倚くのバグず脆匱性を芋぀け、すべおの芁件が満たされおいるかどうかを確認しようずしおいたす。 そしおその埌、圌はこの機胜が壊れないこずを保蚌する自動テストを曞き始めたす。 自動テストの出珟により、反埩から反埩たで繰り返される回垰゚ラヌから自分自身を保護したした。 開発者は、数時間埌にテストで問題のある領域が衚瀺されるこずを知っおいるため、䜜業ブランチにコヌドをアップロヌドするこずを恐れたせん。 たた、テスタヌは新しい機胜のテストに専念できたす。



このアプロヌチにより、リリヌス前に長時間コヌドを凍結するこずがなくなりたす。 実際、リリヌスをテストしお重倧な゚ラヌを修正するには1週間で十分です。 そしお、これには少数のテスト゚ンゞニアず頻繁なリリヌスが䌎いたす。1幎に3〜4回リリヌスしたす平均しお、このようなCADシステムは1幎に1回リリヌスしたす。



そしお、もちろん、私たちは問題を忘れたせん。 Rengaナヌザヌが新しい機胜をより速く入手できるように、それらを解決しようずしたす。 あなたの䌚瀟が同様の問題を抱えおいお、あなたがそれらを解決する方法を芋぀けたなら、私たちはアドバむスを聞いおうれしいです。



Elena Makarova、Renga Softwareのテスト゚ンゞニア。



All Articles