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
チームで取り組むテスト設計_演習資料
Search
Akira Ikeda
June 30, 2008
Technology
1
790
チームで取り組むテスト設計_演習資料
・技術コミュニティの無償(または会場費等実費)に て開催される勉強会で、無償でお使いいただけるよ うに公開するものです。
・内容は2008年6月時点のものです
Akira Ikeda
June 30, 2008
Tweet
Share
More Decks by Akira Ikeda
See All by Akira Ikeda
JaSST'24 Kyushu 基調講演 「一周まわって考えるソフトウェアテストへのマインドマップの利用」
ikedon
0
380
それって技術の仕事!? 仕様の輻輳問題(SS2023in仙台 FPセッション)
ikedon
0
25
長崎ビジネスDX "SAIZENSEN" 長崎の未来 ~私達の活動の先にあるもの~ ポジショントーク資料
ikedon
0
10
米国修士課程ベストセラーに学ぶ体系的ソフトウェアエンジニアリングの必要性
ikedon
0
15
テスト設計技法、その前に ~フェイスアップ、次にビルドアップ、その先にマインドアップ~
ikedon
0
8
単なる仕様チェックを卒業してテスト技術力を高めていくために ~押さえておきたいキホンのキ~
ikedon
0
32
IV&Vの概要 ~JAXA様発行「IV&Vガイド【虎の巻】」第1~2部の要約~
ikedon
1
360
OSGi概要
ikedon
1
1.2k
親子で使おうマインドマップ
ikedon
0
15
Other Decks in Technology
See All in Technology
ドメインの本質を掴む / Get the essence of the domain
sinsoku
2
150
DMARC 対応の話 - MIXI CTO オフィスアワー #04
bbqallstars
1
160
Amazon Personalizeのレコメンドシステム構築、実際何するの?〜大体10分で具体的なイメージをつかむ〜
kniino
1
100
Making your applications cross-environment - OSCG 2024 NA
salaboy
0
190
マルチモーダル / AI Agent / LLMOps 3つの技術トレンドで理解するLLMの今後の展望
hirosatogamo
37
12k
New Relicを活用したSREの最初のステップ / NRUG OKINAWA VOL.3
isaoshimizu
2
590
Lambdaと地方とコミュニティ
miu_crescent
2
370
Terraform未経験の御様に対してどの ように導⼊を進めていったか
tkikuchi
2
430
これまでの計測・開発・デプロイ方法全部見せます! / Findy ISUCON 2024-11-14
tohutohu
3
370
【令和最新版】AWS Direct Connectと愉快なGWたちのおさらい
minorun365
PRO
5
750
データプロダクトの定義からはじめる、データコントラクト駆動なデータ基盤
chanyou0311
2
310
10XにおけるData Contractの導入について: Data Contract事例共有会
10xinc
6
620
Featured
See All Featured
Being A Developer After 40
akosma
86
590k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
250
21k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
28
9.1k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
10
720
Scaling GitHub
holman
458
140k
RailsConf 2023
tenderlove
29
900
StorybookのUI Testing Handbookを読んだ
zakiyama
27
5.3k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
44
6.8k
4 Signs Your Business is Dying
shpigford
180
21k
BBQ
matthewcrist
85
9.3k
Teambox: Starting and Learning
jrom
133
8.8k
Building Applications with DynamoDB
mza
90
6.1k
Transcript
チームで取り組むテスト設計 演習資料 池田 暁 © Akira Ikeda 1 2008年6月
Web公開にあたってのご注意 技術コミュニティの無償(または会場費等実費)に て開催される勉強会で、無償でお使いいただけるよ うに公開するものです 本資料を企業によるセミナ等商用利用等金銭を得る 行為に利用することを堅く禁じます 利用に当たって本資料の改編を禁じます
本資料の無断転載を禁じます 利用時は本資料の引用元を明らかにして下さい 内容は2008年6月時点のものです 2008年6月 © Akira Ikeda 2
はじめに 演習の基本的なコンセプト チームでの協業 講師からの一方的なTTではなく,各自が持つ知識を結集す ることで問題を解決する 演習のGoal
知る テスト設計を知る テスト設計に影響を与える要素を知る テストプロセスを知る 体験する 知識を実践して身につける チームの一員としての協業のあり方を学ぶ バックグラウンドの違うメンバとの交流から視野を広げる 2008年6月 © Akira Ikeda 3
普段どのようにテストしてますか? テストは頭を使う作業である 主なテストベースは設計者が検討を重ね作りこんだ仕様書など その仕様書に対して、さらに頭を使って静的テストを実施 それら静的テストを合格したテストベースをもとに,実現されたソフト ウェアのどこにバグが潜んでいるかを考えテストケースを作成する
テスト初級者にありがちなケース 仕様書から直接Excelシートの表にテストケースを書く 多くの場合、文言の変換しか行われない 転記作業に陥り,仕様書の内容を吟味しない 表を埋めるために,適当に数値を変えて水増し(境界値分析の意識なし) ベテランはどうしているか 仕様書を分析し,戦略を立て,設計し,最終的にテストケースに落とし 込む 過去の経験の再利用や,網羅性の確保と観点の抜けの防止の努力をする 2008年6月 © Akira Ikeda 4
テスト設計は普及した??? 2007年からテスト設計の勉強会や講演が増えている ソフトウェア・テストPRESSなどの雑誌記事でも目にする機 会が増えている 言葉としては広まっているような感触がある ただ・・・
テスト設計という工程に影響を与えるさまざまなこと についてはあまり認識されていない 工程はつながっている! 2008年6月 © Akira Ikeda 5
テストプロセスの1例 テストの作業は次のように進められる 仕様分析 仕様書等のテストベースを分析する 実施すべきテストの種類,テストの終了/判断基準,人員/環境など
テスト計画(戦略) 仕様分析での情報を具体的な計画として起こしていく テスト設計 テストの計画にしたがって,テスト観点やテスト項目を作成する テスト実装 テスト設計にしたがって,テストケースを作成する テスト実行 テストケースを実際に実行し,テストログを作成するとともに,必 要があればインシデントレポートを発行し,管理する テスト報告 テストが終了したら,テストドキュメントをもとに報告書を作成し, 報告を行う 2008年6月 © Akira Ikeda 6
仕様分析に入る前にも工程は存在する 仕様分析に入る前に,テストチームがビルドされる 1人で全部やるなら別ですが・・・ テストチームビルディングの工程もテスト設計に影響を与 える 組込み系のテストしか経験のないチームがエンプラ系をテストする
場合どうなる? 当然,苦手なりに戦略を立てなければならない 今の経験でやれるところとやれないところをわからないといけない テスト人員の集合 = テストチーム としていいのか? テスト人員の集合からテストチームへの変換作業が必要 テストチームの目的や能力など把握する必要がある テストチームの能力を定義することで,得意なテスト,不得意なテストがわかる 非常に限られた時間でテストする場合,不得意なテストを行うと効率は??? 変換作業が行われないテスト人員の集合は単なる烏合の衆 たまたま梁山泊であることはほぼない 2008年6月 © Akira Ikeda 7
本演習の流れ テストチームのビルディング メンバのスキル把握とメンバのロール定義 上記を総合して,チームを定義する 仕様分析
テスト対象となる仕様を分析 テスト対象となるテストベースをテストするということ テスト計画(戦略) テストをどのように進めるか,テスト設計のための戦略を検 討する チームの能力を勘案して,テストアプローチを決める テスト設計 計画と戦略に従ってテスト設計を行う テスト実装 テスト設計の結果にしたがって,テストケースを作成する 2008年6月 © Akira Ikeda 8
演習の注意点 チームでの作業です! 誰か一人だけの意見が“全て”にならないように メンバ全員に均等に発言の機会を チームとしての結論は,メンバ全員の合意が得られること
作業を進める上で,お互いメンバを思いやること 経験年数やスキルの程度で上下関係を作らない 同じGoalを目指す同士であることを意識すること チームリーダは以上をきちんとモデレートしてください 他のチームの偵察はダメ! わからないことなどを他のチームに聞くのはダメ 聞き耳をたてず,目の前にあることに集中しましょう 休憩は適宜 休憩は作業の進行具合で各チームにて判断下さい 2008年6月 © Akira Ikeda 9
STEP 0 演習のシチュエーション 2008年6月 © Akira Ikeda 10
皆さんはある日集められた人たちです 朝出社したら,偉い人に呼ばれてこう告げられました 「あ,お前今日はテストチームな.よろしくやってくれ」 「とりあえず,ここに行ったら他にも何人かいるから」 わけもわからず場所に行ってみたら,今同じ班の人がいました
ほとんど初対面,どんな人かもよくわからないし,そもそもリーダだれだよ 偉い人再来襲 「あーよく集まってくれた.お前らは突発テストプロジェクトのメンバだ」 「まぁテストなんて簡単な仕事だから,適当に相談してやってくれよ」 「そうだ,しばらくしたら今回のお客さんがきて,仕様をくれるそうだ」 「じゃ(^^)ノシ」 どうやら,テストの仕事を請け負ったらしく,とりあえず手の空いてそうな人員 が集められたらしい 2008年6月 © Akira Ikeda 11
お客さんがきました いかにも頼りなさそうなお客さんが現れ,仕様書を手渡してこう 言いました 「この仕様書に書かれたソフトを別のA社が作ってるので,システムテ ストを皆さんには行っていただきます」 お客さんの要求は次のようなことでした
「なにぶん急な話で申し訳ないんですが,検討は今日中にお願いできま すか?」 「テストに使えるのは明日三日程度なんです.」 「予定では明後日からテストの実行を行っていただきたいです」 「期間は短いことはわかっているので,全てをテストしろと無理なこと は言いませんが,できうる限り効果のあるテストをお願いします」 お客さん,帰り際にこんなことを 「そうだ,明日,検討結果をプレゼンしてもらえますか?」 「私も急にこの仕事をふられてよくわかってないんですよ」 2008年6月 © Akira Ikeda 12
シチュエーションのポイント 皆さんは,わけもわからず集められた お互いに初対面で,どういう人かもよくわからない しかし,このメンバで作業は行わなければならない お客さんの要望など
今日中にテストケースを作ってほしい 全てをテストする必要はないが,できる範囲で最大の効果を出して ほしい 明日,検討結果をプレゼンしてほしい お客さん自身,この仕事はよくわかっていなさそう??? このような状況下で,皆さんは作業しなければなりません 問題山積みですが,全員の知恵と経験を結集して乗り越えましょう 2008年6月 © Akira Ikeda 13
STEP 1 テストチームビルディング 2008年6月 © Akira Ikeda 14
チームビルディングとは? 人が集まっただけでは,それは集合でしかない 共通の目的を持ち自立的に,協調的にメンバが働く物 をチームという(人が集まっただけではチームとは呼 ばない!) プロジェクトを作るとき,設計チームについては,各 人のスキルなどを勘案して,組織作りをする
テストチームについても同様のことが必要である テストチームも,集合からチームに変換! テストチームはビルディングされなければならない! 2008年6月 © Akira Ikeda 15
テストチームをビルドしよう メンバの顔合わせ ポジペセッションでやりました メンバの能力を把握する スキルシートを作成し,各メンバのスキルを見える化する
チームの能力を定義する メンバの能力から,チームとしてどういったテスト分野,テスト技法な どが得意/不得意なのかを明らかにする 体制図を作る テストチーム内のロールを決める このとき,お客様窓口を作って下さい.このロールは20代の方が担当. 成果物 スキルシート(個人) チームスキル定義 体制図 2008年6月 © Akira Ikeda 16
STEP 2 仕様分析 2008年6月 © Akira Ikeda 17
仕様分析とは? テストを行う場合,そのテストベースとなるものは,主に設計部 門が作成した仕様書となる 理想的には,要件定義からテストエンジニアが参加するべきだが,現実 そうはなっていない テストベースは,多くの場合,間違いを含む!
設計部門から仕様書を受け取ったら,まずはその内容を疑おう 仕様書を間違いがあることを前提に分析を行う それはすなわち仕様書の静的テストである 仕様書の静的テストを行うことで・・・ 仕様書が持つ誤りを発見することができる 仕様の曖昧さを排除することで,仕様の品質を向上することができる 仕様書の品質を向上することで,テストケースの品質の確保につながる →元がダメだと,後はすべてダメ →不良の摘出は上流で! 2008年6月 © Akira Ikeda 18
仕様書を分析しよう 配布する仕様書を分析 配布された仕様書を分析してください 仕様書についてはお客さん(講師)に質問OK. ただし,Q&Aシートを作成し,一人で質問に来る.持ち時間 は5分・1回のみ
→STEP1で作成した「お客様窓口」のロールの人 講師はお客さん役を演じ,必ずしも正しいことを言うかどう かはわからない 適切な質問を作ってこないと,いい回答は引き出せない 成果物 QAシート 分析結果 その他,何かあれば 2008年6月 © Akira Ikeda 19
STEP 3 テスト計画(戦略) 2008年6月 © Akira Ikeda 20
テスト計画(戦略)とは? テストはやみくもに行っても効果は薄い 高度なテストエンジニアが探索的テストを行う場合,やみくもに 行っているわけではない 限られた時間,コスト,リソースの範囲で最大限の効果を 目指す
そのためには,適切な計画と戦略(アプローチ)が必要 この演習では,この計画と戦略は,STEP1のテストチームの能力と STEP2の仕様書の分析結果から検討する 完全テストは時間とコストがいくらあっても足りない 割り切りも必要である この時点では大枠(全体指針)を決める 詳細な検討は,テスト設計のフェーズで 2008年6月 © Akira Ikeda 21
テスト計画をたててみよう STEP1とSTEP2の成果物を使って,テスト計画(戦略)を たてる テストチームの能力と仕様分析の結果から,まずは大局的な計画を 立てる このとき細部だけに着目しすぎないこと,全体を俯瞰する
計画書については,IEEE829が参考になる このレベルではマスターテストプランがもっともヒントに? この時点で全体のテストアーキテクチャを考えても良い マインドマップやNGTなどを使って,全体を図化するのも効果的だ ろう 成果物 テスト計画(戦略)書 2008年6月 © Akira Ikeda 22
STEP 4 テスト設計 2008年6月 © Akira Ikeda 23
テスト設計とは? テストケースを作成するにあたって必要となる”観点”を抽出し,検討し,整理 する この観点の検討にはSTEP3で検討した,テスト戦略(アプローチ)が影響を与える 大方針に従うということ(エンプラ系の見地からテストする,とか) テストの観点が抜けると,その観点のテストケースがごっそり抜ける
この作業がテストケース全体としての品質を決める この検討には特に発想力が必要とされる マインドマップや,マンダラート 観点の整理にはツリー図やクラス図,表のような物が適切 NGTやFV表,構造図など使っても良いだろう テスト設計は,その行為自体は,厳密にはどの段階でも実施することができる 大まかなテスト設計を行って,その結果からテスト戦略をたて,テスト計画に反映すると いうとでも良い (ここで行うのは,テストケースを作成する直前の段階のテスト設計であることに注意す る) 2008年6月 © Akira Ikeda 24
テスト設計してみよう! テスト設計しよう テスト設計で決めた大方針に従って,分析した仕様をテスト ベースとしてテスト設計を行う マインドマップやNGTを使うと効果的 各自がマインドマップ等で検討し,それを持ち寄って一つに
まとめるといいだろう 持ち寄って検討するときに疑似レビューが行われる 観点には重要度や優先度が存在する テストの優先付けのための情報となる このとき(設計時)リスクベースドテストの考え方を用いても良い だろう 成果物 テスト設計結果 中間成果物(個人ベース,チームベース) 2008年6月 © Akira Ikeda 25
STEP 5 テスト実装 2008年6月 © Akira Ikeda 26
テスト実装とは? テスト設計の結果に基づいて,具体的なテストケースを作 成する 観点をよく考え,決して仕様書の文言変換にならないようにする EXCELコピペの罠にはまらない テスト技法を活用する
同値分割法や境界値分析などのベーシックな技法から直交表などへ 初級者はいきなり高度な技法は使うべきではない まずはベーシックな技法を確実に,これが一番効く テストケースのフォーマットをよく考えること 一覧表形式や,手順形式など,様々なフォーマットがあり,テスト する観点に着目してどのような形式が良いのかよく検討すること 単純に大項目,中項目,小項目と別けるのはもっとも良くない 2008年6月 © Akira Ikeda 27
テスト実装 テスト設計結果から,もっとも重要と分析した観点 についてテストケースを作成する(今回は時間がな いので) どのようなテスト技法を使うのか,ちゃんと押さえ ること どのようなフォーマットにするのか検討すること
成果物 テストケース 2008年6月 © Akira Ikeda 28
STEP 6 最終見直し 2008年6月 © Akira Ikeda 29
最終の見直しを行って下さい 今までの工程で作成した物をもう一度見直して下さ い この時点で何か気になる点があれば,手直しをしてくだ さい ただし,手直ししたときには成果物の繋がりを考えて修 正漏れが無いように!
時間が余ったという班は,発表に備え準備を行って もらっても良いです 発表内容は,各工程の成果物と,それをどのように(ど ういった意図で)作成したのか説明する 2008年6月 © Akira Ikeda 30
お疲れ様でした! 2008年6月 © Akira Ikeda 31