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

これからシステムテスト自動化を始める組織のための勉強会(公開用)

Sponsored · SiteGround - Reliable hosting with speed, security, and support you can count on.

 これからシステムテスト自動化を始める組織のための勉強会(公開用)

Avatar for ぱいん

ぱいん

July 26, 2019
Tweet

More Decks by ぱいん

Other Decks in Technology

Transcript

  1. 自己紹介 • ぱいん • 本業:テストアーキテクト • 社外活動など – SeleniumConf Tokyo実行委員

    – ソフトウェアテスト Advent calendar 作者 – ソフトウェアテスト系の勉強会に参加したり、 企画したり、発表したり • 趣味 – Twitter – カラオケ 3
  2. このスライドでの言葉の定義 5 • 自動化エンジニア:自動テストやその実行環境を中心にエンジニアリングによって品質課題を解決 していく人 • リグレッションテスト:回帰テスト。ここでは、バグ発見というより「修正で他が壊れていないか」を見る テストに近い • 単体テスト:小さいプログラムレベルのテスト

    • 機能テスト・結合テスト:バックエンド(マイクロサービスやAPI群)の連携テスト。ここではシンプル に区別しない。 • E2Eテスト、UIテスト:Webやアプリだと画面を通したテスト。 • テスト自動化:(今日の話では)テスト実行の自動化のみ
  3. ミニワーク (3分) • ある日、ぱいんがQAとして1人日(8時間)だけ御社で 働くので、テスト自動化サポートしますといったら、 1. 何をお願いしますか? 2. 理由は何ですか? •

    注意 – 粒度、書き方はお任せします – ぱいんは残業はしないもの とします★ 例) 管理機能の 組み合わせテスト パターンが多いから 例) マッチング機能の 開始~完了 良く壊れるから 8
  4. 自動テストと手動テストの特徴 手動テスト 自動テスト テストケースに書いていなくても 気づきがある ・なんとなく遅い ・色がおかしい ・一瞬何か映らなかった? 繰り返し、正確な作業が得意 ・安定化試験、再現試験

    ・MAX試験、設定初期値確認試験 テストする人のスキルに依存する ・ドメイン知識 ・バグが光る(?) 人が間違えやすい操作手順の難しいテス トが得意 ・割り込み試験、シミュレータ試験 臨機応変に対応できる ・既知不具合を回避する ・途中からやり直す 書いてあることしかテストできない 休みなしにテストできる 13
  5. テスト自動化の8原則 (テスト自動化研究会製) • 1. 手動テストはなくならない • 2. 手動でおこなって効果のないテストを自動化しても無駄である • 3.

    自動テストは書いたことしかテストしない • 4. テスト自動化の効用はコスト削減だけではない • 5. 自動テストシステムの開発は継続的におこなうものである • 6. 自動化検討はプロジェクト初期から • 7. 自動テストで新種のバグが見つかることは稀である • 8. テスト結果分析という新たなタスクが生まれる 17
  6. テスト自動化の8原則 1. 手動テストはなくならない – ユーザビリティテストなど、そもそも自動化できないテストタイプが存在する。システムに対してはじめて実行 されるテストはテストケース自体の成熟度の観点から、手動で実施したほうがテスト実行の品質が高いケー スが多い。また、自動化がうまく進行している機能テストの残り数%など、テストを自動化するコストとベネ フィットが釣り合わないケースもある。これらの事情によって、手動で実施されるテストが無くなることはない。 • そもそも自動化できないテスト:ユーザビリティテスト、ランダムテストなど

    • システムテスト自動化は一定のところから急激にコストが利便を上回る – コストが利便を上回る例 ( “課題となる例” ⇒ “想定される対処策”) • ケーブルを抜く、挿す (挿抜系) ⇒専用治具を購入/作成 • 再起動する (電源系) ⇒専用治具を購入/作成 • 指紋認証する (生体系)⇒ 人工指? • CAPTCHAを突破する (自動化防止系) ⇒APIレベルで通してしまう or 画像解析??? • 車を運転する(自動化まだ出来ていない系) ⇒ ロボットを作る?ライントレースする何かを準備する? 19
  7. 雑談)月曜から夜更かし(風) • 手段が目的化している問題 – お客様「テスト自動化を進めたい!」 – ぱいん「はい、よろこんでっ!何を自動化で目指したいんでしょうか?」 – 客「いや、だからっ、テストを自動化したい(イラッ)」 –

    ぱいん「」 – ありがちな問題。 – 考察: • テスト自動化に対しての、目的があいまい、どういう効果があるか理解されていないお客様も多い。 • そういう場合に限って、作業だけ切り出してきて仕舞には「テスト自動化の効果ながかった」と言われるのがつらい • なので、テスト分析段階から協力して考えていきたい 27
  8. テストピラミッド ユニットテスト UIテスト 開発のためのもの 検証のためのもの フィードバックが 早い フィードバックが 遅い 局所的

    エンドツーエンド 実行が早い 実行が遅い 頑健 壊れやすい 安い 高い UI (E2E) Service (API) Unit $$$ $ 29
  9. 誰がテストするのか • 開発者にとってのテスト – 最小限に済ませたい – 早くリリースしたい • QAエンジニアにとってのテスト –

    出来るだけ全てをテストしたい – 慎重にリリースしたい • みんなでテストをしよう – 品質はみんなで上げるもの – Unitテストをしっかり書けば、結果として、リリースが早くできる – 組織の状況に応じてやっていくしかない – UIテストで「カバレッジをxx%にしよう」はアンチパターン UI (E2E) Service (API) Unit $$$ $ QA Dev Dev 30
  10. マイプラクティス (≠ベストプラクティス) 1. 計画(目的、範囲、期限)を立ててから方法を考えること –手動テストに比べて、自動テストは準備するまで、1回目実行して以 降(運用)のコストが重い –必ず、優先度は付ける • 細かく刻むのが良い(テストケースA >

    テストケースC >テストケースB) • 時間で切るのもアリ –1カ月に1回振り返る、見直すのがおススメ • 起きたことを覚えていられる限界 • 調整(e.g. 増員、減員)も現実的に可能 40
  11. マイプラクティス (≠ベストプラクティス) 3. ためす→まなぶ→なおす→ためす、のループを早く回すこと。最初 から成功を狙わない –本体システムの特性によって難易度が大きく変わる • 簡単: 静的Webサイト •

    難易度中:非同期Webアプリ • 難易度高:非同期Webアプリ+デバイス連携 –ツールの特性、メンバ構成、習熟度にも大きく依存する –始められそうなところをまずやってみる、慣れてきたら本丸に挑戦するの もアリ 42
  12. 参考文献、サイト No. Slide # ページ名 URL 1 5, 14 輝く未来を抱きしめて。ア

    ジャイル・DevOps時代の品質 組織づくり (IT検証フォーラム 2019) https://speakerdeck.com/daipresents/hui-kuwei- lai-wobao-kisimete-aziyairudevopsshi-dai- falsepin-zhi-zu-zhi-dukuri-c31f59fe-d95e-4452- 8cba-34407ce94689?slide=10 2 13 WACATE2018冬 テスト自動 化セッション https://www.slideshare.net/mirer/automation- session-public 3 13 自動化ツール導入のコツ(日 本ノーベル) https://www.jnovel.co.jp/service/qc/automation/au to-point.html 4 17-26 テスト自動化の8原則(テスト 自動化研究会) https://sites.google.com/site/testautomationresearc h/test_automation_principle 5 31 Lean Testing or Why Unit Tests are Worse than You Think (blog) https://blog.usejournal.com/lean-testing-or-why- unit-tests-are-worse-than-you-think-b6500139a009 6 29-30 The Practical Test Pyramid (martinFowler.com) https://martinfowler.com/articles/practical-test- pyramid.html 7 Some いらすとや https://irasutoya.com 43