SlideShare a Scribd company logo
Getting Test World
自己紹介
名前:橘田 隼一
TwitterID:hayabusa333
興味:カーネル、GC、Erlang、Elixir
お仕事:派遣ウェッブプログラマ
所属:Joel教、翔鶴瑞鶴仲良し姉妹同盟
本スライドについて
本スライドはJSTQBときょんさんのブログ・スライドを
まとめた内容になります。
参考文献に載せておりますが、興味を持たれた方は参考
文献に当たった方がよいかと思います。
本スライドの用語解説
・JSTQB:ソフトウェアテスト技術のスキルを証明する
テストの資格
・Beizer:アメリカのソフトウェア開発者でありソフト
ウェアテストについての論文を記載し、テスト関連の本
で引用される人
目次
・ソフトウェアテストの言葉の定義
・ソフトウェアテストの原則
・ソフトウェアテスト
・テストの振り返り
・テストのテスト
・参考文献
ソフトウェアテストの言葉の定義
プロジェクト内部で使用する言葉の定義についての話。
言葉の定義だけなので、別に本スライドに記載されてい
る内容と違っていても問題はありません。
プロジェクトにかかわる人の全員と同意できており、全
員が同じ言葉で話せるのならば問題はありません
ソフトウェアテストの言葉の定義
・テストレベル
・テスト技法
・テストタイプ
・テスト対象
・テスト目的
・テストプロセス
・テスト観点
テストレベル
JSTQBに定義されているテストレベルの定義
・コンポーネントテスト:スタブを使うようなコンポーネントや
クラスなどのテスト
・結合テスト:コンポーネント間やシステム間を統合して動作さ
せるテスト
・システムテスト:ステージング環境などでプロジェクトのスコー
プにあたるソフトウェアの動作をさせるテスト
・受け入れテスト:要求を出した人の意に沿ったものであるかを
確認するテスト
テストレベル
Beizerが定義しているテストレベルの定義
・ユニットテスト:1ファイル内で動作が可能なテスト
・コンポーネントテスト:あるユニットが動作するのに必要なユニッ
トを含めたテスト。ある機能を達成するための再帰的なテスト
・統合テスト:コンポーネント間のテスト。
・システムテスト:システム全体を動作させてのテスト。コンポー
ネントテストや、統合テストでは検出されないようなバグを検出す
るためのテストであり、JSTQBのステージング環境が想定され
る。
テスト技法
入力パラメータや出力結果の列挙や組み合わせを、
どのように決定するかの手法のこと
・同値分析
・境界値分析
・デジションテーブル
・直交表
・etc
テストタイプ
どのような目的でテストを実施するのかを分類
したテスト。
テストレベルと同じくプロジェクト毎に同意し
ていれば問題はない。
実際のテストタイプについては後述
テスト対象
ソフトウェアテストの対象物
機能毎に分割でも、インフラ面で分割でも問題
なし。
テストタイプごとに対象となるテストを分割し
て明示的に残すし、テスト対象が他の人にもわ
かるようにしておくことが大事
テスト目的
どのような理由でテストを実施するのかでの分類
JSTQBでは、V字モデルの各ドキュメントに沿っ
ていることを目的にしている。
テストプロセス
・テスト要求分析:テスト目的を導入したり、リスク分析を行ったり
する。
・テスト戦略策定:テスト観点をベースにしてテストのアーキテクチャ
を作ったり、人的リソースや手段を考慮してテストのライフサイクル
を考える
・テスト設計:テスト実装がうまくいくように設計する
・テスト実装:テスト仕様書の作成やテストケースの作成
・テスト実施:テストを実際に報告し、欠陥があればレポートにする
・テスト報告:テスト結果の報告
テスト観点
日本のソフトウェアテスト業界におけるテスト
観点は「テスト対象とテスト目的のペアである」
らしいです。
テストにおける関心毎
上記のようなテストの言葉の定義をしっ
かりと行い、プロジェクトごとに話が
噛み合うようにすることが重要
ソフトウェアテストの原則
JSTQBで定められている7つの原則
・テストは「欠陥がある」ことしか示せない
・全数テストは不可能
・初期テスト
・欠陥の偏在
・殺虫剤のパラドックス
・テストは条件次第
・「バグゼロ」の落とし穴
テストは「欠陥がある」ことしか示せない
テストにより故障を見つけることができれば、
ソフトウェアに欠陥があることはわかる
しかしテストにより故障が見つからなかった場
合は、欠陥がなかったとはいえない
テスト自身に不備があった場合には、欠陥は見
つからない
コラム「テストは品質をあげない」
家が傾いているかテストしても、その行為では
品質は上がらないように、品質はソフトウェア
を作るときに上下するものである。
テストは品質の担保をするだけで、テスト単体
では品質をあがらない。
全数テストは不可能
正常系のテストとして100 100のテストパターンが
あった場合に、テストケース数は10000通りとなる。
テストは正常系だけではなく、エラー系も重要である。
通常のテストパターンはもっと複雑であり時間のかかる
ものである
ソフトウェアの性質や目的、使われ方などから重点的
にテストをする場所を絞り、優先順位を決めてテストを
行うことが重要である
初期テスト
欠陥が開発の早い段階で見つかるよりも、リリー
ス前に見つかる方が修正のコストは高くつく
時間がたてばたつほど、修正のコストは指数関数
的に増大する
システム開発のなるべく早い段階からテストを開
始し、欠陥を見つけるようにするのが得策である
欠陥の偏在
ソフトウェアの品質は均一なものでなく、欠陥は一部に集中し
ている。
ソフトウェアの欠陥の8割は全体の2割の箇所に集中して存在
している。
欠陥の偏在は過去の不具合分析や、直近のテスト結果によって
予測可能である
効果的なテストを行うためには、その予測結果に基づいてテス
トする箇所を絞り込む必要がある
殺虫剤のパラドックス
1つのソフトウェアに対して同じテストを何度もなんど
も繰り返すと、最終的にはそのテストでは新しい欠陥は
見つからなくなる。
そのためソフトウェアのテストに対しては新しいテスト
内容を常に作っていく必要がある。
パターンを追加するごとに欠陥が減っているのならば、
ソフトウェアの品質が向上しているといえる
テストは条件次第
ソフトウェアが使われる状況、目的によってテストの方
法を変える必要がある
すべてのソフトウェアに共通するテストはない
ユーザーの特性、どのような環境で動作するのか、など
など、様々な条件を見極めてテスト設計とテストの方法
を決める必要がある
「バグゼロ」の落とし穴
ソフトウェアテストで欠陥を見つけて、すべての欠陥を
直したとしてもソフトウェアとしては役に立たないこと
がある。
インシデントの報告をうけ、欠陥をなおしたとしても10
倍遅くなってしまっては意味がない
修正を行う際に、機能や性能、システム全体に影響はな
いかといったことを確認することも修正する上で重要で
ある。
テストをするためにまず行うことは
そうですね
テスト計画ですね
テスト計画書の概要(IEEE Std 829-1998)
・テスト計画識別番号
・はじめに
・テストアイテム
・テストすべき機能
・テストしない機能
・アプローチ
・テストアイテムの合否判定基準
・中止/再開基準
・テスト成果物
・テストのタスク
・環境要件
・責任範囲
・要因計画とトレーニング計画
・スケジュール
・リスクと対策
・承認
テスト計画書の概要(IEEE Std 829-1998)
・テスト計画識別番号
テスト計画書につける文章番号
・はじめに
テストの目的や戦略を明文化し、テストアイテムをどの
ようにテストしていくかを要約する
・テストアイテム
テスト対象となるソフトウェアのバージョン/リビジョン
を記す。またはソフトウェアがテストされる環境につい
ても記載
テスト計画書の概要(IEEE Std 829-1998)
・テストすべき機能
テストすべき機能のリストアップ
・テストしない機能
テストしないと判断した機能の列挙とその理由
・アプローチ
品質目標や方針に合わせて、どのようにテストレベルを
組み立てるか、誰が担当するかテストの進め方を記載
テスト計画書の概要(IEEE Std 829-1998)
・テストアイテムの合否判定基準
テストアイテムごとにテストに合格したか、テストの終了
判断を明示的に記載
・中止/再開基準
テストを中止、再開する基準を明示的に記載
・テスト成果物
テストで作成するドキュメント類のリストアップ
・テストのタスク
準備も含めてテストで必要な作業を列挙
テスト計画書の概要(IEEE Std 829-1998)
・環境要件
テストを実施する環境について記述
・責任範囲
テストにかかわる関係者と各関係者の責任範囲について
・要因計画とトレーニング計画
テストに必要なスキルを明らかにして要因計画について
記載
テスト計画書の概要(IEEE Std 829-1998)
・スケジュール
テストのマイルストーンを決めて、それまでのスケジュー
ルを作成
・リスクと対策
テストにかかわるリスクと対策について記述
・承認
計画書の承認者の名前を記述
テストマネジメント
詳しくは次回以降
・テスト計画策定
・開始基準について
・終了基準について
・テスト見積もり
・テスト戦略
・テストアプローチ
・テストの進 のモニタリングとコントロール
では、どのようなテストを行っていけば良いのか?
品質プロセスのV字モデル
要求定義
要件定義
基本設計
実装
詳細設計
コンポーネント
テスト
統合テスト
システムテスト
受け入れテスト
テスト実施内容
機能テスト
以前にテスト技法をまとめているので、そちらを参照
・「ブラックボックステストの技法」
http://www.slideshare.net/hayabusa333/
ss-44959739
・「ホワイトボックステストの技法」
http://www.slideshare.net/hayabusa333/
ss-45271446
非機能テスト
・性能テスト
・ロードテスト
・ストレステスト
・ユーザビリティテスト
・相互運用性テスト
・保守性テスト
・信頼性テスト
・移植性テスト
性能テスト
ソフトウェアのパフォーマンスを測定
するためのテスト
パフォーマンスとは、システムやコン
ポーネントが処理時間やスループット
制約内で、定義した機能の度合いを果
たす割合
ロードテスト
コンポーネントやシステムの動作を測定す
るテスト。
負荷(実行ユーザ数やトランザクション数)
を増加させ、コンポーネントやシステムが
どの程度の負荷に耐えられるかを測定する。
ストレステスト
要件で定義した限界、またはそれを超えた
条件でシステムやコンポーネントを評価す
るテスト
ユーザビリティテスト
ソフトウェア製品が指定された条件下で理
解され、学びやすく、使用しやすくユーザ
にとって魅力的である能力を判定するテス
ト
相互運用性テスト
相互運用性とは、1つ以上の指定されたコ
ンポーネントやシステムと情報を交換でき
るソフトウェア製品の能力のこと
保守性テスト
保守性とは、ソフトウェア製品の変更の容
易さ。
変更には欠陥の修正、新しい要求を支援す
るための変更、将来の保守性をあげるため
の変更、稼働環境の変更に対応するための
変更などがある
信頼性テスト
信頼性とは、あらかじめ決めた運用回数、
指定された期間、決められた条件下で必要
な機能を実施できるソフトウェア製品の能
力
移植性テスト
移植性とは、ソフトウェアを別のハードウェ
ア環境やソフトウェア環境に対して容易に
移植できる度合い
機能テストと非機能テストの実施タイミン
グは決まっているわけではない
コンポーネントテスト・結合テスト・シス
テムテスト・受け入れテストごとに実施す
るべきであるし、テストタイプごとにテス
トの内容も変わる
テストを実施していると問題になるのが
テストが正しいことをいかに証明するか
テストのテスト
・証明プログラミング
- Coq、SSReflect、Agda
・モデル検査
- Alloy
・仕様記述言語
- VDM++、B-method
・ミューテーションテスト
- RIT
・レビュー
テストをしたら
やりっぱなしはダメ
インシデント管理
・テスト中に発生したあらゆるインシデント(調査が必
要な事象)を報告するドキュメントの作成管理
・システムの動作不良の問題を明確化し、原因の特定と
解決に導くために記載
・テストリーダーにたいしてシステムの品質やテストの
進 を追跡する手段を提供
・テストプロセス改善のためにヒント
テストの振り返り
テストがどのくらい意味のあるものだっ
たか振り返る必要がある
テストの振り返りを行い、次回のテス
トに反映させ、よりよいテストを行う
ことが重要
テストの振り返り
・テストコード行数 / テスト件数
・テスト規模 / バグ数
・リリースバグ数 / 全バグ数
・テストスイートサイクルタイム
・TDDサイクルタイム
・計画的テストケース数 / アドホック的テストケース数
・バグタイプ
ソフトウェアのテストは片手間に
できるものではありません
アメリカではテストエンジニアは、
それ単体が独立したキャリアとして
存在している
テストエンジニアになるために
ソフトウェアテストの学習対象
・マネジメント
・ストラテジー、アーキテクチャ
・デザイン
・レポート
・アプリケーションドメイン
・ソリューションドメイン
参考文献
・JSTQB Foundation
・テストエンジニアの品格
・ソフトウェアテストのレトロスペクティブ
・うさぎ組
ご静聴ありがとうございました

More Related Content

PDF
ユーザテストのススメ
PDF
デキるプログラマだけが知っているコードレビュー7つの秘訣
PDF
テスト駆動開発の進化
PPTX
第1回キーワード駆動テスト勉強会
PPTX
没セッション 知識ゼロから学んだソフトウェアテスト
PPTX
どうやらテスト駆動型開発は死んだようです。これからのCI
PDF
レガシーコードとの付き合い方とテストでの話
KEY
テスト駆動開発入門
ユーザテストのススメ
デキるプログラマだけが知っているコードレビュー7つの秘訣
テスト駆動開発の進化
第1回キーワード駆動テスト勉強会
没セッション 知識ゼロから学んだソフトウェアテスト
どうやらテスト駆動型開発は死んだようです。これからのCI
レガシーコードとの付き合い方とテストでの話
テスト駆動開発入門

What's hot (10)

PDF
TDD のこころ @ OSH2014
PDF
XP祭り関西2011 森崎 修司「プラクティスが有効にはたらく前提は明らかになっていますか?」
PDF
テスト駆動開発へようこそ
PDF
AgileTourOsaka2011 関係者に理解してもらえるアジャイル開発にむけて
PDF
Test Yourself - テストを書くと何がどう変わるか
PDF
TDDを一年やってみました ~シロート集団がTDDをやってはまったこと~
PDF
プログラムを作って飯を食うということ
PDF
研究を基にしたオープンソース開発チェックポイント
PDF
TDDを研ぎ究める
PDF
TDD のこころ
TDD のこころ @ OSH2014
XP祭り関西2011 森崎 修司「プラクティスが有効にはたらく前提は明らかになっていますか?」
テスト駆動開発へようこそ
AgileTourOsaka2011 関係者に理解してもらえるアジャイル開発にむけて
Test Yourself - テストを書くと何がどう変わるか
TDDを一年やってみました ~シロート集団がTDDをやってはまったこと~
プログラムを作って飯を食うということ
研究を基にしたオープンソース開発チェックポイント
TDDを研ぎ究める
TDD のこころ
Ad

Viewers also liked (20)

PPTX
Elixirのhoundを使ってみて
PPTX
E言語スタック
PDF
派遣社員が現場にRubyを取り入れるまで
ODP
Cbで解るjojo up
ODP
DevLove2012 懇親会LT
ODP
自動化のその前に
ODP
アイマスで分かるプログラマ
ODP
RubyでBLコマンド実装
PPT
8人の匠によるテスト戦略20080918
PPTX
ホワイトボックステスト技法
PPTX
ブラックボックステスト技法
ODP
漏れのある抽象化の法則
ODP
Jenkinsとidobataで幸せな生活
PDF
Cowboyとelixir
PPTX
Cowboyとphoenixの速度比較
ODP
現場にsahaginを取り入れた話
PDF
IEXを学ぶ
PDF
高位合成ツールによるソフトウェアアルゴリズムのFPGAベースシステム化
PPTX
Erlang and Elixir
PPTX
Elixir v1.3 で入るかもしれない機能
Elixirのhoundを使ってみて
E言語スタック
派遣社員が現場にRubyを取り入れるまで
Cbで解るjojo up
DevLove2012 懇親会LT
自動化のその前に
アイマスで分かるプログラマ
RubyでBLコマンド実装
8人の匠によるテスト戦略20080918
ホワイトボックステスト技法
ブラックボックステスト技法
漏れのある抽象化の法則
Jenkinsとidobataで幸せな生活
Cowboyとelixir
Cowboyとphoenixの速度比較
現場にsahaginを取り入れた話
IEXを学ぶ
高位合成ツールによるソフトウェアアルゴリズムのFPGAベースシステム化
Erlang and Elixir
Elixir v1.3 で入るかもしれない機能
Ad

Similar to Getting test world (20)

PDF
ソフトウェアテスト入門
PDF
はじめてのテスト技法
PDF
テストエンジニアの品格 #automatornight
PPTX
60分でわかった気になるISO29119 #wacate
PDF
JaSST'15 Tokyo 初心者向けチュートリアル -初心者からの脱出!-
KEY
Ibarakidc softes1
PDF
Scrumfestmikawa2021
PDF
3万円で始めるソフトウェアテスト
PDF
テストの極みを目指して ~さあ、理想に近づくための一歩を踏み出そう!~
PPTX
Useful software testing in the latest development – short version
PDF
テストとは
PDF
ソフトウェアテストことはじめ2016年ver
PDF
テスト観点に基づくテスト開発方法論 VSTePの概要
PPTX
QAアーキテクチャの設計による 説明責任の高いテスト・品質保証
PDF
20101001-Introduction-to-Developer-Testing-With-Ruby
PDF
世界のソフトウェアテストの会議 (JaSST 2018 東京)
PDF
20181102_テスト管理を語る夕べ
PDF
Re-collection of embedded software qa in the last decade
PDF
はじめてのソフトウェアテスト2019
PDF
オレオレになりがちなテスト計画を見直した話
ソフトウェアテスト入門
はじめてのテスト技法
テストエンジニアの品格 #automatornight
60分でわかった気になるISO29119 #wacate
JaSST'15 Tokyo 初心者向けチュートリアル -初心者からの脱出!-
Ibarakidc softes1
Scrumfestmikawa2021
3万円で始めるソフトウェアテスト
テストの極みを目指して ~さあ、理想に近づくための一歩を踏み出そう!~
Useful software testing in the latest development – short version
テストとは
ソフトウェアテストことはじめ2016年ver
テスト観点に基づくテスト開発方法論 VSTePの概要
QAアーキテクチャの設計による 説明責任の高いテスト・品質保証
20101001-Introduction-to-Developer-Testing-With-Ruby
世界のソフトウェアテストの会議 (JaSST 2018 東京)
20181102_テスト管理を語る夕べ
Re-collection of embedded software qa in the last decade
はじめてのソフトウェアテスト2019
オレオレになりがちなテスト計画を見直した話

Getting test world