Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
VSTeP #語る夕べ
Search
akiyama924
January 04, 2019
Technology
2
1.4k
VSTeP #語る夕べ
akiyama924
January 04, 2019
Tweet
Share
More Decks by akiyama924
See All by akiyama924
第1回ASTER出張セミナー
kouichiakiyama
0
110
業務状態遷移テストを語る夕べ
kouichiakiyama
2
770
Other Decks in Technology
See All in Technology
Copilot Studio ハンズオン - 生成オーケストレーションモード
tomoyasasakimskk
0
220
ストレージエンジニアの仕事と、近年の計算機について / 第58回 情報科学若手の会
pfn
PRO
3
730
MCP ✖️ Apps SDKを触ってみた
hisuzuya
0
350
デザインとエンジニアリングの架け橋を目指す OPTiMのデザインシステム「nucleus」の軌跡と広げ方
optim
0
110
ローカルLLMとLINE Botの組み合わせ その2(EVO-X2でgpt-oss-120bを利用) / LINE DC Generative AI Meetup #7
you
PRO
1
160
コンパウンド組織のCRE #cre_meetup
layerx
PRO
1
260
SRE × マネジメントレイヤーが挑戦した組織・会社のオブザーバビリティ改革 ― ビジネス価値と信頼性を両立するリアルな挑戦
coconala_engineer
0
150
From Natural Language to K8s Operations: The MCP Architecture and Practice of kubectl-ai
appleboy
0
190
Oracle Base Database Service 技術詳細
oracle4engineer
PRO
13
81k
CNCFの視点で捉えるPlatform Engineering - 最新動向と展望 / Platform Engineering from the CNCF Perspective
hhiroshell
0
140
SCONE - 動画配信の帯域を最適化する新プロトコル
kazuho
1
360
[2025年10月版] Databricks Data + AI Boot Camp
databricksjapan
1
260
Featured
See All Featured
VelocityConf: Rendering Performance Case Studies
addyosmani
333
24k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
359
30k
Writing Fast Ruby
sferik
630
62k
4 Signs Your Business is Dying
shpigford
185
22k
Leading Effective Engineering Teams in the AI Era
addyosmani
7
600
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
15k
A Tale of Four Properties
chriscoyier
161
23k
Product Roadmaps are Hard
iamctodd
PRO
55
11k
Speed Design
sergeychernyshev
32
1.2k
Documentation Writing (for coders)
carmenintech
75
5.1k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
Why Our Code Smells
bkeepers
PRO
340
57k
Transcript
VSTePを語る ~ 非公式 ~ 2019年1月10日(木) SWI事業本部/秋山浩一 語る夕べ
2 この資料は、VSTePについて、わたしが勝手にまとめたものです。したがっ て、内容についての文責は秋山にあります。わざわざ嘘を書こうとしたところ は一切ありませんが、VSTePについて誤解している点はあると思います。 VSTePの正しい情報は、提唱者のにしさんのサイト http://qualab.jp/vstep/ にあるドキュメントを参照してください。 本ドキュメントは上記サイトを大幅に参照・引用・改編(切り貼り、並び替え など)して作成しました。 注意事項
3 ① テスト観点:何をテストするのか Test Viewpoint ▪ 『適切なテスト技法を選ぶ』ためには『テストすべきこと』を分かることが必要 (「テスト技法の選択が難しい?」との声 → その前に必要なものが分かっていない)
② NGT:テスト観点をツリー上に整理する記法 Notation for Generic Testing ▪ テストの抜け漏れを防止するには『テストすべきこと』を整理する自由な記法が必要 (「テストを漏したくない」との声 →『大項目・中項目・小項目』の一覧表が元凶?) ③ VSTeP:テスト観点に基づくエンジニアリング・プロセス Viewpoint-based Software Test Engineering Process ▪ 大勢集めて、人海戦術でテスト対象を適当に使うだけではすぐ限界に達する (TRA:テスト要求分析、TAD:アーキテクチャー設計、TDD:詳細設計、TI:実装) ④ NGT/VSTeP:にしさんのテスト開発方法論の名前 NGT + VSTeP + 様々なモデリング技術ss ▪ 実際のテストは、様々な技術を統合しておこなう 【今日の結論】:背景でわかる、VSTePの4つのポイント
・テスト観点とは ・テスト観点の例と、NGTのフレーム ワーク ① テスト観点 4
段階的詳細化 三角形 成立 正三角形 二等辺 三角形 不等辺 三角形 不成立 直線
二辺の和 <他の一辺 テスト観点(テストの意図・狙い)とは 5 ① テスト観点をベースにしてテストへの要求を分析したい 自分たちの技術や経験を十分理解することで、現状を共有して成長するため テストの意図を構造化することで、テストの知見を再利用可能とするベースを作る ② まぎらわしい用語3つをまとめて整理(マイヤーズの三角形判定問題を例に) テスト観点:何をテストするのかのみを端的に記述したもの(例:下図) テストケース:そのテスト観点でテストするのに必要な値 (テスト観点と、その網羅基準から作られる。これ以上分解できない) 例:辺の長さとして1~9の整数が3つ入力されると三角形種別が出力する (今回は、0とか負とか4つとかは入力されない前提とする) ・ テスト観点:正三角形、網羅基準:境界値 → テストケース:(1,1,1)と(9,9,9) テストスクリプト:手順(テスト実行のための詳細情報) 例:3辺(1,1,1)を入力後、判定ボタンを押下する 三角形判定プログラムの テスト観点が洗い出される様子 (3辺の長さを整数で入力し、 結果を返すプログラム) 「□」は全てテスト観点 三角形 成立 不成立 三角形 段階的詳細化
テスト観点の例と、NGTのフレームワーク 6 NGTのトップノード(トップビューと呼ぶ)をMECE(漏れなく、ダブり無く)にしたいという話はよ く聞く。しかし、テスト観点の切り口はいくつもある。HAYST法の6W2Hもそうだし、TQEDも良い 切り口。(TQED とはEuroSTAR Conference 2018で、Adam Roman氏が発表したもの。TQED の切り口は、時間(Time)、量(Quantity)、イベント(Event)、データ(Data))
NGTはあくまでも記法であり、トップビューを何にするかは、特定していない。(既存のフレームワー クも役立つが、分析力が大切) ① テスト観点(【“xx”をテストする】の“xx” )の例 条件(パラメータ) 例) 入力値、入力値の選定背景、データとしてまとまった入力(ファイル)、状態 テスト対象の構成 例) 商品のグレード、仕向け、プラットホームのバージョン、外部接続 テスト対象の外部環境 例) 固定的な外部環境(設置場所)、変動的な外部環境(温度、湿度、電源) 過去の不具合情報 例) カウンターの桁あふれ ② テスト観点のフレームワークの例 CIBFWモデル Condition(条件) / Item(テスト対象) / Behavior(振る舞い) / things Faulty or hazardous(嫌なこと全般。例えば、欠陥(バグ)/不具合(現象)、ハザード/心配事や懸念点 等) / World(その他、Customer of Customer、競合)
・NGTとは ・テスト観点図はリファインして改良する (育てる) ② NGT 7
NGTとは:(テスト観点図=ツリー風の記法) GUI 機能 データ 動作環境 プラットフォーム ネットワーク OS ハードウェア OSの種類
OSのバージョン IEのバージョン 電子メール 8 記号 名称 備考 テスト観点 テストケー スの「意 図」 テスト対象 観点と厳密 に区別しな くてもよい 詳細化・抽 象化 子ノードは 7個以下 (目安) 順序関係な ど 方向を持つ もの 関連線 関連する テスト観点 組合せテス トで考慮 ≪xxxxxxx≫ ≪frame≫ ≪then≫ ≪behavior≫ ステレオ タイプ 新しい関係 詳細な関係 他にもand, afterなど 自由に ステレオタイプ≪frame≫はテストケースに デザインパターンのような構造を 持つときに使うと便利 関連線の意味を忘れないように書く NGT(Notation for Generic Testing): テスト開発のための記法 (西康晴氏が考案したテスト観点の構造を記述する方法) 特徴は【関連線】←とってもアバウトで使いやすい!
補足) 関連線を用いてテスト観点図の構造をリファイン 9 関連線とは、「組み合わせて確認したいテスト観点」間に引く線 (ステレオタイプを記入してもよい) A B C D E
F A B C D B E F テスト観点A, B, C, D, E, Fを すべて組み合わせたテストをす るのではなく、 ① A, B, C, Dの組合せテスト と、 ② B, E, Fの組合せテスト に分けるとよい ② ①
テスト観点図はリファインして改良する(育てる) 10 テスト観点図に正解は無く、自分たちの知見(チームの知恵)が表されていることに納 得するまで改良する。また、重要なテスト観点はフロントローディングする。 ① (付箋など)手書きで作成したテスト観点図をPCに入力する ツリー図を描くのに、使い慣れているアプリケーションを用いるのが良いが、 freemindなどのマインドマップツールを用いても良い
② 一つのテスト観点に複数の意図が含まれていないこと確認する 含まれていた場合は分割するか、本当にしたい重要な意図をテスト観点に残す ③ それぞれのテスト観点を丁寧に見直す 「意図が明らかになるように」テスト観点の名前を変える(ピント合わせ) ④ テスト観点図の構造を見直し整理する 同じような構造が見えたら、テスト観点を一段階抽象化して、共通化する ⑤ 「テスト観点の拡充」を行う 間や対称(Aと非A)、こちらにある観点はあちらに無くて良いか? ⑥ 汎用的(別の場面)に活用できるテスト観点図であるか確認する 読む人によって異なる意図となる観点の書き直し(言葉を選ぶ)
・VSTePとは ・テストコンテナとテストフレーム ③ VSTeP 11
VSTePとは 12 VSTePは、いきなりテストを始めない(昔はいきなりテストをしていた)ように、テスト技 術者が行うべき活動を並べたもの。(テストプロセス) ① TRA:テスト要求分析 ・ テスト観点を段階的詳細化して、テスト観点図を作る ・ テスト観点図のリファインを繰り返して、全体を理解し、納得し、共感すること
▪ 『何をテストすべきか』について、全員で納得し共感できるモデルを作成する。 ② TAD:アーキテクチャー設計(大規模テスト時のみ:仕事はたいてい大規模) ・ テスト観点をグルーピングして、テストコンテナを作ったのち、 テストコンテナの入れ子や順序をテストコンテナ図にする ・ 複数のテスト観点を組み合わせて、テストケースのスケルトンとなるテストフレームを組む ▪ “こうすれば上手くいく”というテストの全体像を示すモデルを構築する。 そのモデルは、テスト観点(やテストフレーム)との関係が明確であり、全体を俯瞰できる ものであることが望まれる。 ③ TDD:詳細設計 ・ テスト観点(場合によってはテストフレーム)と網羅基準からテストケースを機械的に作る ・ 具体的なテストデータ値を決定する ④ TI:実装 ・ テストスクリプト(自動テストスクリプトやテスト手順書)を作る TRA TAD TDD TI
テストコンテナとテストフレーム 13 TRA TAD TDD TI ユニットテスト 構造テスト •制御フロー •データフロー
再発防止テスト 統合テスト APIテスト エミュレータによるテスト 構成テスト 性能テスト システムテスト 機能テスト 負荷テスト 組合せテスト シナリオテスト エラー&リカバリーテスト 認証テスト テストコンテナの例 テストフレーム たとえば、CIBFWフレームワークを使って、 テストケースのスケルトン(骨組み)を作成する。 条件(C) 対象(I) 振る舞い(B) 契約数 バックアップ機能 処理が終わるか 従来より、テストレベル、テストタイプ、 テストサイクルといったテストケースを まとめたものがあります。これらはテス トの全体像を示すために有効です。 ここで、そのまとまりががレベルなのか、 タイプなのか議論になることがあります が、あまり意味が無いように思います。 大切なことは、“こうすれば上手くい く”というテストの全体像を示すモデル の構築です。 そのモデルは、テスト観点(やテストフ レーム)との関係が明確であり、全体を 俯瞰できるものであるべきでしょう。