SlideShare une entreprise Scribd logo
1  sur  17
Télécharger pour lire hors ligne
© NISHI, Yasuharu
同値分割ってなんだろう?
九州ソフトウェアテスト勉強会(仮) Vol.7
2014/5/28(水)
電気通信大学 大学院情報理工学研究科
総合情報学専攻 経営情報学コース
西 康晴(Yasuharu.Nishi@uec.ac.jp, http://qualab.jp/)
© NISHI, Yasuharu2
Profile
Assistant professor:
the University of Electro-Communications, Japan
(also providing consultancy service to industry on testing and TQM)
President:
Association of Software Test Engineering, Japan (ASTER)
President:
Japan Software Testing Qualifications Board (JSTQB)
National delegate:
ISO/IEC JTC1/SC7/WG26 Software testing
for ISO/IEC/IEEE 29119-1, 2, 3, 4, 5 and ISO/IEC 33063
Founder:
Japan Symposium on Software Testing (JaSST)
Founder:
Testing Engineers’ Forum (Japanese community on software testing)
Founder and awards committee member:
Software Test Design Contest
Vice chair:
SQiP/Software Quality Committee of JUSE (promoting organization of TQM)
(SQiP has published the book of “SQuBOK: Software Quality Body of Knowledge”)
© NISHI, Yasuharu3
今日の進め方
ゆる~く、進めま~す (^_^)
© NISHI, Yasuharu4
本日の流れ
• 同値分割の定義
• 簡単な同値分割
• だんだん高度になる同値分割
• 同値分割って、同値に分割すること?
© NISHI, Yasuharu5
基本的なテストの目的
• 「テストしなければバグは見つからない」
– 漏れなくテストを設計する
» 漏れなくテストを行うためには、
思いつきでテストをあげてはならない
– 動作実績を積み上げて品質を保証する
「保証型」のテストである
» テスト観点、組み合わせ、網羅率の3者を考慮する
• 「大事なところをテストする」
– バグを狙ってテストを設計する
» バグにはクセがあり、きちんと分析すれば推測できる
– 品質リスクが高い順にテストを行う「検出型」のテストである
» 品質リスク=処理頻度×欠陥作り込み確率×不具合露呈確率×不具合致命度
網羅
ピンポイント
少ない手間で早くたくさん危険なバグを検出する
© NISHI, Yasuharu6
同値分割とは:同値分割の定義
• FLシラバス/4.3.1. 同値分割法 (K3)
– 同値分割法は、ソフトウェアやシステムへの入力を同じ処理をするグループに
分割し、グループ内の入力を同等に扱えるようにする技法である。
– 同値分割したグループ(あるいは、同値分割したクラス)は、有効データ、すな
わち受け入れられるデータだけでなく、無効データ、すなわち拒否されるデータ
にもある。
– 同値分割したグループは、出力、内部変数、時間に依存する値(例えば、イベ
ントの前と後)にも存在し、インターフェースパラメータにもある。
– (例えば、テスト済みの統合されたコンポーネント)テストでは、同値分割した全
ての有効な領域、無効な領域をカバーするように設計する。
– 同値分割法は、あらゆるレベルのテストで適用できる。
– 同値分割法は、入出力のカバレッジ目標を達成する場合に使用できる。また、
人間による入力、インターフェース経由でのシステムへの入力、統合テストで
のインターフェースパラメータに適用できる。
© NISHI, Yasuharu7
同値分割とは:境界値分析の定義
• FLシラバス/4.3.2. 境界値分析(K3)
– 同値分割したグループの境界上の動作は、グループ内部での(境界ではない)
動作よりも正しくないことが多く、境界には多くの欠陥が潜んでいる可能性が
大きい。
– ある領域の最大値、最小値は境界値である。同値分割した場合の有効な領域
側の境界値は、「有効な境界値」となり、無効な領域側の境界値は「無効な境
界値」となる。
– 有効および無効な境界値の両方をカバーするようにテストを設計する。テスト
ケースを設計するときは、両領域から値を選ぶ。
– 境界値分析は、あらゆるテストレベルで適用できる。比較的簡単に適用でき、
欠陥摘出能力も高い。
– 詳細化された仕様は、重要な境界値を決定するために役に立つ。
– この技法は、同値分割法の拡張、または他のブラックボックステスト設計技法
と見なされることが多い。人間による画面入力や、例えば、タイミング(タイムア
ウト、トランザクション速度に対する要求など)やテーブルの範囲(テーブルサイ
ズは256×256 であるなど)にも使用できる。
© NISHI, Yasuharu8
同値分割:要するに
同じのに分けて
代表的なのを選ぶことで
バグを見逃さずに/網羅性を落とさずに
テストの数を減らす方法
「同じの」 = 同値クラス
© NISHI, Yasuharu9
シンプルな演習
• 以下のモジュールのテストを設計してみましょう
– int型の引数aがあります
– モジュール内にはif (a<0) と if (7<a)という
2つの条件文があります
• まず同値クラスを挙げてみましょう。
• 次に同値クラスの境界値を挙げてみましょう
• 最後に、どんなバグが見つかるかを
考えてみましょう
© NISHI, Yasuharu10
解答:シンプルな演習
• 同値クラスは
– int型の範囲を -32767~ +32767とする
– 【-32767~-1】【0~7】【8~+32767】の3つが同値クラス
• 境界値は
– -32768, -32767, -1, 0
– -1, 0, 7, 8
– 7, 8, +32767, +32768
– したがって、-32768, -32767, -1, 0, 7, 8, +32767, +32768 の8つ
• 見つかるバグは?
– これは考えてみましょう
© NISHI, Yasuharu11
もやっとする演習:湯本の問題
• 以下の仕様について、テストを設計してみましょう
年齢が6歳以上18歳以下、
現住所が福岡県、
学生証の提示ありの場合に、
チケット代金を学生金額とする
© NISHI, Yasuharu12
もやもやもやっとする演習:Myersの三角形
• 以下のプログラムをテストするのに
十分と思われるテストケースを全て挙げて下さい
– このプログラムは、3つの整数を入力される
– この3つの値は、それぞれ三角形の3辺の長さを
表すものとする
– このプログラムは、三角形が
» 不等辺三角形
» 二等辺三角形
» 正三角形
のうち、どれであるかを出力する
© NISHI, Yasuharu13
解答: Myersの三角形
• 有効な不等辺三角形
• 有効な正三角形
• 有効な二等辺三角形
• 有効な二等辺三角形で
3種類の辺の組み合わせ
• 長さが0の辺
• 長さが負の値の辺
• 2辺の和がもう1辺と等しい
• 2辺の和がもう1辺と等しい
際の3種類の辺の組み合わせ
• 2辺の和がもう1辺より小さい
• 2辺の和がもう1辺より小さい
際の3種類の辺の組み合わせ
• 3辺が0
• 整数でない辺
• 辺の数が3以外
• 期待結果を示してある
以下の条件に当てはめるテストを設計していたら1点
平均的なプログラマは
7.8点
© NISHI, Yasuharu14
同値分割の簡単なところ、難しいところ
• 同値分割の簡単なところ
– 要するに、範囲に分ければいいんだろ!簡単簡単!
• 同値分割の難しいところ
– 同値クラスにも、色んな種類があるんじゃない?
» 有効同値クラス、無効同値クラス
» 離散系の同値クラス、連続系の同値クラスと有効数字
» 閉じた同値クラス、開いた同値クラスと代表値
» 境界値分析って、実は同値分割と矛盾してない?
» グループ(数字ではないもの)の同値分割
» 入力同値、出力同値、処理同値、中間データ同値
» 同値クラス間の対応(同値クラスの射影)
» 範囲がゼロの同値クラス
» ほんとに同値なの?(特異点、居駒の同値原理)
– どこを見て何を考えたら、適切に同値クラスが挙がるんだろう?
» ドメイン知識による同値クラス
» 無効同値クラスは考えなくていいの?
» 同値クラスの深掘り:階層構造、ズームイン・ズームアウト
» 同値クラスとネーミング、テストの意図(テスト観点)
» テスト観点なのか、それとも関連なのか?
© NISHI, Yasuharu15
インターネットって色々教えてくれるなぁ♪
• 居駒(@m_ku)さんが要約したマイヤーズの同値分割5つの指針
1. 値の範囲の場合は、1つの有効同値クラスと2つの無効同値クラス
2. 値の数の場合も、1つの有効同値クラスと2つの無効同値クラス
3. 値の集合の場合は、要素数の有効同値クラスと1つの無効同値クラス
4. 「~ねばならない」というのは、有効同値クラスと無効同値クラス一つずつ
5. 「プログラムで同一には扱われないだろう」と思う場合は同値クラスを適時分割
• 鈴木三紀夫(@mkoszk)さんによる同値分割の習熟レベル
1. .ある機能に対して機能が働く有効な入力を
同じ処理がされそうなグループに分割できる
2. あり得る入力種別をすべて挙げることができる
3. ある機能に対して機能が働かない無効な入力(無効データ)の抽出ができる
4. 複数の入力が影響する場合に、ドメイン分析が行える
5. テスト対象のどの側面に着目して切り込み入れて行くかについて分析できる
© NISHI, Yasuharu16
まとめ
• 同値分割の定義
• 簡単な同値分割
• だんだん高度になる同値分割
• 同値分割って、同値に分割することじゃなかった!
同値分割とは
テスト対象の理解であり、
テストの意図を明らかにする
大事な技術である
© NISHI, Yasuharu
同値分割って奥が深いですね! (^_^)
電気通信大学 西 康晴
http://qualab.jp/
Yasuharu.Nishi@uec.ac.jp

Contenu connexe

Tendances

テスト分析入門 -「ゆもつよメソッド」を例に- #wacate
テスト分析入門 -「ゆもつよメソッド」を例に- #wacateテスト分析入門 -「ゆもつよメソッド」を例に- #wacate
テスト分析入門 -「ゆもつよメソッド」を例に- #wacate
Kinji Akemine
 
メトリクスを用いたソフトウェア品質定量評価・改善 (GQM, Metrics, ET2013)
メトリクスを用いたソフトウェア品質定量評価・改善 (GQM, Metrics, ET2013)メトリクスを用いたソフトウェア品質定量評価・改善 (GQM, Metrics, ET2013)
メトリクスを用いたソフトウェア品質定量評価・改善 (GQM, Metrics, ET2013)
Hironori Washizaki
 
探索的テスト入門
探索的テスト入門探索的テスト入門
探索的テスト入門
H Iseri
 
幅広なテスト分析ができるようになろう
幅広なテスト分析ができるようになろう幅広なテスト分析ができるようになろう
幅広なテスト分析ができるようになろう
scarletplover
 

Tendances (20)

テスト分析についての説明資料公開用
テスト分析についての説明資料公開用テスト分析についての説明資料公開用
テスト分析についての説明資料公開用
 
テスト分析入門 -「ゆもつよメソッド」を例に- #wacate
テスト分析入門 -「ゆもつよメソッド」を例に- #wacateテスト分析入門 -「ゆもつよメソッド」を例に- #wacate
テスト分析入門 -「ゆもつよメソッド」を例に- #wacate
 
「PdMと考えるQAとプロダクトマネジメント」
「PdMと考えるQAとプロダクトマネジメント」「PdMと考えるQAとプロダクトマネジメント」
「PdMと考えるQAとプロダクトマネジメント」
 
ソフトウェアの品質保証の基礎とこれから
ソフトウェアの品質保証の基礎とこれからソフトウェアの品質保証の基礎とこれから
ソフトウェアの品質保証の基礎とこれから
 
テスト分析・設計を体感しよう ~マインドマップを活用してテスト観点を発想しよう
テスト分析・設計を体感しよう ~マインドマップを活用してテスト観点を発想しようテスト分析・設計を体感しよう ~マインドマップを活用してテスト観点を発想しよう
テスト分析・設計を体感しよう ~マインドマップを活用してテスト観点を発想しよう
 
テスト分析.pptx
テスト分析.pptxテスト分析.pptx
テスト分析.pptx
 
メトリクスを用いたソフトウェア品質定量評価・改善 (GQM, Metrics, ET2013)
メトリクスを用いたソフトウェア品質定量評価・改善 (GQM, Metrics, ET2013)メトリクスを用いたソフトウェア品質定量評価・改善 (GQM, Metrics, ET2013)
メトリクスを用いたソフトウェア品質定量評価・改善 (GQM, Metrics, ET2013)
 
アジャイル品質パターン (Agile Quality, QA2AQ)
アジャイル品質パターン (Agile Quality, QA2AQ)アジャイル品質パターン (Agile Quality, QA2AQ)
アジャイル品質パターン (Agile Quality, QA2AQ)
 
車載ソフトウェアの品質保証のこれから
車載ソフトウェアの品質保証のこれから車載ソフトウェアの品質保証のこれから
車載ソフトウェアの品質保証のこれから
 
60分でわかった気になるISO29119 #wacate
60分でわかった気になるISO29119 #wacate60分でわかった気になるISO29119 #wacate
60分でわかった気になるISO29119 #wacate
 
Software Frontloading and QA
Software Frontloading and QASoftware Frontloading and QA
Software Frontloading and QA
 
Agile開発でのテストのやり方~私の場合~
Agile開発でのテストのやり方~私の場合~Agile開発でのテストのやり方~私の場合~
Agile開発でのテストのやり方~私の場合~
 
探索的テスト入門
探索的テスト入門探索的テスト入門
探索的テスト入門
 
LINE Developer Meetup in Tokyo #39 Presentation
LINE Developer Meetup in Tokyo #39 PresentationLINE Developer Meetup in Tokyo #39 Presentation
LINE Developer Meetup in Tokyo #39 Presentation
 
品質を加速させるために、テスターを増やす前から考えるべきQMファンネルの話(3D版)
品質を加速させるために、テスターを増やす前から考えるべきQMファンネルの話(3D版)品質を加速させるために、テスターを増やす前から考えるべきQMファンネルの話(3D版)
品質を加速させるために、テスターを増やす前から考えるべきQMファンネルの話(3D版)
 
幅広なテスト分析ができるようになろう
幅広なテスト分析ができるようになろう幅広なテスト分析ができるようになろう
幅広なテスト分析ができるようになろう
 
Re-collection of embedded software qa in the last decade
Re-collection of embedded software qa in the last decadeRe-collection of embedded software qa in the last decade
Re-collection of embedded software qa in the last decade
 
Agile Quality アジャイル品質パターン (QA2AQ)
Agile Quality アジャイル品質パターン (QA2AQ)Agile Quality アジャイル品質パターン (QA2AQ)
Agile Quality アジャイル品質パターン (QA2AQ)
 
DeNAの品質を支えるQAの取り組み 〜標準化から実践まで〜
DeNAの品質を支えるQAの取り組み 〜標準化から実践まで〜DeNAの品質を支えるQAの取り組み 〜標準化から実践まで〜
DeNAの品質を支えるQAの取り組み 〜標準化から実践まで〜
 
テスコン優勝事例におけるテスト分析公開用
テスコン優勝事例におけるテスト分析公開用テスコン優勝事例におけるテスト分析公開用
テスコン優勝事例におけるテスト分析公開用
 

En vedette

En vedette (17)

ソフトハウスの品質保証のウソホント
ソフトハウスの品質保証のウソホントソフトハウスの品質保証のウソホント
ソフトハウスの品質保証のウソホント
 
IoT時代と第3者検証
IoT時代と第3者検証IoT時代と第3者検証
IoT時代と第3者検証
 
「現場のプロが教えるWebデザイン新・スタンダードテクニック37」に載っているテクニックでLP作ってみた話
「現場のプロが教えるWebデザイン新・スタンダードテクニック37」に載っているテクニックでLP作ってみた話「現場のプロが教えるWebデザイン新・スタンダードテクニック37」に載っているテクニックでLP作ってみた話
「現場のプロが教えるWebデザイン新・スタンダードテクニック37」に載っているテクニックでLP作ってみた話
 
ABテスト:ユーザーメリットを具体的に伝えよう
ABテスト:ユーザーメリットを具体的に伝えようABテスト:ユーザーメリットを具体的に伝えよう
ABテスト:ユーザーメリットを具体的に伝えよう
 
効果的なAbテストがwebサイトを成長させる~abテスト成功メソッドのご紹介~
効果的なAbテストがwebサイトを成長させる~abテスト成功メソッドのご紹介~効果的なAbテストがwebサイトを成長させる~abテスト成功メソッドのご紹介~
効果的なAbテストがwebサイトを成長させる~abテスト成功メソッドのご紹介~
 
ちょっと明日のテストの話をしよう
ちょっと明日のテストの話をしようちょっと明日のテストの話をしよう
ちょっと明日のテストの話をしよう
 
Git LFSを触ってみた
Git LFSを触ってみたGit LFSを触ってみた
Git LFSを触ってみた
 
営業向け ABテストの統計学 データアーティスト
営業向け ABテストの統計学 データアーティスト営業向け ABテストの統計学 データアーティスト
営業向け ABテストの統計学 データアーティスト
 
わりとディープ?同値分割↔境界値分析
わりとディープ?同値分割↔境界値分析わりとディープ?同値分割↔境界値分析
わりとディープ?同値分割↔境界値分析
 
人間中心設計の国際規格ISO9241-210:2010のポイント
人間中心設計の国際規格ISO9241-210:2010のポイント人間中心設計の国際規格ISO9241-210:2010のポイント
人間中心設計の国際規格ISO9241-210:2010のポイント
 
クックパッドのグロースハックについて 20140610 ver1.2(更新版)
クックパッドのグロースハックについて 20140610 ver1.2(更新版)クックパッドのグロースハックについて 20140610 ver1.2(更新版)
クックパッドのグロースハックについて 20140610 ver1.2(更新版)
 
大容量ファイルもGitで管理。 Git LFSの使い方
大容量ファイルもGitで管理。 Git LFSの使い方大容量ファイルもGitで管理。 Git LFSの使い方
大容量ファイルもGitで管理。 Git LFSの使い方
 
登録数2倍にしてと言われた時の正しい対処法
登録数2倍にしてと言われた時の正しい対処法登録数2倍にしてと言われた時の正しい対処法
登録数2倍にしてと言われた時の正しい対処法
 
テストプロセス改善モデルの最新動向
テストプロセス改善モデルの最新動向テストプロセス改善モデルの最新動向
テストプロセス改善モデルの最新動向
 
よくわかる音ゲーの作り方
よくわかる音ゲーの作り方よくわかる音ゲーの作り方
よくわかる音ゲーの作り方
 
ゲーム制作初心者が知るべき8つのこと
ゲーム制作初心者が知るべき8つのことゲーム制作初心者が知るべき8つのこと
ゲーム制作初心者が知るべき8つのこと
 
200以上のwebサービス事例から見えてきた鉄板グロースハック ~傾向と対策~ 先生:須藤 憲司
200以上のwebサービス事例から見えてきた鉄板グロースハック ~傾向と対策~ 先生:須藤 憲司200以上のwebサービス事例から見えてきた鉄板グロースハック ~傾向と対策~ 先生:須藤 憲司
200以上のwebサービス事例から見えてきた鉄板グロースハック ~傾向と対策~ 先生:須藤 憲司
 

Similaire à 同値分割ってなんだろう?

IPA RISE委託研究 ソフトウェアのベンチマークとなる品質実態調査における品質評価枠組み
IPA RISE委託研究 ソフトウェアのベンチマークとなる品質実態調査における品質評価枠組みIPA RISE委託研究 ソフトウェアのベンチマークとなる品質実態調査における品質評価枠組み
IPA RISE委託研究 ソフトウェアのベンチマークとなる品質実態調査における品質評価枠組み
Hironori Washizaki
 
2チケット&計測」書籍で訴えたい
2チケット&計測」書籍で訴えたい2チケット&計測」書籍で訴えたい
2チケット&計測」書籍で訴えたい
Yoshiki Mitani
 
Agile Development and Contract from IPA at AgileJapan 2011
Agile Development and Contract from IPA at AgileJapan 2011Agile Development and Contract from IPA at AgileJapan 2011
Agile Development and Contract from IPA at AgileJapan 2011
Akiko Kosaka
 
Agileツール適合化分科会(テスト自動化ツール)
Agileツール適合化分科会(テスト自動化ツール)Agileツール適合化分科会(テスト自動化ツール)
Agileツール適合化分科会(テスト自動化ツール)
masanori kataoka
 

Similaire à 同値分割ってなんだろう? (20)

Tomorrow's software testing for embedded systems ~明日にでも訪れてしまう組込みシステムのテストの姿~
Tomorrow's software testing for embedded systems ~明日にでも訪れてしまう組込みシステムのテストの姿~Tomorrow's software testing for embedded systems ~明日にでも訪れてしまう組込みシステムのテストの姿~
Tomorrow's software testing for embedded systems ~明日にでも訪れてしまう組込みシステムのテストの姿~
 
Paradigm shifts in QA for AI products
Paradigm shifts in QA for AI productsParadigm shifts in QA for AI products
Paradigm shifts in QA for AI products
 
IPA RISE委託研究 ソフトウェアのベンチマークとなる品質実態調査における品質評価枠組み
IPA RISE委託研究 ソフトウェアのベンチマークとなる品質実態調査における品質評価枠組みIPA RISE委託研究 ソフトウェアのベンチマークとなる品質実態調査における品質評価枠組み
IPA RISE委託研究 ソフトウェアのベンチマークとなる品質実態調査における品質評価枠組み
 
測定によるソフトウェア品質への挑戦 公開用
測定によるソフトウェア品質への挑戦 公開用測定によるソフトウェア品質への挑戦 公開用
測定によるソフトウェア品質への挑戦 公開用
 
2チケット&計測」書籍で訴えたい
2チケット&計測」書籍で訴えたい2チケット&計測」書籍で訴えたい
2チケット&計測」書籍で訴えたい
 
ソフトウェアテストにおける 発想支援ツールの活用
ソフトウェアテストにおける発想支援ツールの活用ソフトウェアテストにおける発想支援ツールの活用
ソフトウェアテストにおける 発想支援ツールの活用
 
Gifu University Before Study 2015
Gifu University Before Study 2015Gifu University Before Study 2015
Gifu University Before Study 2015
 
ゴール指向の測定によるデータに裏付けられたソフトウェア品質評価と改善 公開用
ゴール指向の測定によるデータに裏付けられたソフトウェア品質評価と改善 公開用ゴール指向の測定によるデータに裏付けられたソフトウェア品質評価と改善 公開用
ゴール指向の測定によるデータに裏付けられたソフトウェア品質評価と改善 公開用
 
Hazop anzen21013
Hazop anzen21013Hazop anzen21013
Hazop anzen21013
 
Agile Development and Contract from IPA at AgileJapan 2011
Agile Development and Contract from IPA at AgileJapan 2011Agile Development and Contract from IPA at AgileJapan 2011
Agile Development and Contract from IPA at AgileJapan 2011
 
Agile Development and Contract from IPA at AgileJapan 2011
Agile Development and Contract from IPA at AgileJapan 2011Agile Development and Contract from IPA at AgileJapan 2011
Agile Development and Contract from IPA at AgileJapan 2011
 
ICST 2015 まるわかりDay! "ICST2015参加報告"
ICST 2015 まるわかりDay! "ICST2015参加報告"ICST 2015 まるわかりDay! "ICST2015参加報告"
ICST 2015 まるわかりDay! "ICST2015参加報告"
 
自己相似な情報モデリング
自己相似な情報モデリング自己相似な情報モデリング
自己相似な情報モデリング
 
DeNA QA night #2 presentation
DeNA QA night #2 presentationDeNA QA night #2 presentation
DeNA QA night #2 presentation
 
「ソフトウェア品質データ分析を通じた組織的改善の促進」ソフトウエアジャパン2014「ITフォーラムセッション」IPA/SEC データの分析に基づくシステム...
「ソフトウェア品質データ分析を通じた組織的改善の促進」ソフトウエアジャパン2014「ITフォーラムセッション」IPA/SEC データの分析に基づくシステム...「ソフトウェア品質データ分析を通じた組織的改善の促進」ソフトウエアジャパン2014「ITフォーラムセッション」IPA/SEC データの分析に基づくシステム...
「ソフトウェア品質データ分析を通じた組織的改善の促進」ソフトウエアジャパン2014「ITフォーラムセッション」IPA/SEC データの分析に基づくシステム...
 
NAIST ソフトウェア工学研究室紹介 2018
NAIST ソフトウェア工学研究室紹介 2018NAIST ソフトウェア工学研究室紹介 2018
NAIST ソフトウェア工学研究室紹介 2018
 
アナログ回路の民主化とプロの役割
アナログ回路の民主化とプロの役割アナログ回路の民主化とプロの役割
アナログ回路の民主化とプロの役割
 
Elastic Cloudを利用したセキュリティ監視の事例
Elastic Cloudを利用したセキュリティ監視の事例 Elastic Cloudを利用したセキュリティ監視の事例
Elastic Cloudを利用したセキュリティ監視の事例
 
Agileツール適合化分科会(テスト自動化ツール)
Agileツール適合化分科会(テスト自動化ツール)Agileツール適合化分科会(テスト自動化ツール)
Agileツール適合化分科会(テスト自動化ツール)
 
【慶應大学講演】なぜ、博士課程に進学したか?
【慶應大学講演】なぜ、博士課程に進学したか?【慶應大学講演】なぜ、博士課程に進学したか?
【慶應大学講演】なぜ、博士課程に進学したか?
 

Plus de Yasuharu Nishi

Plus de Yasuharu Nishi (12)

Is No More QA Idealist Practical and Something Tasty?
Is No More QA Idealist Practical and Something Tasty?Is No More QA Idealist Practical and Something Tasty?
Is No More QA Idealist Practical and Something Tasty?
 
What is quality engineer? Is it something tasty?
What is quality engineer? Is it something tasty?What is quality engineer? Is it something tasty?
What is quality engineer? Is it something tasty?
 
Demystifying quality management for large scale manufacturing in modern context
Demystifying quality management for large scale manufacturing in modern contextDemystifying quality management for large scale manufacturing in modern context
Demystifying quality management for large scale manufacturing in modern context
 
CommentScreeen is good
CommentScreeen is goodCommentScreeen is good
CommentScreeen is good
 
Demystifying quality management for large scale manufacturing in modern context
Demystifying quality management for large scale manufacturing in modern contextDemystifying quality management for large scale manufacturing in modern context
Demystifying quality management for large scale manufacturing in modern context
 
Teaser - Re-collection of embedded software QA in the last decade
Teaser - Re-collection of embedded software QA in the last decadeTeaser - Re-collection of embedded software QA in the last decade
Teaser - Re-collection of embedded software QA in the last decade
 
modern software qa - draft 1
modern software qa - draft 1modern software qa - draft 1
modern software qa - draft 1
 
Tomorrow's software testing for embedded systems
Tomorrow's software testing for embedded systemsTomorrow's software testing for embedded systems
Tomorrow's software testing for embedded systems
 
QA4AI JaSST Tokyo 2019
QA4AI JaSST Tokyo 2019QA4AI JaSST Tokyo 2019
QA4AI JaSST Tokyo 2019
 
LINE Developer Meetup in Tokyo #39 Presentation (modified)
LINE Developer Meetup in Tokyo #39 Presentation (modified)LINE Developer Meetup in Tokyo #39 Presentation (modified)
LINE Developer Meetup in Tokyo #39 Presentation (modified)
 
LINE Developer Meetup in Tokyo #39 Trailer
LINE Developer Meetup in Tokyo #39 TrailerLINE Developer Meetup in Tokyo #39 Trailer
LINE Developer Meetup in Tokyo #39 Trailer
 
Viewpoint-based Test Requirement Analysis Modeling and Test Architectural D...
Viewpoint-based Test Requirement Analysis Modelingand Test Architectural D...Viewpoint-based Test Requirement Analysis Modelingand Test Architectural D...
Viewpoint-based Test Requirement Analysis Modeling and Test Architectural D...
 

同値分割ってなんだろう?

  • 1. © NISHI, Yasuharu 同値分割ってなんだろう? 九州ソフトウェアテスト勉強会(仮) Vol.7 2014/5/28(水) 電気通信大学 大学院情報理工学研究科 総合情報学専攻 経営情報学コース 西 康晴(Yasuharu.Nishi@uec.ac.jp, http://qualab.jp/)
  • 2. © NISHI, Yasuharu2 Profile Assistant professor: the University of Electro-Communications, Japan (also providing consultancy service to industry on testing and TQM) President: Association of Software Test Engineering, Japan (ASTER) President: Japan Software Testing Qualifications Board (JSTQB) National delegate: ISO/IEC JTC1/SC7/WG26 Software testing for ISO/IEC/IEEE 29119-1, 2, 3, 4, 5 and ISO/IEC 33063 Founder: Japan Symposium on Software Testing (JaSST) Founder: Testing Engineers’ Forum (Japanese community on software testing) Founder and awards committee member: Software Test Design Contest Vice chair: SQiP/Software Quality Committee of JUSE (promoting organization of TQM) (SQiP has published the book of “SQuBOK: Software Quality Body of Knowledge”)
  • 4. © NISHI, Yasuharu4 本日の流れ • 同値分割の定義 • 簡単な同値分割 • だんだん高度になる同値分割 • 同値分割って、同値に分割すること?
  • 5. © NISHI, Yasuharu5 基本的なテストの目的 • 「テストしなければバグは見つからない」 – 漏れなくテストを設計する » 漏れなくテストを行うためには、 思いつきでテストをあげてはならない – 動作実績を積み上げて品質を保証する 「保証型」のテストである » テスト観点、組み合わせ、網羅率の3者を考慮する • 「大事なところをテストする」 – バグを狙ってテストを設計する » バグにはクセがあり、きちんと分析すれば推測できる – 品質リスクが高い順にテストを行う「検出型」のテストである » 品質リスク=処理頻度×欠陥作り込み確率×不具合露呈確率×不具合致命度 網羅 ピンポイント 少ない手間で早くたくさん危険なバグを検出する
  • 6. © NISHI, Yasuharu6 同値分割とは:同値分割の定義 • FLシラバス/4.3.1. 同値分割法 (K3) – 同値分割法は、ソフトウェアやシステムへの入力を同じ処理をするグループに 分割し、グループ内の入力を同等に扱えるようにする技法である。 – 同値分割したグループ(あるいは、同値分割したクラス)は、有効データ、すな わち受け入れられるデータだけでなく、無効データ、すなわち拒否されるデータ にもある。 – 同値分割したグループは、出力、内部変数、時間に依存する値(例えば、イベ ントの前と後)にも存在し、インターフェースパラメータにもある。 – (例えば、テスト済みの統合されたコンポーネント)テストでは、同値分割した全 ての有効な領域、無効な領域をカバーするように設計する。 – 同値分割法は、あらゆるレベルのテストで適用できる。 – 同値分割法は、入出力のカバレッジ目標を達成する場合に使用できる。また、 人間による入力、インターフェース経由でのシステムへの入力、統合テストで のインターフェースパラメータに適用できる。
  • 7. © NISHI, Yasuharu7 同値分割とは:境界値分析の定義 • FLシラバス/4.3.2. 境界値分析(K3) – 同値分割したグループの境界上の動作は、グループ内部での(境界ではない) 動作よりも正しくないことが多く、境界には多くの欠陥が潜んでいる可能性が 大きい。 – ある領域の最大値、最小値は境界値である。同値分割した場合の有効な領域 側の境界値は、「有効な境界値」となり、無効な領域側の境界値は「無効な境 界値」となる。 – 有効および無効な境界値の両方をカバーするようにテストを設計する。テスト ケースを設計するときは、両領域から値を選ぶ。 – 境界値分析は、あらゆるテストレベルで適用できる。比較的簡単に適用でき、 欠陥摘出能力も高い。 – 詳細化された仕様は、重要な境界値を決定するために役に立つ。 – この技法は、同値分割法の拡張、または他のブラックボックステスト設計技法 と見なされることが多い。人間による画面入力や、例えば、タイミング(タイムア ウト、トランザクション速度に対する要求など)やテーブルの範囲(テーブルサイ ズは256×256 であるなど)にも使用できる。
  • 9. © NISHI, Yasuharu9 シンプルな演習 • 以下のモジュールのテストを設計してみましょう – int型の引数aがあります – モジュール内にはif (a<0) と if (7<a)という 2つの条件文があります • まず同値クラスを挙げてみましょう。 • 次に同値クラスの境界値を挙げてみましょう • 最後に、どんなバグが見つかるかを 考えてみましょう
  • 10. © NISHI, Yasuharu10 解答:シンプルな演習 • 同値クラスは – int型の範囲を -32767~ +32767とする – 【-32767~-1】【0~7】【8~+32767】の3つが同値クラス • 境界値は – -32768, -32767, -1, 0 – -1, 0, 7, 8 – 7, 8, +32767, +32768 – したがって、-32768, -32767, -1, 0, 7, 8, +32767, +32768 の8つ • 見つかるバグは? – これは考えてみましょう
  • 11. © NISHI, Yasuharu11 もやっとする演習:湯本の問題 • 以下の仕様について、テストを設計してみましょう 年齢が6歳以上18歳以下、 現住所が福岡県、 学生証の提示ありの場合に、 チケット代金を学生金額とする
  • 12. © NISHI, Yasuharu12 もやもやもやっとする演習:Myersの三角形 • 以下のプログラムをテストするのに 十分と思われるテストケースを全て挙げて下さい – このプログラムは、3つの整数を入力される – この3つの値は、それぞれ三角形の3辺の長さを 表すものとする – このプログラムは、三角形が » 不等辺三角形 » 二等辺三角形 » 正三角形 のうち、どれであるかを出力する
  • 13. © NISHI, Yasuharu13 解答: Myersの三角形 • 有効な不等辺三角形 • 有効な正三角形 • 有効な二等辺三角形 • 有効な二等辺三角形で 3種類の辺の組み合わせ • 長さが0の辺 • 長さが負の値の辺 • 2辺の和がもう1辺と等しい • 2辺の和がもう1辺と等しい 際の3種類の辺の組み合わせ • 2辺の和がもう1辺より小さい • 2辺の和がもう1辺より小さい 際の3種類の辺の組み合わせ • 3辺が0 • 整数でない辺 • 辺の数が3以外 • 期待結果を示してある 以下の条件に当てはめるテストを設計していたら1点 平均的なプログラマは 7.8点
  • 14. © NISHI, Yasuharu14 同値分割の簡単なところ、難しいところ • 同値分割の簡単なところ – 要するに、範囲に分ければいいんだろ!簡単簡単! • 同値分割の難しいところ – 同値クラスにも、色んな種類があるんじゃない? » 有効同値クラス、無効同値クラス » 離散系の同値クラス、連続系の同値クラスと有効数字 » 閉じた同値クラス、開いた同値クラスと代表値 » 境界値分析って、実は同値分割と矛盾してない? » グループ(数字ではないもの)の同値分割 » 入力同値、出力同値、処理同値、中間データ同値 » 同値クラス間の対応(同値クラスの射影) » 範囲がゼロの同値クラス » ほんとに同値なの?(特異点、居駒の同値原理) – どこを見て何を考えたら、適切に同値クラスが挙がるんだろう? » ドメイン知識による同値クラス » 無効同値クラスは考えなくていいの? » 同値クラスの深掘り:階層構造、ズームイン・ズームアウト » 同値クラスとネーミング、テストの意図(テスト観点) » テスト観点なのか、それとも関連なのか?
  • 15. © NISHI, Yasuharu15 インターネットって色々教えてくれるなぁ♪ • 居駒(@m_ku)さんが要約したマイヤーズの同値分割5つの指針 1. 値の範囲の場合は、1つの有効同値クラスと2つの無効同値クラス 2. 値の数の場合も、1つの有効同値クラスと2つの無効同値クラス 3. 値の集合の場合は、要素数の有効同値クラスと1つの無効同値クラス 4. 「~ねばならない」というのは、有効同値クラスと無効同値クラス一つずつ 5. 「プログラムで同一には扱われないだろう」と思う場合は同値クラスを適時分割 • 鈴木三紀夫(@mkoszk)さんによる同値分割の習熟レベル 1. .ある機能に対して機能が働く有効な入力を 同じ処理がされそうなグループに分割できる 2. あり得る入力種別をすべて挙げることができる 3. ある機能に対して機能が働かない無効な入力(無効データ)の抽出ができる 4. 複数の入力が影響する場合に、ドメイン分析が行える 5. テスト対象のどの側面に着目して切り込み入れて行くかについて分析できる
  • 16. © NISHI, Yasuharu16 まとめ • 同値分割の定義 • 簡単な同値分割 • だんだん高度になる同値分割 • 同値分割って、同値に分割することじゃなかった! 同値分割とは テスト対象の理解であり、 テストの意図を明らかにする 大事な技術である
  • 17. © NISHI, Yasuharu 同値分割って奥が深いですね! (^_^) 電気通信大学 西 康晴 http://qualab.jp/ Yasuharu.Nishi@uec.ac.jp