ドむツの䌚瀟での「重い」銀行゜フトりェアのテストはどうですか

こんにちは、Habr。 この蚘事では、ドむツ最倧の銀行ドむツ銀行、さらにドむツ語圏の䞻芁銀行UBS-スむス、Raifeissen-オヌストリア、および欧州EBICS暙準に埓っお動䜜する他の銀行向けに最初に開発されたクラむアントポヌタルのテストのラむフサむクルを瀺したいず思いたす。



最初に、少しの背景。



私の名前はアレクサンダヌです。 2009幎に、理論物理孊および実隓物理孊郚のモスクワ工孊物理孊研究所を卒業したした。 倚くの技術者のように、研究䞭に、IT分野でパヌトタむムで積極的に働いおいたした。最初は手動テストMicrosoft OfficeおよびWindows Vista、次に1Cプログラマヌコンサルタントです。 これらすべおがすぐに私を退屈させ、私は再び物理孊に目を向けるこずに決めたした。 以前に英語を孊び、TOEFLずGREの詊隓に合栌した埌、圌は博士課皋でアメリカの倧孊院に行き始めたした。 私は1぀の䞭玚倧孊にのみ文曞を送信し、そこから肯定的な回答がすぐに十分に届きたした。 同時に、フランスですでに博士号を取埗しおいた友人は、若い科孊者のためにペヌロッパの空垭サむトに広告を曞くこずを勧めたした。そしお、ドむツから突然2぀の招埅状を受け取りたした。 結局、私の遞択はドむツに有利になりたした。 私の遞択を決定した䞻な芁因をリストしたすロシアに近いこずベルリン-モスクワの2時間のフラむト、米囜ず比范しお長期䌑暇、博士号は5-6の代わりに平均3-4幎続き、さらに私はラムシュタむンのおかげでドむツが奜きでした。



PhDは十分に高速で飛行したしたわずか3幎以䞊。 いく぀かの達成結果ず4぀の公開された蚘事にもかかわらず、私は自分のトピックの䞍人気固䜓物理孊、科孊界での非垞に高い競争1教授あたり平均30人のポスドク、およびたた、ポゞションを求めお䞖界䞭を動き回る必芁性が垞にありたす。 ドむツで自分自身を芋お、倚かれ少なかれドむツ語を孊んだ埌私の掚定によるず、勉匷の人件費は英語の2倍です、地元の劎働垂堎に頌るこずに決めたした私の博士号はドむツの教育を受けおいるず擁護したした、぀たり、私はドむツに䜏んでもっず仕事を探すこずができたした1幎以内。 しかし、仕事を芋぀けるのは簡単ではありたせんでした。倚くの堎合、私は「再教育」を受けおいたした。蚌明曞も珟地での経隓もありたせんでした。 私はPythonでプログラミングする方法を少ししか知らなかったので、玔粋に発達的な立堎に陥るこずはありたせんでした。特にドむツでは、1Cはただ悪いスタヌトです。 その結果、遞択肢が十分に絞り蟌たれたした。デヌタ分析、たたは私の経隓を念頭に眮いお、IT分野に飛び蟌むための最初のステップずしおのテストです。 100人以䞊の履歎曞が送られたしたが、仕事の怜玢は6か月以䞊続きたした。これはおそらく、倏ず秋にここに採甚する新入瀟員がほずんどいないためかもしれたせん。



その結果、2015幎の冬に、私はハンブルクの䞭芏暡IT䌁業ドむツ党土で玄500人、ハンブルグで200人に就職したした。 その埌、ブルヌカヌドを発行したしたこのいわゆるブルヌ/ブルヌカヌドに関する最近の投皿がありたしたずころで、ドむツは欧州連合党䜓からそのようなカヌドの87を発行したした。これは倖囜人にずっお劎働垂堎の盞察的なアクセシビリティず仕事があるずいう事実を瀺しおいたす来幎の初めにすでに居䜏蚱可を取埗するこずができたす。 デザむンは非垞にシンプルで、契玄曞のコピヌずドむツ語の蚌明曞レベルB1を持っおくるだけです。



最初から、圌らは私に新しいプロゞェクトを投げかけたした。クラむアントポヌタル、そしおKEPAで 、これはSEPA暙準に埓っお動䜜したす。



KundenPortalは、圓瀟の別の補品であるBankRechner 別名銀行決枈センタヌずペアになっおいるこずに泚意するこずが重芁です BankRechnerは 、他の䌁業のクラむアントポヌタルからを含むすべおの支払いを蓄積し、分析および皎レポヌトのための埌続の蚈算を実行するプログラムです。 ゜フトりェアの「重さ」は、最倧の銀行が䜕千もの顧客ず連携しおおり、それぞれが膚倧な数のドキュメントをシステムに入力できるずいう事実に起因しおいたす。 圓然、これらはすべおテラバむトのデヌタベヌスOracleを備えた非垞に匷力なサヌバヌUnixで機胜したす。 そのため、この堎合の負荷テストは重芁です。



クラむアントに最初に提瀺されたプロゞェクトほが2幎前には基本的な機胜しかありたせんでした。 その埌、圓瀟のマネヌゞャヌずクラむアント銀行の間で積極的な亀流を始めたした。 クラむアントは、必芁な機胜を説明する、いわゆるCR 倉曎芁求の圢匏で垌望を䜜成したす。 圓然、これは単なるりィッシュリストではありたせんが、すべおがEBICS暙準に基づいお、法的偎面ずセキュリティの抂念に基づいお、䞡偎のZahlungsverkehr支払い茞送/トランザクションの有胜な人々によっお調敎されたす。 これらの偎面は私の胜力の領域ではないため、括匧の倖に眮きたす。



さらに、これらの異なる顧客からのCRは単䞀のリストに蓄積されたす。 このリストの実行により、反埩が定矩されたす補品のバヌゞョンでもありたす。 この堎合、䞀般的なバヌゞョンサむクルは3〜6か月です。 このリストに基づいお、技術プロゞェクトマネヌゞャヌは、それを実装する方法を説明するコンセプトを䜜成し、いわゆる「フェアのテヌマ」でプログラマヌが遞択するトピックにすべおを分割したす通垞、2人のプログラマヌが安党性ず経隓の亀換のために1぀のトピックに分類されたすトピックの最埌に、それらは再び混合され、再びペアリングされたす。 コンセプトず䞀貫性のあるGUIテンプレヌト モックアップ に基づくプログラマヌは、すべおをコヌドで実装したす。 コヌドが蚱容可胜な割合で準備が敎うず、テスタヌ間でトピックが配垃されたす。 テスタヌの数が少ないため、いく぀かのトピックを遞択するこずもできたす。 開発者の堎合ず同様に、考え方は䌌おいたす最倧の機胜を知り、お互いを保蚌する必芁がありたす。 䞀方で、この方法はプログラムに関するすべおを知っおおり、迅速に切り替えるこずができるずいう点で耇雑ですが、䞀方で、退屈するこずはなく、垞に新しいこずを孊んでいたす財政や囜の銀行システムに぀いおさえ。さたざたな角床から問題をテストしたす。これにより、バグを怜玢する際の効率が向䞊し、盎感も向䞊したす。 珟圚の反埩では、すでに玄10のトピックがありたす。



初期段階では、プロゞェクトには玄10人の開発者ず3人のテスタヌがいたしたさらに、そのうち2人は仕事に就き、もう1人はIT教育を受けおいたした。 珟圚、プロゞェクトには玄30人の開発者ず6人のテスタヌがおり、さらに、さたざたなブラりザヌで手動テストを行う新入生もいたす。 経隓を積んだ唯䞀のテスタヌすでに玄15幎はFrau Fraukeそのような名前であり、私たちのTimlidになりたした。 ドむツ語での最初の問題や、自動テストの経隓が䞍足しおいるにもかかわらず、圌女はすぐに私を最新の状態にしおくれたした。 䌚瀟の䞻な蚀語はドむツ語です。これは䞻に囜の構成によるものです。私はオフィスで最初の倖囜人の䞀人でした。 したがっお、スクリヌンショットは必芁に応じお説明付きでドむツ語で衚瀺されたす。 行きたしょう。



テスタヌぞの簡単なコメント
次の皮類のテストを実斜したす。

aブラックボックス

b機胜

cモゞュラヌ、システムおよび統合

e回垰

ナヌザビリティずロヌカラむズは、圓瀟の郚門の責任ではありたせん。 JUnitテストず負荷テストは開発者によっお実行されたす。



方法論の芳点から、私たちが持っおいるものを具䜓的に蚀うこずは䞍可胜です。 Vモデル、アゞャむルなどからのこのような寄せ集め、およびサむクルは、およそ次のずおりです。 準備、テストケヌスの開発、テストケヌスの実装、テストの実行ずバグの特定、反埩テストおよび回垰テスト。



銀行のクラむアントポヌタルずは䜕かを理解するために、叀いバヌゞョンのスクリヌンショットを衚瀺したす申し蚳ありたせんが、著䜜暩。 ラむセンスオプションに応じお、すでに倚数のメニュヌ項目がありたす。 むンタヌフェむスのテヌマず色は通垞、クラむアントバンクの䞀般的なスタむルに適合しおいたす。







これは、特定のタむプの支払いデヌタDTAZVの゚ントリを瀺しおいたす。 支払いは、同じ名前のセクションに入力されたす。同じ名前のセクションは、Erfassungセクションにありたすシステムでのデヌタの入力/蚘録。 䞊蚘のサブセクションは、アカりント情報アカりント移動ず呌ばれたす。 以䞋はEBICS機胜です。



すべおのむンタヌフェむスは同じスタむルで蚭蚈され、コントロヌル、同じアクションを異なる方法で繰り返す機胜などの点で類䌌したロゞックによっお統合されおいたす。 このプログラムを䜿甚するず、曞類自䜓、銀行ぞの送信、応答ず文曞ステヌタスの受信、銀行口座のステヌタスの分析、レポヌトの生成ずアップロヌドなど、曞類のラむフサむクル党䜓を远跡できたす。 もちろん、これはすべお、ナヌロ圏のルヌルず圢匏、および各銀行の囜家的特性に準拠し、さらに暗号化ず暗号化を取り入れおいたす。 これにより、より倚くの蚭定、ラむセンスオプション、デヌタベヌスオプション、サヌバヌ䞊の゜フトりェアオプション、および管理者ず他のロヌルの頭脳システムがもたらされたすこれにより、各レベルにいく぀かの亜皮ず数癟の暩限ずロヌルを持぀少なくずも3レベルの管理者が提䟛されたす。次に、適甚レベルに分割されたす。



遞択された支払い文曞の皮類AuftragsartAZVは、この遞択された支払いの皮類DTAZVにのみ可胜な数十のオプションの1぀であるため、組み合わせに関する幅広い分野がありたす。 圓然、この堎合、自動テストは最前線にあり、その䞻なフェヌズ、および準備ず関連゜フトりェアに぀いお説明したす。



準備する


プログラマヌがテストの準備が敎った最初のモゞュヌルを埋める前は、私たちの郚眲は怠けおいたせん。 すでにリリヌスされた以前のバヌゞョンクラむアントによっお異なる堎合がありたすを、䞻に自動化されたSmokeテスト基本機胜が毎日テストされるずきでテストしたす。



次に、新しいむテレヌションサむクルが平均3-6か月続くこずを思い出したすのために、テストのために仮想マシンを準備し、必芁な゜フトりェアブラりザヌの新しいバヌゞョン、プラグむンなどをむンストヌルし、コンセプトを読んで分析し、テストに重芁なものを芋぀け、可胜性を芋぀ける必芁がありたす匱点、最初のテストデヌタの生成、たたはクラむアントから受信したデヌタの準備。



テストケヌスの蚭蚈


ここでは非垞に保守的です。すべおのアむデアをテストケヌスにたずめ、テストの䞻な偎面をカバヌし、メモや質問ずずもにExcelドキュメントに簡単に入力しようずしたす。 次に、プロゞェクトマネヌゞャヌ、テストチヌムの責任者、トピックに関連するプログラマヌおよびテスタヌの間で、個人的な䌚議玄1時間が開催されるか、ビデオ䌚議䞀郚が別の郜垂に配眮されたすが行われたす。 テスタヌのタスクは、このドキュメントを提瀺し、テストの内容ず方法を説明するこずです。 必芁に応じお、GUIレむアりトモックアップを衚瀺するか、プログラム自䜓を起動しお、プレれンテヌションに同行したす。 質問ぞの回答、䞡偎からの説明、重芁なたたは脆匱な堎所ぞのプログラマヌの指瀺、圌らの意芋、垌望および提案が蚘録され、実際にテストケヌスを䜜成する時が来たした。



実装/プログラミングケヌステスト


圌女/それは2぀の䞻芁郚分で構成されおいたす

a TestLinkプログラムのテストケヌスの具䜓的な説明、぀たり実際にはドキュメント。

b QFテストプログラムでのテストケヌスの自動化。

説明は再びドむツ語ですが、厳密に刀断しないでください。







ご芧のずおり、バヌゞョンずテヌマごずの内蚳がありたすが、珟時点ではほが700のテストケヌスがありたす。



以前は、有名なHP Quality Centerが䌚瀟のテストの䞻芁補品でした。 珟圚、暙準はQF Test>であり、これは本質的にCaptcha-Replayファミリヌに属したす。぀たり、プログラムでナヌザヌアクションを蚘録するこずができたすクリック、GUIでのデヌタ入力など、再利甚。 特定の䞀連のアクションが手順で収集されたす。 通垞、むンタヌフェむス芁玠には独自のIDがあり、これを䜿甚しお芁玠を参照したす。 たずえば、アむテムのリストの行番号に応じお、IDを動的に生成するこずもできたす。 この堎合、芁玠にアクセスするために、正芏衚珟も䜿甚したす。 テストケヌス自䜓は、コンストラクタヌのように、ルヌルからプロシヌゞャずしお既に圢成されおいたす。 このプログラムのむンタヌフェヌスは次のずおりです。







Testfallsatz テストケヌスグルヌプは、テストするトピック䞊から䞋の反映です通貚残高、オヌストリアのアカりントの動き、自己管理、宛先コヌドカテゎリ、CFONBフランスの暙準。 各トピックには、いく぀かのテストケヌスがあり、その䞭にはトレヌニングブロックVorbereitung、テストステップ、シヌケンス、そしお最も重芁な実行可胜プロシヌゞャ自䜓の呌び出しが含たれたす。 以䞋では、実行時に倉数がどのように倉化するかを远跡できたす。



したがっお、この段階でのテスタヌの䞻なタスクは、迅速に動䜜し、゚ンドナヌザヌがグラフィカルむンタヌフェむスで䜿甚するメむンパスをカバヌする実行可胜なプロシヌゞャを蚭蚈し、合意されたExcelドキュメント/プレれンテヌションに基づいおテストケヌスを圢成するこずです。 時々、むンタヌフェヌスをクリックしすぎるか、各手順でこれを行う意味がない堎合、スクリプトたたは補助Javaクラスを䜿甚しお、たずえば、ナヌザヌたたは銀行口座をすばやく䜜成できたす。



QF Testの倧きな利点は、 Jython Java + PythonたたはGroovyでスクリプトを䜜成できるこずです。 個人的には、Pythonが奜きなので、Jythonでしか曞いおいたせん。Pythonは非垞によく䌌おいたす。 ちょうど今、KundenPortalは2぀の郚分で構成されおいるこずに蚀及したす。GUIず、いわゆるWebサヌビスシェル。むンタヌフェむスなしで倚くのアクションを実行でき、プログラム自䜓をクリックするよりもはるかに高速です。 以䞋は、ナヌザヌがWebサヌビスで盎接䜜成される䞊玚プログラマヌを怒らせないためのスクリプトの䞀郚です。







テストケヌスの実行、゚ラヌの怜玢ず登録


テストケヌスの䜜成ず実行は、既補の安定したバヌゞョンが埗られるたで同時に行われたす。 ここでの安定性ずは、テストケヌスが最埌たで自動的に実行され、゚ラヌたたは䜕らかの技術的な問題によっおのみ実行が䞭断されるこずを意味したす。 ゚ラヌ管理システムTracに入力された゚ラヌを芋぀けたした







バグ埌テストず回垰テスト


バトンを枡す前にプログラマヌもテストするずいう事実にもかかわらず、3000以䞊がすでに発芋されおいるこずがわかりたす。 このような高い数は、䞻に倚くの異なる圢匏ずむンタヌフェむスの十分な耇雑さず汎甚性によるものです私が蚀ったように、それらは同様の原則に基づいお構築されおいるずいう事実にもかかわらず、そしおもちろん、私たちの泚意力ず腐食性=ほがすべおのバグをキャッチしたす。 私の知る限り、テスト段階で比范的深刻な問題を発芋したのは䞀床だけです。



プログラマヌがバグを修正した埌、倜間に仕事を蟞めるなど、自動テストを再床実行したす。 朝にはすでに゚ラヌや問題を分析できたす。 たた、回垰テストも実行したす。぀たり、゚ラヌが怜出されなかった可胜性のある堎所を再テストしたすが、コヌドの倉曎により、バグの出珟などプログラムの倉曎が発生する可胜性がありたす。



最埌に、䞀般的な䜜業環境を瀺したす。







プロゞェクト自䜓KundenPortalずそれが盞互䜜甚するBankRechnerは、バヌゞョン管理システムSVNを備えたEclipseワヌクスペヌスにありたす。



aヘルパヌJavaクラス。 QFテストスクリプトから呌び出される、自分でプログラムを䜜成したす颚氎甚ではないかもしれたせんが、タスクを実行したす。

bテスト仮想マシンの珟圚のパラメヌタヌ同時に、1぀のKundenPortalず1぀のBankRechnerのみが可胜ですconfig。

cCSVファむル右偎の䟋はナヌザヌのリスト。ナヌザヌ、顧客、アカりント、支払いテンプレヌトなどに関する情報䞡方のシステムに぀いお、テストデヌタ完党に生成されたすが、正しいパラメヌタヌを䜿甚しお、たたは意図的に陰性怜査の堎合は間違っおいる。

dテストスむヌト、実際には、QFテストファむルテストケヌスたたは実行手順のコレクション共通特定のバヌゞョンたたはトピック甚および各テスタヌごずに個別であるため、トピックに冷静に察凊し、䞀般的なテストスむヌトに過床にコミットするこずはありたせん。

eたずえば、起動するテストスむヌト、起動構成、ハヌドディスクのパヌティション分割などを決定するスクリプト



すべおのテストがグリヌンゟヌンになり、むテレヌションが正垞に完了した埌、合同䌚議すべおのプログラマヌずテスタヌを組織したす。そこでは、プロゞェクト䞭に䜕が良かったのか、䜕が難しかったのか、䞀般的な議論が行われたす。 各埓業員は、少なくずも2぀の肯定的な偎面ず2぀の吊定的な偎面に぀いお話す必芁がありたす。 これに基づいお、次の反埩のためにワヌクフロヌの構築を適合させたす。 たた、私たちの経隓に基づいお、システムずベストプラクティスをセットアップするための基本的な手順を説明する瀟内りィキペディアに蚘入したす。







さお、䜜品の性質に぀いおのいく぀かの蚀葉。



劎働時間、人的資源、むテレヌションが非垞に蚈画され、配垃されおいるので、開発者ず同時にフィニッシュラむンに到達するこずができたした最倧1日。぀たり、私たちの偎から、グリヌンゟヌンのすべおのテスト、圌らの偎からすべおの機胜準備が完了し、すべおのバグが修正され、すべおのToDoが䜜成されたした。 最も重芁なこずは、今回が垞に玄束されたクラむアントず䞀臎したこずです。これは、緊急モヌドが歓迎されないドむツの職堎を区別したすが、最初から本物で働かなければなりたせん。しかし、私はそれが気に入らないずは蚀えたせんが、歎史的には先延ばしにしおから倜寝るのが奜きでした。たた、ここでそれを凊理する人はほずんどいたせん。週40時間がゎヌルドスタンダヌドであり、スケゞュヌルされた䌚議を陀いお、就業時間を自由に遞択できたす平均しお䜎ランクの堎合は週に1回、管理の堎合は週に2回。私は通垞8-9から17-18の範囲で働いおいたす。たた、30日間の䌑暇がありたす。これは6週間週末はカりントされたせん、1日は匕越しの莈り物、2日間は結婚匏無料、2日間は男性の出産です。䌚瀟の埓業員の玄半分はIT教育を受けおおり、残りの半分は経枈孊者、物理孊者、数孊者です。



あずがきずしお、銀行にリリヌスされた補品を導入するこずの最終結果は、倚くのプロセスの自動化による雇甚の倧幅な削枛にもなりたすKundenPortalは、文曞化による䜜業の高速化ず倚くの日垞業務の根絶に重点を眮いおいたす。それで、ドむツ銀行は半幎前に1侇5千人の埓業員の削枛を発衚した10䞇人から。これにより、このセクタヌず経枈党䜓の効率が向䞊したすたずえば、スむスの銀行セクタヌで働く人の数は、ズベルバンクよりも少なくなりたすが、事務員は同情しかできたせん。



All Articles