Upgrade to Pro — share decks privately, control downloads, hide ads and more …

PostgreSQL開発とテスト

 PostgreSQL開発とテスト

「FORCIA Meetup #4 高速検索を支えるPostgreSQLのノウハウ」の資料です

forcia_dev_pr

February 21, 2022
Tweet

More Decks by forcia_dev_pr

Other Decks in Programming

Transcript

  1. 自己紹介 • 吉田 侑弥 (Yuya Yoshida) • ソフトウェアエンジニア@フォルシア株式会社 ◦ webアプリケーション

    (TypeScript, Node.js, React, Next.js, NestJS, PostgreSQL) ◦ 大規模アプリ開発 ◦ パフォーマンスチューニング 2
  2. DB関連のテストは(比較的)大変 • 一般的には ◦ アプリと比較して環境構築のコストが高い ◦ 作業者間の差異がない環境下のテスト(再現性の担保)が難しい • フォルシアでは以下のような工程が多い ◦

    元のデータを検索用データに加工する(バッチSQL) ◦ データから必要なデータを高速に抽出する(オンラインSQL) ◦ 汎用的なモジュール開発(拡張機能やユーザー定義関数) →比較的テストの実施が容易な環境 3
  3. テスト観点①…実施パターン • バッチSQL ◦ バッチ処理が正常終了するか  → テストデータでバッチ実行 ◦ 処理が意図した通りか  →

    結合テスト • オンラインSQL ◦ 正しいSQL文が生成されるか  → スナップショットテスト ◦ クエリが意図した通りか  → 結合テスト 5
  4. 6 (補足)JSのテスト環境(Jest + Frisby) 6 • Jest: JSのテストフレームワーク • Frisby:

    Jest上で動くAPIテスト フレームワーク • SQL文の生成はJest単体、結合テス トはJest + Frisbyで実施
  5. EOF