Slide 1

Slide 1 text

PHPカンファレンス香川2024 実践、プロダクト品質向上に重要な テスト分析とテスト設計

Slide 2

Slide 2 text

自己紹介 QAエンジニア
 
 プロフィール ・2019年11月、PR TIMESへ入社。開発本部QA チーム所属 ・PR TIMESでは、QA立ち上げ、テスト実施からUX 含め全体的な品質の向上・部署・チームの問題改善 など行っています。
 
 猫派 @azuki_kun

Slide 3

Slide 3 text

発表の目的 PHPカンファレンス香川2024 ● テスト分析と設計ってどういうものかを知ってもらう ○ テストパターンやテストケースを作る前に、これを行うとテスト 項目の網羅性がUPする ● 実際に役立てていただけたら......

Slide 4

Slide 4 text

こんなことってありませんか? PHPカンファレンス香川2024 何に対して、テストをして良いかわからない 機能実装漏れが発覚し再度実装し直した.....TT どのようなテストをどのくらいしてよいか分からない

Slide 5

Slide 5 text

そんな時は...... PHPカンファレンス香川2024 テスト分析とテスト設計が最適です!

Slide 6

Slide 6 text

テスト分析とテスト設計とは? PHPカンファレンス香川2024

Slide 7

Slide 7 text

テスト分析とは テスト分析はJSTQBテスト技術者資格 Foundation Level シラバスで は、以下のように記述されています。 テスト分析では、テスト可能なフィーチャーを識別し、テスト条件を決め るためにテストベースを分析する。言い換えると、テスト分析では計測 可能なカバレッジ基準から見た「何をテストするか」を決定する。 JSTQB-SyllabusFoundation_Version2018.J03

Slide 8

Slide 8 text

もう少し掘り下げると..... テストレベルごとに適切 テストベースを分析する。

Slide 9

Slide 9 text

テストの目的はなにか 何を確認できたら最低限テストしたと言えるかその テスト分析 : やり方

Slide 10

Slide 10 text

どのような影響があるか ● 機能への影響 ● 画面への影響 ● 操作への影響 ● 状態への影響 どのようなテストをするか ● 動作確認 ● 表示確認 ● ハードやソフトの互換性確認 ● スマホ特有の状態・操作の確認 ● ローカライズ化の確認など

Slide 11

Slide 11 text

テスト設計とは テスト設計とは、テスト工程で実施すべきテストの種類 や実施方法、必要なデータ、テストの入出力に使用する ものなどを具体的に決めることです。

Slide 12

Slide 12 text

つまり、
 「どのような手段でテストするのか」を検討して決める のが「テスト設計」です。

Slide 13

Slide 13 text

テスト設計やり方 • 類似の観点をグループでまとめてみる • 因子と水準(パラメーター)を書き出してみる。因子とは「テス トすべきテスト条件」のこと、水準とは「その選択値」のことで す。 • 画面遷移や状態を図に書き出してみる • 複雑そうな動作条件をデシジョンテーブルに書き出してみる • 数値の入出力がある場合、同値分割や境界値分析を適用 してみる

Slide 14

Slide 14 text

テスト分析とテスト設計は いつやるのか?? PHPカンファレンス香川2024

Slide 15

Slide 15 text

テスト分析とテスト設計の位置付け
 上図では、テスト分析とテスト設計はテスト計画とテスト実装のあいだに位置しています。 テストの分析と設計は、テストの実装とは別のアクティビティになります。 テストプロセスを構成する主な活動のグループは以下の通り

Slide 16

Slide 16 text

実際に見てみましょう!

Slide 17

Slide 17 text

テスト対象の分析と設計の進め方 1. テスト対象となる要素のインプット情報を集めて理 解する a. 仕様書 b. 画面イメージ(デザイン) c. 実際のアプリ(ある場合) d. チケット(ある場合) e. ユーザーストーリー などなど 2. 要素を書き出す 3. グルーピングを行って階層構造にする

Slide 18

Slide 18 text

仕様書

Slide 19

Slide 19 text

画面イメージ(デザイン)

Slide 20

Slide 20 text

テスト対象の分析マインドマップ(例1)

Slide 21

Slide 21 text

テスト設計(例1) サニタイジングするか?? サニタイジングするか?? 基本操作Unitテストで自動化 E2Eテストで自動化 バージョンやサポート範囲を決める 脆弱性のツールを使用出来 そう デベロッパーツールの設 定で確認 エンジニアと協力して、探索 的テストで、一度回せばよい よね。 ✨探索的テスト 同値クラス分割手法※1で洗い出す 同値クラス分割手法※1で洗い出す 文字数は境界値分析で確認 文字数は境界値分析で確認 E2Eテストで自動化出来そう? E2Eテストで自動化出来そう? 探索的テストでも確認した方が よさそう ガイドラインなど必要だよね

Slide 22

Slide 22 text

テスト設計(例1) サニタイジング するか?? サニタイジングする か?? 同値クラス分割手法 ※1で洗い出す 同値クラス分割手法 ※1で洗い出す 文字数は境界値分析で確認 文字数は境界値 分析で確認

Slide 23

Slide 23 text

テスト設計(例1) バージョンやサポート範囲を決める 脆弱性のツールを使用出来そう デベロッパーツールの設 定で確認 エンジニアと協力して、探索的テスト で、一度回せばよいよね。 ガイドラインなど必要だよね ブラウザサイズもみた方がいいね 非機能のところは、エンジニアもQAもPdMも忘れる箇 所が多い。。。。。 項目を書き出しておくと、他のプロジェクトの時にも流 用可能

Slide 24

Slide 24 text

用語説明 ※1:同値クラス分割 
 出力が同等になると想定される入力値のグループ(同値クラスや同値パーティション)を識 別し、各グループに対するテストケースを作成する技法のこと。システムが正常に作動する 値を「有効同値クラス」、エラーを検知する値を「無効同値クラス」といい、それぞれのクラス の代表値を用いてシステムが正常に作動するかをテストします。 無効 同値クラス 無効 同値クラス 同値クラス 0 1 10 11 −6 5 115

Slide 25

Slide 25 text

※2:探索的テスト 探索的テストはJSTQB用語集では、『非公式なテスト設計技法の一つ。テストを実施する過程で、テスト担当 者がテスト実施情報を活用しながらテスト設計をコントロールし、積極的に質の高い新しいテストケースを設計 する。』と定義されています。テスト対象を実際に動かし、理解を深めていきながら、テスト設計、実行、結果確 認を行っていくことを指しています。探索的テストには以下のメリットがあります。 ● テストケースを作成せずにテストを行うため、少ない工数でテスト可能 ● テストを実施していくにつれてシステム理解が深まり、新たな気づきをテスト観点に反映するため、あらかじめ作 成したテストケースでは見つけられなかった不具合を発見できる ● アジャイルソフトウェア開発のように短期間で開発を進めるケースでは柔軟かつ迅速にテスト可能 メリットだけでなく、以下のようなデメリットもある。 ● 探索的テストだけでは品質確保はできない ● テスト設計書などドキュメントを作成しないため、テストのノウハウを蓄積しにくい ● テスト経験が豊富な人がテストする前提のため、経験が浅い人では実施することができない 用語説明 知識ゼロから学ぶソフトウェアテスト 改訂版: アジャイル・クラウド時代のソフ トウェアテスト https://amzn.asia/d/3uyWLHY

Slide 26

Slide 26 text

用語説明 ファイルアップロード機能のテスト 経験が浅いQAエンジニア ● サポートされているファイルがアップ ロードされること ● サポートされていないファイルがアップ ロードした時、エラーメッセージが表示 される事 ● 複数アップロード確認 ● 最大サイズ・最小サイズのアップロー ド 経験豊富QAエンジニア ● ファイル内容の種類を変えてみて問 題ないか(動画が入っているか) ● ファイル名のバリデーション ● 拡張子を違う拡張子に変更 ● 拡張子の種類 「 .doc」または「.docx」 とか

Slide 27

Slide 27 text

実際行ってる形 全体に関わる因子と水準を出す

Slide 28

Slide 28 text

因子 水準 企業管理画面のログイン方 法 「配信権限有無バリエーション」「権限継承バリエーション」以外はメインユーザアイパスログイン でテストする 企業の契約プラン 「契約プランバリエーション」以外は従量課金でテストする 企業のロゴ 「編集内容反映バリエーション」以外は企業ロゴありでテストする Editorの編集方法 「タブの切替バリエーション」「データベース登録バリエーション」「契約プランバリエーション」「配 信権限有無バリエーション」「権限継承バリエーション」「他システム連携バリエーション」「V1もし くはV2のデータ」「編集権限の競合」以外は「新規登録」「下書きの編集」「予約配信の編集」を 同値として任意とする Editorの編集デバイス切替 「編集内容反映バリエーション」以外はデスクトップ表示で編集する プレスリリースページ表示の ログインユーザ 「配信バリエーション」以外は企業ユーザログインでテストする※メディアのみ表示部分はメディ アユーザ プレスリリースページ表示の 方法 テスト対象外。TOPページの検索からでも、メディア管理画面のお気に入りからでも、企業ペー ジの一覧からでも、今回のリリースの影響は無い為、同値として任意とする。 自動保存 「データベース登録バリエーション」以外はON 実際行ってる形 全体に関わる因子と水準を出す

Slide 29

Slide 29 text

まとめ... 1. テストの土台をつくる作業である a. テストベースを分析してテスト条件を決め、後続の工程の基礎を 固める役割 2. 最もテストを理解しやすい工程である a. テストをシンプルに整理したドキュメントを作り、コミュニケーショ ンを補助したり、仕様変更に柔軟に対応できるようにする役割 3. テストと品質を繋ぐ中継地点である 4. テスト全体のトレーサビリティの中核となってテストと品質を結びつ ける役割