Save 37% off PRO during our Black Friday Sale! »

開発者目線からユーザ目線へ / DX from a user standpoint

B303a306959e28c9869d84aa5620814d?s=47 Autify
April 10, 2021

開発者目線からユーザ目線へ / DX from a user standpoint

開発者目線からユーザ目線へ〜システム監視とソフトウェアテストが行き着く先
Developer eXperience Day 2021
https://dxd2021.cto-a.org/program/time-table/e-6

B303a306959e28c9869d84aa5620814d?s=128

Autify

April 10, 2021
Tweet

Transcript

  1. 開発者目線からユーザ目線へ システム監視とソフトウェアテストが行き着く先 2021年4月10日 Developer eXperience Day Autify 松浦隼人

  2. 自己紹介 松浦 隼人 • オーティファイ株式会社 CTO (2020年1月〜) • Twitter :

    dblmkt • 経歴 ◦ インフラ何でも屋 ◦ 某ブログサービスのインフラ担当 ◦ テクニカルサポート ◦ インフラ + Rails ◦ CTO (イマココ) • 趣味 ◦ 翻訳
  3. https://autify.com/ja

  4. E2Eテストはハードルが高い? - Autifyを使えば E2Eテストはハードルが高い? - Autifyを使えば • 手でやるのは工数がかかる ◦ 自動化しましょう!

    • シナリオ作る・書くの大変 ◦ テストシナリオ作成が簡単 • 実行するの大変 ◦ 複数のブラウザでテスト実行 • 作った後も大変 ◦ AIの力でシナリオ修正を支援
  5. 今日話すこと • DXの観点からのシステム監視とソフトウェアテスト • システム監視の進歩 • ソフトウェアテストの進歩 • システム監視とソフトウェアテストの共通点 •

    ユーザ目線でのDX
  6. システム監視とテスト • DX Criteria システムの評価項目 ◦ システム07 システムモニタリング → 障害からの学びが大事、監視はそのための手段

  7. システム監視とテスト • DX Criteria システムの評価項目 ◦ システム03 継続的インテグレーション → テストを書くこと自体は言わずもがな、自動化せよ

  8. システム監視とテスト • どちらも ◦ システムの品質低下を素早く検知して改善に生かす仕組み ◦ システム監視 ▪ 主にインフラ的な観点から問題を検知 ◦

    テスト ▪ 主にコードあるいはシステム全体の振る舞いの正しさを検証
  9. システム監視 • 目的 ◦ コンポーネントの障害を検知し、必要に応じた対応を行う • コンポーネントが正常に動いているか監視 ◦ 比較的高頻度 ◦

    比較的単純
  10. システム監視 • 監視すべきもの ◦ 比較的低レイヤの監視を組み合わせ ◦ OSの指標 ▪ CPU使用率、メモリ使用率、ディスクIO、トラフィック ◦

    ミドルウェアの指標 ▪ クエリ数、PINGコマンドへの応答
  11. システム監視 • グラフ化 ◦ トレンドを見る

  12. システム監視 • アラート ◦ 生死確認 ◦ 閾値の設定

  13. システム監視 • 問題点 ◦ 個別コンポーネントの問題(に見えるメトリクス)がシステム全体に及ぼす影響が明確 でない

  14. システム監視 • ユーザの視点に立ってみると ◦ 個別コンポーネントの監視 ▪ 意味がない場合も • e.g. CPU使用率が高いがユーザへのレスポンスは十分高速

  15. システム監視 • トレンド ◦ ❌ 個別コンポーネントの監視の積み上げ →システム全体の監視 ◦ ⭕ システム全体の監視→個別コンポーネントの監視で補完

  16. システム監視 • Synthetics monitoring ◦ 単一エンドポイントではなく 一連の流れ(トランザクション)を 監視する手法 • ログインしてツイートできる

    1. トップページを開く 2. ログインリンクをクリック 3. ユーザ名を入力 4. パスワードを入力 5. サインインボタンを押す 6. ツイートを入力 7. ツイートボタンを押す 8. ツイートが表示される
  17. システム監視 個別コンポーネントの監視 システム全体の監視 = ユーザ目線からの監視

  18. テスト • 自動化易しい ◦ 単体テスト ◦ 結合テスト ◦ システムテスト (Webシステムにおいては≒E2Eテスト)

    • 自動化難しい
  19. アジャイル開発におけるテスト • 単体テスト ◦ システムの内部品質を保証する ◦ 自動化して当たり前 ▪ 言語ごとに様々なテストフレームワーク ▪

    CI/CDとの結合
  20. アジャイル開発におけるテスト • システムテスト ◦ ≒E2Eテスト ◦ システムとしての品質を保証する

  21. アジャイル開発におけるテスト • E2Eテスト ◦ 自動化が難しい ▪ GUI上のユーザの挙動をプログラムで再現するという難しさ ▪ ブラウザごと、デバイスごとに違う挙動 •

    それ用のインフラを用意する必要性 ▪ 自動化し辛いケースの多さ • 必ずしもテスタビリティの高い仕組みにできない ◦ 人海戦術的に行われてきた(行われている)
  22. アジャイル開発におけるテスト • E2Eテストの技術革新 ◦ 多くの新しい技術・サービス ▪ ソフトウェア • Selenium, Cypress

    ▪ SaaS • Autify
  23. アジャイル開発におけるテスト デモ

  24. アジャイル開発におけるテスト • E2Eテストの技術革新 ◦ 開発者がやりやすい形でE2Eテストを通じてソフトウェアの品質を 高められるようになった ◦ ユーザと同じ視点に近いテストが高頻度に ◦ 単体テストと同じように、開発サイクルと同じリズムでテストが

    行えるようになった ユーザ目線でのテストも当たり前に
  25. 監視とテスト • 監視 ◦ (ユーザから遠い)インフラコンポーネントの監視に加えて ▪ ユーザに近いところからの監視へ • テスト ◦

    (ユーザから遠い)単体テストのみならず ▪ ユーザと同じ目線のテストも自動化・高頻度化できるように ◦ (ユーザから遠い)リリース前のテストに加えて ▪ リリース後の継続的なテストも どちらも同じく開発者目線で始まって「ユーザ に近いところ」にたどりついた
  26. DXとユーザ目線 • DX ◦ 開発にまつわる環境を整えることで高速な仮説検証、品質向上ができる ▪ 開発者目線になりがち ◦ ユーザの視点で考えるとDXの当たり前は当たり前でないかもしれない

  27. DXとユーザ目線 • 例 : ステージング(あるいはQA)環境 ◦ リリース前に動作確認・テストなどを行う環境 ◦ ユーザがアクセスする環境とは違ったトラフィック、違ったデータ ▪

    コード起因のものは見つけやすいがインフラ起因のものは見つけにくい • 急なアクセス増など
  28. DXとユーザ目線 • ステージング(あるいはQA)環境 ◦ 代わりに本番環境を念入りにテスト・監視する? ◦ ステージング(QA)環境ではわかりずらいことを本番で ▪ カオスエンジニアリング

  29. まとめ • 監視・テストは基本中の基本 ◦ どちらも開発者目線からユーザ目線に重点が移ってきた • ユーザ目線でDXを考える ◦ 当たり前にやってきたことも違うアプローチが可能かも

  30. https://autify.com/ja/careers/