テストの極みを目指して～さあ、理想に近づくための一歩を踏み出そう！～

JaSST'17 Tohoku
2017年05月26日
YAMASAKI Takashi

山﨑 崇@yamasaki696
株式会社ベリサーブ

http://jp.freeimages.com/photo/soccer-2-1430279

改めてソフトウェアテストについて考えて見よう
https://www.pakutaso.com/2015104928945srtfghd.html

全てのライフサイクルを通じて実施する静的、動的なプロセスにおいて、成果物が特定の要件を満足するかを判定し、目的に合致することを実証し、欠陥を見つけるため、ソフトウェアプロダクトや関連成果物に対し、計画、準備、評価をすること。
http://www.freeimages.com/photo/dictionary-1423121

ソフトウェアテスト標準用語集(日本語版) Version2.2.J03 P-391より

人によっても違うし成熟度によっても違うし千差万別…
フェーズ4

テストは行動ではない。
大げさなテストをすることなく品質の高いソフトウェアを作るための精神的な訓練である。

フェーズ3

テストの目的は、何かを証明することではなく、プログラムが動かないことによって発生する危険性をある許容範囲までに減らすことである。

フェーズ2

テストの目的は、ソフトウェアテストが動かないということを示すことにある。

フェーズ1

テストの目的は、ソフトウェアテストが動くことを示すことである。

フェーズ0

テストとデバッグには何の差もない。
デバッグ以外にはテストには特別な目的はない。
ボーリス・バイザー著 「ソフトウェアテスト技法」よりテスト担当者の精神面による区分を引用

ここでのテストとテストの目的は次とします「品質に関わる新たな情報を提供するための諸活動」※以下のものを包含する

欠陥を摘出する対象ソフトウェアの品質レベルが十分であることを確認する

意志決定のための情報を示す

欠陥の作りこみを防ぐ

テストの価値は情報提供の価値
早いテストから得られる情報の提供タイミングが早いほど価値が高い

安い

テストから得られる情報の提供コストが安いほど価値が高い

旨いテストから得られる情報がニーズに合致していて正確で分かり易いほど価値が高い

プログラマー＝

プログラミングの専門家

デザイナー＝設計(デザイン)の専門家

デベロッパー＝開発(デベロップメント)の専門家

アーキテクト＝アーキテクチャの専門家

https://www.pakutaso.com/20151043274post-6143.html

テスト担当者（tester）： コンポーネントやシステムのテストを実施する熟練した専門家。

http://www.freeimages.com/photo/dictionary-1423121

ソフトウェアテスト標準用語集(日本語版) Version2.2.J03 P-39りなぜ「テスター＝テストの専門家」と認知されないか？

• そもそもテストに対して理解されていない？
• テスト実行がとりあえずとっつきやすい？
• そもそもテストの専門家以外もやってる？
• 他の専門職と比較してスコープが広いから？

• etc …？

https://www.pakutaso.com/20160423107post-7625.html

本講ではテスター＝テストの専門家で通します！

https://www.pakutaso.com/20130325065post-2502.html

テスターの極みを目指して～さあ、理想に近づくための一歩を踏み出そう！～

JaSST'17 Tohoku
2017年05月26日
YAMASAKI Takashi

では理想のテスターとは？

https://www.pakutaso.com/2015104928945srtfghd.html

テスターのスキルスペース

TESTSKILLSSOFTSKILLSITSKILLS

DOMAINKONWLEDGE
Fig. “Tester Skillspace” by Stuart Reid from JaSST Tokyo’14 Session Material (H8-2-2.pdf)

Professional Tester’s Skill-space

TEST
SKILLSSOFT
SKILLSIT
SKILLSDOMAINKONWLEDGE
Fig. “Tester Skillspace” by Stuart Reid from JaSST Tokyo’14 Session Material (H8-2-2.pdf)

https://www.pakutaso.com/20131103310post-3455.html

https://www.pakutaso.com/20131115310post-3452.html

http://www.freeimages.com/photo/machu-picchu-peru-2-1216270

最初の一歩を踏み出すのに重要な3つのこと

テストの全体観を持つロールモデルを見いだす

成長へのモチベーションを持ち続けるその１． テストの全体観を持とう！

テストの全体観を持つロールモデルを見いだす

成長へのモチベーションを持ち続けるテストの全体観を持つための3つの軸
テストレベル

テストプロセス

テストタイプ1つめの軸：テストプロセス

テス
ト分
析テス
ト
設
計

テス
ト
実
装テス
ト
実
行

評終
価了と基
レ準ポのー
ト

テス
ト
終了
作
業

「テスト技術者資格制度Advanced Levelシラバス日本語版テストマネージャ Version 21012.J02」を元に図にしたもの

2つめの軸：テストレベル

コンポーネントテスト

統合テスト

システムテスト

受入テスト

要件定義

受入テスト

外部設計

システムテスト

内部設計

統合テスト
実装

コンポーネントテスト
対応関係

3つめの軸テストタイプ
機能テスト

非機能テスト

構造テスト

ソフトウェアの機能（What）に着目した
テストタイプ

ソフトウェアの非機能的な特性（How）に着目した
テストタイプ

ソフトウェアの構造やアーキテクチャに着目した
テストタイプ

セキュリティテスト

性能テスト

条件テスト

相互運用性テスト

ロードテストステートメントテスト

その他

ストレステスト

パステスト

使用性テスト

判定条件テスト

保守性テスト

複合条件テスト

信頼性テスト

その他

移植性テストその他

変更部分のテスト
欠陥が正しく修正されるか確認するテストと変更が他に悪影響を及ぼさないか確認するテスト
確認テスト(再テスト)

回帰テスト「テスト技術者資格制度Foundation Levelシラバス日本語版」を元に図にしたもの

特に重要なのがテストケースを作るまでのイメージを持てること！

https://www.pakutaso.com/20160351085post-7392.html

テスト設計者として最初に技法を学ぶことが多いが…
同値分割法

仕様ベースのテスト設計技法
テ 仕様化したモデルを基にしてテストケースを作成する、体系的なテスト設計技法。
 モデルに対応したテスト設計技法を用いる。
 ブラックボックステストとも呼ばれる。

ス
ト
設
計技法

境界値分析
ﾃﾞｼｼﾞｮﾝﾃｰﾌﾞﾙﾃｽﾄ

状態遷移テスト
ユースケーステスト

構造ベースのテスト設計技法
 ソフトウェアやシステムの構造を基にしてテストケースを作成する体系的なテスト設計技法。
 対象となる構造をどれだけ網羅したかというカバレッジを測って実施する。
 ホワイトボックステストとも呼ばれる。

経験ベースのテスト設計技法
 テスト担当者のスキル、知識、経験を基にテストケースを作成する、体系的ではない（経験に基づいた）テストケース設計技法。
 ステークホルダの知識、過去の類似した欠陥なども情報源となる。

その他
ステートメントテスト
デシジョンテスト
その他

エラー推測
フォールト攻撃その他「テスト技術者資格制度Foundation Levelシラバス日本語版」を元に図にしたもの

https://www.pakutaso.com/20141152308post-4790.html

https://www.pakutaso.com/20141152308post-4790.html

テストベース に対していきなりテスト設計技法を適用している？
※Test Design
Test
DesignTechnics
Technic

Test
Basis

Test
Basis

Test
Cases

Test
Cases

Test
Cases

※テストベースとはテストを考える上で入力となる情報全般のこと。例えば要件定義書、仕様書、外部設計書など様々

それは失敗フラグです
Test
Test Design
Design Technics
Technic

Test
Basis

Test
Basis

Test
Cases

Test
Cases

Test
Cases

テストを実行する前の段階をより詳細化してイメージできるようになれば、よりよいテストが作れるようになる
これまでのプロセス

JSTQBのテスト開発
プロセス

最新のテスト開発
プロセス

テスト設計※またはテスト準備、テスト計画など表現は様々

テスト分析

テスト
要求分析

テスト設計

テスト
ｱｰｷﾃｸﾁｬ
設計

テスト
詳細設計

テスト
実行

テスト実装

テスト
実行

テスト
実装

テスト
実行

テスト開発プロセスのイメージ例(JSTQB)

文書 A

文書 B

文書 C

文書 D

テストベース

テスト
分析
テスト設計
仕様

テスト設計
仕様

テスト設計
仕様

テスト
設計
テストケース仕様

テストケース仕様

テストケース仕様

テストケース
仕様

テスト
実装
テスト
手順仕様

テスト
手順仕様

テスト
手順仕様

テスト
手順仕様

テスト
手順仕様

テスト条件

テストケース

テスト手順「テスト技術者資格制度Foundation Levelシラバス日本語版」を元に図にしたもの

ISO/IEC/IEEE 29119-2でのテスト設計&実装プロセス

フィーチャー フィーチャー
セット
セットを識別する(TD1)
テスト条件を得る
(TD2)

テスト設計
仕様

テストケース
仕様

テスト条件

テスト
カバレッジ
アイテムを得る(TD3)

テストカバレッジ
アイテム

テスト
ケースを得る
(TD4)

テスト
手順仕様

テストケース

テスト
セットをまとめる(TD5)

テストセット

テスト
手順を得る
(TD6)

テスト手順&
テストスクリプト

ISO/IEC/IEEE 29119 Part 2. Test processesより引用

テスト要求分析のイメージ例

テストベース

テスト
すべきことを洗い出す

様々な
テスト観点

ドメイン知識/ガイドなど

テスト観点を構造化する

構造化されたテスト観点(中間状態)

リファイン
する

最終的に構造化された
テスト観点

テスト設計コンテストチュートリアルの情報をもとに、講演者が独自に図式化したもの

テストアーキテクチャ設計のイメージ例

テスト観点

テスト
観点間の関係性を見出す

テスト
フレーム

同じような意味を持つ
テスト観点やテストフレームをまとめる

テスト
コンテナ

テスト
コンテナ間の関連性を整理する

テスト
アーキテクチャ

テスト設計コンテストチュートリアルの情報をもとに、講演者が独自に図式化したもの

テスト詳細設計の例

テスト観点

テスト
モデルを特定する

4つの
テスト
モデル

モデルに紐づいた
テスト観点

テスト
観点を詳細化する

網羅基準

コンテキスト

詳細化された
テスト観点

網羅基準を設定する

テスト設計
技法

網羅基準に紐づいた
テスト
パラメータ

基準に基づいてケースを導出する(テストパラメータ)

テストケース(テスト値)

テスト設計コンテストチュートリアルの情報をもとに、講演者が独自に図式化したもの

その2．ロールモデルを見いだそう！

テストの全体観を持つロールモデルを見いだす

成長へのモチベーションを持ち続ける大まかな志向の方向性を意識しよう
技術
トラック

マネジメントトラック

http://www.freeimages.com/photo/blank-sign-1-clipping-path-1445187

http://www.istqb.org/documents/pr/2016-01-31_ISTQB_revamps_product_portfolio_and_releases_roadmap.pdf

テストの専門性には様々な方向性がある
特定のテストタイプ（特に非機能）に対するスペシャリスト
Security Tester / Performance Tester / Usability Tester / etc

特定のテスト要素に対するスペシャリスト
Automater / Test Manager / Test Process Improver / etc

特定のドメインに対するスペシャリスト
Automotive Tester / Agile Tester / Exploratory Tester / etchttps://www.pakutaso.com/20160952271post-9095.html

自分の志向する方向性を探してみよう

http://www.freeimages.com/photo/traveller-1578296

セルフデベロップメントプランを作ってみよう！

https://www.pakutaso.com/20140357087post-4005.html

どうやって極みを目指すか？

http://www.freeimages.com/photo/stairway-to-success-3-1572807

目指すべき理想の姿
あこがれの人ロールモデル
夢 etc

10年後の自分

今の自分

1年後の自分

http://www.freeimages.com/photo/stairway-to-success-3-1572807

自分の段階的な成長過程を整理して、より具体的な自己開発プランを考える上でのベースにしてみよう！
どのような姿か10年後の姿
5年後の姿

3年後の姿
1年後の姿
半年後の姿
1ヶ月後の姿

今の姿

特定機能のテストオペレーター

その姿になるためにどうすればよいか？

自分自身で壁を作って成長を限ってはいけない

https://www.pakutaso.com/20140337084post-3974.html

そんな壁は…

https://www.pakutaso.com/20140327084post-3984.html

https://www.pakutaso.com/20140300085post-3993.html

その３．成長へのモチベーションを持ち続けよう！

テストの全体観を持つロールモデルを見いだす

成長へのモチベーションを持ち続ける成長が目に見える形で測れて実感できることは大事！

http://www.freeimages.com/photo/tape-measure-1422472

たとえば、Test.SSFやAutomation Test.SSF(テストに限らずITSSとかETSSとか)既存のツールを上手い具合に活用してみるのも良い

SSF に基づくテスト技術スキルフレームワーク スキル基準― テストプロフェッショナルの戦略的育成に向けて ―資格試験も自分の成長を感じられる一つの尺度

エントリーレベルFoundation
Level

初級

ミドルレベル

Advanced Level
Test Manager

中級

ハイレベル

Advanced Level
Test Analystでも、単調にずっと走り続けるのは大変…

https://www.pakutaso.com/20130444101post-2624.html

モチベーションを高めるための刺激も大事！

https://www.pakutaso.com/20150232056web-1.html

http://www.freeimages.com/photo/jump-1522796

http://www.freeimages.com/photo/grass-field-1397830

https://www.pakutaso.com/20170151026jk-5.html
https://www.pakutaso.com/20160535144post-7933.html

そして、テスターの極みへ！

https://www.pakutaso.com/20151259335post-6393.tml

まとめhttp://jp.freeimages.com/photo/soccer-2-1430279

最初の一歩を踏み出すのに重要な3つのこと

テストの全体観を持つロールモデルを見いだす

成長へのモチベーションを持ち続けるテスターの極みを目指して
http://www.freeimages.com/photo/299627

さあ、理想に近づくための一歩を踏み出そう！
http://www.freeimages.com/photo/one-step-1-1429014参考文献
• 書籍
• ソフトウェアテスト技法 (ボーリス・バイザー著)• JSTQB/ISTQB関連••••

ソフトウェアテスト標準用語集(日本語版)
テスト技術者資格制度Advanced Levelシラバス日本語版テストマネージャ
テスト技術者資格制度Foundation Levelシラバス日本語版
ISTQB® revamps product portfolio and releases roadmap• テスト設計コンテスト関連• U-30クラス チュートリアル資料• OPENクラス チュートリアル資料• その他• JaSST'14 Tokyoクロージングパネル 講演資料2（スチュアート・リード）• ISO/IEC/IEEE 29119 Part 2, Test processes• SSF に基づくテスト技術スキルフレームワーク スキル基準

写真素材