【60分でわかる!VSTePを使ったテスト分析のやり方】は、株式会社ベリサーブが主催する技術イベントです。
当勉強会では、テスト分析の定義など基礎的な概念から、VSTePという方法を利用した具体的なテスト分析のやり方まで分かりやすく解説いたします。
© 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。
View Slide
© 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。➢ 名前◼ 谷﨑 浩一(たにざき こういち)➢ 所属◼ 株式会社ベリサーブ 研究企画開発部➢ 経歴◼ テスター歴:約15年◆ プリンタ、デジカメ、PCアプリ、クラウドサービス◆ 統合テスト・システムテストのテスト設計・実行・管理◼ プロダクトオーナー歴:約6年◆ ソフトウェアテストの設計をサポートするツール◼ 博士(工学)自己紹介1
© 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。➢ テスト分析について➢ VSTePについて➢ VSTePの適用事例➢ ツールの活用について➢ まとめ➢ 質疑応答今日の内容2
© 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。 3➢ テスト分析について
© 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。➢ 「テストベースを分析してテスト条件を識別する活動」 JSTQBの用語集より◼ テストベース・・・テスト分析と設計のベースとして使用するあらゆる情報◼ テスト条件・・・テストのための根拠となる、コンポーネントやシステムのテストが可能な一部分➢ → 意訳:仕様書などのテストベースを分析して、テストすべきこと(テスト観点)を洗い出す活動テスト分析とは4図の引用:http://www.aster.or.jp/business/contest/doc/2020_U-30_V1.0.0.pdf
© 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。➢ Webアプリのログイン機能に対するテストの例 → これだけ見て、何をテストできているのか分かりますか?◼ テストケース1◆ 手順:パスワード入力欄に7文字の英数字を入力する◆ 期待結果:「パスワードが短すぎます」というエラーメッセージが表示される◼ テストケース2◆ 手順:パスワード入力欄に英数字を入力する◆ 期待結果:入力した文字が「●」に置き換わって表示される◼ テストケース3◆ 手順:メールアドレスとパスワードを入力してログインボタンを押す◆ 期待結果:正しいパスワードの場合、マイページに遷移する◼ テストケース4◆ 手順:メールアドレスとパスワードを入力してログインボタンを押す◆ 期待結果:1秒以内にマイページに遷移するテスト分析の必要性5何をテストできているのか、これで必要十分なのか分からない・・。テストすべきこと(テスト観点)を洗い出す必要がある!
© 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。➢ 日本で有名な手法◼ VSTeP:西康晴氏が考案した手法。このあと解説する。◼ HAYST法:秋山浩一氏らが考案した手法◼ ゆもつよメソッド:湯本剛氏が考案した手法➢ 現場ごとのやり方◼ 機能一覧表を作って機能ごとにテスト観点を洗い出す◼ 機能とテスト観点のマトリクス表を作る◼ マインドマップでテスト観点を洗い出すテスト分析の色々な手法6【参考情報】VSTeP手法の認知度は42.3%で、他のテスト手法に比べ高い結果に。<調査概要>調査内容:ソフトウェアの開発手法やテスト手法に関する調査調査期間:2023年2月10日(金)~16日(木)調査対象:製品開発およびソフトウェアのテストに携わる方(調査人数:1,600名)調査企画:株式会社ベリサーブ実査機関:株式会社クロス・マーケティング調査方法:インターネット定量調査
© 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。 7➢ VSTePについて
© 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。➢ 概要◼ 電気通信大学の西康晴氏が考案したソフトウェアテスト開発方法論◼ Viewpoint-based Software Test Engineering Process の略◆ Viewpoint = テスト観点➢ 特長◼ テスト観点を洗い出しNGT(Notation for Generic Testing)という記法でツリー構造の図として整理する◼ 複数のテスト観点をグルーピングし、テストの全体像を示すテストコンテナ図を作成したり、具体的なテストケースのひな形となるテストフレームを作成することで、テストを開発する➢ メリット◼ テスト観点をツリー形式の図で視覚的に分かりやすく整理できるため、どんなテスト観点でどのようなテストを行うかが明らかになり、テストの抜け漏れを減らすことやテストの内容をレビューしやすくすることができるVSTePとは8
© 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。➢ テストケースごとの「テストの意図」である➢ テストケースの(一部)を抽象化したものになる◼ https://www.jasst.jp/symposium/jasst16tohoku/pdf/S1.pdf➢ テストケースを作成する上での着眼点、切り口のようなもの◼ https://blog.aiqveone.co.jp/test_perspective/➢ ソフトウェアが正しく動作するために「どの部分に、どのようなテストを実施すべきか?」を定義するための多角的な視点・切り口をまとめたもの◼ https://biz.techvan.co.jp/tech-quality/quality-blog/000242.htmlテスト観点とは9
© 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。➢ Webアプリのログイン機能に対するテストの例◼ テストケース1◆ 手順:パスワード入力欄に7文字の英数字を入力する◆ 期待結果:「パスワードが短すぎます」というエラーメッセージが表示される◼ テスト観点◆ パスワード、文字数、入力チェック◼ テストケース2◆ 手順:パスワード入力欄に英数字を入力する◆ 期待結果:入力した文字が「●」に置き換わって表示される◼ テスト観点◆ パスワード、入力内容の画面表示◼ テストケース3◆ 手順:メールアドレスとパスワードを入力してログインボタンを押す◆ 期待結果:正しいパスワードの場合、マイページに遷移する◼ テスト観点◆ ログイン判定処理、メールアドレスとパスワードの組み合わせ、画面遷移◼ テストケース4◆ 手順:メールアドレスとパスワードを入力してログインボタンを押す◆ 期待結果:1秒以内にマイページに遷移する◼ テスト観点◆ ログイン判定処理、性能テスト観点の例10ここに書いてあるもの以外にも、様々なテスト観点を考える必要がある
© 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。➢ 入力パラメータや、その内容◼ パスワード、メールアドレス、文字数、文字種➢ テストすべき機能◼ ログイン判定処理、文字入力チェック➢ テスト環境◼ 端末のOS、ブラウザ、画面サイズ、など➢ ユースケース上発生しうる操作◼ 複数の端末で同時にログイン、ボタン連打など➢ 非機能面の確認事項◼ 性能、稼働率など➢ 起こってほしくない問題やテストで見つけたい問題◼ SQLインジェクション、文字化け、など➢ 問題が起きそうな条件や、運用上ありえる状態◼ 高負荷、アカウントの状態(ロック中など)、何度も繰り返すなど➢ 品質特性◼ 機能適合性、互換性、使用性、などテスト観点の例11ここに書いてあるもの以外にも、様々なテスト観点を考える必要がある
© 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。➢ ①テスト観点を洗い出す、整理する◼ 使う道具:テスト観点図➢ ②テスト観点をまとめて、テストの種類(テストタイプ・テストレベルなど)を整理する◼ 使う道具:テストコンテナ➢ ③テスト観点をくっつけて、テストケースのひな形を作る◼ 使う道具:テストフレーム➢ ④テストフレームに具体的な値を入れたり、値の組み合わせを作って、テストケースを作る◼ 使う道具:テスト技法 ※テスト技法はVSTeP独自のものではなく、一般的に知られているものを使えば良い➢ ⑤(必要に応じて)テストケースの手順を具体化したり、自動化テストコードを書いたりするVSTePの簡単な流れ12このあたりがテスト分析にあたる
© 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。➢ 基本はツリー構造。ツリーの親子関係以外に、関連線を引いて、テスト観点同士の関係性を自由に表現できるVSTePで使う道具① テスト観点図13テスト対象テスト観点<<ステレオタイプ>>テスト対象を表す。基本的にはトップのノードでのみ使う。テスト観点を表す。線に対して記載することで、テスト観点同士の関係性の内容を表す。親子関係を表す。矢印の先頭のほうが親。順序依存関係を表す。矢印の先頭のほうが、順序的に後。上記以外の関係性を表す。【記法の説明】
© 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。➢ 複数のテスト観点やテストフレームをまとめた「箱」➢ テストタイプ、テストサイクル、テストレベル、などを表現するVSTePで使う道具② テストコンテナ14テストコンテナを作るか・作らないか、作る場合どのタイミングで作るかは、テスト対象の規模やプロジェクトの状況によって変わると思われる→ のちほど、作る場合・作らない場合のそれぞれのプロセスを紹介する性能テストログイン機能の機能テストテストサイクル1回目コンテナのイメージ→システムテスト
© 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。➢ テストコンテナは入れ子にしたり、線でつないで関係性を表現することができる → テストコンテナ図◼ テストの全体像を整理したい、示したい、という場合、作ると良いVSTePで使う道具② テストコンテナ15機能テストユースケーステストスモークテストシステムテストパフォーマンステスト性能テスト負荷テスト回帰テスト
© 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。➢ テストフレームを作って、「ある機能に対して、ある入力を与えて、ある出力を確認する」などのテストケースのひな形を表現する◼ テスト観点は機能・入力・出力などのさまざまな要素に分けて整理することがあるため、くっつける必要がある➢ テストフレームを作成するには、テスト観点図からいくつかのテスト観点を取り出して、関連線でつなぐ➢ テストフレームに名前をつけると、成果物を他の人に共有する際やレビューする際などに認識合わせしやすいと思うVSTePで使う道具③ テストフレーム16
© 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。➢ ①テスト観点を洗い出す、整理する◼ 使う道具:テスト観点図➢ ②テスト観点をまとめて、テストの種類を整理する◼ 使う道具:テストコンテナ➢ ③テスト観点をくっつけて、テストケースのひな形を作る◼ 使う道具:テストフレーム➢ ④テストフレームに具体的な値を入れたり、値の組み合わせを作って、テストケースを作る◼ 使う道具:テスト技法➢ ⑤(必要に応じて)テストケースの手順を具体化したり、自動化テストコードを書いたりするVSTePの簡単な流れ(再掲)17
© 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。➢ テストコンテナを作らない例◼ 規模が小さければ、テストコンテナは作らないのもアリ◼ 実際は一直線ではなく、いったりきたりする◼ 本日は、このあと、このプロセスに沿ってテストケースを作る例を説明するVSTePを使ったテストづくりのプロセスの一例①18テスト観点を識別・整理するテスト観点図テストベース(仕様書など)テスト観点をくっつけて、テストフレームを作るテストフレームテスト技法を適用して、テストケースを作るテストケースあとは、手順を具体化したり、実行管理用のフォーマットに入れ込んだりするStep1 Step2Step3
© 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。➢ テストコンテナを作る例◼ 初めて入ったプロジェクトで、いちからテストづくりする場合、こういうプロセスでやることがある◆ そこそこの規模になると、1枚のテスト観点図にすべてのテスト観点を書くのが難しいと思われため、2段階に分けている◼ 西先生に確認したところ、VSTePによるテストづくりのプロセスとして間違っていない、とのことVSTePを使ったテストづくりのプロセスの一例②19抽象度が高めのテスト観点を識別・整理するやるべきテストの種類を決めて、順序などの関係性を整理する抽象的なテスト観点図テストコンテナ図テストベース(仕様書など)テストコンテナごとに、詳細なテスト観点を識別・整理する詳細なテスト観点図これ以降の、テストフレーム・テストケースを作るプロセスは前ページと同じなので省略
© 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。➢ あるクラウドサービスではメールアドレスとパスワードを入力してログインできる➢ メールアドレス入力欄とパスワード入力欄には、半角英数記号のみ入力できる➢ メールアドレスは256文字以下の場合のみ有効とする➢ パスワードは8文字以上64文字以下で、英大文字・英小文字・数字をすべて含む場合のみ有効とする➢ 入力されたメールアドレス・パスワードが上記の文字数・文字種を満たさない場合は、入力欄にエラーを表示する➢ ログインするとマイページを表示し、「ログインに成功しました」というメッセージを表示する以下のテストベースを題材に、VSTePによるテストづくりの例を解説20
© 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。➢ あるクラウドサービスではメールアドレスとパスワードを入力してログインできる➢ メールアドレス入力欄とパスワード入力欄には、半角英数記号のみ入力できる➢ メールアドレスは256文字以下の場合のみ有効とする➢ パスワードは8文字以上64文字以下で、英大文字・英小文字・数字をすべて含む場合のみ有効とする➢ 入力されたメールアドレス・パスワードが上記の文字数・文字種を満たさない場合は、入力欄にエラーを表示する➢ ログインするとマイページを表示し、「ログインに成功しました」というメッセージを表示するStep1.テスト観点を識別する21入力はメールアドレス・パスワードがある。文字種・文字数を考慮してテストする必要があるログインの判定処理や、入力チェックの機能がある出力として、エラー表示、メッセージ表示、マイページへの画面遷移がある
© 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。➢ テストベースから識別したテスト観点を列挙Step1.テスト観点を識別する22メールアドレス パスワードログイン判定文字種文字数入力チェックエラー表示 メッセージ表示画面遷移
© 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。➢ 階層構造(ツリー構造)で整理するためにテスト観点をグルーピングStep1.テスト観点を整理する23メールアドレス パスワードログイン判定文字種文字数入力チェックエラー表示 メッセージ表示画面遷移出力に関するもの入力に関するもの処理に関するもの
© 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。➢ 親子関係を整理して、ツリー構造の図に書き出す➢ 親子関係以外の関係があるテスト観点同士は、関連線を繋いでステレオタイプを記載する◼ 下図の <<組み合わせ>> がステレオタイプの例Step1. テスト観点を整理する24
© 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。➢ ボトムアップ・トップダウンの両面で考えると良いテスト観点を識別・整理するときのポイント25ボトムアップトップダウン仕様書などに書いていないテスト観点も、必要に応じて追加する
© 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。➢ テスト観点図の第1階層に何を置くか、下位階層をどんな構造で分解して整理するかは難しい問題◼ 決まった型や分解の方針があるとやりやすい◆ 入力・処理・出力という型で分解◆ CIBFW(Condition, Item, Behavior, Fault, World)という型で分解◆ 機能をベースに分解◆ 画面をベースに分解◆ 品質特性をベースに分解➢ VSTePのテスト観点図では、テスト観点は単語や熟語のような短めな言葉で書くことが多い◼ 長めの文章で書いても良いが、短めのほうが図としてスッキリ書くことができる◼ 文章で長く書くと複数のテスト観点が入り混じる懸念があるので、短く分けて書くと良いテスト観点を識別・整理するときのポイント26
© 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。➢ 入力(条件)、処理や機能(テスト対象)、出力(振る舞い)に該当するテスト観点をくっつけると作りやすい◼ 下図の例・・・入力:色々な文字種(文字数)のメールアドレス、 処理:入力チェック、 出力:エラー表示Step2. テスト観点をくっつけて、テストフレームを作る27テスト観点の配置に決まりはないが、左から順に、入力・処理・出力の順に並べると、分かりやすいと思う
© 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。➢ テストフレームごとにテスト技法を適用してテストケースを作ると良いStep3. テスト技法を適用して、テストケースを作る28境界値分析
© 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。 29➢ VSTePの適用事例
© 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。➢ Miro board link: https://miro.com/app/board/uXjVMahyOsA=/➢ Password: vstep2023VSTePの適用事例① 炊飯器の炊飯機能30
© 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。➢ Miro board link: https://miro.com/app/board/uXjVMahBOOU=/➢ Password: vstep2023VSTePの適用事例② Webアプリのプロフィール編集画面31
© 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。➢ どんなテストをAutifyで作るかを検討する方法の一案 ~VSTeP × Autify でのテストづくり~◼ https://qiita.com/ktanizaki/items/d128fb070007471d8404VSTePの適用事例③ 実務で使ってみた事例32テスト観点図テストフレーム
© 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。 33➢ ツールの活用について
© 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。➢オンラインテスト技法ツール: (ギホーズ)◼ VSTePによるテスト分析の機能を2023年3月29日にリリース!➢ オンラインホワイトボードツール:Miroなど◼ 付箋・マインドマップ・図形・文字を自由に配置して、テスト観点図・テストフレーム・テストコンテナを作成できる◼ NGTの記法に沿ったテスト観点図を作ろうとすると、少々手間➢ マインドマップツール:FreeMind、XMindなど◼ テスト観点図を作成できる。ただし、 NGTの記法とは若干異なる。◼ テストフレームは何か別のツールで作ることになりそう(ExcelやGoogleスプレッドシートなどを活用?)➢ ※他にもこういうツールを使えるよ!使っているよ!という方は、ぜひコメントくださいVSTePを活用したいときに使えるツール34
© 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。➢ https://www.veriserve.co.jp/gihoz/GIHOZのVSTeP機能のご紹介35
© 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。➢ テストフレームへのテスト技法の適用◼ GIHOZの既存のテスト技法の機能と連携予定GIHOZのVSTeP機能のアップデート予定①36
© 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。➢ テストコンテナの作成◼ まずは、テストフレームを整理するための「箱」としてのテストコンテナを作れるように◼ ゆくゆくは、テストコンテナ図を作成できるようにすることも検討中GIHOZのVSTeP機能のアップデート予定②37
© 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。 38➢ まとめ
© 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。➢ テスト分析について◼ 必要十分なテストを作るために、仕様書などのテストベースを分析して、テストすべきこと(テスト観点)を洗い出す活動➢ VSTePについて◼ VSTePは、電気通信大学の西康晴氏が考案したソフトウェアテスト開発方法論◼ テスト観点図・テストコンテナ・テストフレームを作って、テストを開発する➢ ツールの活用について◼ GIHOZのVSTeP機能を使うと、テスト観点図・テストフレームをさくさく作れる◼ その他のツールを活用する場合、Miroなどのオンラインホワイトボードツールを使うと良いまとめ39
© 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。勉強会は以上で終了です。お疲れさまでした。参加者アンケートにもご協力をお願いします。40