SalesforceArchitectGroupDF22GG
by
atomica7sei
×
Copy
Open
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Slide 1
Slide 1 text
Dreamforce 2022 Global Gahering バックエンド、フロントエンド、E2Eテストについて知っておくべき事 2022/11/02(水) Salesforce Architects Meetup
Slide 2
Slide 2 text
本日のトピック 2 ● Developersのエピソード6より ○ バックエンド、フロントエンド、E2Eテストについて知っておくべき事 ○ https://www.salesforce.com/plus/experience/Dreamforce_2022/ series/Developers/episode/episode-s1e6/ ● きっかけは「テストの品質を高めたい!」と思ったので
Slide 3
Slide 3 text
テストのピラミッド 3 ● 単体テスト ○ 小さい塊、メソッド単位、ファンクション単位 ○ フロントエンド JavaScript, HTML, CSS ○ バックエンド Apex ● 結合テスト ○ 例えば、Eメールサーバーとプラットフォー ム、アプリケーションサーバーとデータベース やWebサービスなど ● エンドツーエンドテスト ○ 実際のお客様のシナリオに沿ったテスト ○ ユーザーのやりとりを厳密に模倣
Slide 4
Slide 4 text
テストのピラミッド 4 ● パフォーマンステスト ○ 例)1万のケースに3秒以下でメール送信 ● ブラックボックスとホワイトボックス ○ 境目は図の通り ○ ホワイトボックステスト メソッドやパラメータを知っていてテストする ○ ブラックボックス 正しい振る舞いをテストする
Slide 5
Slide 5 text
コードカバレッジ 5 ● 重要だがテストの質を測ることと混同してはダメ ● コードカバレッジは量であって質ではない
Slide 6
Slide 6 text
スタブ、スパイ、モック 6 ● スタブ: テスト対象のコードが呼び出しているコードを代替するもので、呼び出し先のコードがまだ作成されていない 場合などに使用 ● スパイ: テスト対象の一連の処理をひととおり実行した後に「メソッドは呼び出されたかどうか」「メソッドは何回呼び出 されたか」「メソッドに渡された実引数は何だったか」といったポイントを検証したいときに使用 ● モック: テストスパイが対象の処理が終わった後に検証を行うのに対し、モックオブジェクトは対象の処理の途中にリ アルタイムに検証
Slide 7
Slide 7 text
パフォーマンステスト 7
Slide 8
Slide 8 text
バックエンド: Apex テスト 8 ● Winter'23で追加 Assert.areEqual Assert.isNotNull Assert.isInstanceOfTyp e など
Slide 9
Slide 9 text
フロントエンド: LWC テスト(Jest) 9 ● Platformと切り離してテストできる ● コードカバレッジの要件は無い ● バーチャルブラウザ、画面も無く、メモリ上で実行
Slide 10
Slide 10 text
E2E: UTAM 10 ● Salesforceによって構築されたオープンソースソリューション ● 堅牢で維持しやすい仕組みがある
Slide 11
Slide 11 text
UTAMとは 11 ● UTAM ページオブジェクトを JSONで記述 ● CSS セレクタを使用してテスト対象ページの DOMを参照(再利用可能) ● テストを実行する準備ができ るとページオブジェクトをコン パイル
Slide 12
Slide 12 text
画面のテストの例 12 ● オレンジ色はテストしなければ ならない、カスタムコンポーネン ト ● 青色はLightning ベースコン ポーネント
Slide 13
Slide 13 text
シフトレフト 13 ● 開発ライフサイ クルの早い段階 で「テスト活動」 を行うこと ● 単体テストから 始めよう
Slide 14
Slide 14 text
Unit テストの構造 14 ● Given, When, Then ● 複雑すぎるものはUnit Testではない
Slide 15
Slide 15 text
まとめ 15