同値分割について

同値分割の深さってなんだろう?と分からない私が理解できるようになるまでのツイート
ソフトウェアテスト 同値分割
____rina____ 5333view 9コメント
9

限定公開の新機能が大好評!

プライベートなツイートまとめの共有がもっと簡単になりました。フォロワーだけに特別なまとめを公開しませんか?メンバー限定はメニューから設定可能です。詳細はこちら

ログインして広告を非表示にする
  • きっかけ
  • YasuharuNishi @YasuharuNishi 2014-04-29 10:09:43
    えっと、来月の勉強会のネタについて@____rina____さんが悩んでるんだけど、みんな力を貸してあげて下さい。同値分割が深いって、どの辺について思ったんでしょうか。通常こう思うけど、実はこう深い、という構成でtweetしてもらえるとありたいで~す。特に@mkoszkさんとか。
  • YasuharuNishi @YasuharuNishi 2014-04-29 10:09:57
    というネタフリでいいかしら?>@____rina____さん
  • 例1:ジェットコースターの制限
  • akiyama924 @akiyama924 2014-04-29 11:54:05
    @____rina____ なにがわからないかわからないので、簡単なところから説明しますね。「身長120cm以上の人がこのジェットコースターに乗れる」という仕様をテストする時にどうするかという話です。 子供100人集めてきてテストしても良いけど、そんなにはいらなそうですよね。
  • akiyama924 @akiyama924 2014-04-29 11:57:51
    @____rina____ で、答えは出てると思うけど、身長が120cm未満の子供の中から1人、例えば身長100cmの子供、そして、120㎝以上の子供の中から1人、例えば身長140cmの子供の2人はテストしたいところです。
  • akiyama924 @akiyama924 2014-04-29 12:02:03
    @____rina____ いま身長が120cm未満の子供の集まりと120㎝以上の子供の集まりの2つに分けてから代表者(身長100cmの子供と身長140cmの子供)を選んだのですが、この分ける作業のことを同値分割っていいます。そして分けた集まりのそれぞれを同値クラスっていいます。
  • akiyama924 @akiyama924 2014-04-29 12:04:44
    @____rina____ 集まりだったら「同値クラス」じゃなくて「同値集合」じゃないかと思われるかもしれません。でも、「集合」は同じ要素を複数持たないらしいのです。今回は、145cmの人が複数いても良いので、「クラス」っていいます。
  • akiyama924 @akiyama924 2014-04-29 12:08:24
    @____rina____ さてジェットコースターには心臓病の人は乗れません。つまり、どこかに心臓病かどうかの条件判定処理があり、もし、その条件判定処理のテストだったら「心臓病の子供」と「健康な子供」の2つの同値クラスとなり、それぞれのクラスから代表者を適当に選んでテストします。
  • akiyama924 @akiyama924 2014-04-29 12:11:19
    @____rina____ このように、同値分割する時には  (入力)→【処理】→(出力) というテスト対象の入力だけを見ていてはだめです。 挙げた例で言えば「身長判定処理」と「心臓病判定処理」では分割方法がことなるからです。
  • akiyama924 @akiyama924 2014-04-29 12:15:07
    @____rina____ どんな処理が用意されているかすべて仕様書に書いてあったとしても「開発者が必要な処理を用意し忘れる」場合もあります。 だからテスターはどんな処理が必要かをゼロベースで挙げる必要があります(実際には仕様書をベースにしてみつけたものに加えることになりますが)
  • akiyama924 @akiyama924 2014-04-29 12:17:09
    @____rina____ この「処理」の種類(身長、心臓病)がテスト観点に対応します(たぶん)。
  • akiyama924 @akiyama924 2014-04-29 12:20:59
    @____rina____ 話をまとめます。 1. 同値分割する時にはテスト対象(どの処理のテストをしようとしているか)を認識する 2. テスト対象が認識出来たらテスト対象を「(入力)→【処理】→(出力)」のモデルに当てはめる 3. 入力が多数存在した場合はクラス分けする です。
  • akiyama924 @akiyama924 2014-04-29 12:23:21
    @____rina____ 今書いたものは、機能のテストに対する同値分割なので、例えば性能などの品質特性では使えません。 また、同値分割でテストしても機能バグが全て見つかるわけでもありません。
  • リナ? @____rina____ 2014-04-29 12:27:04
    @akiyama924 ありがとうございます。私がイメージしていた考えとずれていなかったようですが、人に説明できるほどの理解はまだ出来ていないなぁと思いました。
  • akiyama924 @akiyama924 2014-04-29 12:27:09
    @____rina____ 実際、100㎝、140㎝、105cm、95㎝、、、、というデータを流した時に140cm以降のデータに対しては全て合格と標示するバグなんてありそうです。 だから、同値分割で発見できるバグは「そのテスト観点に対する処理が存在しない」ことくらいです。
  • 鈴木三紀夫 @mkoszk 2014-04-29 12:44:14
    @YasuharuNishi @____rina____ 僕の話は異端だよ。普通の話が良いと思うんだけど。
  • 鈴木三紀夫 @mkoszk 2014-04-29 12:51:25
    @____rina____ @akiyama924 秋山さんの説明に僕の説明を加えると、たぶん混乱すると思うので、秋山さんの説明を理解してから、ツイートしますね。
  • リナ? @____rina____ 2014-04-29 13:27:02
    @akiyama924 ここで言っているバグとは「140cmで心臓病がある子どもも合格になってしまう」というバグであってますよね?(。。。理解力が悪くて申し訳ありません。。。)
  • akiyama924 @akiyama924 2014-04-29 13:44:41
    @____rina____ いえ。ここで言いたかったのは、「判定結果の初期値が不合格で、合格の時だけ、判定結果を格納する変数に合格を代入する」処理になってると、一度合格が出ると以降のデータに対してすべて合格と言う結果が出るというバグを想定しました。
  • リナ? @____rina____ 2014-04-29 20:30:25
    @akiyama924 なるほど。それでデータを流すと仰っていたのですね。理解しました。ありがとうございます。(読解力が弱くて申し訳ありません。。。)
  • リナ? @____rina____ 2014-04-29 13:28:38
    @akiyama924 @mkoszk ありがとうございます。1つ1つを正しく理解せんと、全体的にわかった風にだけなってしまいそうです。 そして、ちょっと外出してしまいますので、また後でTweetします。すみません。。。
  • akiyama924 @akiyama924 2014-04-29 14:15:01
    @____rina____ 大切なことを書きもらしたので追加します。 4. 同値分割で分割した同値クラスは重なりを持ってはならない。 例えば身長の例なら「120㎝以上」と「125㎝以上」という同値クラスがあったら、120㎝から125cmが重なっているので同値分割したと言えません。
  • 集合とクラスの違い
  • リナ? @____rina____ 2014-04-29 13:08:29
    @akiyama924 集合とクラスの違いがよく理解できなかったのですが、論点の理解がずれそうな気がするので、「同じグループに複数データがいてもOK=同値クラス」と理解しました。

コメント

カテゴリーからまとめを探す

ログインして広告を非表示にする
ログインして広告を非表示にする