$30 off During Our Annual Pro Sale. View Details »

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

Autify
April 10, 2021

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

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

Autify

April 10, 2021
Tweet

More Decks by Autify

Other Decks in Technology

Transcript

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

    View Slide

  2. 自己紹介
    松浦 隼人
    ● オーティファイ株式会社 CTO (2020年1月〜)
    ● Twitter : dblmkt
    ● 経歴
    ○ インフラ何でも屋
    ○ 某ブログサービスのインフラ担当
    ○ テクニカルサポート
    ○ インフラ + Rails
    ○ CTO (イマココ)
    ● 趣味
    ○ 翻訳

    View Slide

  3. https://autify.com/ja

    View Slide

  4. E2Eテストはハードルが高い? - Autifyを使えば
    E2Eテストはハードルが高い? - Autifyを使えば
    ● 手でやるのは工数がかかる
    ○ 自動化しましょう!
    ● シナリオ作る・書くの大変
    ○ テストシナリオ作成が簡単
    ● 実行するの大変
    ○ 複数のブラウザでテスト実行
    ● 作った後も大変
    ○ AIの力でシナリオ修正を支援

    View Slide

  5. 今日話すこと
    ● DXの観点からのシステム監視とソフトウェアテスト
    ● システム監視の進歩
    ● ソフトウェアテストの進歩
    ● システム監視とソフトウェアテストの共通点
    ● ユーザ目線でのDX

    View Slide

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

    View Slide

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

    View Slide

  8. システム監視とテスト
    ● どちらも
    ○ システムの品質低下を素早く検知して改善に生かす仕組み
    ○ システム監視
    ■ 主にインフラ的な観点から問題を検知
    ○ テスト
    ■ 主にコードあるいはシステム全体の振る舞いの正しさを検証

    View Slide

  9. システム監視
    ● 目的
    ○ コンポーネントの障害を検知し、必要に応じた対応を行う
    ● コンポーネントが正常に動いているか監視
    ○ 比較的高頻度
    ○ 比較的単純

    View Slide

  10. システム監視
    ● 監視すべきもの
    ○ 比較的低レイヤの監視を組み合わせ
    ○ OSの指標
    ■ CPU使用率、メモリ使用率、ディスクIO、トラフィック
    ○ ミドルウェアの指標
    ■ クエリ数、PINGコマンドへの応答

    View Slide

  11. システム監視
    ● グラフ化
    ○ トレンドを見る

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  16. システム監視
    ● Synthetics monitoring
    ○ 単一エンドポイントではなく
    一連の流れ(トランザクション)を
    監視する手法
    ● ログインしてツイートできる
    1. トップページを開く
    2. ログインリンクをクリック
    3. ユーザ名を入力
    4. パスワードを入力
    5. サインインボタンを押す
    6. ツイートを入力
    7. ツイートボタンを押す
    8. ツイートが表示される

    View Slide

  17. システム監視
    個別コンポーネントの監視
    システム全体の監視
    = ユーザ目線からの監視

    View Slide

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

    View Slide

  19. アジャイル開発におけるテスト
    ● 単体テスト
    ○ システムの内部品質を保証する
    ○ 自動化して当たり前
    ■ 言語ごとに様々なテストフレームワーク
    ■ CI/CDとの結合

    View Slide

  20. アジャイル開発におけるテスト
    ● システムテスト
    ○ ≒E2Eテスト
    ○ システムとしての品質を保証する

    View Slide

  21. アジャイル開発におけるテスト
    ● E2Eテスト
    ○ 自動化が難しい
    ■ GUI上のユーザの挙動をプログラムで再現するという難しさ
    ■ ブラウザごと、デバイスごとに違う挙動
    ● それ用のインフラを用意する必要性
    ■ 自動化し辛いケースの多さ
    ● 必ずしもテスタビリティの高い仕組みにできない
    ○ 人海戦術的に行われてきた(行われている)

    View Slide

  22. アジャイル開発におけるテスト
    ● E2Eテストの技術革新
    ○ 多くの新しい技術・サービス
    ■ ソフトウェア
    ● Selenium, Cypress
    ■ SaaS
    ● Autify

    View Slide

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

    View Slide

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

    View Slide

  25. 監視とテスト
    ● 監視
    ○ (ユーザから遠い)インフラコンポーネントの監視に加えて
    ■ ユーザに近いところからの監視へ
    ● テスト
    ○ (ユーザから遠い)単体テストのみならず
    ■ ユーザと同じ目線のテストも自動化・高頻度化できるように
    ○ (ユーザから遠い)リリース前のテストに加えて
    ■ リリース後の継続的なテストも
    どちらも同じく開発者目線で始まって「ユーザ
    に近いところ」にたどりついた

    View Slide

  26. DXとユーザ目線
    ● DX
    ○ 開発にまつわる環境を整えることで高速な仮説検証、品質向上ができる
    ■ 開発者目線になりがち
    ○ ユーザの視点で考えるとDXの当たり前は当たり前でないかもしれない

    View Slide

  27. DXとユーザ目線
    ● 例 : ステージング(あるいはQA)環境
    ○ リリース前に動作確認・テストなどを行う環境
    ○ ユーザがアクセスする環境とは違ったトラフィック、違ったデータ
    ■ コード起因のものは見つけやすいがインフラ起因のものは見つけにくい
    ● 急なアクセス増など

    View Slide

  28. DXとユーザ目線
    ● ステージング(あるいはQA)環境
    ○ 代わりに本番環境を念入りにテスト・監視する?
    ○ ステージング(QA)環境ではわかりずらいことを本番で
    ■ カオスエンジニアリング

    View Slide

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

    View Slide

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

    View Slide