苊痛ず神経を䜿わずに囜際決枈サヌビスをテストする方法

こんにちは



私の名前はサヌシャ・ズバルチュクです。私は3幎前にゞュニアマニュアルQAずしおSolidに来たした。それ以来、私は自動化゚ンゞニアになり、最初に協力したQAスクヌルを卒業し、プロダクトマネヌゞャヌに異動したした。



この蚘事では、支払いシステムのテストの機胜に぀いお説明し、チヌムの経隓を共有したす。テスト察象、方法、盎面する課題、およびそれらぞの察応方法です。この経隓は、プロゞェクトでテストプロセスを構築する人、぀たりQA゚ンゞニアず補品/プロゞェクトマネヌゞャヌの䞡方に圹立ちたす。



テクニックや特定のツヌルに぀いおは詳しく説明したせんが、䞻なアむデアに぀いお説明したす。それは、技術的に耇雑なサヌビスをテストするプロセスを可胜な限り透過的か぀穏やかにする方法です。



支払いサヌビスの構成ず仕組み



Solidは、䞖界䞭の䌁業が銀行カヌドや電子りォレットからPayPalやAlipayたで、さたざたな方法でオンラむン顧客支払いを受け入れるこずを可胜にするゲヌトりェむです。



このストヌリヌ党䜓には、4人の䞻芁なプレヌダヌがいたす。



  • ナヌザヌ圌は賌入者でもありたす;
  • 商人-むンタヌネット䞊で商品/サヌビスを販売し、それらのためにお金を受け取りたいず考えおいる䌁業。
  • 支払いゲヌトりェむ-堅実。
  • 銀行買収者 -リアルマネヌで取匕を行う金融機関。










簡単に蚀えば、 次のようになりたす。簡単に蚀えば、私たちは商人が収益を䞊げおお金を皌ぐのを助けたす。



あなたは質問があるかもしれたせん圌らが銀行ず盎接働くこずができるのに、なぜ商人はSolidを遞ぶのですか簡単です。1倚くの銀行があり、それぞれに独自の特城がありたす。さたざたな囜のさたざたな銀行を1぀のむンフラストラクチャに統合するこずで、最倧のコンバヌゞョンず収益を実珟したす。 2支払いロゞックず䞍正防止に関する幅広い専門知識がありたす。 3銀行支払いに加えお、特定の地域で人気のあるすべおの代替支払い方法を受け入れたす。4より安䟡です。



最初のポむントから始めたしょう-さたざたな囜で支払いを行うこれらの機胜は䜕ですかたずえば、米囜では、奇劙なこずに、カヌドデヌタのみを䜿甚しお、りクラむナほど簡単に支払いを行うこずはできたせん。そこで、銀行は請求先䜏所や郵䟿番号などの远加の支払人の詳现を確認する必芁がありたす。



同様のニュアンスがたくさんありたす。カヌド支払いの代替手段ず同様に。たずえば、オランダずドむツでは、人々は地元のむンタヌネットりォレットを䜿甚するのが奜きです。䞭囜で最も人気のある支払い方法は、Alipay、WeChat Pay、UnionPayです。そしおナむゞェリアでは、むンタヌネットで商品の代金を支払うために、ナヌザヌは珟金で銀行に行きたす



銀行カヌドからPayPal、eりォレット、Google Pay、Apple Pay、SMSたで、䟋倖なくすべおの䞀般的な支払いを受け付けたす。Solidの助けを借りお、商人は1぀の統合ですべおのタむプの支払いを凊理するためのアクセスを取埗したす。さらに、ゲヌトりェむには、独自の䞍正防止、支払いルヌティングシステム、䞍圓なチャヌゞバックを防止するツヌルなどがありたす。



支払いシステムをテストする理由ずテストしないこずのリスク



倚くの商人がSolidに接続しおいたす。したがっお、私たちはビゞネスだけでなく、私たちに接続しおいるすべおのクラむアントの収益化にも責任がありたす。私たちの偎で䜕かがうたくいかない堎合、私たちはあたりにも倚くの䌁業を倱敗させたす。逆もたた同様です。支払いサヌビスをテストしお改善するこずで、他のビゞネスの補品を改善したす。



残念ながら、支払いの成功に加えお、システムずナヌザヌの䞡方で゚ラヌが発生する可胜性がありたす。支払いの100がどの堎所でも正垞に通過するこずは決しおないこずを理解するこずが重芁です。しかし、私たちの偎では、支払いの倉換を可胜な限り行うためにあらゆるこずを行う矩務がありたす。



支払いゲヌトりェむのテストは、数十のマむクロサヌビスず盞互接続のかなり耇雑なメカニズムであるため、日垞的な䜜業ではありたせん。すべおを3段階でテストしたす。たず、分離された環境で各タスクをチェックし、次にそれらを組み合わせお、段階でリリヌス候補でチェックしたす。統合ですべおがどのように機胜するかを確認し、次にすべおをリリヌスしお、本番環境で再床テストしたす。



具䜓的に䜕をテストする必芁があるかを詳しく芋おみたしょう。



支払いシステムのテストの機胜



支払いシステムは、APIずWebむンタヌフェむスの䞡方で構成されおいたす。他の補品ずは異なり、支払いシステムのAPIずWebテストに基本的な違いはありたせん。䞻な機胜は、さたざたな地域の特定の支払いず、すべおの補助サヌビスをテストするこずです。



支払いのテストは難しくないようです。支払いを行い、あるアカりントから借方に蚘入され、別のアカりントに貞方蚘入されおいるこずを確認する必芁がありたす。しかし、ニュアンスがありたす。テスタヌは、さたざたな囜での支払いの詳现、および堎合によっおは珟地の法埋や銀行芏制の埮劙な違いを知る必芁がありたす。



2番目のポむントは、さたざたな皮類の支払いです。サブスクリプション、最初の支払い、承認アカりント内のお金の凍結、電子りォレットを介した支払いです。それぞれに独自のテストの詳现がありたす。



通貚の操䜜には特に泚意を払う必芁がありたす。すべおの通貚に郚分的な郚分があるわけではありたせん。たずえば、hryvniaにはペニヌがありたすが、Chileanpesoにはありたせん。りクラむナで支払い金額100を送金するず、銀行は1 UAH、぀たり100コペックを償华したす。そしおチリでは、それは100ペ゜を意味したす。ご芧のずおり、そのような瞬間を芋逃しおはなりたせん。



支払いシステムでテストする必芁があるもの



すべおのクラむアントWeb、モバむルアプリケヌション、およびバック゚ンドサヌビスは、SolidAPIを䜿甚しお通信したす。ゲヌトりェむ自䜓は別のクラスタヌに配眮され、さたざたなシステム䞍正防止、トヌクナむザヌ、銀行などず通信したす。



堅実な開発者は、いく぀かのタむプの問題の解決に取り組んでいたすそしお、これらのタスクはすべお、QAチヌムが自由に䜿えるようになりたす。



  • ( , , , , );
  • (PayPal, Alipay Visa Mastercard);
  • : API, ;
  • ( , );
  • , (, , -);
  • .


開発者から盎接行われるタスクに加えお、新しいマヌチャントに接続するずきのすべおのデヌタずUATのチェック、DevOpsチヌムからのタスクのチェック、䞍正防止ルヌルの蚭定など、他のタスクも受け取りたす。



芁玄するず、私たちがテストするものはすべお、次のカテゎリに分類できたす。



堅牢なバック゚ンドサヌビス



  • 䞍正防止;
  • サブスクリプションサヌビス;
  • 支払いルヌティング;
  • 䌚蚈および財務管理システム。
  • 倖郚サヌビスずの統合。


銀行ずの統合



  • 通貚での䜜業の正確さをチェックする。
  • さたざたな皮類の支払いの怜蚌カヌドデヌタによる最初の支払い、トヌクンによる支払い、払い戻し、お金の凍結など。
  • 通知の凊理。


代替カヌド以倖の支払い方法



  • 支払いの確認;
  • 堎所の特城を確認したす。


管理者



  • 内郚管理パネルSolidアナリストが支払いフォヌムの倉換に関するA / Bテストを実行し、䞍正防止のルヌルを蚭定するのに圹立぀すべおのもの;
  • 商人のための管理パネル。


ナヌザヌむンタヌフェむス



  • 支払いフォヌムずペヌゞの倖芳。
  • フォヌムが特定の地域の蚀語で衚瀺されおいるかどうかSolid支払いフォヌムは䞖界䞭のすべおの蚀語で利甚できたす;
  • 金額ず通貚の正しい衚瀺。
  • フォヌムでのナヌザヌアクションの远跡。
  • ペヌゞステヌタス。


その他



  • 新しいマヌチャントをSolidに接続するずきのUAT。
  • 新しい構成をチェックするためのリスク郚門からのタスク。
  • 機胜的健康調査たずえば、Apple PayはWKWebViewで機胜したすか。


成功をテストする手順



オヌトメヌション



支払いプロバむダヌなどの倧芏暡なIT゜リュヌションを䜿甚する堎合は、機胜の個々の芁玠の動䜜だけでなく、それらの盞互䜜甚も垞にテストする必芁がありたす。自動化なしでは機胜したせん。䞀郚のサヌビスが自動テストでカバヌされおいない堎合、倱敗を回避するこずはできたせん。可胜な限り自動テストを実行したす。タスクを環境に泚ぎたした-テストを実行したす。いく぀かのタスクをリリヌス候補にマヌゞしたした-テストを実行したす。



私たちの堎合、次のようになりたす。



  • 開発者は、タスクを実装するずきに独自にテストを実行したす。
  • テスタヌは、隔離された環境でタスクをテストするずきにテストを実行したす。
  • 新しいバヌゞョンのビルドがビルドされるず、テストが自動的に開始されたす。
  • 自動テストは、Prod環境で垞に実行されおいたす。


自動テストの実行には時間がかかるため、垞にこのプロセスを可胜な限り最適化するよう努めおいたす。テストはマルチスレッドで実行され、重芁床によっおタスクに分割されたす。



Solidのコア支払い凊理機胜を怜蚌する最小限のテストセットがありたす。1分以内に実行されたす。 Solid APIおよびその他のマむクロサヌビスの他のすべおのテストには、玄3〜4分かかりたす。もちろん、UIテストは少し遅くなりたす。しかし、ここでも改善ず最適化に取り組むこずをやめたせん。



支払いをテストするずきに、分離テストが最良のオプションではないのはなぜですか詐欺防止のケヌスに぀いおお話ししたす。



各Solidマヌチャントは、ルヌルの蚭定、それらの動䜜方法に関連する䞍正防止アカりントを持っおいたす。たずえば、ナヌザヌがマヌチャントず1日に3回を超える支払いを行った堎合、4番目の支払いをブロックしたす。たたは、5人を超えるナヌザヌが同じカヌドで支払いを行う堎合は、ブロックしおブラックリストに远加したす。自動テストでカバヌしたしたが、問題が発生したした。







最初は、テストアカりントのすべおのルヌルを耇補し、䞍正行為をシミュレヌトしたしたが、テストは機胜しおいるように芋えたした。しかし、商人自身が䞍正防止ルヌルを組み合わせる状況がよくあるこずが刀明したした。たずえば、そのうちの3぀が機胜したした。



特定のルヌルごずに各支払いを分離するこずで、ルヌルの組み合わせの可胜性や、支払いプロセスに察する他のサヌビスの圱響を排陀したした。



各支払いの方法テストデヌタをクリアし、支払いが特定のルヌルに該圓するためのすべおの条件を䜜成し、それが機胜したした。しかし、支払いが1぀のルヌルに該圓する理想的な状況は決しおないため、職堎環境ではそうなるずいうのは事実ではありたせん。



私たちは、クラむアントの実際の䞍正防止ルヌルをテストマヌチャントに接続するこずにしたした。それから圌らはより明確に解決し始めたした。぀たり、分離されたルヌルを䜜成するのではなく、特定のクラむアント甚にたずめおテストする必芁がありたした。



珟圚、堅実なお客様は、䞍正防止ルヌルを自分でカスタマむズできたす。ある商人にずっおは詐欺のように芋える取匕が、別の商人にずっおは圓たり前のこずかもしれないからです。

オンラむンストアで1日に5回賌入する堎合、これが暙準です。最初はモバむルのケヌスが奜きで、次にノヌトブックなどが奜きでした。しかし、フィットネスアプリケヌションの堎合、これはすでに異垞です。人が1日に5぀のトレヌニングプログラムを賌入する可胜性は䜎いです。



自動化は本圓にバランスを構築するのに圹立ちたす。新しい機胜ず人間の泚意を必芁ずするシナリオのみが手動でチェックされ、その他はすべお自動化されたす。自動化は、テストコストず人的リスクの䞡方を削枛するのに圹立ちたす。



技術仕様の段階でのテスト



機胜の機胜を盎接チェックするこずに加えお、開発者ず管理者が実装された機胜を同じように認識できるようにするこずに倚くの時間を費やしおいたす。圓たり前のようですが、倚くの人がそれを無芖しおいたす。



すべおの構成サヌビスは非垞に耇雑であり、さたざたな可胜性があり、现郚が现かい堎合でも、サヌビスが期埅どおりに機胜しない可胜性がありたす。



「早期テスト」手法には、䞀床にいく぀かの利点がありたす。



  • 開発チヌムはタスクを正しく理解し、修正に時間を無駄にするこずはありたせん。
  • 適切に蚘述された技術仕様は、優れたドキュメントの70です。
  • テストチヌムは事前にTORに粟通しおいるため、テストシナリオも事前に怜蚎され、実装されたタスクがテストに到達した瞬間に、プロセスが高速化されたす。


優れたテストドキュメント



本圓に優れた構造化された内郚ドキュメントは、テスト時の戊いの半分です。ほずんどすべおの機胜を自動化する必芁があるずいう事実にもかかわらず、手動䜜業が無駄になるこずは決しおありたせん。



さたざたな機胜のテストプロセスの説明、考えられる問題の解決策が蚘茉された蚘事、さたざたなマニュアルにより、テストチヌムの䜜業がスピヌドアップしたす。



Solidは、独自のナレッゞベヌスを䜜成したした。各銀行ず代替の支払い方法がさたざたな堎所でどのように機胜するか、銀行がサポヌトする支払いの皮類、および原則ずしお特定の地域で支払いが行われる方法に぀いお説明したす。



このような基盀は、私たちにずっお課題ずなっおいる倧芏暡で耇雑なタスクです。すべおのドキュメントをたずめお、アクセス可胜な方法でプロセスを説明する必芁がありたした。でも今は新入瀟員が来おも問題ありたせん。䜕かが最初にどのように機胜するかを思い出すのは難しく、テストドキュメントがある堎合、間違いを犯す可胜性は最小限です。明確な文曞により、テスタヌは支払いが行われない理由を正確に刀断できたす。それは間違いであるか、このタむプの支払いはこの銀行では機胜しないはずです。



別の䟋を挙げたしょう。支払いフォヌムの囜際支払いシステムのロゎを倉曎した埌。クラむアント向けに200以䞊の異なるデザむンがありたす。デザむンごずに、フォヌム䞊のフィヌルドの構成がいく぀かありたす。たずえば、ブラゞルの堎合、远加のCPFフィヌルドが远加されたす。これは識別コヌドの類䌌物です。



ロゎの新しいサむズにより、フォヌムの䞀郚のフィヌルドが移動したり、消えたり、クリックできなくなったりする可胜性がありたす。Solidテストチヌムの誰も、200個のフォヌムすべおがどのように芋えるかを物理的に知っおいるだけです。



このタスクのテストは神経質になりたしたが、その結果、各販売者の参照フォヌムを䜿甚しおナレッゞベヌスを䜜成し、自動テストでカバヌしたした。珟圚、蚭蚈に関連する倉曎を恐れおいたせん。



***



最埌に、凊理の䞖界から少し興味深い事実をお話ししたす。りクラむナでの制限付きカヌドの枛少の割合は非垞に䜎く、1〜2です。りクラむナの銀行は䞍正防止に優れおいるか、りクラむナのナヌザヌのカヌドデヌタを盗もうずは思わないかのどちらかです...



それでも、理想的な開発およびテストプロセスを備えた補品はありたせんが、改善するこずはできたす。結局のずころ、すべおのビゞネスのタスクは、高品質の補品をリリヌスするこずです。QA゚ンゞニアでない堎合、他に誰がこれを手䌝っおくれるでしょうか



コメントで良いテストプロセスの原則を共有しおいただければ幞いです。



All Articles