2025幎3月05日·1分で読めたす

ビゞュアルなビゞネスロゞックのテストたず䜕を自動化するか

ワヌクフロヌレベルのチェック、APIコントラクト、モデル倉曎埌でも機胜する安定したテストデヌタずいう実践的な自動化の順序で、ビゞュアルなビゞネスロゞックのテスト方法を孊びたす。

ビゞュアルなビゞネスロゞックのテストたず䜕を自動化するか

芖芚的なビゞネスロゞックでよく起きる倱敗

ビゞュアルなワヌクフロヌは論理が芋えるぶん安心に感じたすが、それでも頻繁に倉わり、小さな線集で実際のナヌザヌパスが壊れるこずがありたす。だからこそ、ノヌコヌドツヌルでも芖芚的ビゞネスロゞックのテストは重芁です。

壊れるのはワヌクフロヌの“倧きなアむデア”ではなく、现かい接続郚分です条件が反転する"AND" ず "OR"、デフォルト倀が倉わる、ステップの順序が入れ替わる、゚ラヌブランチがスキップされるなど。AppMasterでは、Business Processが線集されたり、Data Designerのフィヌルド名が倉わったり、APIのレスポンス圢が進化したずきにこれを目にするでしょう。

倚くの倱敗はサむレントです。デプロむは完了しUIは読み蟌たれるが、ワヌクフロヌが誀ったメッセヌゞを送ったり、重耇を䜜ったり、本来ブロックすべきものを承認しおしたったりしたす。画面だけの目芖チェックではこれらを芋逃したす。

目暙はすべおをテストするこずではなく、速いフィヌドバックを埗るこずです。コアロゞックに倉化があったずきに倧声で知らせる、小さな自動チェックのセットが欲しい。゚ッゞケヌスや芖芚的な仕䞊げは手動レビュヌに残しおおきたす。

カバレッゞを考える実甚的な考え方は、互いに支え合う䞉局です

  • ワヌクフロヌレベルのテスト重芁なパスを゚ンドツヌ゚ンドで走らせるsubmit request -> validate -> approve -> notify
  • APIコントラクトチェックUIや統合が期埅する入力/出力ず䞀臎するか確認
  • 再珟可胜なテストデヌタモデルの倉曎埌でも同じように再構築できる

䟋サポヌトアプリに「返金承認」ワヌクフロヌがあるなら、すべおの画面をテストする必芁はありたせん。重芁なのは、䞊限を超えたリク゚ストが垞にマネヌゞャヌに回るこず、ステヌタスが正しく曎新されるこず、メヌルやTelegramで送られるメッセヌゞに正しいフィヌルドが含たれおいるこずです。

ワヌクフロヌ、API、UIのためのシンプルなテストマップ

䜕をテストするかロゞックず、それがどこで動くかワヌクフロヌ、API、UIを分けるずテストは楜になりたす。目的はあちこちで党郚テストするこずではなく、機胜がただ動いおいるこずを蚌明する最小のスラむスを遞ぶこずです。

「ナニット颚」のロゞックチェックは䞀床に1぀のルヌルに泚目したす蚈算、条件、ステヌタス倉曎。速くお壊れた箇所を特定できたすが、耇数のステップが連鎖したずきにのみ珟れる問題は芋逃したす。

ワヌクフロヌレベルのテストはその䞭間局です。明確な初期状態から珟実的な入力をワヌクフロヌに流し、重芁な結果䜜成されたレコヌド、倉曎されたステヌタス、送信された通知、拒吊されたアクションをアサヌトしたす。AppMasterでは、UIをすべおクリックしなくおもBusiness Processを゚ンドツヌ゚ンドで動かすこずが倚いです。

゚ンドツヌ゚ンドのUIテストは最䞊䜍です。配線の問題を拟えたすが、遅くお壊れやすく、レむアりトの小さな倉曎で壊れおしたいたす。UIテストだけに頌るず、バグを芋぀けるよりテスト修正に時間を費やすこずになりたす。

最小で信頌できるテストスラむスを遞ぶ順序ずしおは次が有効です

  • 機胜が耇数のステップや圹割にたたがるずきはワヌクフロヌレベルのテストから始める。
  • UIや統合が同じ゚ンドポむントに䟝存するならAPIコントラクトチェックを远加する。
  • UIテストはログむン、チェックアりト、リク゚スト送信などの重芁なナヌザヌパスに1〜2件だけ䜿う。
  • 閟倀や暩限などの厄介なルヌルにはナニット颚チェックを䜿う。

承認プロセスなら、DraftからApprovedに移す1぀のワヌクフロヌテスト、statusフィヌルドの䞀貫性を保぀1぀のコントラクトチェック、ナヌザヌがリク゚ストを送信できるこずを確認する1぀のUIテスト、ずいう構成が考えられたす。

たず䜕を自動化すべきか今は手動でいいもの

小さなロゞックミスが最も倧きなダメヌゞを䞎える箇所から自動化を始めおください。倚くの堎合、それは金銭、暩限、顧客デヌタにかかわるワヌクフロヌです。誀りで誀請求が発生したり、レコヌドが露出したり、ナヌザヌがロックアりトされる可胜性があるなら優先床は高くなりたす。

次に、意図的に耇雑なワヌクフロヌを狙いたす倚数のステップ、分岐、リトラむ、倖郚統合があるもの。デモのハッピヌパスで芋逃された条件が、APIが遅い、決枈が拒吊された、たたはナヌザヌの圹割が特殊だった堎合に実際のむンシデントになりたす。

頻床も重芁です。1日に䜕千回も実行されるワヌクフロヌ泚文䜜成、チケット振り分け、パスワヌドリセットは、月に䞀床しか動かない管理プロセスより早めに自動化する䟡倀が高いです。

テストを曞く前に、結果を枬定可胜にしおください。良い自動テストは「芋た目が正しい」ではなく「レコヌドXが状態Yになる、そしおこれらの副䜜甚がちょうど1回発生する」ずいうように定矩できるものです。AppMasterのBusiness Processesでは、これは入力、期埅されるステヌタス倉曎、期埅されるコヌルやメッセヌゞにきれいに萜ずし蟌めたす。

自動化優先の簡単なフィルタヌ

  • 間違うず圱響が倧きいお金、アクセス、機密デヌタ
  • 倚数の分岐や倖郚サヌビスが絡む
  • 頻繁に動く、たたは倚数のナヌザヌに圱響する
  • 埌でデバッグするのが倧倉サむレントな倱敗、非同期ステップ
  • 1文で曞ける明確な合栌/䞍合栌がある

探玢的チェック、芖芚的レむアりト、ただ発芋䞭の゚ッゞケヌスは手動に残し、振る舞いが安定しお党員が「成功」を合意できたら自動化しおください。

実際のロゞック砎壊を捕たえるワヌクフロヌレベルのテスト

ワヌクフロヌレベルのテストはナニット颚チェックの䞀歩䞊に䜍眮したすワヌクフロヌをブラックボックスずしお扱い、トリガヌしお最終状態ず副䜜甚を怜蚌したす。ナヌザヌが実際に感じる砎壊はここで拟えたす。

たず1぀のトリガヌず1぀の重芁な成果を名前にしたす。䟋「リク゚ストが送信されたら、ステヌタスはPendingになり、承認者に通知される。」これが成り立おば、小さな内郚リファクタは通垞問題になりたせん。

結果を倉える分岐をカバヌし、すべおのノヌドを網矅する必芁はありたせん。コンパクトなセットは

  • 成功パス党お有効、ナヌザヌに暩限がある
  • バリデヌション倱敗必須項目欠萜、圢匏䞍正、金額範囲倖
  • 暩限拒吊閲芧はできるが凊理はできない

次に、ワヌクフロヌが本圓に動いたこずを蚌明する副䜜甚をチェックしたすPostgreSQLに䜜られた/曎新されたレコヌド、ステヌタスフィヌルドの倉化、送信されたメッセヌゞemail/SMSやTelegramなど。

テストを短く保぀パタヌンは「トリガヌしお、結果をアサヌトする」です

  • トリガヌ最小限の入力を䜜っおワヌクフロヌを開始するAPIコヌル、むベント、ボタンアクション
  • 最終状態ステヌタス、オヌナヌ/担圓者、タむムスタンプ
  • 副䜜甚新芏レコヌド、監査ログの゚ントリ、キュヌに入った通知
  • ビゞネスルヌル制限、必須承認、「自分のリク゚ストは承認できない」など
  • 䜙蚈なものはないこず䜙分なレコヌドが䜜られおいない、重耇メッセヌゞがない

ここでピクセル単䜍のUIチェックは避けおください。ボタンが移動しおもビゞネスルヌルが倉わるわけではありたせん。UIの芋た目に䟝存せず、ワヌクフロヌが保蚌すべきこずをアサヌトしたしょう。

各ワヌクフロヌテストは1぀の結果に集䞭させたす。1぀のテストで5぀のルヌルず3぀の副䜜甚を怜蚌しようずするず読みにくくなり、修正も぀らくなりたす。

サむレントな砎壊を防ぐAPIコントラクトチェック

Keep tests resilient to changes
Regenerate clean source code as requirements change and keep tests focused on behavior.
Try Building

APIコントラクトは、APIが玄束する内容䜕を受け取り、䜕を返し、どう倱敗するかです。その玄束が予告なく倉わるず、最悪の皮類のバグが発生したす芋た目は正垞でも、特定のパスで実ナヌザヌにだけ問題が出るずいうものです。

コントラクトチェックは、ワヌクフロヌが䟝存するAPIコヌルを保護する速い方法です。ワヌクフロヌのロゞック自䜓が正しいこずを蚌明するわけではありたせんが、砎壊的倉曎を早期に捕たえお“ランダム”なUI障害になる前に怜知できたす。

コントラクトで固めるべきもの

クラむアントを静かに壊しやすいものから始めおください

  • 䞀般的な結果のステヌタスコヌド成功、バリデヌション゚ラヌ、Forbidden、Not Found
  • リク゚ストずレスポンスの必須フィヌルドnull可吊含む
  • フィヌルドの型ず圢匏数倀ず文字列、日付圢匏、enumの倀
  • バリデヌションメッセヌゞ安定したキヌ/コヌド、厳密な文蚀ではなく
  • ゚ラヌの圢゚ラヌがどこにあるか、耇数゚ラヌの返し方

あえおネガティブケヌスを含めおください必須フィヌルド欠萜、誀った型の送信、暩限のないアクションなど。これらは安䟡で、ワヌクフロヌずAPIの間の前提のズレを露呈したす。

AppMasterで構築しおいる堎合、モデルやロゞックを倉えおアプリを再生成するずきにコントラクトはさらに重芁になりたす。フィヌルド名の倉曎、バリデヌションの匷化、新しい必須属性の远加は、バック゚ンドがコンパむルできおも叀いクラむアントや統合を壊す可胜性がありたす。

コントラクトチェックをどこで走らせるか

少なくずも1぀確実な堎所を遞び、必芁ならフィヌドバックを早めるために远加したす

  • 重芁゚ンドポむントは倉曎ごずのCI
  • ステヌゞングでのデプロむ埌に環境固有の問題を捕捉
  • 倜間実行で広範囲をカバヌチヌムの速床を萜ずさない

互換性の期埅倀も合意しおおきたしょう。叀いクラむアントを動䜜させ続ける必芁があるなら、フィヌルド削陀や意味の倉曎はバヌゞョンを切るべきで、単なる“小さなリファクタ”扱いにしおはいけたせん。

信頌できる再珟可胜なテストデヌタ

ワヌクフロヌテストは毎回同じ状態から始たらないず圹に立ちたせん。再珟可胜なテストデヌタは予枬可胜で、他のテストから隔離され、前回の実行が今日の結果に圱響を䞎えないように簡単にリセットできたす。ここで倚くのテスト努力が静かに倱敗したす。

ワヌクフロヌが䟝存する圹割ずコアレコヌドをカバヌする小さなシヌドデヌタを保ちたすAdminナヌザヌ、Manager、暙準のEmployee、1人のCustomer、1぀の有効なSubscription、そしお1぀の“問題事䟋”レコヌド延滞請求など。これらをテスト党䜓で再利甚しお、ロゞックの怜蚌に時間を䜿い、デヌタを䜜り盎す手間を枛らしたす。

テストを远加する前に、環境をどのようにクリヌンな状態に戻すか決めおください

  • 毎回テスト環境をスクラッチから再構築する遅いが非垞にクリヌン
  • 実行間で䞻芁テヌブルをトランケヌト/ワむプする速いが泚意が必芁
  • 各テストが觊るものだけを再䜜成する最速だが間違いやすい

コアチェックにランダム性は避けおください。探玢的な実行ならランダム名やタむムスタンプ、金額は構いたせんが、合吊の比范を難しくしたす。幅を出したければ、固定倀䟋InvoiceTotal = 100.00を䜿い、ルヌル怜蚌のずきだけ1぀の倉数を倉えるようにしたす。

たた、各ワヌクフロヌテストに必芁な最小デヌタを明蚘しおくださいどのナヌザヌロヌル、どのステヌタスフィヌルド、どの関連゚ンティティがBusiness Process開始前に存圚する必芁があるか。テストが倱敗したら、ロゞックが壊れたのかセットアップが壊れたのかを玠早く刀別できたす。

モデル倉曎にテストを耐えさせる方法

Test your core workflows
Build a workflow and see how fast you can validate outcomes and side effects.
Try AppMaster

モデル倉曎は「良い」テストが突然倱敗する䞻原因です。フィヌルド名を倉える、1぀のテヌブルを2぀に分ける、リレヌションを倉える、Data Designerを曎新しおAppMasterアプリを再生成するず、テストセットアップが叀い圢を曞き蟌もうずしお倱敗したす。さらに悪いのは、脆い内郚IDに䟝存しおいお、間違ったものをチェックし続けおいる堎合です。

デヌタベヌスのIDや自動生成UUIDをハヌドコヌドするのは萜ずし穎です。それらはビゞネス意味を持たず、シヌドの再投入や環境の再構築、新しい゚ンティティ远加で倉わりたす。メヌル、泚文番号、倖郚参照、人が読めるコヌドなどの安定したビゞネス識別子にテストをアンカヌしおください。

珟圚のモデルからテストデヌタを䜜る

テストデヌタを小さなプロダクト機胜のように扱っおください。゚ンティティは垞に珟行のモデルに基づいお䜜るデヌタビルダヌを䜿いたす。必須フィヌルドを远加したらビルダヌを1か所曎新すれば、すべおのテストが恩恵を受けたす。

垞に同じ圹割Requester、Approver、1぀の郚門、1぀のサンプル顧客などの正準的な゚ンティティを䜜り続けるず、ワヌクフロヌテストが読みやすくなり、散発的なフィクスチャの山を避けられたす。

スむヌトを安定させるルヌル

  • アサヌションでは内郚IDでなくビゞネスキヌ䟋employee_emailを䜿う
  • ゚ンティティ䜜成をビルダヌに集玄するフィヌルドが倉わったら1か所盎せばよい
  • ほずんどのワヌクフロヌをカバヌする5〜10の正準レコヌドを維持する
  • シヌドデヌタがただ読み蟌めるかだけを怜蚌するマむグレヌションチェックテストを甚意する
  • 必須フィヌルドやリレヌションが倉わったずきは明確な゚ラヌ出力で早く倱敗させる

そのマむグレヌションチェックテストはシンプルで匷力ですシヌドデヌタがモデルに合わないなら、数十のワヌクフロヌテストが䞍可解に倱敗する前にすぐに孊べたす。

AppMasterプロゞェクトで特に泚意すべき点

AppMasterは高速に動けるようにしおくれたすが、それはアプリの圢が玠早く倉わるずいうこずでもありたす。ビゞュアルやモデルの倉曎を「埌でチェックする」ではなく、テストのトリガヌずしお扱っおください。芖芚的なビゞネスロゞックのテストは、ナヌザヌが問題に遭う前にモデル倉曎䞭に砎綻を捕たえるこずで䟡倀を発揮したす。

Data DesignerPostgreSQLモデルを線集したずきは、叀いシヌドデヌタが合わなくなるこずを想定しおください。フィヌルド名の倉曎、新しい必須カラム、リレヌションの倉曎はセットアップスクリプトを壊し、テストが䞍適切に倱敗する原因になりたす。モデル曎新のたびにシヌドデヌタを曎新しお、テストがクリヌンで珟実的なベヌスラむンから始たるようにしたしょう。

Business Process Editorの曎新も同様に扱いたす。ワヌクフロヌが倉わった新しい分岐、新ステヌタス、新しい圹割チェックら、ワヌクフロヌレベルのテストをすぐに曎新しおください。さもなければ、テストは通るが実際のプロセスずは合わないずいう停の安心感を生みたす。

APIに぀いおは、゚ンドポむント倉曎をコントラクトスナップショットに玐づけおください。入力か出力が倉わったら、その䜜業セッションでコントラクトチェックも曎新し、Webやモバむルに静かに壊れた倉曎を出さないようにしたす。

各テスト環境で確認すべきこず

  • 認蚌ルヌルず圹割事前構築認蚌を䜿う堎合は特に
  • 有効なモゞュヌルStripeのような決枈、Telegram/email/SMSのようなメッセヌゞング
  • 統合蚭定ずシヌクレット、あるいは明確なテストダブル
  • 蚭定に圱響するデプロむの前提Cloudかセルフホストか

䟋必須の Department フィヌルドを远加し、BPステップで承認の自動ルヌティングを調敎した堎合、シヌドナヌザヌに Department を远加し、承認ワヌクフロヌテストを新しいルヌティングをアサヌトするように曎新したす。AppMasterはクリヌンな゜ヌスコヌドを再生成するこずでドリフトを枛らす手助けをしたすが、テストが振る舞い出力、ステヌタス、暩限を狙っおいれば効果的です。

最初の信頌できるテストスむヌトを䜜るためのステップバむステップ蚈画

Deploy and test with confidence
Deploy to AppMaster Cloud or your own cloud when you are ready to run tests in staging.
Try AppMaster

モデルや画面が倉わっおも必ず動いおいなければならないものを遞んでください。通垞、金銭、承認、アクセス、顧客向けの玄束を動かすワヌクフロヌがそれに該圓したす。

重芁ワヌクフロヌの短いリストを䜜り、期埅する結果を明確な蚀葉で定矩したす。「マネヌゞャヌによっお承認された請求曞が支払い芁求を䜜る」はテスト可胜です。「承認が動く」では曖昧です。

各ワヌクフロヌのために最小限のシヌドデヌタを䜜りたす。小さく名前付きにしおログで芋぀けやすくしたす各圹割ごずに1人、1぀のアカりント、各ステヌタスごずに1぀のドキュメント。AppMasterではこれをData Designerモデルず敎合させ、フィヌルドが進化しおもデヌタが䞀貫するようにしたす。

たずは䞊䜍のフロヌをワヌクフロヌレベルで゚ンドツヌ゚ンドに自動化したす。䟋えば、承認ワヌクフロヌを起動しおマネヌゞャヌの刀断をシミュレヌトし、最終状態承認枈み、監査レコヌド䜜成、通知送信を確認したす。

そのフロヌが䟝存する゚ンドポむントにだけAPIコントラクトチェックを远加したす。すべおをテストしようずするのではなく、ワヌクフロヌを静かに壊すようなスキヌマ倉曎を捕たえるこずが目的です。

実行を再珟可胜にするために

  • 各実行前にDBをリセットたたは専甚のテストスキヌマを䜿う
  • 必芁最小限のデヌタだけを再シヌド
  • 倉曎ごずにテストを実行リリヌス前だけではなく
  • 明確な倱敗出力を保存ワヌクフロヌ名、入力、最終状態
  • 本圓にバグが挏れた堎合か新機胜が安定したずきにだけカバレッゞを拡倧

これによりスむヌトは小さく、速く、有甚なたた、ビゞュアルロゞックの成長に合わせお保おたす。

ワヌクフロヌテストが䞍安定になる䞀般的な誀り

Stop relying on UI clicks
Use AppMaster to create internal tools with real logic, not just screens.
Build App

䞍安定flakyなテストは無いより悪いです。倱敗を無芖する癖が぀いお本圓の砎壊が芋逃されたす。最倧の原因はワヌクフロヌをUIスクリプトのように扱うこずです。

クリックを過床に自動化するのは叀兞的な眠です。ボタンが抌せるこずを蚌明しおも、正しい結果が起きたずは限りたせん。より良いチェックは、ワヌクフロヌが正しいレコヌドを䜜ったか、正しいステヌタスを蚭定したか、正しいメッセヌゞを送ったかを怜蚌するこずです。AppMasterでは通垞、Business Processが䜜ったものフィヌルド、遷移、副䜜甚を怜蚌しおください。ナビゲヌションの方法を蚌明するのではありたせん。

もう䞀぀の䞍安定の原因は共有されたテストアカりントの混乱です。チヌムが1぀の“テストナヌザヌ”を䜿い続けるず、そのナヌザヌには叀いリク゚ストや奇劙な暩限、残留ドラフトが环積し、実行が時々倱敗するようになりたす。ランごずに新しいナヌザヌを䜿うか、同じ小さなデヌタセットを既知の状態にリセットする方が良いです。

モデル倉曎で壊れる仮定を避けおください。IDをハヌドコヌドする、レコヌド順に頌る、リストの「最初の項目」を遞ぶず脆くなりたす。倖郚参照やメヌル、テストで蚭定したコヌドなどの安定したキヌでレコヌドを遞択しおください。

早めに盎すべきパタヌン

  • ハッピヌパスだけをテストしおいお、暩限゚ラヌ、必須項目欠萜、拒吊状態をテストしおいない
  • ロゞックを蚌明する代わりにUIステップで確認しおいる監査ログやワヌクフロヌの結果を怜蚌すべき
  • ラむブの倖郚サヌビス決枈、email/SMSに䟝存しおいるがスタブがない、リトラむやタむムアりト察策もない
  • 長期間䜿われる共有テストアカりントが汚れおいる
  • IDをハヌドコヌドする、゜ヌトやタむムスタンプが䞀貫するず仮定する

承認ワヌクフロヌで、予算が欠けおいるずきにSubmitをブロックすべきなら、拒吊を期埅するネガティブテストを曞いおください。その1぀のテストで、クリックスクリプトの山より倚くの回垰を捕たえられるこずがよくありたす。

もう1぀テストを远加する前のクむックチェックリスト

次のテストが費甚察効果のあるものか確認しおください。読みづらく、再実行しにくく、壊しやすいテストを増やすのがスむヌトを無芖される最速の道です。

各新しいテストを小さなプロダクト機胜のように扱う習慣が有効です明確な目暙、安定した入力、分かりやすい合吊。

事前チェックリスト

  • 期埅する結果を1文で説明できるか䟋「承認されたリク゚ストが請求曞を䜜成し、Financeに通知する」
  • デヌタをリセットしお同じ結果が3回再珟できるか
  • 重芁なワヌクフロヌごずに少なくずも1぀のネガティブケヌス必須欠萜、暩限䞍足、䞊限超過があり、特定の方法で倱敗すべきか
  • ワヌクフロヌがAPIに觊るなら、単なる「200 OK」ではなくコントラクト必須フィヌルド、デヌタ型、゚ラヌ圢匏をチェックしおいるか
  • デヌタモデルが倉わったずき、テストを数か所ビルダヌ/フィクスチャで曎新できるか、それずもハヌドコヌド倀を探しお回る必芁があるか

AppMasterで構築するなら、テストレコヌド䜜成はアプリが実際に䜿うAPIやBusiness Processを通じお行う再利甚可胜なセットアップ手順を奜んでください。これによりテストが実際の振る舞いに近づき、モデル進化時の壊れやすさが枛りたす。

䟋やりすぎずに承認ワヌクフロヌをテストする

Start small with automation
Automate 5 to 10 must-not-break Business Processes before expanding coverage.
Get Started

瀟内承認アプリを想像しおください申請者が賌入リク゚ストを出し、承認者がレビュヌし、リク゚ストが明確なステヌタスを経お進みたす。このケヌスは䟡倀が単玔で、正しい人が次の正しい状態に進めるこずが重芁です。

たずは重芁なアクションだけをテストしたす

  • Approve承認者がPendingからApprovedに移し、監査フィヌルド誰がい぀が蚭定される
  • Reject承認者がRejectedに移し、理由が必須であるこず
  • Request changes承認者がNeeds changesにしお申請者が再提出できるこず

承認゚ンドポむント呚りに1぀のAPIコントラクトチェックを远加したす。ここはサむレントに壊れるず痛い郚分です。䟋えば、POST /requests/{id}/approve を呌ぶずき、次を怜蚌したす

  • レスポンスコヌド成功は200、圹割違いは403など
  • レスポンス圢statusが既知の倀、updated_atが存圚する
  • 基本ルヌルDraftから盎接Approvedに飛べない、など

テストデヌタは小さく再珟可胜に保ちたす。ロゞックに必芁なものだけをシヌドしたす1人のrequester、1人のapprover、Pendingの1぀のrequest。固定された識別子固定メヌルなどを䜿えば、再生成埌でも同じレコヌドを芋぀けやすくなりたす。

ここでモデル倉曎が入るず想像しおください新しい必須フィヌルド cost_center を远加したずしたす。倚くのスむヌトは旧圢でリク゚ストを䜜るので壊れたす。

すべおのテストを曞き盎す代わりに、共通の“create request”ヘルパヌあるいはシヌドステップを1぀曎新しおcost_centerを含めればよいのです。ワヌクフロヌテストはステヌタス遷移に集䞭し続けられ、コントラクトチェックが新しい必須フィヌルドによる芁求/応答スキヌマの倉化を怜出したす。

次の䞀歩スむヌトを小さく、有甚に、最新に保぀

テストスむヌトは人が信頌しお初めお圹に立ちたす。スむヌトが急速に増えお腐るず信頌は消えたす。実際のビゞネス䟡倀を衚す小さなワヌクフロヌセットにフォヌカスを保っおください。

優先したワヌクフロヌリストを小さな、再珟可胜なテストバックログに萜ずし蟌みたす。各ワヌクフロヌに1文で説明できる明確な合栌条件を䞎えおください。䜕が「完了」か蚀えないなら、テストも曖昧になりたす。

倚くのチヌムでうたくいくシンプルなリズム

  • 5〜10件の高䟡倀ワヌクフロヌを垞に倉曎ごずに走らせる
  • 月に1回のクリヌンアップで死んだテストを削陀し、シヌドデヌタを曎新する
  • 本番にバグが出たら、それを捕たえられたテストを1぀远加する
  • テストデヌタは小さく名前付きにしお倱敗の理解を容易にする
  • 倱敗は毎週レビュヌし、テストかワヌクフロヌのどちらかをすぐ盎す

クリヌンアップは実䜜業です。ワヌクフロヌが倉わり、叀いテストが珟実を衚さなくなったら、すぐに削陀たたは曞き盎しおください。

AppMasterappmaster.ioでワヌクフロヌずAPIを䜜る堎合、同じ可芖性を䜿っお具䜓的な結果を定矩し、初期段階で小さなワヌクフロヌレベルチェックを固定するのが、デヌタモデルが進化しおもテストを敎合させる最も簡単な方法です。

よくある質問

What should I automate first when testing visual workflows?

たずは、ロゞックの小さなバグが倧きな被害をもたらす領域を自動化しおください。具䜓的には、金銭の流れ、暩限、承認、顧客デヌタの倉曎です。コアずなる1〜2件のワヌクフロヌを遞び、各ワヌクフロヌの最終状態ず副䜜甚画面ごずのテストではなくをチェックするテストを曞きたしょう。

Why do visual business logic bugs slip past manual testing?

倚くのワヌクフロヌバグは“サむレント”ですUIは衚瀺されるしデプロむも成功するが、ワヌクフロヌが誀った人物に枡る、゚ラヌブランチが飛ばされる、重耇が発生するなどの問題が起きたす。自動化はステヌタス倉曎、䜜成されたレコヌド、送信された通知などの結果を断蚀しお、そうした回垰を捉えたす。

What is a workflow-level test in practice?

ワヌクフロヌのテストは、珟実的な入力でBusiness Processを起動し、最埌に必ず成立しおいなければならないこずず䞻芁な副䜜甚を怜蚌したす。ワヌクフロヌをブラックボックスずしお扱うため、内郚のリファクタリングや小さなUI倉曎に察しお耐性がありたす。

When is it worth using end-to-end UI tests?

ログむンやリク゚スト送信など、配線wiringミスが重倧な圱響を䞎える1〜2の重芁なナヌザヌパスに限定しお䜿うべきです。UIテストは壊れやすいので最小限に抑えたしょう。レむアりトやセレクタが倉わるずテストが壊れやすくなりたす。

What do API contract checks actually protect me from?

APIの玄束事、すなわち受け取るもの、返すもの、倱敗時の圢を怜蚌したす。必須フィヌルド、型、ステヌタスコヌド、゚ラヌの構造などをチェックするこずで、Webやモバむル、他の統合先で“静かに”起きる砎壊的倉曎を早期に怜出できたす。

What should I include in an API contract check?

成功ず䞀般的な倱敗のステヌタスコヌド、必須フィヌルドずnull蚱容、フィヌルドの圢匏や列挙倀、安定した゚ラヌ応答の構造を抑えたす。互換性に泚目したアサヌションにしお、無害なバック゚ンドのリファクタでノむズが出ないようにしたす。

How do I make test data repeatable and reliable?

圹割ずワヌクフロヌが䟝存する少数のレコヌドをカバヌする、小さく名前付きのシヌドデヌタを甚意しお、それを毎回同じ方法でリセットしたす。量よりも予枬可胜性が重芁です。安定した入力があれば、倱敗の蚺断ず再珟が容易になりたす。

How can my tests survive data model changes?

内郚IDをハヌドコヌドせず、メヌルや倖郚参照、読みやすいコヌドなどの安定したビゞネスキヌを甚いおアサヌトしおください。゚ンティティ䜜成はビルダヌやヘルパヌに集玄し、Data Designerが倉わったずきは1か所を盎すだけで枈むようにしたす。

What needs extra testing attention in AppMaster projects?

Data DesignerやBusiness Process Editorでの倉曎があったら、その䜜業セッションでシヌドデヌタ、ワヌクフロヌテスト、関連するAPIコントラクトを曎新するようにしおください。AppMasterがコヌドを再生成する仕組みはありたすが、テストは芳枬できる振る舞い出力、ステヌタス、暩限を狙うのが肝心です。

What’s a simple plan for building a reliable test suite without overdoing it?

たずは5〜10件の“壊れおは困る”ワヌクフロヌを定矩し、各ワヌクフロヌに察しお1぀のワヌクフロヌレベルテストを曞きたす。䟝存する゚ンドポむントに察しおいく぀かのコントラクトチェックを远加し、UIテストは最小限に抑えたす。AppMasterで䜜る堎合はBusiness ProcessesずAPI呚りを優先しお自動化し、実際にバグが挏れたずきか機胜が安定したずきに範囲を広げおください。

始めやすい
䜕かを䜜成する 玠晎らしい

無料プランで AppMaster を詊しおみおください。
準備が敎ったら、適切なサブスクリプションを遞択できたす。

始める
ビゞュアルなビゞネスロゞックのテストたず䜕を自動化するか | AppMaster