ソフトウェアテスト業界での
ステップアップを考えよう
WACATE実⾏委員
朱峰 錦司
マイヤーズの三⾓形問題
■ 3つの整数を⼊⼒として受け付ける。
■ これら3値を各辺の⻑さとする三⾓形の構成を試みる。
■ 結果、以下のいずれに該当するかを判定する。
– 正三⾓形
– ⼆等辺三⾓形
– 不等辺三⾓形
– 三⾓形を構成できない
2019/12/15 WACATE 2019 冬 2
マイヤーズの三⾓形問題のテストケース
■ はじめて解く⼈向け
– この問題の判定関数の機能が正しく動作するかを
テストするためのテストケースを10件以上
挙げてみましょう。
■ 過去に解いたことがある⼈向け
– このプログラムがユーザに配布・提供・利⽤される
形式も含め想定し、様々な観点からテストケースを
15件以上挙げてみましょう。
2019/12/15 WACATE 2019 冬 3
宿題
■ はじめて解く⼈向け
– 書籍の購⼊、もしくは、グーグル検索を駆使して、
本問題の解答例(14件)を調査し、各⾃で
答え合わせをしてください。
2019/12/15 WACATE 2019 冬 4
その他の観点の例
■ 機種依存⽂字の⼊⼒時の挙動
■ 巨⼤バイナリデータ送付時の挙動
■ ⼊⼒フォームの使いやすさ
■ ⼤⼈数での同時利⽤時のパフォーマンス
…etc
2019/12/15 WACATE 2019 冬 5
本⽇のゴール
■ 何事も⾔語化をしようとする意識づけをする。
■ 現在のソフトウェアテストスキル、業務内容を
棚下ろすきっかけを作る。
■ 今後のソフトウェアテスト領域でのスキルアップの⽅
向性を考えるきっかけを作る。
■ ⾃分の周りの⼈のスキルアップをサポートしようとい
う気持ちになる。
2019/12/15 WACATE 2019 冬 6
⾃⼰紹介
■ 朱峰錦司(あけみねきんぢ)@kjstylepp
■ 本業@みかかデータ
– 2009〜2014︓全社のソフトウェアテストプロセス策定
と実案件での効率化⽀援
– 2014〜︓アジャイル開発、デジタルトランスフォーメ
ションのための⽅法論策定、実案件での実践⽀援
■ 趣味
– WACATE実⾏委員
2019/12/15 WACATE 2019 冬 7
⾃⼰紹介
■ 2011冬、2012冬、2013夏にWACATE参加
■ 2013冬よりWACATE実⾏委員
– 2013冬︓状態遷移テスト, 論⽂書こうぜ
– 2014夏︓ゆもつよメソッド
– 2014冬︓モデル検査
– 2015冬︓ISO29119
– 2016夏︓テスト分析演習お題作成
– 2016冬︓SWEBOK, SQuBOK, PMBOK
– 2017夏︓ICST参加報告
– 2017冬︓論⽂書こうぜ
– 2018夏︓テスト分析演習お題作成
– 2018冬︓ASTERセミナーテキスト,Agile Testing Days参加報告
– 2019夏︓テスト分析演習お題作成
2019/12/15 WACATE 2019 冬 8
⾃⼰紹介
2019/12/15 WACATE 2019 冬 9
お品書き
1. スキルアップのためのプロセス
2. 品質とテスト
3. テストの技術領域
4. スキルアップのためのアクション
まとめ
2019/12/15 WACATE 2019 冬 10
スキルアップ
のためのプロセス
2019/12/15 WACATE 2019 冬 11
#1
1.1 プロセス
2019/12/15 WACATE 2019 冬 12
知識領域の
拡⼤
⽬標の設定
と補正
⽬標への
⾏動
1.2 今⽇やること
2019/12/15 WACATE 2019 冬 13
知識領域の
拡⼤
⽬標の設定
と補正
⽬標への
⾏動
①ソフトウェアテストに関する
知識領域のベースを構築する
③知識領域拡⼤のための
具体的な⼿⽴ての例を⽰す
②⽬標設定の練習をする
④⾏動の具体的な例を⽰す
品質とテスト
2019/12/15 WACATE 2019 冬 14
#2
2.1 品質とは
■ ISO/IEC 25010:2011 / JIS X 25010:2013
における定義
■ システムの品質は,システムが様々な利害関係者
の明⽰的ニーズ及び暗黙のニーズを満⾜している
度合いであり,それによって価値を提供する。
2019/12/15 WACATE 2019 冬 15
2.2 テストとは
■ ISTQBテスト技術者資格制度
Foundation Level シラバス
⽇本語版 Version 2011.J02 における定義
■ 全てのライフサイクルを通じて実施する静的、動
的なプロセスにおいて、成果物が特定の要件を満
⾜するかを判定し、⽬的に合致することを実証し、
⽋陥を⾒つけるため、ソフトウェアプロダクトや
関連成果物に対し、計画、準備、評価をすること。
2019/12/15 WACATE 2019 冬 16
古いです
2.2 テストとは
■ 全てのライフサイクルを通じて実施する静的、動的なプロセスにおいて、
成果物が特定の要件を満⾜するかを判定し、⽬的に合致することを実証し、
⽋陥を⾒つけるため、ソフトウェアプロダクトや関連成果物に対し、計画、
準備、評価をすること。
2019/12/15 WACATE 2019 冬 17
計画 準備 評価
• ソフトウェアプロダクトを
• 関連成果物を
• 特定の要件を満⾜するかを判定
• ⽬的に合致することを実証
• ⽋陥を⾒つける
• 静的に
• 動的に
Why
What
How
2.3 品質とテスト
■ テストだけで、全ての品質をカバーできない。
■ プロジェクト計画時に、どの品質をテストで
カバーするかを計画しなければならない。
– テストでカバーできないものは、設計の作り込みや
レビュー等で対処しなければならない。
2019/12/15 WACATE 2019 冬 18
テストの技術領域
2019/12/15 WACATE 2019 冬 19
#3
知識領域の
拡⼤
⽬標の設定
と補正
⽬標への
⾏動
①ソフトウェアテストに関する
知識領域のベースを構築する
③知識領域拡⼤のための
具体的な⼿⽴ての例を⽰す
②⽬標設定の練習をする
④⾏動の具体的な例を⽰す
知識領域の
拡⼤
①ソフトウェアテストに関する
知識領域のベースを構築する
2019/12/15 WACATE 2019 冬 20
⽬標の設定
と補正
②⽬標設定の練習をする
3.1 テストの全体像
2019/12/15 WACATE 2019 冬 21
■ テスト技術を整理するうえで有⽤な3つの軸
1. テストレベル
2. テストタイプ
3. テストプロセス
3.2 テストレベル
2019/12/15 WACATE 2019 冬 22
要件定義
外部設計
内部設計
実装
コンポーネント
テスト
結合テスト
システムテスト
受⼊テスト
3.2 テストレベル
■ テストレベルを規定する要素の例
– テスト対象は何か︖
■ 2つのカバレッジ
– コンポーネントカバレッジ
– シナリオカバレッジ
■ 環境
– テストベースは何か︖
2019/12/15 WACATE 2019 冬 23
3.2 テストレベル
2019/12/15 WACATE 2019 冬 24
■ 既成のテストレベルの名称を借りることで
思考停⽌しないように注意。
– 「E2Eテスト」って何︖問題
■ 常に⾃分たちのテストレベルを具体的に
⾔語化しよう。
3.3 テストタイプ
2019/12/15 WACATE 2019 冬 25
機能テスト ⾮機能テスト ホワイト
ボックス
テスト
変更部分のテスト
ブラックボックステスト
3.3 テストタイプ
2019/12/15 WACATE 2019 冬 26
利⽤時の品質
有効性 効率性 満⾜性
リスク
回避性
利⽤状況
網羅性
製品品質
性能
効率性
互換性 使⽤性 信頼性
機能
適合性
セキュ
リティ
保守性 移植性
3.3 テストタイプ
■ 規格は整理・体系⽴て⽤途としては便利。
■ ただし、テスト実務の際は、あまり規格などに
こだわりすぎないように。
– 具体的でチーム内の共通認識が
持てる⾔葉で定義しよう。
2019/12/15 WACATE 2019 冬 27
3.4 テストプロセス
2019/12/15 WACATE 2019 冬 28
終
了
作
業
評
価
・
レ
ポ
ト
テ
ス
ト
実
⾏
テ
ス
ト
実
装
テ
ス
ト
設
計
テ
ス
ト
分
析
テ
ス
ト
計
画
モニタリング・コントロール
3.4 テストプロセス
2019/12/15 WACATE 2019 冬 29
テ
ス
ト
ア
キ
テ
ク
チ
設
計
全
体
テ
ス
ト
計
画
全
体
終
了
作
業
全
体
評
価
・
レ
ポ
ト
全体モニタリング・コントロール
3.4 テストプロセス
■ 暗黙知によって省略されているプロセスが
あるかどうかを意識しよう。
– 全社標準のテストアーキテクチャがある
– 都度効率を考えてテストケース実⾏順を決めている
2019/12/15 WACATE 2019 冬 30
3.5 様々なテスト技術に関するロール
■ テストレベルカット
– そもそも開発がメインだがテストもやっている
– 特定のテストレベルのみを担当
– 発注の⽴場として受⼊テストのみを担当
2019/12/15 WACATE 2019 冬 31
3.5 様々なテスト技術に関するロール
■ テストタイプカット
– 機能テストメイン
– パフォーマンステスト専⾨
– セキュリティ専⾨
2019/12/15 WACATE 2019 冬 32
3.5 様々なテスト技術に関するロール
■ テストプロセスカット
– テストマネージャー
– テストアーキテクト
– テスト分析〜テスト実⾏まで
– テスト実⾏のみ
2019/12/15 WACATE 2019 冬 33
3.5 様々なテスト技術に関するロール
■ その他
– テスト⾃動化システムを開発している。
– 会社のテストプロセス、品質保証標準プロセスを
策定している。
– テスト技術の教育をしている。
2019/12/15 WACATE 2019 冬 34
3.6 テスト「エンジニア」
■ テストコードを実装するのがテストエンジニア︖
■ テスト設計技法を使うのがテストエンジニア︖
2019/12/15 WACATE 2019 冬 35
3.6 テスト「エンジニア」
■ テストのエンジニアリングの要素
– ⾔語化
■ モデリングを含む
– UML : unified modeling language
– 再現性
■ みんながテストエンジニアである必要はあるか︖
– すごく腕のいいテスターの存在は超ありがたい
– テスターとテストエンジニアでタッグを組めるのが
理想的な世界かもしれない
2019/12/15 WACATE 2019 冬 36
スキルアップのための
アクション
2019/12/15 WACATE 2019 冬 37
#4
知識領域の
拡⼤
⽬標の設定
と補正
⽬標への
⾏動
①ソフトウェアテストに関する
知識領域のベースを構築する
③知識領域拡⼤のための
具体的な⼿⽴ての例を⽰す
②⽬標設定の練習をする
④⾏動の具体的な例を⽰す
知識領域の
拡⼤
③知識領域拡⼤のための
具体的な⼿⽴ての例を⽰す
2019/12/15 WACATE 2019 冬 38
4.1 知識領域を広げる
2019/12/15 WACATE 2019 冬 39
道具や武器
業務上の
問題や課題
知識
引き出し
4.2 道具や武器の⼊⼿
■ 勉学あるのみ︕
2019/12/15 WACATE 2019 冬 40
4.2 道具や武器の⼊⼿
■ ASTERセミナー標準テキスト
– JSTQB Foundation Levelの内容
■ 章構成もFLシラバスと同様
– ひとりで学習する分にはシラバスと同等
– みんなで学習、後進を育成する際に、
スライド教材として効⼒を発揮
4.2 道具や武器の⼊⼿
■ JSTQBシラバス
– 定番中の定番
– 読んでいないやつはもぐり
■ 過激派の意⾒
– FL -> AL
4.2 道具や武器の⼊⼿
■ Amazonで「ソフトウェアテスト」で検索︕
– よほど評価の低いやつ以外はどれも良書
■ そんなに数はないので、最終的には全て読破︕
– 過激派の意⾒
■ そんな中から本⽇はいくつかピックアップ
4.2 道具や武器の⼊⼿
■ はじめて学ぶソフトウェアのテスト技法
– 定番中の定番
– Kindleがある
4.2 道具や武器の⼊⼿
■ ソフトウェアテスト技法ドリル
– 技法といったらこれ
– ⽇本発
■ わりと簡単に著者に会える︖︕
– 定期的に勉強会も発⾜
4.2 道具や武器の⼊⼿
■ ソフトウェア品質知識体系ガイド
– いわゆる辞書
– 参考⽂献の宝庫
4.2 道具や武器の⼊⼿
■ ソフトウェア教科書 JSTQB Foundation
– JSTQB FL受けるならこれ
– 意外と100点は難しい︖︕
4.2 道具や武器の⼊⼿
■ ひとりでの勉学はつらい…
■ そんなときは知⼈やWACATEで出会った仲間と
読書会や勉強会を企画しよう︕
4.3 問題解決のヒント
■ 取り組み発表、紹介を扱うイベントに⾏こう︕
– 気軽にライトなものに⾏くもよし
– 査読プロセスを通った硬派なものもよし
4.3 問題解決のヒント
■ WACATE
■ connpassで「ソフトウェアテスト」で検索︕
– NaITE
– Web Service QA Meeting
– Ques
– D3 …etc
4.3 問題解決のヒント
■ JaSST
– 東京
■ レビュー
– 地⽅
■ 北海道
■ 東北
■ 新潟
■ 北陸
■ 東海
■ 関⻄
■ 四国
■ 九州
4.3 問題解決のヒント
■ ソフトウェア品質シンポジウム
= SQiPシンポジウム
■ テスト設計コンテスト
– 各地予選
– 東京本戦
■ システムテスト⾃動化カンファレンス
4.4 ⼈⽣を変える出会い
■ ふと⾜を運んだイベントに、神や化け物のような
⼈たちがいっぱいいる。
■ ロールモデルと出会う。
■ ロールモデルとまではいかないまでも、こういう
活動をしている⼈もいるんだ、と知⾒を広げる。
2019/12/15 WACATE 2019 冬 53
4.5 バランスよく
■ 「⽬的意識も持たないで…」という⼈もいるけど、
とりあえず勉強する、も決して悪くない。
■ ⼀⽅、勉強過多になって、問題解決と結びつける
⽅がおろそかになるのも危ない。
2019/12/15 WACATE 2019 冬 54
知識領域の
拡⼤
⽬標の設定
と補正
⽬標への
⾏動
①ソフトウェアテストに関する
知識領域のベースを構築する
③知識領域拡⼤のための
具体的な⼿⽴ての例を⽰す
②⽬標設定の練習をする
④⾏動の具体的な例を⽰す
⽬標への
⾏動
④⾏動の具体的な例を⽰す
2019/12/15 WACATE 2019 冬 55
4.6 よきタイミングで棚卸しをしよう
■ ⾃分のスキルや取り組みを棚下ろす・振り返る
ことで、効果的に次の⼀歩につながる。
■ 資格取得
■ 発表
– 社内
– 対外
2019/12/15 WACATE 2019 冬 56
4.7 資格をとろう
■ JSTQB
– いわずもがな
■ JCSQE
– 初級︓SQuBOK頭に叩き込めばいける
– 中級︓わりとむずかしい
2019/12/15 WACATE 2019 冬 57
4.8 発表をしよう
■ ⾃分の取り組みを体系⽴てられる
– どんな問題を解決したのか︖
– 何が効いたのか、何は効かなかったのか︖
■ 客観的なフィードバックを得られる
– 参加者からのコメント
– 査読コメント
■ 査読に落ちた場合は、まだまだなんだと
反省して次に繋げる。
2019/12/15 WACATE 2019 冬 58
4.9 戦略的に
■ 最初から事例発表をするつもりチャレンジ
– 仮説は何︖
– 効果はどうやって検証する︖
■ アウトプットよりアウトカム
■ 発表過多にご注意
2019/12/15 WACATE 2019 冬 59
one more thing
2019/12/15 WACATE 2019 冬 60
知識領域の
拡⼤
⽬標の設定
と補正
⽬標への
⾏動
業界貢献を通して、⾃分や他の
⼈のループを加速させる。
4.10 業界貢献
■ ⾃分や仲間でイベントを企画する。
– 次のセッションを乞うご期待
■ 既存イベントの運営委員を担当する。
2019/12/15 WACATE 2019 冬 61
まとめ
2019/12/15 WACATE 2019 冬 62
[再掲] 本⽇のゴール
■ 何事も⾔語化をしようとする意識づけをする。
■ 現在のソフトウェアテストスキル、業務内容を
棚下ろすきっかけを作る。
■ 今後のソフトウェアテスト領域でのスキルアップの⽅
向性を考えるきっかけを作る。
■ ⾃分の周りの⼈のスキルアップをサポートしようとい
う気持ちになる。
2019/12/15 WACATE 2019 冬 63
[再掲] 今⽇やったこと
2019/12/15 WACATE 2019 冬 64
知識領域の
拡⼤
⽬標の設定
と補正
⽬標への
⾏動
①ソフトウェアテストに関する
知識領域のベースを構築する
③知識領域拡⼤のための
具体的な⼿⽴ての例を⽰す
②⽬標設定の練習をする
④⾏動の具体的な例を⽰す
いい修⾏場所
ありますよ :)
2019/12/15 WACATE 2019 冬 65
Join WACATE!

WACATE2019冬 ソフトウェアテスト業界でのステップアップを考えよう #wacate